29
1 Tema 5 Universidad de Murcia Universidad de Murcia Facultad de Informática Facultad de Informática Diseño de Bases de Datos Diseño de Bases de Datos DBD. Diseño Relacional y Normalización 2 Diseño Relacional El diseño de una BD Relacional puede abordarse de dos formas distintas: Obteniendo el esquema relacional directamente: Objetos y reglas captadas del análisis del mundo real, representadas por un conjunto de esquemas de relación, sus atributos y restricciones de integridad. Realizando el diseño del esquema "conceptual" de la BD (modelo E/R) y transformándolo a esquema relacional.

Diseño de Bases de Datos - dis.um.esdis.um.es/~jfernand/0405/dbd/tema5.pdf · 2ª, 3ª FN (Codd, 1970), FNBC (Boyce/Codd, 1974) •Basadas en análisis de dependencias funcionales

  • Upload
    haliem

  • View
    226

  • Download
    0

Embed Size (px)

Citation preview

1

Tema 5

Universidad de MurciaUniversidad de Murcia

Facultad de InformáticaFacultad de Informática

Diseño de Bases de DatosDiseño de Bases de Datos

DBD. Diseño Relacional y Normalización 2

Diseño Relacional

El diseño de una BD Relacional puede abordarse de dos formas distintas:

Obteniendo el esquema relacional directamente:Objetos y reglas captadas del análisis del mundo real, representadas por un conjunto de esquemas de relación, sus atributos y restricciones de integridad.

Realizando el diseño del esquema "conceptual" de la BD (modelo E/R) y transformándolo a esquema relacional.

2

DBD. Diseño Relacional y Normalización 3

Ejemplo de diseño inadecuado

Redundancia de información: ciudad, distancia (ciudad); precio (artículo).Anomalías de modificación: !podemos tener el mismo artículo con dos precios! (igual argumento para ciudad y distancia). inconsistenciasAnomalías de inserción: ¿Podemos registrar nuevo artículo?, ¿Nuevo cliente?, ¿Nueva ciudad, distancia?Anomalías de borrado: Si eliminamos tupla de pedido de artículo A3 o cliente C4 pérdida de información.

DBD. Diseño Relacional y Normalización 4

Ejemplo de diseño inadecuado

Redundancia de información: datos repetidosdesperdicio de espacio, actualización complicada

mal diseño:anomalías, redundancia e inconsistencias de la informaciónimposibilidad para representar cierta informaciónpérdida de información

normalizaciónconversión de una relación con ciertos problemas a dos o más relaciones que no tienen tales problemas

3

DBD. Diseño Relacional y Normalización 5

Principio básico de diseño:

"hechos distintos se deben almacenar en objetos distintos"

DBD. Diseño Relacional y Normalización 6

Teoría de Normalización

Técnica formal de análisis y organización de datos; trata de evitar la redundancia y anomalías de actualización.

Introduce formalización en el diseño lógico de BDR. Además permite mecanizar parte del proceso al disponer de instrumentos algorítmicos de ayuda al diseño.

Proceso de normalización: disminuye las anomalías de actualización, pero penaliza las consultas (combinación consume muchos recursos).

4

DBD. Diseño Relacional y Normalización 7

Formas normales

un esquema de relación está en una determinada forma normal si satisface un determinado conjunto específico de restricciones definidas sobre los atributos del esquema (dependencias).

1ª FN (Codd, 1970)•Concepto de relación normalizada.

2ª, 3ª FN (Codd, 1970), FNBC (Boyce/Codd, 1974)•Basadas en análisis de dependencias funcionales.

4ª FN. Fagin, 1977•Basada en análisis de dependencias multivaluadas.

5ª FN. Fagin, 1979•Basada en análisis de dependencias de proyección /combinación.

DBD. Diseño Relacional y Normalización 8

Relaciones en 5ªFN

Relaciones en 4ªFN

Relaciones en FNBC

Relaciones en 3ªFN

Relaciones en 2ªFN

Relaciones normalizadas

Relaciones

Formas normales

5

DBD. Diseño Relacional y Normalización 9

Dependencias

restricciones de integridad impuestas por el usuario.propiedades inherentes al contenido semántico de los datos.se han de cumplir para cualquier extensión del esquema de una relación.

No se pueden demostrar, pero sí afirmar por observación del minimundo a representar.Del análisis de la extensión de un esquema relacional sólo podremos deducir que no existe una determinada dependencia.Si una dependencia es cierta para un determinado esquema de relación, una extensión no será válida si no la cumple.

DBD. Diseño Relacional y Normalización 10

Dependencia funcional

