0% encontró este documento útil (0 votos)
4 vistas45 páginas

Transformación de DER a Modelo Relacional

Diapositivas de Base de datos - 2C UNLAM 2024

Cargado por

laura
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
4 vistas45 páginas

Transformación de DER a Modelo Relacional

Diapositivas de Base de datos - 2C UNLAM 2024

Cargado por

laura
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

De una Entidad a una Relación

• Cada atributo de la entidad, se


transforma en un atributo de
una relación

• Transporte(matricula, nroMotor,
color, Tipo)
DEL DER AL Modelo Relacional (MR)
Transformación de Relaciones 1.1
Relaciones 1.N
Relaciones N.N
Ejemplo de N.N con datos
Ejemplo 2 N.N con atributos
Dependencia Funcional
X→Y

X: Conjunto Determinante
Y: Conjunto Determinado

“al tener siempre el mismo valor en X, obtendremos el mismo valor en Y”


Ya que Y depende funcionalmente de X.
Ejemplos de Dependencias funcionales (DF)
No es Bidireccional!
No es Bidireccional!

Fecha de Nacimiento Edad


18/9/2000 21
19/9/2000 20
18/9/2001 20
14/10/2000 20
31/08/2000 21
Axiomas de Armstrong
• Aumento
• X → Y => X Z → Y Z

• Transitividad
• X → Y e Y → Z => X → Z

• Reflexividad
• X→X
Reglas derivadas
• Unión
• X → Y e X → Z entonces X → YZ

• Descomposición
• X → YZ => X → Y entonces X → Z

• Pseudo Transitividad
• X → Y y WY → Z entonces WX → Z
Unión => X → Y e X → Z entonces X → YZ

1. X → Y (dada)
2. X → YX (Aumento x)
3. X → Z (dado)
4. XY → ZY (Aumento Y el punto 3)
5. X → ZY (transitividad 2 y 4 X → YX e XY → ZY )
Descomposición:
X → YZ => X → Y entonces X → Z
1. X → YZ (dada)
2. YZ → Z (Reflexividad)
3. YZ → Y (Reflexividad)
4. X → Z (Transitividad 1 y 2 => X → YZ e YZ → Z )
5. X → Y (transitividad 2 y 3 X → YZ e YZ → Y )
Pseudo Transitividad:
X → Y y WY → Z entonces WX → Z
1. X → Y (dada)
2. XW → YW (Aumento 1)
3. WY → Z (Dado)
4. XW → Z (Transitividad 1 y 3 => XW → YW e WX → Z )
Pseudotransitividad
• Pseudo Transitividad
• X → Y y WY → Z entonces WX → Z

R(ABCDEFG)
Fmin = {B → C, C → A, C → F, F → B, C → D, B → E}

{GB} = { GBCEAFD }

GB → ABCDEFG
Y ADEMAS: F → B ENTONCES, POR PSEUDOTRANSITIVIDAD,
FG → ABCDEFG es decir, DETERMINA A TODO EL CONJUNTO DE R
LO MISMO, SIRVE PARA EL EJEMPLO DE
C → B → CG → ABCDEFG
CONJUNTO DE DEPENDENCIAS
FUNCIONALES
• Dentro de una Relacion R, tendremos asociado un conjunto “F” de
dependencias funcionales

R (dni, nombre, apellido, fechaNac, edad)

F = { dni → nombre, apellido, fechaNac ,


fechaNac → edad }
Formas Normales
• Reglas aplicadas a las relaciones de una base de datos para
determinar su estado de normalización

• Es decir, se validará si todas sus relaciones tienen claves, como se


forman esas claves, etc
Clausura de Un elemento

• La clausura de un elemento refiere a que atributos alcanza directa o


indirectamente un atributo (indirectamente es a traves de las reglas
de Armstrong).
R(X, Y, Z, W, Q)
• Si tenemos a X → Y , Y → Z y W → Q, Podemos decir que:

{ X }+= { X, Y, Z } {Z} + = { Z} { Q} + = { Q}
{ Y } + = { Y, Z} {W} + = { W, Q }
CLAUSURA: Ejemplo con columnas reales
R(TIPO_DOC, FECHA_NAC,EDAD, NRO_DOC, APELLIDO, NOMBRE, PREFIJO,
LOCALIDAD, NRO_TELEFONO)
F { TIPO_DOC, NRO_DOC → FECHA_NAC
TIPO_DOC, NRO_DOC → APELLIDO, NOMBRE, LOCALIDAD
FECHA_NAC → EDAD
LOCALIDAD → PREFIJO
TIPO_DOC, NRO_DOC → NRO_TELEFONO
}
{TIPO_DOC} = {TIPO_DOC} → 1ra A. TODO ELEMENTO, DETERMINA A SI
MISMO.
{FECHA_NAC} = {FECHA_NAC, EDAD}
{TIPO_DOC, NRO_DOC} = {TIPO_DOC, NRO_DOC, FECHA_NAC, APELLIDO,
NOMBRE, EDAD , NRO_TELEFONO, LOCALIDA, PREFIJO}
{PREFIJO} = {PREFIJO}
{LOCALIDAD} = {LOCALIDAD, PREFIJO}
Super Clave (SC)
• Un conjunto de atributos es super clave si determina funcionalmente
al resto de atributos de la Relación
R (dni, nombre, apellido, fechaNac, edad)
F = { dni → nombre, apellido, fechaNac ,
fechaNac → edad }
LA CLAUSURA DE DNI, NOS DARÁ TODOS LOS ATRIBUTOS DEL CONJUNTO R, POR LO
QUE SERÍA UNA CLAVE

POR OTRO LADO, LA CLAUSURA DE { DNI, NOMBRE } TAMBIEN DETERMINARÁ TODO EL


CONJUNTO R, POR LO QUE TAMBIEN ES UNA SUPER CLAVE.
R (dni, nombre, apellido, fechaNac, edad)
F = { dni → nombre, apellido, fechaNac ,
fechaNac → edad }
Clausuras:
{DNI,NOMBRE} = {DNI,NOMBRE, APELLIDO, FECHAHAC,EDAD}

ENTONCES, EL CONJUNTO DNI+NOMBRE, ¿ES UNA CLAVE CANDIDATA?


¡NO!
¿COMO LO SABEMOS? * DEBEMOS HACER LAS CLAUSURAS DE LOS ELEMENTOS
POR SEPARADO, Y VER SI SOLOS, ALCANZAN O NO, EL RESTO DE ATRIBUTOS DE
LA RELACIÓN
{NOMBRE}+ = {NOMBRE}
{DNI} + = {DNI, NOMBRE, APELLIDO, FECHANAC, EDAD}
ENTONCES, COMO DNI CUBRE TODA LA RELACIÓN, LA CC ES DNI, NO
{DNI+NOMBRE}, SIENDO ESTO, UNA SUPER CLAVE
Clave Candidata (CC)
• Una clave candidata es una super clave, que tiene además la propiedad de ser
MINIMA.
• Ser minima significa que, si le quito alguno de sus elementos, deja de ser una
clave.

• R(XYZWQGT)
• F = { X → Y, Y → WZQ, Q → TG }
• CLAUSURA DE X e Y => { XY } = { XYWZQTG }
• XY es una superclave o una clave candidata? => para saberlo, tenemos uqe hacer
la clausura de X e Y y ver si cada una determina al conjunto R. Si ninguna por su
cuenta determina a R, XY es una CC. si alguna por su cuenta determina a R, XY es
solo una SC.
Clausura de X => {X} = {XY………..}
CLAVES CANDIDATAS CON DISTINTA
CANTIDAD DE ATRIBUTOS
ALUMNO(LEGAJO, TIPO_DOC, NRO_DOC, NOMBRE, APELLIDO, TELEFONO,
DIRECCIÓN}
F={
LEGAJO  TIPO_DOC, NRO_DOC
TIPO_DOC, NRO_DOC  LEGAJO, NOMBRE, APELLIDO, TELEFONO,
DIRECCION
}
{ TIPO_DOC, NRO_DOC}+ = {LEGAJO, NOMBRE, APELLIDO, TELEFONO,
DIRECCION}
{LEGAJO}+ = { LEGAJO, TIPO_DOC, NRO_DOC,NOMBRE, APELLIDO,
TELEFONO, DIRECCION}

CONJUNTO DE CLAVES CANDIDAS  CC = { LEGAJO, {TIPO_DOC, NRO_DOC} }


Conjunto Minimo de DF
• Existe un algoritmo para minimizar el conjunto de DF y lograr que este sea más fácil de
trabajar y procesar luego.

• Reglas del algoritmo:


• 1. disminuir lados derechos: Es decir, aplicar la propiedad de division
• Si X  YZ entonces dividir en X  Y , X  Z

• 2. Intentar disminuir los lados Izquierdos o determinates.


• XW  Z tenemos que hacer las clausuras de X y W y ver si por si mismas determinan a Z. Si es así,
Podemos reemplazar la DF por X  Z o W  Z

