Vous êtes sur la page 1sur 7

Apuntes de Bases de Datos Luis A.

Zarza López, UTM, 2018

Diseño de bases de datos relacionales (Cap 7 del libro)


A partir del conocimiento de la empresa u organización que se busca modelar, se puede generar el
esquema utilizando un conjunto de herramientas conceptuales para poder almacenar la información
reduciendo considerablemente la redundancia (no siempre es deseable eliminar toda redundancia). Se
puede conseguir y comprobar que el esquema se encuentre en una forma normal adecuada.

Primera forma normal (1FN)


Un dominio es atómico si se considera que los elementos del dominio son unidades indivisibles.
Se dice que el esquema de una relación R está en 1FN si los dominios de todos los atributos de R son
atómicos.
Si existe el atributo hijos donde se registran nombres de varios hijos, el dominio correspondiente no es
atómico. Lo mismo en el caso del atributo dirección, donde se pueden y deben separar calle, número,
ciudad, CP, etc.
Si una clave de empleado indica el departamento y el número de empleado en ese departamento, se
podría dividir la clave para separar la información relevante.

Dependencias funcionales
Una dependencia funcional es una restricción que generaliza el concepto de clave, como se vio
anteriormente.
La dependencia funcional

α →β
se cumple para el esquema R si, en cualquier relación r(R), para todos los pares de tuplas t1 y t2 de r
tales que t1[α] = t2[α], también ocurre que t1[β] = t2[β]
Si se tiene un esquema así:

Esquema-info-préstamo=(#préstamo, sucursal,
nCliente, importe)
entonces el junto que de dependencias funcionales que deberían cumplirse son:

#préstamo →importe
#préstamo →sucursal

Diseño de bases de datos relacionales (Cap 7 del libro) 1


Apuntes de Bases de Datos Luis A. Zarza López, UTM, 2018

pero no se espera que se cumpla la siguiente:

#préstamo →cliente
si consideramos que un mismo préstamo se puede conceder a dos personas (esposos).
Las dependencias funcionales se utilizan de dos maneras:
1. Para probar si las relaciones cumplen un conjunto de dependencias funcionales, es decir, probar si
son legales. Si una relación r es legal según el conjunto de dependencias funcionales F, entonces se
dice que r satisface F.
2. Para especificar las restricciones del conjunto de relaciones legales.
Considere la relación r de la siguiente tabla:

A B C D

a1 b1 c1 d1

a1 b2 c1 d2

a2 b2 c2 d2

a2 b3 c2 d3

a3 b3 c2 d4

Esta relación satisface A →C. Dos tuplas tienen el valor para A de a1 . Esas tuplas también tienen el
mismo valor para C, es decir, c1. Lo mismo para el valor de A con a2. Sin embargo, la relación C →A
no se cumple.
También obsérvese que se cumple AB →D, donde AB es una abreviatura de {A,B}
Algunas dependencias funcionales son triviales, tales como A →A, o AB →A
Es fácil esperar que se cumpla la dependencia calle → ciudad pues si varios clientes viven en la misma
calle, se supone que viven en la misma ciudad. Sin embargo, es posible que dos calles de diferentes
ciudades tengan el mismo nombre. Es por eso que esa dependencia no puede cumplirse.

Cierre de un conjunto de dependencias funcionales


Dado un conjunto F de dependencias funcionales, se pueden cumplir otras dependencias funcionales
determinadas.
Por ejemplo, del siguiente conjunto

Diseño de bases de datos relacionales (Cap 7 del libro) 2


Apuntes de Bases de Datos Luis A. Zarza López, UTM, 2018

A →B
B →H
se puede implicar lógicamente la siguiente dependencia funcional

A →H
Se denota como cierre de F, o F+ al conjunto de todas las dependencias funcionales implicadas
lógicamente en F. Para la obtención del cierre de un conjunto de dependencias funcionales, se utilizan
las siguientes reglas de inferencia:
• Regla de reflexividad. Si α es un conjunto de atributos y β ⊆ α , entonces se cumple que α →
β.
• Regla de aumentatividad. Si se cumple α → β, y γ es un conjunto de atributos, entonces se
cumple que γα → γβ.
• Regla de transitividad. Si se cumple α → β, y se cumple que β → γ, entonces se cumple que α
→ γ.
Si bien las reglas están completas, hay otras reglas que emergen de ellas pero ayudan a simplificar su
aplicación:
• Regla de la unión. Si se cumple α → β, y se cumple que α → γ, entonces se cumple que α →
βγ.
• Regla de la descomposición: se cumple que α → βγ, entonces se cumple que α → β y α → γ.
• Regla de pseudotransitividad: Si se cumple α → β, y que γβ → δ, entonces se cumple que αγ
→ δ.
El uso extensivo de estas reglas puede ser utilizado para comprobar si un conjunto de atributos hace
depender al resto de atributos en una relación. Si es así, entonces ese conjunto de atributos es
superclave.

Descomposición
Cuando un esquema nos produce redundancia de la información y podría causar problemas de
consistencia, es necesario descomponer un esquema de relación en varios con menos atributos.
Imagine el siguiente esquema:

Jugadores = (rfc, jNombre, edad, eClave, eNombre,


sede, dueño)
Diseño de bases de datos relacionales (Cap 7 del libro) 3
Apuntes de Bases de Datos Luis A. Zarza López, UTM, 2018

