Está en la página 1de 22

Departamento de Lenguajes y Sistemas Informticos

E.T.S. Ingeniera Informtica. Universidad de Sevilla


Avda Reina Mercedes s/n. 41012 Sevilla Tlf/Fax 954 557 139 E-mail lsi@lsi.us.es Web www.lsi.us.es
E.T.S. Ingeniera Informtica

Bases de Datos
Tema 9 Diseo de bases de datos relacionales

Sevilla, abril 2005 V 2005.01.1

Bases de Datos

Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1

Indice
1 INTRODUCCIN ......................................................................................... 3
1.1 1.2 DISEO DE BD RELACIONALES .................................................................................... 3 ANOMALAS DE MANIPULACIN ................................................................................... 3

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 descomposicin................................................................................................ 7 2.3.5 Unin 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 MNIMA .................................................................................................... 8

FORMAS NORMALES DE CODD .............................................................. 9


3.1 DESCOMPOSICIONES SIN PRDIDAS .............................................................................10 3.1.1 Preservacin de atributos. ......................................................................................................... 10 3.1.2 Preservacin de dependencias. ................................................................................................. 10 3.1.3 Preservacin del contenido de las tuplas o descomposicin sin prdida de join.............. 11 3.2 PRIMERA FORMA NORMAL (1FN) ................................................................................13 3.3 SEGUNDA FORMA NORMAL (2FN) ...............................................................................13 3.3.1 Justificacin intuitiva.................................................................................................................. 13 3.3.2 Regla de descomposicin de relaciones que no estn en 2FN. ........................................... 15 3.4 TERCERA FORMA NORMAL (3FN) ...............................................................................15 3.4.1 Justificacin intuitiva.................................................................................................................. 15 3.4.2 Descomposicin de relaciones que no estn en 3FN. .......................................................... 16 3.5 FORMA NORMAL DE BOYCE-CODD (FNBC) ...............................................................16 3.5.1 Justificacin intuitiva.................................................................................................................. 16 3.5.2 Descomposicin FNBC: Grafos cclicos y acclicos ............................................................. 17 3.6 COMPARACIN 3FN Y FNBC......................................................................................18

DISEO DE BASES DE DATOS RELACIONALES ............................... 20


4.1 4.2 ENFOQUE DE DESCOMPOSICIN: NORMALIZACIN .................................................. 20 ENFOQUE DE SNTESIS: SNTESIS BSICA DE BERNSTEIN .......................................... 20

Pg. 2 de 22

Bases de Datos

Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1

1 Introduccin
1.1 Diseo de BD relacionales
Al disear intuitivamente1 una base de datos relacional se obtiene un esquema; diferentes observadores generarn, 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 reaccin a determinadas operaciones de manipulacin, de modo que un buen esquema presentar buen comportamiento mientras que otros ofrecern ciertos inconvenientes o anomalas de manipulacin (actualizacin, insercin y borrado) al escribir transacciones contra dicho esquema.

1.2 Anomalas de manipulacin