• 3. Intentar eliminar DF que puedan obtenerse a través de otas. Es decir que si tenemos
las DF X  Z, X  Y e Y  Z, podremos eliminar X  Z ya que es un dato que puede
igualmente obtenerse en la clausura de X
Ejemplo Fmin
R(ABCDEFG) con
F = { B → CD, C → AF, F → B, FC → D, ACB → ED, BD → A }

PRIMER PASO. DIVIDIR LADOS DERECHOS.


EJEMPLO. SI TENEMOS B → CD, LO REEMPLAZAMOS POR B → C Y B → D.

F’={B → C, B → D, C → A, C → F, F → B, FC → D, ACB → E,
ACB → D, BD → A }
Ejemplo Fmin
R(ABCDEFG) con
• F = { B → CD, C → AF, F → B, FC → D, ACB → ED, BD → A }
F’={B → C, B → D, C → A, C → F, F → B, FC → D,
ACB → E, ACB → D, BD → A }
SEGUNDO PASO. INTENTAR ELIMINAR ATRIBUTOS DEL LADO IZQUIERDO.
EJEMPLO.
Tomamos ACB → E y queremos reducir el lado IZQUIERDO. Por lo
que intentaremos quedarnos con alguna de las siguientes
opciones

A → E | B → E | C → E | AB → E | AC → E | BC → E
{A}+ = {A} {B}+ = {BCDAFE} {C}+ = {CAFBDE}
F’’ = {B → C, B → D, C → A, C → F, F → B, C → D,
B → E, B → A }
Ejemplo Fmin
R(ABCDEFG) con
F = { B → CD, C → AF, F → B, FC → D, ACB → ED, BD → A }
F’’={B → C, B → D, C → A, C → F, F → B, C → D, B → E, B → A }
TERCER PASO. Intentar Reducir la cantidad de DF del conjunto F’
{B}+ (sin contar B → C) = {BDAE} como el determinado en la DF
seleccionada no aparece en la clausura, no puedo eliminarla por
no ser redundante.

{B}+ (sin contar B → D) = {BCAFD} por transitividad, B alcanza


la D, utilizando las siguientes DF, B → C y C → D. Entonces la
DF B → D puede ser suprimida por ser redundante

Siguiendo este razonamiento para el resto de DF, nos queda:

F’’’= {B → C, B → D, C → A, C → F, F → B, C → D, B → E, B → A }
Ejemplo Fmin
R(ABCDEFG) con
F = { B → CD, C → AF, F → B, FC → D, ACB → ED, BD → A }

Fmin= {B → C, C → A, C → F, F → B, C → D, B → E}

{B}+ = { BCAFDE } ES TODO EL CONJUNTO? NO. FALTA


{G}+= {G}
{BG}+ = { BCAFDEG } ES TODO EL CONJUNTO? SI, ENTONCES ES
CC
{CG}+ = {GCAFBDE}
{FG}+ = {FGC…..} {AFG}+ = {ABCDEFG}
CC = {{ BG}, {CG}, {FG} }
Atributos Primos
• Atributos que forman parte de una clave compuesta

• Ejemplo:

• PERSONA (tipoDoc, NroDoc, nombre, apellido, fechaNac)


• F = {tipoDoc, NroDoc  nombre, apellido, fechaNac}

• Clave candidata: {tipoDoc, NroDoc}

• Atributos Primos: tipoDoc, NroDoc