Sean A y B atributos de una misma tabla o relación R. Se dice que B es funcionalmente dependiente de A y se denota A B si todo posible valor de A tiene asociado un único valor de B, o lo que es lo mismo, en todas las tuplas de r(R)

en las que el atributo A toma el mismo valor “v1”, el atributo B toma también un mismo valor “v2”.

6

DBD. Diseño Relacional y Normalización 11

Dependencia funcional definición

Sean X e Y subconjuntos de A (A, conjunto de atributos de R). Decimos que X determina o implica a Y en R(= Y depende funcionalmente de X) si para dos tuplas cualesquiera de r(R) que tengan iguales valores en X, también son iguales los valores en Y. Se representa por X → Y

Def: Sean R(A:D), X ⊆ A, Y ⊆ A. X → Y si

∀ r(R), ∀ ti,tj ∈ r(R), [πx (ti)=πx(tj) ⇒ πy(ti) = πy(tj)]

(∀ t1, t2 ∈ r (t1[X] = t2[X] ⇒ t1[Y] = t2[Y] )

DBD. Diseño Relacional y Normalización 12

Diagrama de dependencias funcionales

Ejemplo: R ( A, DF ).R: pedidosA: {artículo, cliente, cantidad, precio, ciudad, distancia}. DF: ({artículo,cliente} {cantidad,precio,ciudad, distancia},

artículo precio,cliente {ciudad, distancia},ciudad distancia )

Diagrama de DependenciasFuncionales

7

DBD. Diseño Relacional y Normalización 13

Dependencia funcional plena o completa

Sea X (conjunto de atributos). Se dice que Y tiene dependencia funcional plena o completa de X,

si depende funcionalmente de X pero no depende de ningún subconjunto del mismo

X ⇒Y sii ¬∃ X' ⊂ X | X' → Y (X determina completamente "⇒" a Y si y solo si no existe un subconjunto X' de X tal que ese subconjunto X' determine funcionalmente a Y)

P.e. (artículo, cliente) ⇒ cantidad es una DF completa, pero(artículo, cliente) precio no es una DF completa puesto que artículo precio;

DBD. Diseño Relacional y Normalización 14

Dependencia funcional transitiva

Si X Y, Y-/ X, Y Z entonces Z depende transitivamente de X ( X-- Z ).

P.e.Cliente ciudad, ciudad -/ cliente (no determina funcionalmente), ycliente distancia,por tanto, ciudad --- distancia (cliente determina “transitivamente” a distancia).

8

DBD. Diseño Relacional y Normalización 15

Normalización de un esquema de BD Relac.

DBD. Diseño Relacional y Normalización 16

Segunda Forma Normal (2ªFN).

Un esquema de relación R(A,DF) está en 2ªFN si y sólo si

está en 1ªFN (es decir, si la relación está normalizada) y sus atributos no primarios dependen completamente de la clave primaria de R.(atributos no primarios: que no formen parte de la clave primaria).

Si una relación R no está en 2ª FN, se puede normalizar descomponiendo esa relación en:

Una relación con los atributos de clave primaria, más los atributos con dependencia completa de ella. Una relación para cada "parte" de la clave primaria, más los atributos que dependan funcionalmente de esa parte.

9

DBD. Diseño Relacional y Normalización 17

Descomposición a 2ª FN (informal)

Ejemplo: PEDIDOS se descompone en: PEDIDOS'({artículo,cliente, cantidad},

{[artículo,cliente] cantidad})ARTICULOS ({artículo, precio}, {artículo precio} )CLIENTES({cliente,ciudad,distancia},

{cliente ciudad,ciudad distancia})

DBD. Diseño Relacional y Normalización 18

Tercera Forma Normal (3ªFN)

Un esquema de relación R(A,DF) está en FN3 si y sólo si

está en FN2 y ninguno de sus atributos no primarios depende transitivamente de la clave primaria de R.

Es decir no hay DF transitivas.

Descomposición informal: Si una relación no estáen 3ª FN, y tenemos los conjuntos de atributos X,Y,Z tales que X Y, Y Z (por tanto X --- Z ):

Una relación formada por la clave primaria (X) más los atributos que dependen directamente de ella.Una relación para los atributos de Y y Z.

10

DBD. Diseño Relacional y Normalización 19

Descomposición a 3ª FN (informal)

Ejemplo: CLIENTES la descomponemos en:CLIENTES' ({cliente, ciudad}, {cliente ciudad})CIUDADES ({ciudad, distancia}, {ciudad distancia})

DBD. Diseño Relacional y Normalización 20

Implicación lógica de DFs.