El objetivo de las tcnicas de diseo de bases de datos relacionales es obtener esquemas exentos de anomalas de manipulacin. Ejemplo: Sean los esquemas relacionales 1 y 2 :
PK ( S #) Suminitradores( S # : Dcodigo, Noms : Dnombre, Ciudad : Dciudad ) Piezas ( P # : Dcodigo, Peso : Dpeso, Color : Dcolor ) PK ( P #) 1 Suministros ( S # : Dcodigo, P # : Dcodigo, Cant : Dcant ) PK ( S #, P #) FK 1( S #) / Suminitradores, FK 2( P #) / Piezas
Suministradores S# S1 S2 S3 Noms Jones Clark Adams P# P1 P2 P1 P1 Cant 50 10 5 15 Ciudad Paris Londres Sevilla Piezas P# P1 P2 Peso 200 400 Color Gris Azul

Suministros

S# S1 S1 S2 S3

PK ( S #) Suminitradores( S # : Dcodigo, Noms : Dnombre, Ciudad : Dciudad ) 2 Suministra_Piezas ( S # : Dcodigo, P # : Dcodigo, Cant : Dcant , Peso : Dpeso, Color : Dcolor ) PK ( S #, P #) FK 1( S #) / Suminitradores
Suministradores S# S1 S2 S3 Noms Jones Clark Adams Ciudad Paris Londres Sevilla Suministra_Piezas S# S1 S1 S2 S3 P# P1 P2 P1 P1 Cant 50 10 5 15 Peso 200 400 200 200 Color Gris Azul Gris Gris

Sin un mtodo formal.

Pg. 3 de 22

Bases de Datos

Diseo 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 anomalas de actualizacin (debe actualizarse slo en una tupla y evitar que haya ms 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 anomalas de insercin. Por ltimo, surgen las anomalas de eliminacin o borrado. Cuando se elimina una tupla de Suministra_Pieza y la pieza slo aparece en dicha tupla (ej. P#=P2) se pierde la informacin de la pieza. El esquema 2 presenta estos problemas inconvenientes debido a que no sigue un principio intuitivo bsico: conceptos o hechos independientes deben recogerse en (relaciones) distintas o especficas. El esquema relacional 1 no presenta las anomalas anteriores. Puede afirmarse que este esquema es mejor que el anterior. La teora de dependencias se ha desarrollado para medir formalmente la calidad de un diseo y proponer medidas que resuelvan las anomalas de manipulacin (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 X, Y tuplas de R subconjuntos de atributos Y R ({ Ai : Di}) X R ({ Ai : Di})

Se define una dependencia funcional (DF) X Y (X determina funcionalmente a Y o Y depende funcionalmente de X) como una restriccin 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 tambin 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 cdigo de proveedor y distinta Ciudad. Pg. 4 de 22

Bases de Datos

Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1

Un esquema de relacin se ve enriquecido por la semntica asociada a las dependencias funcionales inherentes al contexto de los atributos:

R(A, DF) contiene las dependencias funcionales DF como restricciones semnticas.


2.1.1 Descriptores equivalentes:
Y X

Se dice que X e Y son equivalentes cuando: X Y Se representa: X Y

Ej.: 2.1.2

Dada la DF:

S# Dni

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 ningn subconjunto propio de X. X es un descriptor determinante. Atributos extraos son los atributos del descriptor de una DF que sobran en la dependencia. Ej.: S#Ciudad (S#,Noms)Ciudad 2.1.3 Es una DF plena o completa. No es una DF plena o completa ya que cdigo de proveedor determina Ciudad. Noms es un atributo extrao

Dependencia funcional elemental

Si una dependencia funcional plena tiene como descriptor determinado un atributo simple, la dependencia es elemental. Ej.: 2.1.4 Ej.: S# Ciudad es una DF elemental ya que Ciudad es un atributo simple. Dependencia funcional trivial (Reflexividad de rmstrong) YX S# S# (S#,Ciudad)Ciudad 2.1.5 Dependencia funcional transitiva
XY XZ YZ YX

Una DF XY es trivial si Y es un subconjunto de X: DF trivial. DF trivial.

Sea R ( X : Dx, Y : Dy, Z : Dz ) Se dice que Z tiene una DF transitiva de X a travs de Y :

Ej.:

S#Ciudad Pas

Existe la DF transitiva S# Pas

Pg. 5 de 22

Bases de Datos

Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1

2.2 Grafo de dependencias funcionales (GDF)


Es un grafo que representa el contexto semntico 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: F= { S# Noms, S# Estado, S# Ciudad, P# Nomp, P# Color, P# Peso, P# Ciudad, (S#,P#) Cant GDF:

s# Cant p#

Noms Estado Ciudad Nomp Color Peso

2.3 Axiomas de rmstrong


De un esquema de relacin R (A,F) es posible deducir (o inferir) nuevas dependencias funcionales. Las nuevas dependencias f que se cumplen para cualquier extensin de r de R son consecuencia lgica 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 ms o menos dependencias funcionales). Estas reglas de derivacin se conocen como Axiomas de rmstrong y forman un conjunto completo y correcto de axiomas. Los axiomas bsicos son reflexividad, aumentatividad y transitividad. De ellos se pueden inferir los derivados de descomposicin, unin y pseudotransitividad. Axiomas Bsicos 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#, S#, Ciudad ) (Color, Ciudad)

{P# Color y Ciudad (S#,Ciudad)}

Pg. 6 de 22

Bases de Datos 2.3.3 Transitividad

Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1

Si

{X

Y Y Z} |= X Z
S# Pas

{S# Ciudad y Ciudad Pas}

Axiomas Derivados
2.3.4 Proyectividad o descomposicin

Si

{X

Y Z Y} |= X Z
Peso (Color, Peso) } P# Peso

{P# (Color, Peso) y

2.3.5

Unin o aditividad

Si

{X

X Z } |=
P# Peso }

X YZ
P# (Color, Peso)

{P# Color y

2.3.6

Pseudotransitividad

Si

{X

YW Z} |=

XW Z
(S#, Fecha) Sueldo

{S# Noms y

(Noms, 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 {S#}+F={S#,Noms} {P#}+ F ={P# , Nomp, Color, } { S#,P#}+ F ={S#, P# , Noms , Nomp, Color, Cant } F = {S#Noms,P# (Nomp,Color),(S#,P#)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 unin de dependencias funcionales exisentes en F y el conjunto de todas las dependencias que pueden inferirse de DF mediante la aplicacin de los axiomas de rmstrong: F+ = F{ X Y | Axiomasrmstrong |= X Y } Pg. 7 de 22

Bases de Datos

Diseo 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 relacin. Para afirmar que una dependencia funcional XY 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 ttulo, ttulo cod_libro, cod_libro editorial, cod_libro idioma } cod_libro idioma {cod_libro} +F2 = cod_libro, ttulo, editorial, idioma {titulo} +F1 = cod_libro, ttulo, editorial, idioma Los grafos de F1 y F2 son equivalentes. ttulo editorial F2{cod_libro ttulo, ttulo cod_libro, ttulo editorial, ttulo idioma } cod_libro idioma editorial ttulo

2.6 Cobertura mnima


Un conjunto de dependencias funcionales es una cobertura mnima (tambin denominado recubrimiento minimal o recubrimiento mnimo) F* de F si no tiene dependencias redundantes y es equivalente al conjunto de partida F: a) F *+ = F + b) f F *; f /

(F * f )

= (F )

Pg. 8 de 22

Bases de Datos

Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1

3 Formas normales de Codd


En el proceso de normalizacin en cada forma normal se establecen restricciones encaminadas a salvar ciertas anomalas asociadas a las relaciones que no estn en esa forma normal. El proceso se aplica progresivamente y est basado en la teora 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 definicin ms estricta de la 3FN que se conoce como forma normal de Boyce-Codd (FNBC). Estas formas normales estn basadas en las dependencias funcionales que existen entre los atributos de una relacin. Otros autores han propuesto formas normales ms avanzadas: cuarta forma normal (4FN) basada en el concepto de dependencia multivaluada y quinta forma normal (5FN) basada en las dependencias de combinacin o de join, as como las dependencias generalizadas. Las dependencias funcionales son las restricciones semnticas que condicionan los esquemas de una base de datos relacional, razn por lo que son las ms estudiadas.

Pg. 9 de 22

Bases de Datos

Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1

3.1 Descomposiciones sin prdidas


El proceso de normalizacin va a consistir en transformar un esquema de relacin R(A, F), por medio de sucesivas proyecciones, en un conjunto de nuevas relaciones equivalentes. Ha de prestarse atencin a la equivalencia de estas relaciones, exigindose las siguientes propiedades para conseguir una descomposicin sin prdidas. 3.1.1 Preservacin 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

'

3.1.2

Preservacin 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

'+ i

= L+ . i
i

Es decir: los cierres de los conjuntos de dependencias de los dos contextos son equivalentes.

Pg. 10 de 22

Bases de Datos

Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1

3.1.3

Preservacin del contenido de las tuplas o descomposicin sin prdida de join.

En general, no puede asegurarse que el join natural de una descomposicin (al aplicar la proyeccin algebrica) de relaciones genere el mismo estado o extensin que la relacin de partida; existen casos donde pueden aparecer tuplas que no figuraban en la extensin inicial; a estas tuplas se les denomina tuplas espreas. Ej. de descomposicin con prdida de dependencias funcionales y con prdida de join (aparecen tuplas espreas).
PIEZAS P# 1 2 3 4 Nomp Rueda Eje Vagn Mquina P_2 s(t) = 2 s(t) = 2 s(t) = 1 s(t) = 1 P# 1 1 2 2 3 4 Nomp Rueda Rueda Eje Eje Vagn Mquina Tipo C C C C T T Tipo C C T T Color Gris Negro Rojo Rojo Tipo C C T Color Gris Negro Rojo

P_1

P# 1 2 3 4

Nomp Rueda Eje Vagn Mquina

Tipo C C T T P_1 6 P_2

Color Gris Negro Gris Negro Rojo Rojo

Aparicin de tuplas espreas ( ) al hacer el join

P#

Nomp Tipo

Color DF perdidas DF conservadas

En este caso ( P_16 P_2 ) Piezas y el excedente del join natural son las tuplas espreas.

Pg. 11 de 22

Bases de Datos

Diseo 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:
R = R16 R 26 Rn 16 Rn = 6 Ri ...6
i =1 n

R ' = R ' 16 R ' 26 R ' m 16 Rm = 6 Ri ...6


i =1

La descomposicin 2 preserva el join respecto a 1 sii La condicin suficiente para preservar join es: a) Preservacin de propiedades: Ti = T ' i
i =1 i =1 n m

Ri =

i =1

6 R'
i =1

b) La descomposicin contiene una clave del esquema original.

K es una clave de R =6 Ri y de R ' =6 R ' i


c) La descomposicin es una descomposicin en relaciones independientes. Una descomposcin en relaciones independientes tiene como interseccin la clave ajena de una respecto a la otra. Factor de selectividad del join (s). Se define para cada tupla de una relacin como el nmero de tuplas de la otra relacin 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(vagn)=1 por la misma razn. Apoyndose en el concepto de factor de selectividad, de cardinalidad de una relacin como el nmero de tuplas de la misma, y de la posibilidad de aparicin de tuplas espreas, 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 hiptesis de condicin suficiente:
Card ( R ) Nvalores distintos de la clave K de R.

Card ( R16 R 2) =

tR1

s(t ) ,

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

lmite de tuplas para hacer join son el nmero de tuplas de R2, pero teniendo en cuenta que R1 y R2 son proyecciones independientes, la interseccin 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 slo 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:

tR1

s (t ) =

tR1

1= N Tuplas( R1) = N Valores clave( R ) = N Valores K


1

Al tener R1 y R la clave en comn (K ), luego Card ( R) = Card ( R16 R 2) c.q.d. Pg. 12 de 22

Bases de Datos

Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1

3.2 Primera forma normal (1FN)


La primera forma normal (1FN) es una restriccin inherente al modelo relacional. Establece que los dominios de los atributos deben de ser valores atmicos (no puede haber ms de un valor de un atributo en una tupla).

3.3 Segunda forma normal (2FN)


3.3.1 Justificacin intuitiva La segunda forma normal evitar redundancias por mezcla de propiedades de dos entidades en la misma relacin 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 relacin 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 relacin que no est en 2FN en esquemas de relacin en 2FN, sin que se produzca prdida de informacin o de dependencias. Ej. R1(S#, Ciudad, Estado, P#, Cant) S# P# Ciudad Cant Estado

Pg. 13 de 22

Bases de Datos 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

Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1

(S#,P#)Ciudad ya que es cierta S#Ciudad y Aumentatividad de rmstrong (S#,P#)Estado porque S#Estado por transititividad y tambin puede emplearse aumentatividad de rmstrong Utilizando el axioma de unin: (S#,P#)+ (S#,P#,Ciudad,Cant,Estado), luego slo puede haber una tupla definida la pareja (S#,P#). De hecho, puede redefinirse una clave candidata K para R con las condiciones: Unicidad: KR Minimalidad: K ' K ; K ' / K ' R / La relacin R1 no est en 2FN ya que el atributo no primo Ciudad depende de una parte de la clave candidata (el atributo S#). La descomposicin en 2FN sera: R2(S#, Ciudad, Estado) y R3(S#, P#, Cant) R1 S# S1 S1 S1 S1 S2 S2 S3 S# S1 S2 S3 Ciudad Londres Londres Londres Londres Pars Pars Pars Ciudad Londres Pars Pars Estado 20 20 20 20 10 10 10 P# P1 P2 P3 P4 P1 P2 P2 Cant 300 200 400 200 300 400 200 R3 S# S1 S1 S1 S1 S2 S2 S3 P# P1 P2 P3 P4 P1 P2 P2 Cant 300 200 400 200 300 400 200

R2

Estado 20 10 10

Pg. 14 de 22

Bases de Datos

Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1

3.3.2

Regla de descomposicin de relaciones que no estn en 2FN. R1(K1, X) y R2(K1, K2, Y)

R(K1, K2, X, Y) se descompone en

K1 K2

X Y

K1

K1 K2 Y

La descomposicin {R1,R2} de R es una descomposicin sin prdidas, luego se garantiza preservacin de propiedades, dependencias y join, evitando adems las anomalas por redundancias asociadas a la 2FN.

3.4 Tercera forma normal (3FN)


3.4.1 Justificacin intuitiva La tercera forma normal evitar redundancias por mezcla de propiedades de dos entidades en la misma relacin cuando existen dependencias transitivas. La 3FN est basada en el concepto de dependencia transitiva. Una relacin est en 3FN sii:
Sea R ({ Ai : Di}, L ) ( X A ) L;A R; X R; A X / I) X es una superclave de R II) A es primo Se cumple

Siempre es posible una descomposicin 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# S1 S2 S3 S# S1 S2 S3 Ciudad Londres Pars Pars Ciudad Londres Pars Pars Estado 20 10 10 R22 R21 Ciudad Pars Estado 10 Londres 20

Pg. 15 de 22

Bases de Datos

Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1

Este enunciado permite garantizar la ausencia de dependencias transitivas adems de asegurar que la relacin 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 caracterstico:


K1 K2 X Y

ya que la clave de la relacin R(K1,K2,X,Y) sera (K1,K2), existiendo la dependencia K1Y y K1 no es superclave de la relacin, lo que es contradictorio con que todos los determinantes sean superclaves. En enunciados antiguos de la tercera forma normal se exiga como hiptesis que la relacin estuviese en 2FN; con este enunciado se asegura el estado en 2FN (si los atributos son atmicos) y 3FN(eliminando dependencias transitivas). 3.4.2 X Descomposicin de relaciones que no estn en 3FN. R1(X, Y) X Y y R2(Y, Z) Y Z Y Z

R(X, Y, Z) se descompone en

La descomposicin {R1,R2} de R es una descomposicin sin prdidas, luego se garantiza preservacin de propiedades, dependencias y join, evitando adems las anomalas por redundancias asociadas a la 3FN.

3.5 Forma normal de Boyce-Codd (FNBC)


3.5.1 Justificacin intuitiva La forma normal de Boyce-Codd aborda el tratamiento de redundancias en casos de claves alternativas, acotando el umbral de la descomposicin de relaciones sin prdidas de dependencias. Una relacin est en FNBC si las claves candidatas son los nicos descriptores sobre los que se facilita informacin 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# Noms Las claves son (S#,P#) y (Noms#,P#) Pg. 16 de 22

P#

Cantidad

Bases de Datos

Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1

La relacin 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 descomposicin en FNBC sera: R41(S#, Noms) y R42(S#, P#, Cant) R4 S# S1 S1 S1 S2 S2 R41 S# S1 S2 Noms Martin Martin Martin Rubn Rubn Noms Martin Rubn P# P1 P2 P3 P1 P2 Cant 300 200 400 300 400 R42 S# S1 S1 S1 S2 S2 P# P1 P2 P3 P1 P2 Cant 300 200 400 300 400

3.5.2

Descomposicin FNBC: Grafos cclicos y acclicos

Para grafos acclicos. Existe una descomposicin 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)

Z Y

Pg. 17 de 22

Bases de Datos

Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1

Para grafos cclicos. No es posible encontrar una descomposicin 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 Z Se perdera la dependencia XY Z al buscar FNBC

X Y

3.6 Comparacin 3FN y FNBC


FNBC es un enunciado reforzado de la 3FN. La condicin de que A sea primo es una relajacin de la 3FN respecto de la FNBC

Siempre es posible encontrar una descomposicin en 3FN que preserve propiedades. Siempre es posible encontrar, al menos una descomposicin en FNBC que preserve join pero no siempre que preserve dependencias. Tipo Julieras Julieras Chablis Chablis Jerez Jerez Regin Pas GDF
Tipo Pas

Ej. VINOS California USA Beaujolais Francia Borgoa Rioja Michigan Tipo Julieras Julieras Morgon Chablis Chablis Jerez Jerez Francia Espaa USA Pas USA Francia Francia Francia USA Espaa USA VINO_2 Regin Pas California USA Beaujolais Francia Borgoa Rioja Michigan Francia Espaa USA
Regin

Morgon Beaujolais Francia California USA

VINO_1

En este caso, no es posible encontrar una descomposicin en FNBC que preserve dependencias funcionales. En cualquiera de las tres posibles descomposiciones se pierde la dependencia (Tipo,Pas)Regin Pg. 18 de 22

Bases de Datos

Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1

En la descomposicin Vino_1(Tipo, Pas) y Vino_2(Regin, Pas) hay adems prdida de join.


VINO_1 6 VINO_2 Tipo Julieras Julieras Julieras Julieras Morgon Morgon Chablis Chablis Chablis Chablis Jerez Jerez Jerez Regin California Michigan Beaujolais Borgoa Beaujolais Borgoa Beaujolais Borgoa California Michigan Rioja California Michigan USA USA Francia Francia Francia Francia Francia Francia USA USA Espaa USA USA Pas

Siempre es posible encontrar una descomposicin, en este caso Vino_3(Tipo, Regin) y Vino_2(Regin, Pas), que conserva join. No conserva dependencias funcionales. VINO_3 Tipo Julieras Pulieras Chablis Chablis Jerez Jerez Regin California Beaujolais Borgoa California Rioja Michigan VINO_3 6 VINO_2 Tipo Julieras Julieras Chablis Chablis Jerez Jerez Regin Pas VINO_2 Regin Pas

California USA Beaujolais Francia Borgoa Rioja Michigan Francia Espaa USA

Morgon Beaujolais

California USA Beaujolais Francia Borgoa Rioja Michigan Francia Espaa USA

Morgon Beaujolais Francia California USA

Pg. 19 de 22

Bases de Datos

Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1

4 Diseo de bases de datos relacionales


4.1 Enfoque de descomposicin: Normalizacin
El enfoque de descomposicin 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 relacin U(A1 ,A2, An) se denomina la relacin universal y su extensin 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 relacin podr obtenerse mediante una proyeccin de la instancia universal.
Se asume la existencia (aunque artificial) de la relacin e instancia universal. El enfoque de descomposicin parte de la relacin universal y aplica las reglas de descomposicin vistas en cada forma normal. El mayor inconveniente de este mtodo es el clculo de claves, que en casos simples puede ser intuitivo pero cuando se parte de relaciones complejas o de la misma relacin universal s plantea problemas algortmicos. Es decir: Paso 0: Asumiendo la existencia de U(A1 ,A2 , An), calcular las claves {Ku }de U Paso 1. Descomponer relaciones que no estn 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 sntesis: sntesis bsica de Bernstein


El enfoque de sntesis no presupone la existencia de la relacin 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 bsico (existe otro para manejar determinantes equivalentes que generan claves alternativas de relaciones: Sntesis modificada de Bernstein). Paso 1. Calcular un recubrimiento mnimo F* de F. Paso 2. Agrupar dependencias de F* en particiones que tengan el mismo determinante. Paso 3. Para cada particin se genera un esquema de relacin Ri la cual tendr como clave primaria el determinante y como atributos el resto de los que aparezcan en las dependencias funcionales de la particin. Paso 4. Si existen atributos que no son implicantes ni implicados en DF*, se forma un esquema de relacin con ellos y sin dependencias funcionales. Se pueden generar las claves ajenas por interseccin entre esquemas de las relaciones y las claves primarias de las dems. 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.

Pgina 20 de 22

Bases de Datos

Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1

Ejemplo: Dados los atributos: A{Dni, Nombre, Apellidos, Direccin, Poblacin, Cod_postal, Provincia, Pas, Aficin, Tipo_aficin, Grado} y las dependencias funcionales: = { (Direccin, Poblacin) Cod_postal Cod_postal Poblacin Poblacin (Provincia, Pas) Provincia Pas Dni Nombre, Apellidos, Direccin Dni Poblacin, Cod_postal, Provincia, Pas (Nombre, Apellidos) Dni, Cod_postal (Dni, Aficin) Tipo_aficin, Grado Aficin Tipo_aficin }

Tipo_aficin Grado Aficin Dni Direccin Poblacin Provincia Pas Cod_Postal

Nombre Apellidos

Pgina 21 de 22

Bases de Datos

Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1

Paso 1. Se busca un recubrimiento mnimo *. Se eliminan los arcos redundantes por transitividad: Poblacin Pas Dni Provincia, Poblacin,Pas (Nombre,Apellidos) Cod_Postal y los arcos correspondientes a dependencias que no son completas (atributos extraos): (Aficin,Dni) Tipo_aficin

Tipo_aficin Grado Aficin Dni Direccin Poblacin Provincia Pas Cod_Postal

Nombre Apellidos

Paso 2. Generar P{Pi}: Pi {dfi: di Xi} P1 { Provincia Pas } P2{Poblacin Provincia } (Cod_postal Poblacin) } P3{ ((Direccin, Poblacin) Cod_Postal) P4{ Dni (Nombre, Apellidos), Dni Cod_Postal, Dni Direccin } P5{Aficin Tipo_Aficin } P6{(Dni, Aficin) Grado } Paso 3. Generacin de relaciones {Ri}
Relacin R1 (Provincia, Pas) R2 (Poblacin, Provincia) R3 (Direccin, Poblacin, Cod_Postal)

R4 (Dni, Nombre, Apellidos, Cod_Postal, Direccin) R5 (Aficin, Tipo_Aficin) R6 (Dni, Aficin, Grado)

Pk Provincia Poblacin (Cod_Postal, Direccin) Dni Aficin (Dni, Aficin)

Ak (Poblacin, Direccin) (Nombre, Apellidos)

Fk Provincia/R1 Poblacin/R2 (Cod_Postal, Direccin)/R3 Aficin/R5 Dni/R4

Pgina 22 de 22

También podría gustarte