rfc → jNombre edad eClave, eNombre, sede, dueño


eClave → nombre sede dueño
En una tabla como esa, por cada jugador del equipo “Tigres”, se repetirá la información sobre ese
equipo. Es necesario hacer una descomposición inteligente para que no haya duplicidad, pero hacerla
de manera que no haya tampoco pérdida de información. Si se pierde información, se dice que hubo
una descomposición sin pérdida. En caso contrario, fue una descomposición con pérdida.

Jugadores = (rfc, jNombre, edad, eClave)


Equipos = (eClave, eNombre, sede, dueño)
rfc → jNombre edad eClave, eNombre, sede, dueño
eClave → nombre sede dueño
No es difícil comprobar que el cierre del primer conjunto de entidades F+ es el mismo que el del
segundo conjunto de entidades F’+.

F+ = F’+
Forma normal de Boyce-Codd (FNBC)
Un esquema de relación R está en FNBC respecto a un conjunto de dependencias funcionales F si, para
todas las dependencias funcionales de F+ de la forma α → β, donde α ⊆ R y β ⊆ R, se cumple con al
menos una de las siguiente condiciones:
• α → β es una dependencia funcional trivial, es decir, β ⊆ α.
• α es una superclave del esquema R.
Compruebe en los siguientes esquemas las dependencias funcionales cumplen con FNBC

Jugadores = (rfc, jNombre, edad, Equipos.clave)


rfc → jNombre edad equipos.clave

Equipos = (eClave, eNombre, sede, dueño )


eClave → nombre sede dueño

Partidos = (pClave, lugar, fecha, local, visitante,


Diseño de bases de datos relacionales (Cap 7 del libro) 4
Apuntes de Bases de Datos Luis A. Zarza López, UTM, 2018

gLocal, gVisitante)
pClave → lugar fecha local visitante gLocal gVisitante

Estadísticas = (Jugadores.rfc, Partidos.pClave, goles,


faltas, minutos )
Jugadores.rfc Partidos.pClave → goles faltas minutos

Tercera forma normal (3FN)


Un esquema de relación R está en 3FN respecto a un conjunto F de dependencias funcionales si, para
todas las dependencias funcionales de F+ de la forma α → β, donde α ⊆ R y β ⊆ R, se cumple al menos
una de las siguientes condiciones:
• α → β es una dependencia funcional trivial.
• α es una superclave de R.
• Cada atributo A de β - α está contenido en alguna clave candidata de R.
Las dos primeras condiciones representan la definición de FNBC. La tercera permite un leve
relajamiento de las condiciones de FNBC.
Observe el siguiente esquema:

Esquema-asesor = (nombre-sucursal, nombre-cliente,


nombre-asesor)
donde el cliente tiene un asesor personal en una sucursal determinada. Su F viene siendo:

nombre-asesor → nombre-sucursal
nombre-sucursal nombre-cliente → nombre asesor
El Esquema-asesor no está en FNBC, ya que nombre-asesor no es una superclave. Si se efectúa una
descomposición de acuerdo a las dependencias funcionales tenemos

Esquema-asesor-sucursal = (nombre-asesor, nombre-


sucursal)

Diseño de bases de datos relacionales (Cap 7 del libro) 5


Apuntes de Bases de Datos Luis A. Zarza López, UTM, 2018

Esquema-cliente-asesor = (nombre-cliente, nombre-


asesor)
Y sólo se conserva la dependencia funcional:

nombre-asesor → nombre-sucursal
y su cierre no genera la dependencia

nombre-cliente nombre-sucursal → nombre-asesor


Queda claro, entonces, que (F1 ∪ F2)+ ≠ F+ y la descomposición no conserva las dependencias.
Esta última dependencia funcional, su lado izquierdo, conforma una clave candidata, y por tanto, no
viola la definición de 3FN.

Cuarta Forma Normal (4FN)


Considere el esquema de préstamos bancarios:

Esquema-BC = (número-préstamo, nombre-cliente,


calle-cliente, ciudad-cliente)
Podría notarse que el esquema no está en FNBC debido a que nombre-cliente no es superclave:

nombre-cliente → calle-cliente ciudad-cliente


Ahora suponga que un cliente podría tener más de una casa, por lo que la última dependencia funcional
ya no debería existir. Pero ahora existirá repetición de información. Para ello se introdujo el concepto
de dependencias multivaloradas.
Una dependencia A → B establece que para un mismo valor de A no tienen que existir diferentes
valores de B. Por ello, las dependencias multivaloradas se conocen como dependencias de generación
de tuplas.

Α↠β
Ahora, se tiene una manera de expresar la dependencia funcional multivalorada:

nombre-cliente ↠ calle-cliente ciudad-cliente

Diseño de bases de datos relacionales (Cap 7 del libro) 6


Apuntes de Bases de Datos Luis A. Zarza López, UTM, 2018

número préstamo nombre-cliente calle-cliente ciudad-cliente

P-23 Gómez Carretas Huajuapan

P-23 Gómez Mayor Huajo

P-93 Pérez Nuyoo Tonalá

Diseño de bases de datos relacionales (Cap 7 del libro) 7

Vous aimerez peut-être aussi