Atributos Primos
R(ABCDEFG) con
F = { B → CD, C → AF, F → B, FC → D, ACB → ED, BD → A
CC = {{BG}, {CG}, {FG} }
PRIMOS SON: B, G, C, F

ALUMNO(LEGAJO, TIPO_DOC, NRO_DOC, NOMBRE, APELLIDO, TELEFONO,


DIRECCIÓN}
F = { LEGAJO  TIPO_DOC, NRO_DOC
TIPO_DOC, NRO_DOC  LEGAJO, NOMBRE, APELLIDO, TELEFONO,
DIRECCION }
CC = { LEGAJO, {TIPO_DOC, NRO_DOC} }
PRIMOS: TIPO_DOC, NRO_DOC
NOTA: LEGAJO NO ES PRIMO, PORQUE NO ES PARTE DE UNA CLAVE
CANDIDATA COMPUESTA
Primera Forma Normal (1FN)
• Toda Relación debe tener Clave.

• La clave debe tener valores únicos y No Nulos!


Segunda Forma Normal (2FN)
• No debe existir la dependencia parcial de una clave:

• Ejemplo. Si tenemos un R(x,y,z,w) y su clave es {X,Y}


Para cumplir con 2FN, no debemos tener una DF que sea del tipo

YZ

Ya que de esta forma, Z dependería parcialmente de la clave XY y no


del total de la clave
Ejemplo que no cumple con 2FN
R (tipoDocumento, numeroDocumento,
nombre, apellido, f_Nac, edad, tieneVencimiento)
F = { tipoDocumento, numeroDocumento 🡪 nombre, apellido,
f_Nac ,
f_Nac  edad ,
tipoDocumento  tieneVencimiento }

CC = {tipoDocumento, numeroDocumento}
Tercera Forma Normal (3FN)
• Para que una DF este en 3FN, el determinante debe ser Super Clave
(o clave candidata) o el determinado un atributo Primo.

• R(XYZWQ)
• F = { XY  ZWQ, WQ  Y }

• {XY} ES UNA CC
Forma normal de Boyce-Codd (FNBC)
• Igual que 3FN, pero solo cumple con la parte de que el determinante
sea Super clave O clave candidata.

• R(XYZWQ)
• F = { XY  ZWQ, WQ  Y }

• {XY} ES UNA CC
WQ  Y, POR LO TANTO, NO CUMPLE CON FNBC
Algoritmo para alcanzar 3FN (Sin Pérdida de
Info y sin Perdida de DF)
• Paso 1. Armar el Fmin.
• Paso 2. Tomamos los distintos determinantes y armamos nuevas
relaciones con los determinantes
• Paso 3. Sumamos los determinados a la nueva relación de cada
determinante
• Paso 4 (condicional) ¿Esta alguna de las claves originales en alguno
de los R nuevos?
• Si no se cuentra, armar una nueva relación con una de las claves
Pérdida de Información
1. Al dividir una relación, no poder construir la misma tupla por tener
información faltante
2. No pueda reconstruir, por tener información de más.
3. Al juntar relaciones tengo información que antes no tenía.
Paso 1. Armar el Fmin
R(ABCDEFG) con
F = { B → CD, C → AF, F → B, FC → D, ACB → ED, BD → A }
F’={B → C, B → D, C → A, C → F, F → B, FC → D,
ACB → E, ACB → D, BD → A }

F’’ = {B → C, B → D, C → A, C → F, F → B,
C → D, B → E, B → A }

F’’’= {B → C, C → F, F → B, C → D, B → E, B → A}
= Fmin

CC: {BG, FG, CG}


Algoritmo FNBC (Sin Pérdida de Info y puede
perder DF)
• Paso 1. (no obligatorio) Armar el Fmin
• Paso 2. Dividimos el esquema en R1 y R2.
• Poniendo en R1 los atributos de la 1er DF que no cumpla con BC, por
definición, tomaremos siempre de Izquierda a Derecha
• Poniendo en R2 el resto de atributos que esten en la relación, menos el
determinado por la DF tomada
• Paso 3. Si R2 no se encuentra en FNBC, realizar el paso 2
nuevamente, pero con R2. Repetir esto hasta que el Rx2 este en
FNBC.
Paso 1. Armar Fmin
R (A, B, C, D) con F= { AB → C, C → D, D → A }

F = Fmin CC = { AB, DB, CB }

Paso 2. Dividir R en R1 y R2.


R (A, B, C, D) con F= { AB → C, C → D, D → A }

R1 (CD) F1 = {C → D} CC = { c }
R2 (ABC) F2 = {AB → C, C → A } (por transitividad, C  D y D  A => C  A
CC = { AB}

R21 (CA) F21 = { C → A }


R22 (BC) F22 = { } bc → c es trivial, por lo que el conjunto queda vacio
Ejemplo armado de un conjunto F
Dada la siguiente relación Registro (NombreCurso, Profesor, Hora, Aula,
Estudiante, Nota)
Y las siguientes restricciones (dadas por las reglas del negocio) identificar las
Dependencias Funcionales:
• Cada curso es impartido por varios profesores.
CURSO  PROFESOR
PROFESOR  NOMBRECURSO
• A una hora y en un aula se imparte un solo curso.
Hora, Aula  NombreCurso
• A una hora determinada, un profesor está es una única aula.
Hora, Profesor  Aula | Hora, Aula 🡪 Profesor
• Cada estudiante obtiene una nota en cada curso tomado (solo puede tomar una vez cada
curso).
Estudiante, NombreCurso  Nota
• A una hora determinada, un estudiante puede estar en una sola aula.
Hora, Estudiante  Aula | Hora, Aula  Estudiante?
Ejercicios Clase Proxima
(Practica de DF)
Ejercicios:
•1
•3
•6
• 10
• 16

También podría gustarte