Dado un esquema relacional R, una dependencia funcional df de R está implicada lógicamente por un conjunto de dependencias DF de R si cada ejemplar de la relación r(R) que satisface DF también satisface df.R({ABCGHI}, {A B, A C, CG H, CG I, B H} ¿ A H ?Si t1[A]=t2[A], A B ⇒ t1[B]=t2[B], B H ⇒ t1[H]=t2[H] ⇒ A H

Cierre (clausura) de DF: Dado un conjunto de dependencias funcionales DF, llamaremos cierre de DF, y lo representaremos por DF+, al conjunto de todas las dependencias funcionales posibles que implicadas lógicamente en DF.

11

DBD. Diseño Relacional y Normalización 21

Reglas de inferencia de DFsDado un conjunto DF de dependencias funcionales, podemos probar que se cumplen otras ciertas dependencias funcionales inferidas de DF."Axiomas" de Armstrong:Sea R (A:D); X ,Y, Z, W subconjuntos de A. Se verifica:

1) Reflexividad. Si X, conjunto de atributos, Y ⊆ X, entonces se verifica que X Y.

2) Aumentatividad. Si X Y, Z conjunto de atributos, entonces se verifica que XZ YZ.

(XY es lo mismo que X ∪ Y, unión)

3) Transitividad. Si X Y e Y Z, entonces se verifica que X Z.

Estas reglas forman un sistema completo de reglas de inferencia, porque dado DF permiten calcular DF+

Son correctas (seguras) puesto que no generan dependencias funcionales incorrectas.

DBD. Diseño Relacional y Normalización 22

Otras reglas

A partir de ellas, se pueden deducir otra serie de propiedades interesantes:

4) Unión.Si X Y y X Z, entonces X YZ.{(X Y), (X Z) [aumento]⇒ (XX XY), (XY ZY) [trans]⇒ (X YZ)}

5) Pseudotransitividad.Si X Y y WY Z, entonces WX Z.{ (X Y) [aumento]⇒ (WX WY) [trans, WY Z]⇒(WX Z)}

6) Descomposición.Si X Y y Z⊆Y, entonces X Z.{ (Z⊆Y) [reflex]⇒ (Y Z) [trans, X Y]⇒ (X Z) }

12

DBD. Diseño Relacional y Normalización 23

Ej. axiomas:

R({A,B,C,D,E},{A B, C D, D E})¿ AC ABCDE ?

1. A B (dada)2. AC ABC (aumento, 1, AC)3. C D (dada)4. D E (dada)5. C E (transitividad, 3, 4)6. C DE (union, 3, 5)7. ABC ABCDE (aumento, 6, ABC)8. AC ABCDE (transitividad, 2, 7)

DBD. Diseño Relacional y Normalización 24

Cierre de un descriptor

X+ : Conjunto de todos los atributos determinados funcionalmente por un descriptor X en DF. (X X+)Algoritmo de Cierre de un descriptor respecto a un DF:Entrada: R, DF. (suponemos que los atributos de partida son todos los contenidos en DF y R es un subconjunto de ellos)Salida: R+

Proceso:1) R+ := R 2) Repetir (hasta que no se añadan más atributos a R+):

2.1) Para cada X Y en DF:Si X ⊆ R+ e Y ⊄ R+ entonces R+ := R+ ∪ Y

[Comentarios: 1. R R ; 2. ∀ X ⊆ R+, R+ X (reflexiva);

si X Y, entonces R+ Y (transitiva); por tanto, Y puede ser incluido en R+ (unión) ]

13

DBD. Diseño Relacional y Normalización 25

Ejemplo cierre de un descriptor

R(A,B,C,G,H,I), (A B, A C, CG H, CG I, B H}¿(AG)+?1) AG AG2) Repetir2.1) Primer “Para cada”

21a. A B, B ⊄ AG ⇒ AG AGB21b. A C, C ⊄ AGB ⇒ AG AGBC21c. CG H, H ⊄ AGBC ⇒ AG AGBCH21d. CG I, I ⊄ AGBCH ⇒ AG AGBCHI21e. B H, H ⊂ AGBCHI ⇒ nada

Segundo…21a,21b,21c,21d,21e ⇒ nada

No se añaden más atributos => Fin Repetir

DBD. Diseño Relacional y Normalización 26

Aplicaciones de cierres

Dado DF, comprobar si una dependencia funcional X Y se halla en DF+

Si X X+, Y ⊆ X+ ⇒ X Y ∈ DF+ (descomposición)

Comprobar superclavesDefinición de Superclave: Dado R(A, DF), se denomina superclave SK de R a un subconjunto no vacío de A tal que SK A sea derivable de DF;

• SK ≠ ∅ , SK A ∈ DF+

• Comprobaremos si SK+ en DF contiene todos losatributos de R.

