Académique Documents
Professionnel Documents
Culture Documents
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
#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.
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:
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
gLocal, gVisitante)
pClave → lugar fecha local visitante gLocal gVisitante
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
nombre-asesor → nombre-sucursal
y su cierre no genera la dependencia
Α↠β
Ahora, se tiene una manera de expresar la dependencia funcional multivalorada: