apuntes diseño bdr

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 Tlf/Fax 954 557 139 E-mail [email protected] Web www.lsi.us.es E.T.S. Ingeniería Informática Bases de Datos Tema 9 Diseño de bases de datos relacionales Sevilla, abril 2005 V 2005.01.1

Upload: k91

Post on 04-Jul-2015

129 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Apuntes diseño BDR

Departamento de Lenguajes y Sistemas Informáticos E.T.S. Ingeniería Informática. Universidad de Sevilla

Avda Reina Mercedes s/n. 41012 Sevilla

Tlf/Fax 954 557 139 E-mail [email protected] Web www.lsi.us.es

E.T.S. Ingeniería Informática

Bases de Datos

Tema 9 Diseño de bases de datos relacionales

Sevilla, abril 2005 V 2005.01.1

Page 2: Apuntes diseño BDR

Bases de Datos

Diseño de BD RelacionalesSevilla, Abril/2005, V 2005.01.1

Pág. 2 de 22

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

Page 3: Apuntes diseño BDR

Bases de Datos

Diseño de BD RelacionalesSevilla, Abril/2005, V 2005.01.1

Pág. 3 de 22

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ρ :

1

Suminitradores( # : , : , : ) ( #) Piezas ( # : , : , C : ) ( #)Suministros ( # :

S Dcodigo Noms Dnombre Ciudad Dciudad PK SP Dcodigo Peso Dpeso olor Dcolor PK P

S Dcρ

, # : , : ) ( #, #) 1( #) / Suminitradores, 2( #) / Piezas

odigo P Dcodigo Cant Dcant PK S PFK S FK P

2

Suminitradores( # : , : , : ) ( #) Suministra_Piezas ( # : , # : , : , : , : ) ( #, #)

S Dcodigo Noms Dnombre Ciudad Dciudad PK SS Dcodigo P Dcodigo Cant Dcant Peso Dpeso Color Dcolor PK S Pρ

1( #) / SuminitradoresFK S

1 Sin un método formal.

Suministradores S# Noms Ciudad S1 ‘Jones’ ‘Paris’ S2 ‘Clark’ ‘Londres’ S3 ‘Adams’ ‘Sevilla’

Piezas P# Peso Color P1 200 Gris P2 400 Azul

Suministros S# P# Cant S1 P1 50 S1 P2 10 S2 P1 5 S3 P1 15

Suministradores S# Noms Ciudad S1 ‘Jones’ ‘Paris’ S2 ‘Clark’ ‘Londres’ S3 ‘Adams’ ‘Sevilla’

Suministra_Piezas S# P# Cant Peso Color S1 P1 50 200 Gris S1 P2 10 400 Azul S2 P1 5 200 Gris S3 P1 15 200 Gris

Page 4: Apuntes diseño BDR

Bases de Datos

Diseño de BD RelacionalesSevilla, Abril/2005, V 2005.01.1

Pág. 4 de 22

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 { : } t,s R tuplas de R X, Y subconjuntos de atributos X R { : }

i

i

A Di

A Di∈

( ) Y R { : }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

iA Di⊆

( )

que dado un valor único de X, el valorde 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.

Page 5: Apuntes diseño BDR

Bases de Datos

Diseño de BD RelacionalesSevilla, Abril/2005, V 2005.01.1

Pág. 5 de 22

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 XSe representa: X Y

→ ∧ →↔

Ej.: Dada la DF: S# ↔ Dni

2.1.2 Dependencia funcional plena o completa

( )

( ) ( )

Sea R { : } y X ;A X A es completa sii: A X ´ / X´ A

iA Di R R

X X

⊆ ⊆→⊆ ∧ ∃ ⊂ →/

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 Y Y Z Y XSe dice que Z tiene una DF transitiva de X a través de Y : X Z

X Dx Y Dy Z Dz→ ∧ → ∧ →

Ej.: S#→Ciudad→ País Existe la DF transitiva S#→ País

Page 6: Apuntes diseño BDR

Bases de Datos

Diseño de BD RelacionalesSevilla, Abril/2005, V 2005.01.1

Pág. 6 de 22

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: F= { S# → Noms, S# → Estado, S# → Ciudad, P# → Nomp, P# → Color, P# → Peso, P# → Ciudad, (S#,P#) → Cant }

GDF: Noms

s# Estado

Cant Ciudad p# Nomp Color Peso

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)

Page 7: Apuntes diseño BDR

Bases de Datos

Diseño de BD RelacionalesSevilla, Abril/2005, V 2005.01.1

Pág. 7 de 22

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 |= X ZZ Y→ ∧ → →

{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 }→ →∪

Page 8: Apuntes diseño BDR

Bases de Datos

Diseño de BD RelacionalesSevilla, Abril/2005, V 2005.01.1

Pág. 8 de 22

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.

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

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+

( )( )

+2 F1

+1 F2

X Y F |= Y X

W F |= W ZZ

∀ → ∈ ⊂

∀ → ∈ ⊂

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,

título → cod_libro,

cod_libro → editorial,

cod_libro → idioma }

F2{cod_libro → título,

título → cod_libro,

título → editorial,

título → idioma }

cod_libro título

editorial

idioma

cod_libro título

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+ +=

b) ( ) ( )*; / * f F f F f F+ +∃ ⊂ ≠ ∅ − =

Page 9: Apuntes diseño BDR

Bases de Datos

Diseño de BD RelacionalesSevilla, Abril/2005, V 2005.01.1

Pág. 9 de 22

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.

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.

1FN

Relaciones no normalizadas

2FN

3FN

5FN4FN

FNBC

Page 10: Apuntes diseño BDR

Bases de Datos

Diseño de BD RelacionalesSevilla, Abril/2005, V 2005.01.1

Pág. 10 de 22

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 2( , ) '( ' , ' )i i i i i iR T L R T Lρ ρ , 2ρ preserva atributos respecto a 1ρ ' i i

i i

sii T T=∪ ∪ .

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 2( , ) '( ' , ' )i i i i i iR T L R T Lρ ρ ,

2ρ preserva dependencias respecto a 1ρ ' i ii i

sii L L+ +=∪ ∪ .

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

Page 11: Apuntes diseño BDR

Bases de Datos

Diseño de BD RelacionalesSevilla, Abril/2005, V 2005.01.1

Pág. 11 de 22

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 1 Rueda C s(t) = 2 2 Eje C s(t) = 2 3 Vagón T s(t) = 1 4 Máquina T s(t) = 1

P_2 Tipo Color C Gris C Negro T Rojo

P_1 � 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_1 P_2 Piezas⊇� y el excedente del join natural son las tuplas espúreas.

Page 12: Apuntes diseño BDR

Bases de Datos

Diseño de BD RelacionalesSevilla, Abril/2005, V 2005.01.1

Pág. 12 de 22

Dados los esquemas { } { }1 2( , ) ; '( ' , ' )i i i i i iR T L R T Lρ ρ , se pueden representar las relaciones resultado de hacer el join natural de cada esquema:

1 2 1

1

1 2 11

...

' ' ' ... '

n

n n ii

m

m m ii

R R R R R R

R R R R R R

−=

−=

= =

= =

� ��� �

� ��� �

La descomposición 2 11 1

'n m

i ii i

preserva el join respecto a sii R Rρ ρ == =� �

La condición suficiente para preservar join es:

a) Preservación de propiedades:1 1

