Conceptos Clave y Ejemplos en Bases de Datos Relacionales

Enviado por Chuletator online y clasificado en Tecnología Industrial

Escrito el en español con un tamaño de 4,74 KB

a) Redundancia de Atributos en Dependencias Funcionales

Relación y DFs

Dada la relación R(A, B, C, D, E) y las DFs = {A B → C D, B → E}.

Algoritmo y Pasos

Aplica el algoritmo para ver si sobra algún atributo en alguna DF. Muestra cada paso claramente.

SOLUCIÓN:

  1. Descomposición en DFs simples:
    • 1.1: A B → C
    • 1.2: A B → D
    • 2: B → E
  2. Aplicación a la DF 1.1 (A B → C):
    • Quito A del antecedente: {B}+ = {B, E}. Como C no está en el cierre, no puedo quitar A.
    • Quito B del antecedente: {A}+ = {A}. Como C no está en el cierre, no puedo quitar B.
  3. Aplicación a la DF 1.2 (A B → D):
    • Quito A del antecedente: {B}+ = {B, E}. Como D no está en el cierre, no puedo quitar A.
    • Quito B del antecedente: {A}+ = {A}. Como D no está en el cierre, no puedo quitar B.
Conclusión:

Luego, no se puede quitar ningún atributo en ninguna de las DFs.

b) Propiedades de la Descomposición de Relaciones

Explica dos propiedades que debe cumplir una descomposición de una relación.

SOLUCIÓN:

  1. No perder DFs (Preservación de dependencias).
  2. Sin pérdida de información (Descomposición sin pérdida de unión). No generar filas falsas al reunir las dos relaciones.

c) Evaluación de una Descomposición Específica

Relación, DFs y Descomposición

Indica si esta descomposición cumple ambas, una sola o ninguna de las propiedades y describe porqué:

Dada la relación R(M, N, P, Q, R) con DFs ={ M N → P Q R, Q → R } se descompone en R1(M, N, P, Q) y R2(Q, R). Donde los atributos subrayados son los que forman clave primaria.

SOLUCIÓN:

  1. No perder DFs:

    Pierde la DF Q → R. Si R fuera la clave primaria en R2, la dependencia sería R → Q (y MN → R también).

  2. Sin pérdida de información:

    Genera filas falsas al reunir las dos relaciones porque el atributo común a ambas (Q) no es clave primaria en ninguna de las relaciones resultantes (R1 ni R2).

CONCLUSIÓN:

No cumple ninguna de las propiedades.

d) Desnormalización para Optimización de Consultas

Relaciones Originales y Consulta Frecuente

Tenemos las relaciones Ciudad(codCiudad, nombre, habitantes) y TemperaturasSemana (codCiudad, Temperatura, DíaSemana).

(1) Indica qué técnica de desnormalización nos conviene aplicar para optimizar la consulta, que se hace muy frecuentemente, de las temperaturas de la semana para una ciudad.

(2) Aplícala haciendo un ejemplo con un esquema de lo que obtienes.

SOLUCIÓN:

Sustituir atributo multivalorado uniendo las tablas en una sola:

Ciudad_Temperaturas(codCiudad, nombre, habitantes, Temperatura, DíaSemana)

(Nota: El ejemplo de esquema resultante no fue proporcionado en el texto original, solo la técnica).

Ejemplos de Código PL/SQL

(Los siguientes bloques de código parecen ser ejemplos de PL/SQL, posiblemente no relacionados directamente con los ejercicios anteriores, pero se incluyen según lo solicitado).

SOLUCIÓN:

plsql_block := 'BEGIN insert into ' || NomTabla || ' values (:b, :c, :d, :e); END;';
EXECUTE IMMEDIATE plsql_block USING Atr1, Atr2, Atr3, Atr4;
EXECUTE IMMEDIATE plsql_block USING ATRa, ATRb, ATRc, ATRd;
EXECUTE IMMEDIATE plsql_block USING ATRw, ATRx, ATRz, ATRy;

SOLUCIÓN (puede hacerse también con FOR):

Create or replace procedure EJ3b (dni VARCHAR) as
Total NUMBER(10,0);
saldoTarjeta NUMBER(10,2);
CURSOR cursor_tarjetas IS
select SALDO
from tienet
where dni = dniCliente and saldo < 0;
BEGIN
Total:=0;
OPEN cursor_tarjetas;
LOOP
FETCH cursor_tarjetas INTO saldoTarjeta;
EXIT WHEN cursor_tarjetas%NOTFOUND;
Total := Total + saldoTarjeta;
END LOOP;
dbms_output.put_line('Total obtenido: ' || Total);
END;

Entradas relacionadas: