Professional Documents
Culture Documents
Bases de Datos
Tema 9
Diseño de bases de datos relacionales
Indice
1 INTRODUCCIÓN ......................................................................................... 3
1.1 DISEÑO DE BD RELACIONALES .................................................................................... 3
1.2 ANOMALÍAS DE MANIPULACIÓN ................................................................................... 3
2 DEPENDENCIAS FUNCIONALES............................................................ 4
2.1 CONCEPTO DE DEPENDENCIA FUNCIONAL .................................................................. 4
2.1.1 Descriptores equivalentes:........................................................................................................... 5
2.1.2 Dependencia funcional plena o completa................................................................................. 5
2.1.3 Dependencia funcional elemental .............................................................................................. 5
2.1.4 Dependencia funcional trivial (Reflexividad de Ärmstrong).................................................. 5
2.1.5 Dependencia funcional transitiva............................................................................................... 5
2.2 GRAFO DE DEPENDENCIAS FUNCIONALES (GDF)........................................................ 6
2.3 AXIOMAS DE ÄRMSTRONG ............................................................................................ 6
2.3.1 Reflexividad ................................................................................................................................... 6
2.3.2 Aumentatividad............................................................................................................................. 6
2.3.3 Transitividad.................................................................................................................................. 7
2.3.4 Proyectividad o descomposición................................................................................................ 7
2.3.5 Unión o aditividad........................................................................................................................ 7
2.3.6 Pseudotransitividad ...................................................................................................................... 7
2.4 CIERRE DE UN DESCRIPTOR ......................................................................................... 7
2.5 CIERRE DE UN CONJUNTO DE DEPENDENCIAS ............................................................ 7
2.6 COBERTURA MÍNIMA .................................................................................................... 8
3 FORMAS NORMALES DE CODD .............................................................. 9
3.1 DESCOMPOSICIONES SIN PÉRDIDAS .............................................................................10
3.1.1 Preservación de atributos. ......................................................................................................... 10
3.1.2 Preservación de dependencias. ................................................................................................. 10
3.1.3 Preservación del contenido de las tuplas o descomposición sin pérdida de join.............. 11
3.2 PRIMERA FORMA NORMAL (1FN) ................................................................................13
3.3 SEGUNDA FORMA NORMAL (2FN) ...............................................................................13
3.3.1 Justificación intuitiva.................................................................................................................. 13
3.3.2 Regla de descomposición de relaciones que no están en 2FN. ........................................... 15
3.4 TERCERA FORMA NORMAL (3FN) ...............................................................................15
3.4.1 Justificación intuitiva.................................................................................................................. 15
3.4.2 Descomposición de relaciones que no están en 3FN. .......................................................... 16
3.5 FORMA NORMAL DE BOYCE-CODD (FNBC) ...............................................................16
3.5.1 Justificación intuitiva.................................................................................................................. 16
3.5.2 Descomposición FNBC: Grafos cíclicos y acíclicos ............................................................. 17
3.6 COMPARACIÓN 3FN Y FNBC......................................................................................18
4 DISEÑO DE BASES DE DATOS RELACIONALES ............................... 20
4.1 ENFOQUE DE DESCOMPOSICIÓN: NORMALIZACIÓN .................................................. 20
4.2 ENFOQUE DE SÍNTESIS: SÍNTESIS BÁSICA DE BERNSTEIN .......................................... 20
Pág. 2 de 22
Bases de Datos Diseño de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
1 Introducción
1.1 Diseño de BD relacionales
Al diseñar intuitivamente1 una base de datos relacional se obtiene un esquema; diferentes
observadores generarán, sin duda, esquemas alternativos; el problema que se presenta es evaluar la
calidad o bondad de dicho esquema.
La calidad de un esquema estará determinada por el comportamiento o reacción a determinadas
operaciones de manipulación, de modo que un buen esquema presentará buen comportamiento
mientras que otros ofrecerán ciertos inconvenientes o anomalías de manipulación (actualización,
inserción y borrado) al escribir transacciones contra dicho esquema.
1
Sin un método formal.
Pág. 3 de 22
Bases de Datos Diseño de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
En primer lugar, en el esquema ρ2 algunos datos son redundantes: los datos de piezas (Color y
Peso) aparecen tantas veces como dicha pieza es suministrada.
Esta redundancia conlleva unos riesgos de incoherencia. Al cambiar el Peso de una pieza de ‘200’
a ‘220’ hay que actualizar en todas las tuplas en las que aparece. Se producen por tanto anomalías
de actualización (debe actualizarse sólo en una tupla y evitar que haya más de una tupla con
diferente peso de la misma pieza).
No se pueden guardar datos de piezas (P#, Peso y Color) hasta que no sean suministradas (S# es
parte de la clave primaria y por tanto no puede tener valor null); presenta anomalías de inserción.
Por último, surgen las anomalías de eliminación o borrado. Cuando se elimina una tupla de
Suministra_Pieza y la pieza sólo aparece en dicha tupla (ej. P#=P2) se pierde la información de la
pieza.
El esquema relacional ρ1 no presenta las anomalías anteriores. Puede afirmarse que este esquema
es mejor que el anterior.
2 Dependencias funcionales
2.1 Concepto de dependencia funcional
Las dependencias funcionales son reglas independientes del tiempo que verifican los atributos de un
contexto determinado.
Sea R ({ Ai : Di})
t,s ∈ R tuplas de R
X, Y subconjuntos de atributos X ⊆ R ({ Ai : Di})
Y ⊆ R ({ Ai : Di})
Se define una dependencia funcional (DF)
X → Y (X determina funcionalmente a Y o Y depende funcionalmente de X)
como una restricción sobre las tuplas de R que garantiza que dado un valor único de X, el valor
de los atributos que componen Y ha de ser también único.
X → Y |= ( t.X = s.X ⇒ t.Y = s.Y )
Ej.: Dada la DF: S#→Ciudad induce que no pueden existir dos tuplas con el mismo código
de proveedor y distinta Ciudad.
Pág. 4 de 22
Bases de Datos Diseño de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
Sea R ({ Ai : Di}) y X ⊆ R; A ⊆ R
X → A es completa sii:
( A ⊆/ X ) ∧ ( ∃X ´⊂ X / X´ → A )
Una dependencia funcional es plena o completa cuando A depende de X pero no de ningún
subconjunto propio de X. X es un descriptor determinante.
Atributos extraños son los atributos del descriptor de una DF que sobran en la dependencia.
Ej.: S#→Ciudad Es una DF plena o completa.
(S#,Noms)→Ciudad No es una DF plena o completa ya que código de proveedor
determina Ciudad. Noms es un atributo extraño
Pág. 5 de 22
Bases de Datos Diseño de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
Axiomas Básicos
2.3.1 Reflexividad
Si Y ⊆ X |= X → Y (X → Y es una DF trivial)
(S#, Ciudad) → Ciudad
2.3.2 Aumentatividad
Si {X → Y ∧ Z ⊆ W} |= XW → YZ
Pág. 6 de 22
Bases de Datos Diseño de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
2.3.3 Transitividad
Si {X → Y ∧ Y → Z} |= X → Z
Axiomas Derivados
2.3.6 Pseudotransitividad
Si {X → Y ∧ YW → Z} |= XW → Z
Pág. 7 de 22
Bases de Datos Diseño de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
F será siempre un subconjunto del cierre (F ⊆ F+ ). Por lo tanto R(A, F) y R(A, F+ ) representan
contextos equivalentes de la misma relación.
Para afirmar que una dependencia funcional X→Y pertenece al cierre de un conjunto de
dependencias F+ es necesario calcular el cierre del descriptor en ese conjunto de dependencias:
X+ F .
La utilidad del concepto de cierre es asegurar la equivalencia de grafos que representan contextos
alternativos de un mismo universo de discurso:
Los conjuntos de dependencias F1 y F2 son equivalentes si tienen el mismo cierre:
F1+ = F2+
Cada dependencia de F1 está en F2+ y cada dependencia de F2 está en F1+
∀ ( X → Y ) ∈ F2 |= Y ⊂ X F1
+
∀ ( Z → W ) ∈ F1 |= W ⊂ Z+F2
Todas las dependencias funcionales de F1 se pueden inferir de F2 y las de F2 se pueden inferir de
F1.
Ej. F1{cod_libro → título, F2{cod_libro → título,
título → cod_libro, título → cod_libro,
cod_libro → editorial, título → editorial,
cod_libro → idioma } título → idioma }
(F *− f ) = (F )
+ +
b) ∃f ⊂ F *; f ≠ ∅ /
Pág. 8 de 22
Bases de Datos Diseño de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
Relaciones no normalizadas
1FN
2FN
3FN
FNBC
4FN
5FN
Codd propuso tres formas normales, a las que denominó primera (1FN), segunda (2FN)y tercera
forma normal (3FN). Posteriormente, Boyce y Codd propusieron un definición más estricta de la
3FN que se conoce como forma normal de Boyce-Codd (FNBC). Estas formas normales están
basadas en las dependencias funcionales que existen entre los atributos de una relación. Otros
autores han propuesto formas normales más avanzadas: cuarta forma normal (4FN) basada en el
concepto de dependencia multivaluada y quinta forma normal (5FN) basada en las dependencias de
combinación o de join, así como las dependencias generalizadas.
Las dependencias funcionales son las restricciones semánticas que condicionan los esquemas de una
base de datos relacional, razón por lo que son las más estudiadas.
Pág. 9 de 22
Bases de Datos Diseño de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
Es decir: los cierres de los conjuntos de dependencias de los dos contextos son equivalentes.
Pág. 10 de 22
Bases de Datos Diseño de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
3.1.3 Preservación del contenido de las tuplas o descomposición sin pérdida de join.
En general, no puede asegurarse que el join natural de una descomposición (al aplicar la proyección
algebráica) de relaciones genere el mismo estado o extensión que la relación de partida; existen
casos donde pueden aparecer tuplas que no figuraban en la extensión inicial; a estas tuplas se les
denomina tuplas espúreas.
Ej. de descomposición con pérdida de dependencias funcionales y con pérdida de join (aparecen
tuplas espúreas).
PIEZAS P# Nomp Tipo Color
1 Rueda C Gris
2 Eje C Negro
3 Vagón T Rojo
4 Máquina T Rojo
P# Nomp Color
DF perdidas
Tipo DF conservadas
En este caso ( P_16 P_2 ) ⊇ Piezas y el excedente del join natural son las tuplas espúreas.
Pág. 11 de 22
Bases de Datos Diseño de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
Dados los esquemas ρ 1{ Ri(Ti, Li)} ; ρ 2 { Ri '(T ' i, L ' i)} , se pueden representar las relaciones
resultado de hacer el join natural de cada esquema:
n
...6 Rn − 16 Rn = 6 Ri
R = R16 R 26
i =1
m
...6 R ' m − 16 Rm = 6 Ri
R ' = R ' 16 R ' 26
i =1
n m
La descomposición ρ 2 preserva el join respecto a ρ 1 sii 6
i =1
Ri = 6 R'
i =1
i
límite de tuplas para hacer join son el número de tuplas de R2, pero teniendo en cuenta que R1 y R2
son proyecciones independientes, la intersección de sus esquemas es la clave ajena de R1 respecto a
R2, luego para todas las tuplas de R1, el join se hará por la clave prima de R2; es decir, para cada
valor de la clave ajena en R1 sólo habrá una tupla en R2. Esto permite afirmar que el factor de
selectividad s(t) es constante y s(t)=1 para todas las tuplas de R1.
Luego: ∑
∀t∈R1
s (t ) = ∑ 1= N ºTuplas( R1) = N ºValores ≠ clave( R ) = N º Valores ≠ K
∀t∈R1
1
Pág. 12 de 22
Bases de Datos Diseño de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
S# Ciudad Estado
P# Cant
Pág. 13 de 22
Bases de Datos Diseño de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
Pág. 14 de 22
Bases de Datos Diseño de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
K1 X K1 X K1
K2 K2 Y
Y
S# Ciudad Estado
La clave del esquema es S#. R2 no está en 3FN ya que Estado depende de Ciudad que no es clave
candidata.
Sin embargo:
R21(S#, Ciudad) y R22(Ciudad, Estado)
R2 S# Ciudad Estado
S1 Londres 20
S2 París 10
S3 París 10
R22 Ciudad Estado
R21 S# Ciudad Londres 20
S1 Londres
París 10
S2 París
S3 París
Pág. 15 de 22
Bases de Datos Diseño de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
Este enunciado permite garantizar la ausencia de dependencias transitivas además de asegurar que la
relación está en 2FN. En efecto:
K1 X
K2 Y
S#
P# Cantidad
Noms
Pág. 16 de 22
Bases de Datos Diseño de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
La relación R4 no está en FNBC ya que el atributo S# depende de Noms que no es clave candidata
y Noms depende S# que tampoco es clave candidata.
La descomposición en FNBC sería:
R41(S#, Noms) y R42(S#, P#, Cant)
R4 S# Noms P# Cant
S1 Martin P1 300
S1 Martin P2 200
S1 Martin P3 400
S2 Rubén P1 300
S2 Rubén P2 400
X
A
Z
Y
Pág. 17 de 22
Bases de Datos Diseño de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
Para grafos cíclicos. No es posible encontrar una descomposición en FNBC que preserve
dependencias.
Atributos = {X, Y , Z} ϕ = {XY →Z, Z →Y }
R(X, Y, Z) Las claves del esquema son XY y XZ, ya que (XY)+=(XZ)+=XYZ
X
Z Se perdería la dependencia XY →Z al buscar FNBC
Y
Pág. 18 de 22
Bases de Datos Diseño de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
Pág. 19 de 22
Bases de Datos Diseño de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
Dados un conjunto de atributos A{A1, A2, An}y el grafo de dependencias representado por F
sobre atributos de A, la relación U(A1 ,A2, An) se denomina la relación universal y su extensión la
instancia universal, de modo que un esquema relacional que represente el mismo contexto:
ρ {R1, R 2,..Rp} tendrá relaciones tales que cualquier tupla de una relación podrá obtenerse mediante
una proyección de la instancia universal.
Es decir:
Paso 0: Asumiendo la existencia de U(A1 ,A2 , An), calcular las claves {Ku }de U
Paso 1. Descomponer relaciones que no estén en primera forma normal.
Paso 2. Descomponer relaciones que tengan dependencias incompletas (2FN), recalculando claves
de las nuevas relaciones.
Paso 3. Descomponer relaciones con dependencias transitivias (3FN).
Se pueden generar las claves ajenas por intersección entre esquemas de las relaciones y las claves
primarias de las demás. Nada dice Bernstein al respecto y hay que tener en cuenta que si no se
maneja el contexto pueden aparecer ciclos indeseables en las claves ajenas puesto que no se está
partiendo de un enfoque de entidades sino de atributos.
Página 20 de 22
Bases de Datos Diseño de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
Ejemplo:
Dados los atributos: A{Dni, Nombre, Apellidos, Dirección, Población, Cod_postal, Provincia, País,
Afición, Tipo_afición, Grado}
y las dependencias funcionales:
ϕ = { (Dirección, Población) → Cod_postal
Cod_postal → Población
Población → (Provincia, País)
Provincia → País
Dni → Nombre, Apellidos, Dirección
Dni → Población, Cod_postal, Provincia, País
(Nombre, Apellidos) → Dni, Cod_postal
(Dni, Afición) → Tipo_afición, Grado
Afición → Tipo_afición }
Tipo_afición
Grado
Afición
Dni Dirección Cod_Postal
Población
Nombre Provincia
Apellidos
País
Página 21 de 22
Bases de Datos Diseño de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
Tipo_afición
Grado
Afición
Dni Dirección Cod_Postal
Población
Nombre Provincia
Apellidos
País
Página 22 de 22