Anda di halaman 1dari 22

Departamento de Lenguajes y Sistemas Informáticos

E.T.S. Ingeniería Informática. Universidad de Sevilla

Avda Reina Mercedes s/n. 41012 Sevilla E.T.S. Ingeniería


Informática
Tlf/Fax 954 557 139 E-mail lsi@lsi.us.es Web www.lsi.us.es

Bases de Datos
Tema 9
Diseño de bases de datos relacionales

Sevilla, abril 2005


V 2005.01.1
Bases de Datos Diseño de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1

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.2 Anomalías de manipulación


El objetivo de las técnicas de diseño de bases de datos relacionales es “obtener esquemas exentos
de anomalías de manipulación”.
Ejemplo: Sean los esquemas relacionales ρ1 y ρ2 :

Suminitradores( S # : Dcodigo, Noms : Dnombre, Ciudad : Dciudad ) PK ( S #) 


 Piezas ( P # : Dcodigo, Peso : Dpeso, Color : Dcolor ) PK ( P #) 
 
ρ1  
 Suministros ( S # : Dc odigo , P # : Dcodigo , Cant : Dcant ) PK ( S #, P #) 

 FK 1( S #) / Suminitradores, FK 2( P #) / Piezas 

Suministradores S# Noms Ciudad


Piezas P# Peso Color
S1 ‘Jones’ ‘Paris’
P1 200 Gris
S2 ‘Clark’ ‘Londres’
P2 400 Azul
S3 ‘Adams’ ‘Sevilla’
Suministros S# P# Cant
S1 P1 50
S1 P2 10
S2 P1 5
S3 P1 15

Suminitradores( S # : Dcodigo, Noms : Dnombre, Ciudad : Dciudad ) PK ( S #) 


 
ρ2 Suministra_Piezas ( S # : Dcodigo, P # : Dcodigo, Cant : Dcant , Peso : Dpeso, Color : Dcolor ) PK ( S #, P #) 
 FK 1( S #) / Suminitradores 
 

Suministradores S# Noms Ciudad Suministra_Piezas S# P# Cant Peso Color


S1 ‘Jones’ ‘Paris’ S1 P1 50 200 Gris
S2 ‘Clark’ ‘Londres’ S1 P2 10 400 Azul
S3 ‘Adams’ ‘Sevilla’ S2 P1 5 200 Gris
S3 P1 15 200 Gris

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 ρ2 presenta estos problemas inconvenientes debido a que no sigue un principio


intuitivo básico: “conceptos o hechos independientes deben recogerse en (relaciones) distintas o específicas”.

El esquema relacional ρ1 no presenta las anomalías anteriores. Puede afirmarse que este esquema
es mejor que el anterior.

La teoría de dependencias se ha desarrollado para medir formalmente la calidad de un diseño y


proponer medidas que resuelvan las anomalías de manipulación (formas normales). Incluye el
concepto de dependencia funcional y sus propiedades, que es la principal herramienta para medir la
idoneidad de un esquema relacional.

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

Un esquema de relación se ve enriquecido por la semántica asociada a las dependencias funcionales


inherentes al contexto de los atributos:
R(A, DF) contiene las dependencias funcionales DF como restricciones semánticas.

2.1.1 Descriptores equivalentes:


Se dice que X e Y son equivalentes cuando:
X → Y ∧ Y → X
Se representa: X ↔ Y
Ej.: Dada la DF: S# ↔ Dni

2.1.2 Dependencia funcional plena o completa

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

2.1.3 Dependencia funcional elemental


Si una dependencia funcional plena tiene como descriptor determinado un atributo simple, la
dependencia es elemental.
Ej.: S# → Ciudad es una DF elemental ya que Ciudad es un atributo simple.

2.1.4 Dependencia funcional trivial (Reflexividad de Ärmstrong)


Una DF X→Y es trivial si Y es un subconjunto de X: Y⊆X
Ej.: S# → S# DF trivial.
(S#,Ciudad)→Ciudad DF trivial.

2.1.5 Dependencia funcional transitiva


Sea R ( X : Dx, Y : Dy, Z : Dz )
X→Y ∧ Y→Z ∧ Y→X
Se dice que Z tiene una DF transitiva de X a través de Y :
X→Z
Ej.: S#→Ciudad→ País Existe la DF transitiva S#→ País

Pág. 5 de 22
Bases de Datos Diseño de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1

2.2 Grafo de dependencias funcionales (GDF)


Es un grafo que representa el contexto semántico observado en un determinado universo, donde
los nodos son atributos y los arcos representan dependencias entre nodos o agrupaciones (burbujas)
de nodos. Normalmente se representan dependencias que van de un nodo o burbuja a un solo
atributo.
Sean los atributos:{ s#, Noms, Estado, Ciudad, p#, Nomp, Color, Peso, Cant}
y las dependencias funcionales:
GDF:
F= { S# → Noms, Noms
S# → Estado, s# Estado
S# → Ciudad,
P# → Nomp, Cant Ciudad
P# → Color, p# Nomp
P# → Peso, Color
P# → Ciudad, Peso
(S#,P#) → Cant }

2.3 Axiomas de Ärmstrong


De un esquema de relación R (A,F) es posible deducir (o inferir) nuevas dependencias funcionales.
Las nuevas dependencias f que se cumplen para cualquier extensión de r de R son consecuencia
lógica de F. Se representan como: F |= f . De modo que F ∪ f representan un contexto
alternativo del mismo universo (existen grafos de dependencias alternativos del mismo contexto
con más o menos dependencias funcionales).
Estas reglas de derivación se conocen como Axiomas de Ärmstrong y forman un conjunto
completo y correcto de axiomas.
Los axiomas básicos son reflexividad, aumentatividad y transitividad. De ellos se pueden inferir los
derivados de descomposición, unión y pseudotransitividad.

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# → Color y Ciudad ⊆ (S#,Ciudad)} ╞ (P#, S#, Ciudad ) → (Color, Ciudad)

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

{S# → Ciudad y Ciudad→ País} ╞ S# → País

Axiomas Derivados

2.3.4 Proyectividad o descomposición


Si {X → Y ∧ Z ⊆ Y} |= X → Z

{P# → (Color, Peso) y Peso ⊆ (Color, Peso) } ╞ P# → Peso

2.3.5 Unión o aditividad


Si {X → Y ∧ X → Z } |= X → YZ

{P# → Color y P# → Peso } ╞ P# → (Color, Peso)

2.3.6 Pseudotransitividad
Si {X → Y ∧ YW → Z} |= XW → Z

{S# → Noms y (Noms, Fecha) → Sueldo } ╞ (S#, Fecha) → Sueldo

2.4 Cierre de un descriptor


Es el conjunto de atributos determinados por dicho descriptor teniendo en cuenta las dependencias
funcionales y los axiomas de Ärmstrong.
Se representa el cierre de X respecto al conjunto de dependencias F: X+F
Ej.:
Dadas las dependencias F = {S#→Noms,P# →(Nomp,Color),(S#,P#)→Cant }
{S#}+F={S#,Noms}
{P#}+ F ={P# , Nomp, Color, }
{ S#,P#}+ F ={S#, P# , Noms , Nomp, Color, Cant }

2.5 Cierre de un conjunto de dependencias


Dado R(A,F)
Para calcular el cierre de un conjunto de dependencias funcionales se aplican los Axiomas de
Ärmstrong.
El cierre de F se denomina F+ ;es la unión de dependencias funcionales exisentes en F y el conjunto
de todas las dependencias que pueden inferirse de DF mediante la aplicación de los axiomas de
Ärmstrong:
F+ = F∪{ X → Y | AxiomasÄrmstrong |= X → Y }

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 .

( X → X ) y si ( Y ⊆ X ) |= ( X → Y ) aplicando el axioma de reflexividad.


+
F
+
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 }

cod_libro título cod_libro título


editorial idioma
idioma editorial

{cod_libro} +F2 = cod_libro, título, editorial, idioma


{titulo} +F1 = cod_libro, título, editorial, idioma

Los grafos de F1 y F2 son equivalentes.

2.6 Cobertura mínima


Un conjunto de dependencias funcionales es una cobertura mínima (también denominado
recubrimiento minimal o recubrimiento mínimo) F* de F si no tiene dependencias redundantes y es
equivalente al conjunto de partida F:
a) F *+ = F +

(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

3 Formas normales de Codd


En el proceso de normalización en cada forma normal se establecen restricciones encaminadas a
salvar ciertas anomalías asociadas a las relaciones que no están en esa forma normal.
El proceso se aplica progresivamente y está basado en la teoría de dependencias.

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

3.1 Descomposiciones sin pérdidas


El proceso de normalización va a consistir en transformar un esquema de relación R(A, F), por
medio de sucesivas proyecciones, en un conjunto de nuevas relaciones equivalentes.
Ha de prestarse atención a la equivalencia de estas relaciones, exigiéndose las siguientes propiedades
para conseguir una descomposición sin pérdidas.

3.1.1 Preservación de atributos.


Los atributos o propiedades de dos esquemas preservan atributos si no se pierde ninguna
propiedad:
Dados los esquemas ρ 1{ Ri(Ti, Li )} ρ 2 { Ri '(T ' i, L ' i )} , ρ 2 preserva atributos respecto a ρ 1
sii ∪T = ∪T
i
i
i
i
'
.

3.1.2 Preservación de dependencias.


El conjunto de DF de partida debe ser equivalente al conjunto de DF de los esquemas resultantes.
Dados los esquemas ρ 1{ Ri(Ti, Li )} ρ 2 { Ri '(T ' i, L ' i )} ,

ρ 2 preserva dependencias respecto a ρ 1 sii ∪L '+


i = ∪ L+i .
i i

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_1 P# Nomp Tipo P_2 Tipo Color


1 Rueda C s(t) = 2 C Gris
2 Eje C s(t) = 2 C Negro
3 Vagón T s(t) = 1 T Rojo
4 Máquina T s(t) = 1

P_1 6 P_2 P# Nomp Tipo Color


1 Rueda C Gris
→ 1 Rueda C Negro
→ 2 Eje C Gris
2 Eje C Negro
3 Vagón T Rojo
4 Máquina T Rojo
Aparición de tuplas espúreas (→ ) al hacer el join

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

La condición suficiente para preservar join es:


n m
a) Preservación de propiedades: ∪ Ti =∪ T ' i
i =1 i =1

b) La descomposición contiene una clave del esquema original.


K es una clave de R =6 Ri y de R ' =6 R ' i
c) La descomposición es una descomposición en relaciones independientes. Una
descomposción en relaciones independientes tiene como intersección la clave ajena de una
respecto a la otra.
Factor de selectividad del join (s). Se define para cada tupla de una relación como el número de
tuplas de la otra relación que hacen join con ella. En el ejemplo anterior, el factor de selectividad de
la tupla rueda en P_1 es s(“rueda”)=2 porque hay dos tuplas en P_2 que hacen join, mientras que
el factor de selectividad s(“vagón”)=1 por la misma razón.
Apoyándose en el concepto de factor de selectividad, de cardinalidad de una relación como el
número de tuplas de la misma, y de la posibilidad de aparición de tuplas espúreas, puede afirmarse
en general para dos relaciones R1 = ∏ R; R 2 = ∏ R
R1 R2

que R ⊆ R16 R 2 y Card ( R) ≤ Card ( R16 R 2)


Si se tienen en cuenta las hipótesis de condición suficiente:
Card ( R ) ≡ Nºvalores distintos de la clave K de R.

Card ( R16 R 2) = ∑ s(t ) ,


∀t∈R1
pudiendo afirmarse, en general, 0 ≤ s (t ) ≤ Card ( R 2) puesto que el

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

Al tener R1 y R la clave en común (K ), luego Card ( R) = Card ( R16 R 2) c.q.d.

Pág. 12 de 22
Bases de Datos Diseño de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1

3.2 Primera forma normal (1FN)


La primera forma normal (1FN) es una restricción inherente al modelo relacional.
Establece que los dominios de los atributos deben de ser valores atómicos (no puede haber más de
un valor de un atributo en una tupla).

3.3 Segunda forma normal (2FN)


3.3.1 Justificación intuitiva
La segunda forma normal evitará redundancias por mezcla de propiedades de dos
entidades en la misma relación cuando existen dependencias incompletas.
Está basada en las interrelaciones existentes entre los atributos primos (los que forman parte de
alguna clave candidata) y no primos (los que no se encuentran en ninguna clave).
Una relación está en 2FN si:
• Está en 1FN.
• Todo atributo no primo es completamente dependiente de las claves candidatas.
Siempre es posible transformar un esquema de relación que no esté en 2FN en esquemas de
relación en 2FN, sin que se produzca pérdida de información o de dependencias.
Ej. R1(S#, Ciudad, Estado, P#, Cant)

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

La clave candidata de R1 es (S#,P#), ya que:


(S#,P#)+= (S#,P#,Ciudad,Cant,Estado) por:
(S#,P#)→(S#,P#) por reflexividad de Ärmstrong
(S#,P#)→Ciudad ya que es cierta S#→Ciudad y Aumentatividad de Ärmstrong
(S#,P#)→Estado porque S#→Estado por transititividad y también puede emplearse aumentatividad
de Ärmstrong
Utilizando el axioma de unión:
(S#,P#)+→ (S#,P#,Ciudad,Cant,Estado), luego sólo puede haber una tupla definida la pareja
(S#,P#).
De hecho, puede redefinirse una clave candidata K para R con las condiciones:
Unicidad: K→R
Minimalidad: ∃/ K ' ⊂ K ; K ' ≠ ∅ / K ' → R
La relación R1 no está en 2FN ya que el atributo no primo Ciudad depende de una parte de la clave
candidata (el atributo S#).
La descomposición en 2FN sería:
R2(S#, Ciudad, Estado) y R3(S#, P#, Cant)

R1 S# Ciudad Estado P# Cant


S1 Londres 20 P1 300
S1 Londres 20 P2 200
S1 Londres 20 P3 400
S1 Londres 20 P4 200
S2 París 10 P1 300
S2 París 10 P2 400
S3 París 10 P2 200

R2 S# Ciudad Estado R3 S# P# Cant


S1 Londres 20 S1 P1 300
S2 París 10 S1 P2 200
S3 París 10 S1 P3 400
S1 P4 200
S2 P1 300
S2 P2 400
S3 P2 200

Pág. 14 de 22
Bases de Datos Diseño de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1

3.3.2 Regla de descomposición de relaciones que no están en 2FN.


R(K1, K2, X, Y) se descompone en R1(K1, X) y R2(K1, K2, Y)

K1 X K1 X K1
K2 K2 Y
Y

La descomposición {R1,R2} de R es una descomposición sin pérdidas, luego se garantiza


preservación de propiedades, dependencias y join, evitando además las anomalías por redundancias
asociadas a la 2FN.

3.4 Tercera forma normal (3FN)


3.4.1 Justificación intuitiva
La tercera forma normal evitará redundancias por mezcla de propiedades de dos entidades
en la misma relación cuando existen dependencias transitivas.
La 3FN está basada en el concepto de dependencia transitiva.
Una relación está en 3FN sii:
Sea R ({ Ai : Di}, L ) ∀ ( X → A ) ∈ L;A ⊂ R; X ⊂ R; A ⊂/ X
Se cumple I) X es una superclave de R
ó II) A es primo
Siempre es posible una descomposición en 3FN que preserve dependencias funcionales.
Ej. R2(S#, Ciudad, Estado)

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:

Si R ({ Ai : Di}, L ) ∀ ( X → A ) ∈ L;A ⊂ R; y X superclave de R


No puede existir R con un grafo característico:

K1 X
K2 Y

ya que la clave de la relación R(K1,K2,X,Y) sería (K1,K2), existiendo la dependencia K1→Y y K1


no es superclave de la relación, lo que es contradictorio con que todos los determinantes sean
superclaves. En enunciados antiguos de la tercera forma normal se exigía como hipótesis que la
relación estuviese en 2FN; con este enunciado se asegura el estado en 2FN (si los atributos son
atómicos) y 3FN(eliminando dependencias transitivas).

3.4.2 Descomposición de relaciones que no están en 3FN.


R(X, Y, Z) se descompone en R1(X, Y) y R2(Y, Z)
X Y Z X Y Y Z

La descomposición {R1,R2} de R es una descomposición sin pérdidas, luego se garantiza


preservación de propiedades, dependencias y join, evitando además las anomalías por redundancias
asociadas a la 3FN.

3.5 Forma normal de Boyce-Codd (FNBC)


3.5.1 Justificación intuitiva
La forma normal de Boyce-Codd aborda el tratamiento de redundancias en casos de claves
alternativas, acotando el umbral de la descomposición de relaciones sin pérdidas de
dependencias.
Una relación está en FNBC si las claves candidatas son los únicos descriptores sobre los que se
facilita información por cualquier otro atributo.
Sea R ({ Ai : Di}, L ) ∀ ( X → A ) ∈ L;A ⊂ R; X ⊂ R; A ⊂/ X
Se cumple I) X es una superclave de R

EJ. R4(S#, Noms, P#, Cntd)

S#
P# Cantidad
Noms

Las claves son (S#,P#) y (Noms#,P#)

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

R41 S# Noms R42 S# P# Cant


S1 Martin S1 P1 300
S2 Rubén S1 P2 200
S1 P3 400
S2 P1 300
S2 P2 400

3.5.2 Descomposición FNBC: Grafos cíclicos y acíclicos


Para grafos acíclicos. Existe una descomposición en FNBC que preserve join y dependencias.
Atributos = {X, Y , Z, A}
ϕ = {X↔ Y, XZ →A, YZ →A }

R(X, Y, Z, A) se descompone en R1(X, Y) y R2(X, Z, A)

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

3.6 Comparación 3FN y FNBC


FNBC es un enunciado reforzado de la 3FN.
La condición de que A sea primo es una relajación de la 3FN respecto de la FNBC
• Siempre es posible encontrar una descomposición en 3FN que preserve propiedades.
• Siempre es posible encontrar, al menos una descomposición en FNBC que preserve join
pero no siempre que preserve dependencias.
Ej.
VINOS Tipo Región País GDF
Julieras California USA
Julieras Beaujolais Francia Tipo
Región
Morgon Beaujolais Francia País
Chablis Borgoña Francia
Chablis California USA
Jerez Rioja España
Jerez Michigan USA

VINO_1 Tipo País


Julieras USA VINO_2 Región País
Julieras Francia California USA
Morgon Francia Beaujolais Francia
Chablis Francia Borgoña Francia
Chablis USA Rioja España
Jerez España Michigan USA
Jerez USA
En este caso, no es posible encontrar una descomposición en FNBC que preserve dependencias
funcionales. En cualquiera de las tres posibles descomposiciones se pierde la dependencia
(Tipo,País)→Región

Pág. 18 de 22
Bases de Datos Diseño de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1

En la descomposición Vino_1(Tipo, País) y Vino_2(Región, País) hay además pérdida de join.


VINO_1 6 VINO_2 Tipo Región País

Julieras California USA


→ Julieras Michigan USA

Julieras Beaujolais Francia


→ Julieras Borgoña Francia
Morgon Beaujolais Francia
→ Morgon Borgoña Francia
→ Chablis Beaujolais Francia
Chablis Borgoña Francia
Chablis California USA
→ Chablis Michigan USA
Jerez Rioja España
→ Jerez California USA
Jerez Michigan USA
Siempre es posible encontrar una descomposición, en este caso Vino_3(Tipo, Región) y
Vino_2(Región, País), que conserva join. No conserva dependencias funcionales.

VINO_3 Tipo Región VINO_2 Región País


Julieras California California USA
Pulieras Beaujolais Beaujolais Francia
Morgon Beaujolais Borgoña Francia
Chablis Borgoña Rioja España
Chablis California Michigan USA
Jerez Rioja
Jerez Michigan

VINO_3 6 VINO_2 Tipo Región País


Julieras California USA
Julieras Beaujolais Francia
Morgon Beaujolais Francia
Chablis Borgoña Francia
Chablis California USA
Jerez Rioja España
Jerez Michigan USA

Pág. 19 de 22
Bases de Datos Diseño de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1

4 Diseño de bases de datos relacionales


4.1 Enfoque de descomposición: Normalización
El enfoque de descomposición de relaciones parte de asumir la existencia de la instancia universal.

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.

Se asume la existencia (aunque artificial) de la relación e instancia universal.

El enfoque de descomposición parte de la relación universal y aplica las reglas de descomposición


vistas en cada forma normal. El mayor inconveniente de este método es el cálculo de claves, que en
casos simples puede ser intuitivo pero cuando se parte de relaciones complejas o de la misma
relación universal sí plantea problemas algorítmicos.

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).

4.2 Enfoque de síntesis: síntesis básica de Bernstein


El enfoque de síntesis no presupone la existencia de la relación universal, partiendo del conjunto de
atributos A{A1 ,A2 , An}y del grafo de dependencias representado por F.
Este enfoque se debe a Bernstein y se presenta el algoritmo básico (existe otro para manejar
determinantes equivalentes que generan claves alternativas de relaciones: Síntesis modificada de
Bernstein).
Paso 1. Calcular un recubrimiento mínimo F* de F.
Paso 2. Agrupar dependencias de F* en particiones que tengan el mismo determinante.
Paso 3. Para cada partición se genera un esquema de relación Ri la cual tendrá como clave primaria
el determinante y como atributos el resto de los que aparezcan en las dependencias
funcionales de la partición.
Paso 4. Si existen atributos que no son implicantes ni implicados en DF*, se forma un esquema de
relación con ellos y sin dependencias funcionales.

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

Paso 1. Se busca un recubrimiento mínimo ϕ *.


Se eliminan los arcos redundantes por transitividad:
Población → País
Dni → Provincia, Población,País
(Nombre,Apellidos) → Cod_Postal
y los arcos correspondientes a dependencias que no son completas (atributos extraños):
(Afición,Dni) → Tipo_afición

Tipo_afición

Grado

Afición
Dni Dirección Cod_Postal
Población

Nombre Provincia
Apellidos
País

Paso 2. Generar P{Pi}: Pi {dfi: di→ Xi}


P1 { Provincia → País }
P2{Población→ Provincia }
P3{ ((Dirección, Población) → Cod_Postal) (Cod_postal → Población) }
P4{ Dni ↔ (Nombre, Apellidos), Dni→ Cod_Postal, Dni→ Dirección }
P5{Afición→ Tipo_Afición }
P6{(Dni, Afición)→ Grado }

Paso 3. Generación de relaciones {Ri}


Relación Pk Ak Fk
R1 (Provincia, País) Provincia
R2 (Población, Provincia) Población Provincia/R1
R3 (Dirección, Población, Cod_Postal) (Cod_Postal, (Población, Dirección) Población/R2
Dirección)
R4 (Dni, Nombre, Apellidos, Cod_Postal, Dirección) Dni (Nombre, Apellidos) (Cod_Postal,
Dirección)/R3
R5 (Afición, Tipo_Afición) Afición
R6 (Dni, Afición, Grado) (Dni, Afición/R5
Afición) Dni/R4

Página 22 de 22