Bases de datos
Unidad 4 – Modelo
Relacional
Dependencias Funcionales
Mónica María Rojas Rincón
mmrojas@elpoli.edu.co
Oficina: P19-142
Dependencias Funcionales
• El concepto de dependencia funcional (DF) es
fundamental para la normalización.
• La normalización de relaciones dice cómo diseñar “buenas”
relaciones
2
Bajo los criterios de minimizar la
redundancia (hasta cierto punto) y
evitar ciertas anomalías
¿Qué es normalización?
Dependencia Funcional (DF)
• Indica una dependencia entre valores de atributos de una
misma relación
• Es definida sobre una relación R
• Se denota: X  Y
• Se lee: X determina funcionalmente a Y ó
Y depende funcionalmente de X
donde X y Y son conjuntos de atributos
3
Dependencia Funcional (DF)
• Las dependencias funcionales son restricciones del conjunto
de relaciones legales. Permiten expresar hechos sobre la
empresa que se modela con la base de datos.
• El concepto de dependencia funcional generaliza la noción de
superclave.
• Las dependencias funcionales nos permiten expresar las
restricciones que no se pueden expresar con las superclaves.
4
DF: Semántica intuitiva
La dependencia funcional X
 Y asociada a una relación
R indica que todas las tuplas
de R que tengan un mismo
valor en X deben tener un
mismo valor en Y
5
x y
V1 V10
V2 V5
V3 V6
V1 V10
R
Semántica Formal
• Si XY es una DF sobre una relación R, entonces toda
instancia válida r del esquema de R satisface XY (r ╞ XY)
t1,t2  r tq t1[X]=t2[X] entonces t1[Y]=t2[Y]
6
7
Ejemplo
¿Cuáles de las siguientes afirmaciones son ciertas?
nombre  función
nombre  apellido
nombre  facultad
Escuela de sistemas
investigador
Zapata
Carlos
Ingeniería Forestal
investigador
Urrego
Ligia
Matemáticas
profesor
Morales
Carlos
Escuela de sistemas
profesor
Zapata
Carlos
facultad
función
apellido
nombre
Escuela de sistemas
investigador
Zapata
Carlos
Ingeniería Forestal
investigador
Urrego
Ligia
Matemáticas
profesor
Morales
Carlos
Escuela de sistemas
profesor
Zapata
Carlos
facultad
función
apellido
nombre
EMPLEADO
8
Ejemplo
¿Cuáles de las siguientes afirmaciones son ciertas?
nombre  función NO ver 1era y 4ta tupla
nombre  apellido NO ver 1era y 2da tupla
nombre  facultad NO ver 1era y 2da tupla
Escuela de sistemas
investigador
Zapata
Carlos
Ingeniería Forestal
investigador
Urrego
Ligia
Matemáticas
profesor
Morales
Carlos
Escuela de sistemas
profesor
Zapata
Carlos
facultad
función
apellido
nombre
Escuela de sistemas
investigador
Zapata
Carlos
Ingeniería Forestal
investigador
Urrego
Ligia
Matemáticas
profesor
Morales
Carlos
Escuela de sistemas
profesor
Zapata
Carlos
facultad
función
apellido
nombre
EMPLEADO
9
¿Cuáles de las siguientes afirmaciones son ciertas?
(nombre,apellido)  función
(nombre,apellido)  facultad
Escuela de sistemas
investigador
Zapata
Carlos
Ingeniería Forestal
investigador
Urrego
Ligia
Matemáticas
profesor
Morales
Carlos
Escuela de sistemas
profesor
Zapata
Carlos
facultad
función
apellido
nombre
Escuela de sistemas
investigador
Zapata
Carlos
Ingeniería Forestal
investigador
Urrego
Ligia
Matemáticas
profesor
Morales
Carlos
Escuela de sistemas
profesor
Zapata
Carlos
facultad
función
apellido
nombre
EMPLEADO
Ejemplo
10
Ejemplo
¿Cuáles de las siguientes afirmaciones son ciertas?
(nombre,apellido)  función NO ver 1era y 4ta
tupla
(Nombre,apellido)  facultad SI
Escuela de sistemas
investigador
Zapata
Carlos
Ingeniería Forestal
investigador
Urrego
Ligia
Matemáticas
profesor
Morales
Carlos
Escuela de sistemas
profesor
Zapata
Carlos
facultad
función
apellido
nombre
Escuela de sistemas
investigador
Zapata
Carlos
Ingeniería Forestal
investigador
Urrego
Ligia
Matemáticas
profesor
Morales
Carlos
Escuela de sistemas
profesor
Zapata
Carlos
facultad
función
apellido
nombre
EMPLEADO
Ejercicio
• Sea la relación R(A,B,C,D,E) y el conjunto de DF F= {CE,
AC, AB, CDA, CDE, BDE, DE}
• ¿Cuáles son las dependencias de F satisfechas por la
instancia R siguiente?
11
CE NO (ver t2 y t3)
AC NO (ver t1 y t7)
AB SI
CDA SI
CDE SI
BDE SI
DE NO (ver t2 y t7)
Ejemplo
Suponga el siguiente esquema:
PRÉSTAMO = (número-préstamo, nombre-sucursal, nombre-
cliente, saldo)
El conjunto de dependencias funcionales que se espera que se
cumplan en este esquema de relación es:
número-préstamo → saldo
número-préstamo → nombre-sucursal
• Sin embargo, no se espera que se cumpla la dependencia
funcional:
número-préstamo → nombre-cliente
12
Observaciones
• Sea c una clave candidata (CC) є R y a un atributo є R entonces
siempre se cumple que:
c  a;  a  R
• Por lo tanto la CP de R determina funcionalmente a todos los
atributos  R
• ¿Puede un atributo que no sea CC determinar funcionalmente
a otro?
13
• Sea la relación:
14
VEHICULO
Claves Candidatas (CC)
Si Nmatricula es CP entonces todas las tuplas de la relación
VEHICULO que tengan un mismo valor en Nmatricula tendrán
un mismo valor en Marca
Observación 2
• Si la relación SUMINISTRO satisface la DF: proveedor 
ciudad y proveedor no es clave CC entonces esto implica que
hay cierta redundancia en la BD
15
123
bol5028
Cali
V2
50
bol1000
Medellín
V1
500
dro5689
Cali
V2
120
bol5025
Medellín
V1
cantidad
artículo
ciudad
proveedor
123
bol5028
Cali
V2
50
bol1000
Medellín
V1
500
dro5689
Cali
V2
120
bol5025
Medellín
V1
cantidad
artículo
ciudad
proveedor
SUMINISTRO
Ejercicio
• Encontrar las DF de la relación PUBLICA(artículo, revista,
nroPágina) donde nroPágina representa la página inicial en la
que comienza un artículo en una revista científica.
• Un mismo artículo puede aparecer publicado en distintas revistas
y
• en cada una de ellas, en páginas distintas.
• Una revista publica varios artículos.
16
DF Triviales
Una DF XY es trivial sii Y  X
Ejemplo:
{proveedor, articulo}  proveedor
17
123
bol5028
Cali
V2
50
bol1000
Medellín
V1
500
dro5689
Cali
V2
120
bol5025
Medellín
V1
cantidad
artículo
ciudad
proveedor
123
bol5028
Cali
V2
50
bol1000
Medellín
V1
500
dro5689
Cali
V2
120
bol5025
Medellín
V1
cantidad
artículo
ciudad
proveedor
SUMINISTRO
DF implícitas o implicadas
No todas las DF son explícitas. Ciertas DF son implicadas por
otras.
Por ejemplo la DF:
{proveedor, articulo}  {ciudad, cantidad}
Implica las dos siguientes:
{proveedor, articulo}  ciudad
{proveedor, articulo}  cantidad
18
DF implícitas o implicadas
• Otro ejemplo
• se tiene el esquema de una relación R(A,B,C,G,H,I) y el siguiente
conjunto F de DF
• En Teoría de DF no solo es importante considerar las DF dadas,
sino que es preciso considerar TODAS las que se cumplan. En el
ejemplo puede demostrarse que siempre que se cumpla F, AH
también se cumple
19
A  B
A  C
CG  H
CG  I
B  H
Cierre de un conjunto de
Dependencias Funcionales
Al conjunto de todas las DF implicadas por un conjunto F de DF
se le llama cierre de F y se escribe F+
¿Cómo calcular las DF implicadas? Hay un sistema que permite
calcularlas: El sistema de Armstrong.
Armstrong definió unas reglas de inferencia (axiomas de
Armstrong) que permiten inferir nuevas DF a partir de unas ya
existentes
20
Axiomas de Armstrong para
DFs
Sean A,B,C conjuntos de atributos Є a una relación R*
1. Reflexividad:
Si B  A, entonces A  B
2. Aumento o amplificación:
Si A  B entonces AC  BC
3. Transitividad:
Si A B y B  C entonces A  C
21
* Asumamos que AC representa la unión de A y C
Axiomas de Armstrong para
DFs
Se dice que estas reglas son VALIDAS porque no generan DF
incorrectas y son COMPLETAS porque dado un conjunto F de DF
permite encontrar la totalidad de F
Aunque son completas no es fácil utilizarlas en forma directa para
calcular F+
Entonces por ello se presentan algunos teoremas adicionales
22
Teoremas
1. Autodeterminación:
A  A
Demostración
2. Descomposición:
Si A  BC, entonces: A  B
Demostración A  C
23
Teoremas
3. Unión:
Si A  B y A  C entonces A  BC
Demostración
4. Composición
Si A  B
C  D
Demostración
24
entonces AC  BD
Teoremas
5. Teorema de Unificación General:
Si A  B
C  D
Entonces: A  (C – B)  BD
25
X → Y
YW → Z
Entonces:
XW → Z
EJERCICIO
Supongamos el siguiente esquema R(A,B,C,G,H,I) y el conjunto F
de DF es:
26
A  B
A  C
CG  H
CG  I
B  H
Algunos miembros de F+ son:
•AH puesto que AB y BH entonces por transitividad AH
•Ahora como CGH y CGI entonces por el teorema de unión CGHI
¿cómo demostramos que AGI ?
Si A  B
C  D
Entonces: A  (C – B)  BD
Se utiliza la regla de aumentatividad en A → C para inferir que AG → CG.
Aplicando la regla de transitividad a esta dependencia y CG →I, se infiere
que AG → I.
DF Completa: Definición
Se dice que el atributo y  R es dependiente por completo
del atributo x  R si depende funcionalmente de x y no
depende funcionalmente de ningún z, donde x  z.
Sean las DF’s:
• nit  año_fundación
• (nit, producto)  año_fundación
De las 2 DF’s mostradas ¿cuál es completa?
Para llevar a cabo el proceso de normalización interesa
siempre encontrar las DF completas
27
Cierre de un conjunto de atributos
• Los axiomas y teoremas permiten detectar otras DF presentes
en R.
• Aunque los axiomas son completos y confiables, es bastante
tedioso calcular todas las DF con este sistema.
• Sea F un conjunto de dependencias funcionales. El cierre de F, denotado
por F+, es el conjunto de todas las dependencias funcionales implicadas
lógicamente en F.
• Entonces es interesante un algoritmo simple que calcule el “cierre de un
conjunto de DF” (las DF implicadas)
• Este algoritmo existe y descansa sobre la noción de “cierre de un
conjunto de atributos” 28
CierredeunconjuntodeatributosK bajoS:K
29
Cierre (K, S)
{
cierre  K;
FOREVER
∀ DF Є S: x  y DO
IF x  cierre THEN
cierre = cierre  y
END IF
END ∀
IF cierre no cambió THEN
RETURN cierre
END IF
END FOREVER

El cierre de K se denota K
S es el conjunto de las DF
+
S
+
S
• ¿Cuál es el significado de K ?
• ¿Para qué sirve?
30
+
F
Ejemplo
A  BC
E  CF
B  E
CD  EF
Sea F
Determinar K , para K = AB
+
F
El cierre de un conjunto de atributos K de una relación R y su conjunto
de dependencias funcionales F, es el más grande conjunto de
atributos Y, tal que F ╞ KY
Sea R (A,B,C,D,E,F)
Refencias
Basado en:
• Abraham Silberschatz, et. Al. Fundamentos de Bases de Datos.
Cuarta Edición. 2004. Pág. 163-167
• Margarita Hincapie. Notas de clase Bases de Datos. Politécnico
Colombiano Jaime Isaza Cadavid.
31

Dependencias funcionales

  • 1.
    Bases de datos Unidad4 – Modelo Relacional Dependencias Funcionales Mónica María Rojas Rincón mmrojas@elpoli.edu.co Oficina: P19-142
  • 2.
    Dependencias Funcionales • Elconcepto de dependencia funcional (DF) es fundamental para la normalización. • La normalización de relaciones dice cómo diseñar “buenas” relaciones 2 Bajo los criterios de minimizar la redundancia (hasta cierto punto) y evitar ciertas anomalías ¿Qué es normalización?
  • 3.
    Dependencia Funcional (DF) •Indica una dependencia entre valores de atributos de una misma relación • Es definida sobre una relación R • Se denota: X  Y • Se lee: X determina funcionalmente a Y ó Y depende funcionalmente de X donde X y Y son conjuntos de atributos 3
  • 4.
    Dependencia Funcional (DF) •Las dependencias funcionales son restricciones del conjunto de relaciones legales. Permiten expresar hechos sobre la empresa que se modela con la base de datos. • El concepto de dependencia funcional generaliza la noción de superclave. • Las dependencias funcionales nos permiten expresar las restricciones que no se pueden expresar con las superclaves. 4
  • 5.
    DF: Semántica intuitiva Ladependencia funcional X  Y asociada a una relación R indica que todas las tuplas de R que tengan un mismo valor en X deben tener un mismo valor en Y 5 x y V1 V10 V2 V5 V3 V6 V1 V10 R
  • 6.
    Semántica Formal • SiXY es una DF sobre una relación R, entonces toda instancia válida r del esquema de R satisface XY (r ╞ XY) t1,t2  r tq t1[X]=t2[X] entonces t1[Y]=t2[Y] 6
  • 7.
    7 Ejemplo ¿Cuáles de lassiguientes afirmaciones son ciertas? nombre  función nombre  apellido nombre  facultad Escuela de sistemas investigador Zapata Carlos Ingeniería Forestal investigador Urrego Ligia Matemáticas profesor Morales Carlos Escuela de sistemas profesor Zapata Carlos facultad función apellido nombre Escuela de sistemas investigador Zapata Carlos Ingeniería Forestal investigador Urrego Ligia Matemáticas profesor Morales Carlos Escuela de sistemas profesor Zapata Carlos facultad función apellido nombre EMPLEADO
  • 8.
    8 Ejemplo ¿Cuáles de lassiguientes afirmaciones son ciertas? nombre  función NO ver 1era y 4ta tupla nombre  apellido NO ver 1era y 2da tupla nombre  facultad NO ver 1era y 2da tupla Escuela de sistemas investigador Zapata Carlos Ingeniería Forestal investigador Urrego Ligia Matemáticas profesor Morales Carlos Escuela de sistemas profesor Zapata Carlos facultad función apellido nombre Escuela de sistemas investigador Zapata Carlos Ingeniería Forestal investigador Urrego Ligia Matemáticas profesor Morales Carlos Escuela de sistemas profesor Zapata Carlos facultad función apellido nombre EMPLEADO
  • 9.
    9 ¿Cuáles de lassiguientes afirmaciones son ciertas? (nombre,apellido)  función (nombre,apellido)  facultad Escuela de sistemas investigador Zapata Carlos Ingeniería Forestal investigador Urrego Ligia Matemáticas profesor Morales Carlos Escuela de sistemas profesor Zapata Carlos facultad función apellido nombre Escuela de sistemas investigador Zapata Carlos Ingeniería Forestal investigador Urrego Ligia Matemáticas profesor Morales Carlos Escuela de sistemas profesor Zapata Carlos facultad función apellido nombre EMPLEADO Ejemplo
  • 10.
    10 Ejemplo ¿Cuáles de lassiguientes afirmaciones son ciertas? (nombre,apellido)  función NO ver 1era y 4ta tupla (Nombre,apellido)  facultad SI Escuela de sistemas investigador Zapata Carlos Ingeniería Forestal investigador Urrego Ligia Matemáticas profesor Morales Carlos Escuela de sistemas profesor Zapata Carlos facultad función apellido nombre Escuela de sistemas investigador Zapata Carlos Ingeniería Forestal investigador Urrego Ligia Matemáticas profesor Morales Carlos Escuela de sistemas profesor Zapata Carlos facultad función apellido nombre EMPLEADO
  • 11.
    Ejercicio • Sea larelación R(A,B,C,D,E) y el conjunto de DF F= {CE, AC, AB, CDA, CDE, BDE, DE} • ¿Cuáles son las dependencias de F satisfechas por la instancia R siguiente? 11 CE NO (ver t2 y t3) AC NO (ver t1 y t7) AB SI CDA SI CDE SI BDE SI DE NO (ver t2 y t7)
  • 12.
    Ejemplo Suponga el siguienteesquema: PRÉSTAMO = (número-préstamo, nombre-sucursal, nombre- cliente, saldo) El conjunto de dependencias funcionales que se espera que se cumplan en este esquema de relación es: número-préstamo → saldo número-préstamo → nombre-sucursal • Sin embargo, no se espera que se cumpla la dependencia funcional: número-préstamo → nombre-cliente 12
  • 13.
    Observaciones • Sea cuna clave candidata (CC) є R y a un atributo є R entonces siempre se cumple que: c  a;  a  R • Por lo tanto la CP de R determina funcionalmente a todos los atributos  R • ¿Puede un atributo que no sea CC determinar funcionalmente a otro? 13
  • 14.
    • Sea larelación: 14 VEHICULO Claves Candidatas (CC) Si Nmatricula es CP entonces todas las tuplas de la relación VEHICULO que tengan un mismo valor en Nmatricula tendrán un mismo valor en Marca
  • 15.
    Observación 2 • Sila relación SUMINISTRO satisface la DF: proveedor  ciudad y proveedor no es clave CC entonces esto implica que hay cierta redundancia en la BD 15 123 bol5028 Cali V2 50 bol1000 Medellín V1 500 dro5689 Cali V2 120 bol5025 Medellín V1 cantidad artículo ciudad proveedor 123 bol5028 Cali V2 50 bol1000 Medellín V1 500 dro5689 Cali V2 120 bol5025 Medellín V1 cantidad artículo ciudad proveedor SUMINISTRO
  • 16.
    Ejercicio • Encontrar lasDF de la relación PUBLICA(artículo, revista, nroPágina) donde nroPágina representa la página inicial en la que comienza un artículo en una revista científica. • Un mismo artículo puede aparecer publicado en distintas revistas y • en cada una de ellas, en páginas distintas. • Una revista publica varios artículos. 16
  • 17.
    DF Triviales Una DFXY es trivial sii Y  X Ejemplo: {proveedor, articulo}  proveedor 17 123 bol5028 Cali V2 50 bol1000 Medellín V1 500 dro5689 Cali V2 120 bol5025 Medellín V1 cantidad artículo ciudad proveedor 123 bol5028 Cali V2 50 bol1000 Medellín V1 500 dro5689 Cali V2 120 bol5025 Medellín V1 cantidad artículo ciudad proveedor SUMINISTRO
  • 18.
    DF implícitas oimplicadas No todas las DF son explícitas. Ciertas DF son implicadas por otras. Por ejemplo la DF: {proveedor, articulo}  {ciudad, cantidad} Implica las dos siguientes: {proveedor, articulo}  ciudad {proveedor, articulo}  cantidad 18
  • 19.
    DF implícitas oimplicadas • Otro ejemplo • se tiene el esquema de una relación R(A,B,C,G,H,I) y el siguiente conjunto F de DF • En Teoría de DF no solo es importante considerar las DF dadas, sino que es preciso considerar TODAS las que se cumplan. En el ejemplo puede demostrarse que siempre que se cumpla F, AH también se cumple 19 A  B A  C CG  H CG  I B  H
  • 20.
    Cierre de unconjunto de Dependencias Funcionales Al conjunto de todas las DF implicadas por un conjunto F de DF se le llama cierre de F y se escribe F+ ¿Cómo calcular las DF implicadas? Hay un sistema que permite calcularlas: El sistema de Armstrong. Armstrong definió unas reglas de inferencia (axiomas de Armstrong) que permiten inferir nuevas DF a partir de unas ya existentes 20
  • 21.
    Axiomas de Armstrongpara DFs Sean A,B,C conjuntos de atributos Є a una relación R* 1. Reflexividad: Si B  A, entonces A  B 2. Aumento o amplificación: Si A  B entonces AC  BC 3. Transitividad: Si A B y B  C entonces A  C 21 * Asumamos que AC representa la unión de A y C
  • 22.
    Axiomas de Armstrongpara DFs Se dice que estas reglas son VALIDAS porque no generan DF incorrectas y son COMPLETAS porque dado un conjunto F de DF permite encontrar la totalidad de F Aunque son completas no es fácil utilizarlas en forma directa para calcular F+ Entonces por ello se presentan algunos teoremas adicionales 22
  • 23.
    Teoremas 1. Autodeterminación: A A Demostración 2. Descomposición: Si A  BC, entonces: A  B Demostración A  C 23
  • 24.
    Teoremas 3. Unión: Si A B y A  C entonces A  BC Demostración 4. Composición Si A  B C  D Demostración 24 entonces AC  BD
  • 25.
    Teoremas 5. Teorema deUnificación General: Si A  B C  D Entonces: A  (C – B)  BD 25 X → Y YW → Z Entonces: XW → Z
  • 26.
    EJERCICIO Supongamos el siguienteesquema R(A,B,C,G,H,I) y el conjunto F de DF es: 26 A  B A  C CG  H CG  I B  H Algunos miembros de F+ son: •AH puesto que AB y BH entonces por transitividad AH •Ahora como CGH y CGI entonces por el teorema de unión CGHI ¿cómo demostramos que AGI ? Si A  B C  D Entonces: A  (C – B)  BD Se utiliza la regla de aumentatividad en A → C para inferir que AG → CG. Aplicando la regla de transitividad a esta dependencia y CG →I, se infiere que AG → I.
  • 27.
    DF Completa: Definición Sedice que el atributo y  R es dependiente por completo del atributo x  R si depende funcionalmente de x y no depende funcionalmente de ningún z, donde x  z. Sean las DF’s: • nit  año_fundación • (nit, producto)  año_fundación De las 2 DF’s mostradas ¿cuál es completa? Para llevar a cabo el proceso de normalización interesa siempre encontrar las DF completas 27
  • 28.
    Cierre de unconjunto de atributos • Los axiomas y teoremas permiten detectar otras DF presentes en R. • Aunque los axiomas son completos y confiables, es bastante tedioso calcular todas las DF con este sistema. • Sea F un conjunto de dependencias funcionales. El cierre de F, denotado por F+, es el conjunto de todas las dependencias funcionales implicadas lógicamente en F. • Entonces es interesante un algoritmo simple que calcule el “cierre de un conjunto de DF” (las DF implicadas) • Este algoritmo existe y descansa sobre la noción de “cierre de un conjunto de atributos” 28
  • 29.
    CierredeunconjuntodeatributosK bajoS:K 29 Cierre (K,S) { cierre  K; FOREVER ∀ DF Є S: x  y DO IF x  cierre THEN cierre = cierre  y END IF END ∀ IF cierre no cambió THEN RETURN cierre END IF END FOREVER  El cierre de K se denota K S es el conjunto de las DF + S + S
  • 30.
    • ¿Cuál esel significado de K ? • ¿Para qué sirve? 30 + F Ejemplo A  BC E  CF B  E CD  EF Sea F Determinar K , para K = AB + F El cierre de un conjunto de atributos K de una relación R y su conjunto de dependencias funcionales F, es el más grande conjunto de atributos Y, tal que F ╞ KY Sea R (A,B,C,D,E,F)
  • 31.
    Refencias Basado en: • AbrahamSilberschatz, et. Al. Fundamentos de Bases de Datos. Cuarta Edición. 2004. Pág. 163-167 • Margarita Hincapie. Notas de clase Bases de Datos. Politécnico Colombiano Jaime Isaza Cadavid. 31