Definición de clave candidata: Dado R(A, DF), se denomina clave K de R a un subconjunto no vacío de A que sea superclave y no exista ningún subconjunto estricto K' de K tal que K' A ;

• K ≠ ∅ ∧ K A ∈DF+ ∧ ¬ ∃ K'⊂ K | K‘ A

14

DBD. Diseño Relacional y Normalización 27

Aplicaciones de cierres

Dado R(A,DF), Cálculo de DF+

Para cada Y ⊆ A, •Se obtiene Y+ en DF•Para cada Z ⊆ Y+ se genera una dependencia funcional Y Z

Equivalencia de dos conjuntos de dependencias: Dos conjuntos de dependencias funcionales DF1 y DF2

son equivalentes si, y sólo si, DF1+ = DF2+

(todas las dependencias de DF2 son inferibles de DF1 y viceversa).Si para toda X Y ∈ DF2 se cumple Y ⊆ X+ en DF1 y recíprocamente, para toda Z W∈DF1 se cumple W⊆Z+ en DF2, entonces DF1 y DF2 son equivalentes.

DBD. Diseño Relacional y Normalización 28

Recubrimiento minimal

Las dependencias funcionales son restricciones de integridad que deben ser comprobadas en caso de actualización. Interesa minimizar este conjunto de restricciones.Un recubrimiento minimal DFm es un conjunto de dependencias equivalente a DF.

De entre todos los conjuntos equivalentes interesan aquellos conjuntos de dependencias elementales que cumplen la propiedad de no contener ninguna dependencia redundante (e.d. ninguna dependencia que se pueda deducir del resto aplicando los axiomas de Armstrong), ni atributos extraños.

15

DBD. Diseño Relacional y Normalización 29

Recubrimiento minimal

Dependencia redundante:una dependencia d ∈DF es redundante si se puede derivar de {DF - d} mediante la aplicación de los axiomas de Armstrong.

Atributo extraño (raro):Dada X Y ∈ DF, a ∈ X se dice que es un atributo extraño (ajeno) en la dependencia si la dependencia (X-a) Y ∈ DF+.

DBD. Diseño Relacional y Normalización 30

Algoritmo para obtener un Recubrimiento minimal:

Entrada: F, Conjunto de dependencias funcionales elementales(plenas, no triviales, único atributo en implicado).Salida: H, recubrimiento minimal de F.Proceso: (X,L: descriptores (conjuntos de atributos); A,B: atributos)1. Eliminación de atributos extraños:

1.1. Repetir para cada X → B ∈ F :1.1.1. L := X1.1.2. Repetir para cada A ∈ X:

Si B ∈ (L - A)+F entonces L := L - A

1.1.3. DF := DF - ( X → B ) + ( L → B ) 2. Eliminación de dependencias redundantes:

2.1. H := F2.2. Repetir para cada X → A ∈ DF:

G := H - ( X→A)Si A ∈ X+

G entonces H := G

16

DBD. Diseño Relacional y Normalización 31

Técnicas principales para el Diseño Relacional

Diseño del esquema conceptual en un modelo de datos de alto nivel (como el ER) y su posterior transformación en un conjunto de relaciones.

En esta técnica podemos aplicar informalmente los principios de normalización comentados (evitar dependencias parciales o transitivas), tanto durante la fase de diseño conceptual, como posteriormente al conjunto de relaciones obtenidas mediante el proceso de transformación.

DBD. Diseño Relacional y Normalización 32

Técnicas principales para el Diseño Relacional

Considerar el diseño de la BD relacional estrictamente en términos de dependencias (funcionales y de otros tipos que veremos) entre los atributos de la BD.

Este proceso es denominado algunas veces como síntesis relacional, puesto que los esquemas de relación son “sintetizados” mediante el adecuado agrupamiento de atributos. Cada esquema de relación representaría a un grupo de atributos lógicamente coherente y poseería las ventajas asociadas con la normalización (no redundancia, no anomalías, ...).Durante el proceso de normalización descompondremos un determinado esquema de relación que no esté en una determinada forma normal en múltiples esquemas de relación hasta un diseño final con relaciones en las que se hubiese alcanzado la forma normal deseada. Caso extremo (descomposición estricta):

• comenzamos sintetizando un único esquema de relación (relaciónuniversal), que incluye todos los atributos de la BD.

17

DBD. Diseño Relacional y Normalización 33

Objetivos de la normalización.

Dado un conjunto A de atributos y el conjunto DF de dependencias existentes entre ellos, R(A, DF), se trata de transformar este esquema origen en un conjunto de n esquemas de relación {Ri (Ai, DFi)}, 1≤ i ≤ n [esquemas resultantes], equivalentes y mejores que R:

a) Conservación de la información.b) Conservación de dependencias.c) Mínima redundancia de los datos (mayor grado de normalización).

DBD. Diseño Relacional y Normalización 34

a. Conservación de la información:a.1. Conservación de atributos: el conjunto de

atributos de los esquemas resultantes ha de ser igual al conjunto de atributos del esquema origen.

a.2. Conservación del contenido (tuplas): para toda extensión r de R, la reunión natural (natural join, * ) de las relaciones resultantes tiene que producir la relación origen.

(nota: * operador de reunión natural, πoperador de proyección)

A = Aii 1

n

=U

Si la descomposición no cumple esta propiedad, e.d. no es una descomposición y reunión sin pérdidas (de información), cuando se aplica la operación de reunión natural a las relaciones resultantes, aparecen tuplas espúreas en la relación resultado

i= 1

n

Ri r r∗ =π ( )

18

DBD. Diseño Relacional y Normalización 35

descomposición y reunión con pérdida

LIBROS COD-LIBRO EDITORIAL PAIS 9030 RAMA ESPAÑA 9040 RAMA ESPAÑA 9110 PARANINFO ESPAÑA 9234 ANAYA ESPAÑA 9567 ADDISON EE.UU.

COD-LIBRO PAIS 9030 ESPAÑA 9040 ESPAÑA 9110 ESPAÑA 9234 ESPAÑA 9567 EE.UU.

EDITORIAL PAIS RAMA ESPAÑA RAMA ESPAÑA PARANINFO ESPAÑA ANAYA ESPAÑA ADDISON EE.UU.

COD-LIBRO EDITORIAL PAIS 9030 RAMA ESPAÑA 9030 PARANINFO ESPAÑA 9030 ANAYA ESPAÑA 9040 RAMA ESPAÑA 9040 PARANINFO ESPAÑA 9040 ANAYA ESPAÑA 9110 RAMA ESPAÑA 9110 PARANINFO ESPAÑA 9110 ANAYA ESPAÑA 9234 RAMA ESPAÑA 9234 PANANINFO ESPAÑA 9234 ANAYA ESPAÑA 9567 ADDISON EE.UU.

*

π

π

DBD. Diseño Relacional y Normalización 36

Descomposición y Reunión Sin Pérdida

Propiedad RSP1: Sea R un esquema de relación y DF un conjunto de dependencias funcionales de R. R1 y R2 forman una descomposición de R que tiene la propiedad de reunión sin pérdida (lossless join) si por lo menos una de las dependencias funcionales siguientes estáen DF+:

R1 ∩ R2 → R1 - R2

R1 ∩ R2 → R2 - R1

19

DBD. Diseño Relacional y Normalización 37

Descomposición y Reunión Sin Pérdida

Propiedad RSP2:Si una descomposición D = {R1, R2,..., Rm} de R tiene la propiedad de reunión sin pérdida con respecto al conjunto de dependencias funcionales DF sobre R, y si una descomposición D1 = {Q1, Q2, ..., Qk} de Ri tiene la propiedad de reunión sin pérdida con respecto a la “proyección de DF sobre Ri”, entonces la descomposición D2 = {R1, R2, ..., Ri-1 , Q1,.Q2, ..., Q k , Ri+1 , ..., Rm} de Res una descomposición reunión sin pérdida respecto a DF.

“restricción / proyección de DF sobre Ri ” : subconjunto de las dependencias funcionales X → Y en DF+ tales que los atributos en X U Y están todos contenidos en Ri )

DBD. Diseño Relacional y Normalización 38

b. Conservación de dependencias.

Sea DF un conjunto de dependencias funcionales sobre R y sea D = {R1, R2, ..., Rn} una descomposición de R.

La restricción (proyección) de DF sobre Ri es el conjunto DFi

de todas las dependencias de DF+ que incluyen únicamente atributos de Ri.

Sea DF' = DF1 ∪ DF2∪ ... ∪ DFn un conjunto de dependencias funcionales en R.

La descomposición D de R conservará las dependencias siDF'+ = DF+ (equivalentes)

20

DBD. Diseño Relacional y Normalización 39

Forma Normal de Boyce y Codd (FNBC).

Un esquema de relación R(A,DF) está en FNBC si ∀ X → Y ∈ DF+ no trivial (Y ⊄ X), se verifica que X es superclave de R. (X+ = A)

Un diseño de BD está en FNBC si cada esquema de relación de la BD está en FNBC.

DBD. Diseño Relacional y Normalización 40

Algoritmo de descomposición:a. Tomaremos una X → Y ∈ DF+ no trivial y X no superclave.