'n m

i i

i i

T T= =

=∪ ∪

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

' 'i iK es una clave de R R y de R R= =� �

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 1 2

1 2

;R R

R R R R= =∏ ∏

que 1 2 1 2 y ( ) ( )R R R Card R Card R R⊆ ≤� �

Si se tienen en cuenta las hipótesis de condición suficiente:

( )Card R ≡ Nºvalores distintos de la clave K de R.

1 2

1

( ) ( )t R

Card R R s t∀ ∈

= ∑� , pudiendo afirmarse, en general, 20 ( ) ( )s t Card R≤ ≤ 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: 11 1

º( ) 1 º ( 1) º ( )t R t R

N Valores Ks t N Tuplas R N Valores clave R∀ ∈ ∀ ∈

= = ≠= = ≠∑ ∑

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

Page 13: Apuntes diseño BDR

Bases de Datos

Diseño de BD RelacionalesSevilla, Abril/2005, V 2005.01.1

Pág. 13 de 22

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)

Ciudad Cant

EstadoS# P#

Page 14: Apuntes diseño BDR

Bases de Datos

Diseño de BD RelacionalesSevilla, Abril/2005, V 2005.01.1

Pág. 14 de 22

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 S1 Londres 20 S2 París 10 S3 París 10

R3 S# P# Cant S1 P1 300 S1 P2 200 S1 P3 400 S1 P4 200 S2 P1 300 S2 P2 400 S3 P2 200