Siempre será posible puesto que R no está en FNBC, e.d. existe al menos una dependencia funcional X → Y, tal que X no superclave. Si X, Y no disjuntos, tomaríamos X → (Y-X) (por axiomas de Armstrong).

b. Obtendremos dos proyecciones S(XY, DFs) y T((A-Y), DFt). (DFs, DFtrestricciones de DF sobre S y T).

Como X → Y ∈ DF+ y sus atributos son los de S, también es aplicable a S; por aumento X→XY, es decir X superclave (no viola condición para que S esté en FNBC).

c. Si S o T no están en FNBC, las descomponemos.Llegará un momento en que, o bien no hay dependencias cuyo antecedente no sea superclave (es decir, tablas en FNBC), o se llega a una relación binaria indescomponible la cual estará en FNBC (puesto que si V(A1,A2) no en FNBC, quiere decir que hay una dependencia A1→A2, no trivial con antecedente no superclave: imposible, pues por Ax.A A1→A1A2).

21

DBD. Diseño Relacional y Normalización 41

Algoritmo FNBC:

resultado := {R}; listo := falso; (Calcular DF+;)Mientras (no listo) hacer:

Si ( Ri ∈ resultado | Ri no en FNBC )Sea (X→Y en Ri, no trivial | X → Ri ∉DF+ y X∩Y= ∅ )resultado:=(resultado - Ri) ∪ ( Ri - Y) ∪ ( XY );

si no listo:=verdadero;

• Por el procedimiento seguido, la descomposición es de reunión sin pérdida (reversible por reunión natural, propiedades RSP1 y RSP2).

• No puede asegurarse en general que se hayan preservado las dependencias.

DBD. Diseño Relacional y Normalización 42

Tercera Forma Normal (FN3).

Definiciones generales,

atributo primo: atributo que forma parte de una clave candidata.

Un esquema de relación R está en FN2 si está en FN1 y todo atributo no primo A de R depende funcionalmente de manera completa de toda clave candidata de R.

Un esquema de relación R está en FN3 si está en FN2 y ningún atributo no primo depende transitivamente de alguna clave candidata de R.

22

DBD. Diseño Relacional y Normalización 43

Tercera Forma Normal (FN3).

Redefinición de FN3: Un esquema de relación R(A,DF) está en FN3 si ∀ X → Y ∈ DF+ se verifica alguna de las siguientes condiciones:

X → Y trivial.X es superclave de R.X no es superclave y cada atributo A ∈ (Y - X) está

contenido en una clave candidata de R.

Un diseño de BD está en FN3 si cada esquema de relación de la BD está en FN3.

⎬ FNBC

DBD. Diseño Relacional y Normalización 44

Ejemplo: FN3 y FNBCimparte (estudiante, curso, profesor)

DF: (1) estudiante, curso → profesor;(2) profesor → curso

K: { (estudiante, curso), (estudiante, profesor)}No en FNBC pues antecedentes de (2) no es superclave, pero si en FN3 pues los consecuentes son atributos primos.

Descomposición a FNBC por profesor curso:

Imparte R-(Y) XY ESTUD CURSO PROF ESTUD PROF PROF CURSO Díaz Bases de Datos Roberto Díaz Roberto Alberto Redes Fernández Bases de Datos Gonzalo Fernández Gonzalo Alonso Redes Fernández Redes Alberto Fernández Alberto Fulgencio Algoritmia Fernández Algoritmia Fulgencio Fernández Fulgencio Gonzalo Bases de Datos García Bases de Datos Marcos García Marcos Marcos Bases de Datos García Redes Alonso García Alonso Roberto Bases de Datos López Bases de Datos Marcos López Marcos Rueda Bases de Datos Gonzalo Rueda Gonzalo

PC

E

23

DBD. Diseño Relacional y Normalización 45

Algoritmo de síntesis (descomposición de R a FN3):

a. Reemplazar X A1A2 ... An por X → A1, X → A2, ... X→ An en DFb. Calcular DFm recubrimiento mínimo de DF;c. Creamos un esquema de relación { X ∪ A1 ∪... ∪ An} para cada

conjunto de dependencias en DFm con el mismo antecedente X. X → A1, X → A2, ... X→ An son todas las dependencias en Dfm con X como antecedente. X será la clave de esta relación.

d. Si quedan atributos de R sin colocar en ningún esquema de relación:creamos un nuevo esquema de relación con todos ellos.

e. Si ningún esquema de relación contiene una clave de RCreamos un esquema de relación para los atributos de cualquier clave de R