Page 15: Apuntes diseño BDR

Bases de Datos

Diseño de BD RelacionalesSevilla, Abril/2005, V 2005.01.1

Pág. 15 de 22

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)

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 { : }, X A L;A R; X ;A XSe cumple I) X es una superclave de R ó II) A es primo

iA Di L R∀ → ∈ ⊂ ⊂ ⊂/

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

R21 S# Ciudad S1 Londres S2 París S3 París

R22 Ciudad Estado Londres 20

París 10

X Y

K1 K2

X Y

K1 K2

K1

Page 16: Apuntes diseño BDR

Bases de Datos

Diseño de BD RelacionalesSevilla, Abril/2005, V 2005.01.1

Pág. 16 de 22

Este enunciado permite garantizar la ausencia de dependencias transitivas además de asegurar que la relación está en 2FN. En efecto:

( ) ( )Si R { : }, X A L;A R; y X superclave de R iA Di L ∀ → ∈ ⊂ No puede existir R con un grafo característico:

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 { : }, X A L;A R; X ;A XSe cumple I) X es una superclave de R

iA Di L R∀ → ∈ ⊂ ⊂ ⊂/

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

Noms

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

S# P# Cantidad

X Y

K1 K2

Page 17: Apuntes diseño BDR

Bases de Datos

Diseño de BD RelacionalesSevilla, Abril/2005, V 2005.01.1

Pág. 17 de 22

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 S1 Martin

S2 Rubén

R42 S# P# Cant S1 P1 300

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

Z

Y

A

Page 18: Apuntes diseño BDR

Bases de Datos

Diseño de BD RelacionalesSevilla, Abril/2005, V 2005.01.1

Pág. 18 de 22

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

Z Se perdería la dependencia XY →Z al buscar FNBC

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 Julieras California USA

Julieras Beaujolais Francia

Morgon Beaujolais Francia

Chablis Borgoña Francia

Chablis California USA

Jerez Rioja España

Jerez Michigan USA

GDF

VINO_1 Tipo País Julieras USA

Julieras Francia

Morgon Francia

Chablis Francia

Chablis USA

Jerez España

Jerez USA

VINO_2 Región País California USA

Beaujolais Francia

Borgoña Francia

Rioja España

Michigan 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

Tipo País

Región

X Y

Page 19: Apuntes diseño BDR

Bases de Datos

Diseño de BD RelacionalesSevilla, Abril/2005, V 2005.01.1

Pág. 19 de 22

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 � 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 Julieras California

Pulieras Beaujolais

Morgon Beaujolais

Chablis Borgoña

Chablis California

Jerez Rioja

Jerez Michigan

VINO_2 Región País California USA

Beaujolais Francia

Borgoña Francia

Rioja España

Michigan USA

VINO_3 � 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

Page 20: Apuntes diseño BDR

Bases de Datos

Diseño de BD RelacionalesSevilla, Abril/2005, V 2005.01.1

Página 20 de 22

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:

{ }1 2, ,.. pR R Rρ 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.

Page 21: Apuntes diseño BDR

Bases de Datos

Diseño de BD RelacionalesSevilla, Abril/2005, V 2005.01.1

Página 21 de 22

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

Page 22: Apuntes diseño BDR

Bases de Datos

Diseño de BD RelacionalesSevilla, Abril/2005, V 2005.01.1

Página 22 de 22

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,

Dirección) (Población, Dirección) Población/R2

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) Afición/R5

Dni/R4