• Cada Ri en FN3 pues se parte de DFm (eliminando parciales y transitivas).• Asegura la conservación de dependencias construye una relación por cada una.• Garantiza que la descomposición es de reunión sin pérdida pues al menos un

esquema contiene una clave candidata de la relación que se descompone.

DBD. Diseño Relacional y Normalización 46

Otras dependencias

dependencias funcionales: el tipo de dependencia más importante en la teoría de diseño de bases de datos relacionales. Sin embargo, en muchos casos las relaciones tienen restricciones que no pueden ser expresadas mediante dependencias funcionales. En los siguientes puntos, trataremos estos tipos adicionales de dependencias que pueden ser usados para representar otros tipos de restricciones sobre relaciones. Estas dependencias nos conducirán a formas normales más avanzadas

24

DBD. Diseño Relacional y Normalización 47

Dependencias multivaluadas

son una consecuencia de la 1ª forma normal, la cual no permite que un atributo en una tupla tome un conjunto de valores. Si tenemos dos o más atributos multivaluados independientes (no directamente relacionados) en un mismo esquema de relación, tendremos que repetir cada valor de un atributo con cada valor de los otros atributos para conservar la instancia de la relación consistente.

AUTORES (no normalizada) AUTOR MATERIA INSTITUCION DATE LENGUAJE SQL

DISEÑO DE BD RELATIONAL INST. CODD&DATE CONS.

ULLMAN DISEÑO DE BD BASES CONOCIMIENTO

STANFORD UNIV.

AUTORES (NORMALIZADA) AUTOR MATERIA INSTITUCION DATE LENGUAJE SQL RELATIONAL INST DATE DISEÑO DE BD RELATIONAL INST DATE LENGUAJE SQL CODD&DATE CONS DATE DISEÑO DE BD CODD&DATE CONS. ULLMAN DISEÑO DE BD STANFORD UNIV. ULLMAN BASES CONOCIMIENTO STANFORD UNIV.

DBD. Diseño Relacional y Normalización 48

Dependencias multivaluadas

Definición: Dada la relación R(A), se cumple que X ↠ Y (X multidetermina a Y, X e Y descriptores, subconjuntos de A) si para cada valor de X hay un conjunto de cero o más valores de Y, independientemente de los valores de los atributos (A-XY).

Dado R(A), X ↠ Y en R si y sólo si ∀ u, v ∈ r(R) tales que u[X]=v[X] , u[Y] ≠ v[Y] , u[A-X-Y] ≠ v[A-X-Y]∃ t, w ∈ r(R) tales que

u[X] = v[X] = t[X] = w[X] ∧ u[Y] = t[Y] ∧ v[Y] = w[Y]∧ u[A-XY] = w[A-XY] ∧ v[A-XY] = t[A-XY]

Por simetría, X ↠ (A-XY), e.d. X ↠ Y | Z (Z= A-XY).

AUTOR MATERIA INSTITUCION DATE LENGUAJE SQL RELATIONAL INST u DATE DISEÑO DE BD CODD&DATE CONS v DATE LENGUAJE SQL CODD&DATE CONS t DATE DISEÑO DE BD RELATIONAL INST. w ULLMAN DISEÑO DE BD STANFORD UNIV. ULLMAN BASES CONOCIMIENTO STANFORD UNIV.

25

DBD. Diseño Relacional y Normalización 49

Para cada valor de X, existe un conjunto de 0 o más valores de Y, independientemente de los valores del resto de atributos (A-XY)Que se verifique X → Y sólo depende de X y de Y, pero que se cumpla X ↠ Y depende, además, del resto de los atributos (las dmv dependen del contexto)

• X ↠ Y significa que siempre que aparezcan dos tuplas con distintos valores de Y, pero el mismo valor en X, los valores de Y deberán repetirse con cada valor distinto de A-XY que ocurra con dicho valor de X

Dependencias Multivaluadas Triviales si X = Y, Y ⊂ X, X ∪ Y = A

DBD. Diseño Relacional y Normalización 50

Reglas de InferenciaR1. Reflexiva DF’s : Si Y ⊆ X ent. X → YR2. Aumento DF’s : X → Y |= XZ → YZR3. Transitiva DF’s : X → Y, Y → Z |= X → Z

R4. Complemento DMV’s : X ↠ Y |= X ↠(A - (X ∪ Y))

R5. Aumento DMV’s : X ↠ Y, W ⊇ Z |= WX ↠ YZ

R6. Transitiva DMV’s : X ↠ Y, Y ↠ Z |= X ↠ (Z - Y)

R7. Replicación DF’s y DMV’s : X → Y |= X ↠ YR8. Coalescencia DF’s y DMV’s :

Si X ↠ Y y ∃ W tal que W∩Y=∅ y W→Z e Y ⊇ Z entonces X → Z

(R7 : DF caso especial de DMV, pues satisface la definición formal de DMV. Una DF es una DMV con la restricción adicional de que como máximo 1 valor de Y esté asociado a un valor de X).

26

DBD. Diseño Relacional y Normalización 51

Cuarta Forma Normal (FN4):R(A, DEP) en FN4 si y sólo si

para toda dependencia no trivial X ↠ Y ∈ DEP+, el antecedente X es superclave de R.

Descomposición sin pérdida de R en R1, R2 si:(R1 ∩ R2) ↠ (R1 - R2)

(simetría : (R1∩R2) ↠ (R2 - R1)

[Teorema (Fagin, 77):R(A,B,C) se puede descomponer (reunión sin pérdida) en

R1(A,B), R2(A, C) si y sólo si A ↠ B | C en R ]

DBD. Diseño Relacional y Normalización 52

Descomposición a FN4 de una relación R

a. Resultado= {R}b. Mientras que ∃ Q en Resultado, Q no en FN4

b1. Encuentre X ↠ Y en Q, no trivial, X no superclaveb2. Reemplace Q por (Q - Y) y (X ∪ Y)

27

DBD. Diseño Relacional y Normalización 53

Dependencias de Combinación

Las DF y DMV analizadas, permiten la descomposición sin pérdida de una relación en dos de sus proyecciones.Sin embargo, existen relaciones donde no se puede llevar a cabo una descomposición binaria sin perdida. Aun no existiendo DF ni DMV pueden existir redundancias y anomalías.

DBD. Diseño Relacional y Normalización 54

SPJ S# P# J# S1 P1 J2 S1 P2 J1 S2 P1 J1 S1 P1 J1

SP PJ JS S# P# P# J# J# S# S1 P1 P1 J2 J2 S1 S1 P2 P2 J1 J1 S1 S2 P1 P1 J1 J1 S2

SP * PJ

S# P# J# S1 P1 J2 (SP * PJ) * JS SPJ original S1 P2 J1 S2 P1 J1 S2 P1 J2 tupla espúrea S1 P1 J1

28

DBD. Diseño Relacional y Normalización 55

Dependencia de reuniónSea R(A), X1, X2, ..., Xn, conjuntos de atributos de A. A la condición de que la descomposición de R proyectando sobre X1, X2, ..., Xn sea reversible por reunión la llamaremos Dependencia de reunión: DR (X1, X2, ..., Xn)

En un esquema de relación R(A) se cumple la DC (X1, X2, ..., Xn ) si toda extensión r(R) se puede construir combinando proyecciones sobre X1,...,Xn :

r = π R1 [r] * ... * π Rn [r] (necesariamente (X1∪...∪Xn)=A)

La DR será trivial si algún Xi = A.

[ DR(X1,X2) puede escribirse también como X ↠Y|Z, donde X=X1∩ X2, Y=X1-X2, Z=X2-X1. Por tanto, las DMV pueden considerarse como un caso particular de las de reunión cuando n=2.]

DBD. Diseño Relacional y Normalización 56

Sea DC (R1,R2,R3) entonces <a1,b1,c1>∈ R sii <a1,b1> ∈ R1, <b1,c1> ∈ R2, <c1,a1> ∈ R3Es decir, si <a1,b1,c> ∈R,<a,b1,c1> ∈R,<a1,b,c1> ∈ R entonces también <a1,b1,c1> ∈ R.

[Cuando un suministrador S suministra el componente P, el proyecto J usa el componente P y el suministrador S suministra al menos un componente al proyecto J, entonces S también suministrará P a J]

SPJ S# P# J# S1 P1 J1 S1 P2 J2 S2 P2 J1 S3 P3 J2 S2 P1 J3 S1 P2 J1 DEBE EXISTIR S2 P1 J1 DEBE EXISTIR

Las dos últimas tuplas deben de existir en SPJ para que se cumpla la DR(SP,PJ,JS).

29

DBD. Diseño Relacional y Normalización 57

Quinta Forma Normal (FN5)

Un esquema de relación estará en FN5 con respecto al conjunto de dependencias F (DF, DMV, DC) si en cada dependencia de reunión DR(R1,...,Rn) no trivial en F+, cada Ri es una superclave de R.

La dificultad de la FN5 está en la identificación de las dependencias de combinación, las cuales no tienen una interpretación intuitiva.

Ejemplo SPJ: La clave de SPJ será (S#,P#,J#). Tenemos la DC (SP, PJ, JS), en donde ningún Ri es una superclave (contiene la clave) de SPJ. Por tanto SPJ no está en FN5.