Documentos de Académico
Documentos de Profesional
Documentos de Cultura
05 Normalizacion
05 Normalizacion
Normalizacin
Dependencias funcionales y normalizacin en BD relacionales Elmasri/Navathe 02 Algoritmos de diseo de BD relacionales y dependencias adicionales Elmasri/Navathe 02 Methodology Monitoring and tunning of the operational system Connolly/Begg02 Introduccin (14.1) Dependencias funcionales (14.2) Descomposicin de relaciones (15.1) Formas normales (14.3, 14.4, 14.5) Desnormalizacin Hasta ahora hemos hecho empleando el sentido comn. diseos de BD
Los atributos se han agrupado en relaciones de una forma natural y lgica. Hay agrupaciones que pueden ser mejores que otras: hace falta una medida formal de la bondad de los diseos. A continuacin veremos que, en general, se tiende a disminuir: Anomalas de actualizacin redundancia en tuplas Valores nulos Tuplas espurias debidas a
DBD Tema 5
DBD Tema 5
Anomalas de actualizacin
Asig_Alum
Asig NomAsig CrT CrP Dpto 111 111 111 111 222 111 333 333 333 DBD DBD DBD DBD PBD DBD PPI PPI PPI 4 4 4 4 4 4 4 4 4 2 2 2 2 2 2 2 2 2 DMC DMC DMC DMC DMC DMC DIE DIE DIE
Modificacin del director de DMC
Dir Alum NomAlum Aula 777 777 777 777 777 777 555 555 555 123 213 321 132 123 231 123 132 231 Juan Luisa Dolores Paco Juan Arantza Juan Paco Arantza 313 125 212 313 111 111 121 121 121
Borrado del alumno Juan
Asig NomAsig CrT CrP Dpto 111 222 333 Dpto Dpto DMC DIE DBD PBD PPI 4 4 4 2 2 2 DMC DMC DIE
Modificacin: El director de DMC cambia a 888 Hay que modificar 6 tuplas! Borrado: se elimina al alumno Juan (DNI=123) Hay que Borrar 3 tuplas! Se pierden los datos de PBD! Insercin: se aade la asignatura 444 con INSERT(444,BD,4,2,DMC,888, Null,Null, Null) No se puede! Violacin de integridad de entidades! Insercin: Si se inserta un alumno existente INSERT(444,BD,4,2,DMC,888, 231, Felipe, 121) podramos introducir datos incoherentes (el 231 debera ser Arantza)
DBD Tema 5 3
Alumno Alum NomAlum 123 213 321 132 231 Juan Luisa Dolores Paco Arantza
Pauta de diseo: Disear los esquemas de modo que no haya anomalas de actualizacin Si las hay, hay que documentarlas y sealarlas con claridad
DBD Tema 5 4
Valores NULL
Almacenar valores NULL supone ocupar espacio de manera innecesaria Adems pueden confundirse sus significados: No aplicable (N/A) Desconocido (Unknown) Pendiente (Pending) Los nulos dificultan construccin de ciertas consultas (ejemplo sumas y resto de funciones agregadas) Solucin Si hay muchos NULL (permanentes), definir ms relaciones
Asignatura Asignatura Asig NomAsig AulaVirtual 111 222 444 555 777 888 DBD PBD ABD BD MP TP 1 null null 2 null null Asig NomAsig 111 222 444 555 777 888 DBD PBD ABD BD MP TP
Tuplas espurias
Son las tuplas inesperadas del resultado de una reunin. Cuando aparecen se pierde informacin
NomAsig NomAlum Aula PBD DBD DBD PBD Juan Juan Leire Leire 330 318 121 330 Tabla original
Proyecciones () NomAsig NomAlum PBD DBD DBD PBD Juan Juan Leire Leire NomAsig NomAlum Aula PBD DBD DBD DBD DBD PBD Reunin (|X|) Juan Juan Juan Leire Leire Leire 330 318 121 318 121 330 Tuplas espurias
Pauta de diseo: Las condiciones de una reunin deberan basarse (por ejemplo) en la igualdad entre una clave primaria y una extranjera que haga referencia a dicha clave primaria: as no aparecen tuplas espurias
DBD Tema 5 6
DBD Tema 5
DBD Tema 5
DBD Tema 5
X Y / Y X DNINombre_Pila frente a Nombre_PilaDNI Las DF provienen de la semntica de los atributos (universo del discurso) Utilizaremos la siguiente representacin grfica de las DF en una relacin:
(R1) Reflexiva: Y X XY AA ABC AB ABC AC (R2) Aumento: {XY} XZYZ AA AC BC Z ABC ABC A Z CZ BCD ZD
CodAsig NomAsig CrT CrP Dpto NomDpto Dir Alum NomAlum Aula
DBD Tema 5
DBD Tema 5
10
EMPLEADO_DPTO
F={NSS{NomEmp, FNcto, Direccin, NDpto}, NDpto{NomDpto, NSSJefe}} Por ejemplo se pueden inferir:
NSSNSS
(R1)
NSS{NomDpto, NSSJefe} (R3) NDpto NomDpto (R4) NSS{NomEmp, FNcto, Direccin, NDpto, NomDpto, NSSJefe} (R5) ...
DBD Tema 5
11
DBD Tema 5
12
E est cubierto por F si Toda DF de E est en F+ O sea, toda DF de E se deduce de F Para saber si F cubre a E Calcular X+ respecto a F, para cada DF XY de E Comprobar que YX+ E es equivalente a F si E+ = F+ O sea, si E cubre a F y viceversa
DBD Tema 5
13
DBD Tema 5
14
Conjunto F de DF mnimo
El conjunto de DF F es mnimo si: Est en forma cannica: toda DF tiene un solo atributo en la parte derecha No contiene redundancias: Ninguna DF se puede inferir de las dems: No se puede eliminar ninguna DF de F y mantener el conjunto de DF equivalente a F Ninguna DF XA redundantes en X: tiene atributos
Fmn F
Para cada DF XA de Fmn Para cada atributo BX Si Fmn{XA}{X{B}A} equivalente a Fmn entonces Sustituir en Fmn XA por X{B}A
//Eliminar las DF que se pueden inferir
No se puede sustituir una DF XA de F por otra YA donde YX y seguir teniendo un conjunto de DF equivalente a F Cobertura mnima Fmn del conjunto F de DF: conjunto de DF mnimo equivalente a F. Un conjunto de DF puede tener varias coberturas mnimas.
Para cada DF XA de Fmn Si Fmn{XA} equivalente a Fmn entonces Fmn Fmn {XA} Ejemplo: F={DNINom, {DNI,CdAsig}{Nom, Aula}, CdAsig{NomAsig,crdT}, NomAsigcrdT} Forma cannica: { DNINom, {DNI,CdAsig} Nom, {DNI,CdAsig}Aula, CdAsigNomAsig, CdAsigcrdT, NomAsigcrdT } Atributos redundantes a la izquierda: {DNI,CdAsig} Nom DF que se pueden inferir: CdAsigcrdT Fmn= {DNINom, {DNI,CdAsig} Aula, CdAsigNomAsig, NomAsigcrdT }
DBD Tema 5
15
DBD Tema 5
16
Los atributos que no estn en ninguna DF (columna sin puntos) forman parte de todas las claves (H). Eliminar esas columnas:
A B C D E F GH I B+ + CD E+ F+ I+
Buscar columnas con mnimo nmero de puntos: el o los atributos de la fila o filas forman parte de la clave:
I y E forman parte de todas las claves A B C D E F GH I B+ + CD + E + F I+
Las claves descubiertas son: HIEB y HIECD Si alguna fila de las introducidas es determinada parcialmente por otra DF, como ocurre con FC, donde C es parte de la fila CD, entonces se puede sustituir, en las claves donde aparece, C por F para obtener nuevas claves: HIEF FD Por lo tanto en nuestro caso encontramos tres claves: HIEB, HIECD y HIEFD
Eliminar todas las columnas determinadas por los atributos de esas filas
A B C D E F GH I B+ CD+ + E + F I+
Los pasos anteriores no conforman un algoritmo bien demostrado pero ayudan a descubrir las claves en gran parte de los casos ms habituales. Se pueden encontrar algoritmos demostrados formalmente en Saiedian y otros Computer Journal 1996 y en Fadous y Forsyth ACM SIGMOD 1975 Tambin existe una herramienta que acompaa al libro Diseo de BD relacionales de Adoracin de Miguel y otros, Ed. RAMA 1999
DBD Tema 5
17
DBD Tema 5
18
Descomposicin
Una descomposicin de la relacin R es un conjunto de relaciones {R1, R2, .. Rn} que conserva todos los atributos de R: (proyeccin de R) Cada Ri = <Atributos>R Cada atributo de R se encuentra en alguna Ri Para cualquier extensin r de R se cumple: r r1 * r2 * r3 * * rn (* es reunin natural) Esto significa (r... y no r=... ) que la reunin natural de las proyecciones puede generar tuplas espurias.
G= Fi ABC D E
CD puede inferirse a partir de G? NO, entonces F+G+, luego NO se conservan las dependencias Ejemplo 2: F ABC CDE ABF E F R1(A,B,C) y R2(C,D,E,F) F1 ABC F2 CDE E F G= Fi ABC CDE E F
Necesitamos establecer una forma de comprobar que la descomposicin NO conlleva: La desaparicin de DF La aparicin de tuplas espurias
ABF puede inferirse a partir de G? SI, entonces F+=G+, luego S se conservan las dependencias
A. Jaime, C. Domnguez 2005
DBD Tema 5
19
DBD Tema 5
20
G= Fi ABC
{R1, R2} es una descomposicin sin prdidas de R si y slo si al menos una de estas dos DF aparece en F+, siendo F el conjunto de DF de R : R1 R2 R1 R1 R2 R2 Los atributos de reunin natural (R1R2) son bien superclave de R1 o de R2
DBD Tema 5 22
CDE puede inferirse a partir de G? NO, entonces F+G+, luego NO se conservan las dependencias
DBD Tema 5
21
Proceso de normalizacin
Descomposicin de esquemas de relacin insatisfactorios Repartiendo sus atributos entre otros esquemas de relacin ms pequeos Estos otros esquemas poseen propiedades deseables: menos anomalas de actualizacin La descomposicin debe : Conservar los atributos
sacrifica a veces) Definicin de descomposicin
Relacin normalizada
Buen diseo
Llegar a la FN ms alta
DBD Tema 5
23
DBD Tema 5
24
Nom PERSONA
Tfnos
Primo: traduccin del ingls prime. Otros libros lo traducen por atributo principal
DBD Tema 5
25
DBD Tema 5
26
2FN: Ejemplos
Clave nica: {NSS, NProy}
DF parcial
no primo
no primo
La relacin R est en 2FN si y slo si: Est en 1FN Todo atributo no primo depende funcionalmente de manera total de toda clave de R (primaria o candidata) SOLUCIN: Las DF parciales se llevan a nuevas tablas En la tabla original queda la clave y los atributos que dependan totalmente de ella R A B C D E
Clave nica: AB
NSS NomEmp
Clave candidata: BC
R1 A B C
R1 A B C E
R2 B D
R A B C D R2 C D
DF parcial de clave candidata
DBD Tema 5
27
DBD Tema 5
28
DF parcial
Una relacin R est en 3FN si y slo si: Est en 2FN Para toda DF X Y de R: X es superclave o bien Y es atributo primo
Esto supone que no hay dependencias transitivas respecto a claves candidatas AX (XA) XY y A clave candidata
Actualizar precio de un producto modificar 1 tupla Insertar nuevo producto se conoce toda la clave de la nueva tupla: PROD4 Borrar una venta no se pierde informacin de ningn Producto Producto est en 2FN, pero ...
Producto CdProd Precio Suminis DirSum DVD_20 40 ACR Barcelona TV_100 80 Altus Teruel CAD_9 80 ACR Barcelona C_VID_3 360 ACR Barcelona
SOLUCIN: R(A,X,Y,B) donde X Y incumple 3FN Crear otra relacin con X+, con X como clave Eliminar Y de R R1 A X B R A X Y B R2 X Y
Claves: A
X no superclave
Y no primo
DBD Tema 5
29
DBD Tema 5
30
3FN: Ejemplos
Asignatura
no superclave
no primo
no primo
Asignatura COD_ASG NOM_ASG CRED DPTO Departamento DPTO NOM_DPTO DIR_DPTO ASIG
N 1
DPTO
Actualizar DirSum de un suministrador modificar 1 tupla Sin embargo, en el siguiente caso, donde:
En cada tienda, cada producto es vendido por un nico suministrador Cada suministrador distribuye un solo producto Un mismo producto puede venderse en varias tiendas
transitiva
rea Precio
Borrar las tuplas de Eroski conlleva eliminar tambin que PTT suministra Prod2
31
A. Jaime, C. Domnguez 2005
DBD Tema 5
DBD Tema 5
32
FNBC: ejemplos
Una relacin R est en FNBC si y slo si: Est en 3FN Para toda DF X Y de R X es superclave
R A B C D
R1 A B D
C primo
SOLUCIN: R1 C B R A B C
R2 D C
D no superclave
Claves: AB y AC B es C no
R2 A C primo superclave
Sin prdidas: R1R2R1 C no superclave Claves: AB, EF, AF y CF E primo
En ocasiones se pierde alguna DF ({A,B}C) Entonces habr que replantearse cul es la clave de R2: probablemente la combinacin de atributos de R2
R1 A F C D R2 F B R3 C E
R A B C D E F
B primo
F no superclave
R1 A B R1 C B
DBD Tema 5
33
DBD Tema 5
34
TtuloJefe
Suministro_1
Suministro_2
CdTienda Suministrador Suministrador CdProd Suministro_1 CdTienda Suministrador Eroski ACME Eroski PTT Carrefour ACME Carrefour ATT Suministro_2 Suministrador CdProd ACME Prod1 PTT Prod2 ATT Prod5
Id 1 2 3 4 5 6 7 8 9 10
CIF CdRes GrToxic Localidad JefeLab TtuloJefe E1 H1 5 Logroo Eloy Dr. Qumica E1 H2 7 Calahorra Eloy Dr. Qumica E2 H1 3 Arnedo Marta Ingeniero E3 H3 4 Haro Javier Ingeniero E3 H4 1 Haro Javier Ingeniero E3 H5 3 Haro Javier Ingeniero E4 H1 1 Ezcaray Irene Dr. fsica E4 H2 7 Ezcaray Irene Dr. fsica E4 H7 10 Anguiano Irene Dr. fsica E4 H3 1 Anguiano Irene Dr. fsica
Id CIF CdRes GrToxic Localidad JefeLab TituloJefe {CIF,CdRes}+ Id+ CIF+ Localidad+ JefeLab+
LocalidadCIF
A. Jaime, C. Domnguez 2005
DBD Tema 5
35
Id 1 2 3 4 5 6 7 8 9 10
CIF CdRes GrToxic Localidad E1 H1 5 Logroo E1 H2 7 Calahorra E2 H1 3 Arnedo E3 H3 4 Haro E3 H4 1 Haro E3 H5 3 Haro E4 H1 1 Ezcaray E4 H2 7 Ezcaray E4 H7 10 Anguiano E4 H3 1 Anguiano Claves candidatas: Id, {CIF,CdRes}, {Localidad,CdRes} Atributos no primos:GrToxic
A. Jaime, C. Domnguez 2005
CIF JefeLab TtuloJefe E1 Eloy Dr. Qumica E2 Marta Ingeniero E3 Javier Ingeniero E4 Irene Dr. fsica Clave candidata: CIF Atributos no primos: JefeLab, TtuloJefe
Id 1 2 3 4 5 6 7 8 9 10
CIF CdRes GrToxic Localidad E1 H1 5 Logroo E1 H2 7 Calahorra E2 H1 3 Arnedo E3 H3 4 Haro E3 H4 1 Haro E3 H5 3 Haro E4 H1 1 Ezcaray E4 H2 7 Ezcaray E4 H7 10 Anguiano E4 H3 1 Anguiano Claves candidatas: Id, {CIF,CdRes}, {Localidad,CdRes} Atributos no primos:GrToxic
CIF JefeLab E1 Eloy E2 Marta E3 Javier E4 Irene Clave candidata: CIF Atributo no primo: JefeLab JefeLab TtuloJefe Eloy Dr. Qumica Marta Ingeniero Javier Ingeniero Irene Dr. fsica Clave candidata: JefeLab Atributo no primo: TtuloJefe
38
DBD Tema 5
37
DBD Tema 5
Desnormalizacin
Objetivo: Introduccin de redundancia de forma controlada para mejorar la eficiencia del sistema: Para consultas frecuentes Ejemplo: evitar ejecutar reuniones (join)
no superclave
Ambas en FNBC
Se pierde algo de normalizacin REGLA de oro para desnormalizar: Considerarlo slo si el comportamiento no es satisfactorio, la relacin tiene una tasa de actualizacin pequea y una tasa de consultas alta
Localidad CIF Logroo E1 Calahorra E1 Arnedo E2 Haro E3 Ezcaray E4 Anguiano E4 CIF JefeLab E1 Eloy E2 Marta E3 Javier E4 Irene JefeLab TtuloJefe Eloy Dr. Qumica Marta Ingeniero Javier Ingeniero Irene Dr. fsica
39
Id 1 2 3 4 5 6 7 8 9 10
Localidad CdRes GrToxic Logroo H1 5 Calahorra H2 7 Arnedo H1 3 Haro H3 4 Haro H4 1 Haro H5 3 Ezcaray H1 1 Ezcaray H2 7 Anguiano H7 10 Anguiano H3 1
Estudiante_Proyecto
Si se accede frecuentemente a las tablas juntas Si se accede raramente a las tablas por separado Si hay pocos valores nulos (es decir, estudiantes sin proyecto)
A. Jaime, C. Domnguez 2005
DBD Tema 5
DBD Tema 5
40
Desnormalizacin (2)
Caso 2: Duplicar atributos no primos en asociaciones 1:N
A B 1
Desnormalizacin (3)
Caso 4: Duplicar atributos en asociaciones M:N
A B * *
A A1 A2 A3 A4 B B1 B2 B3 B4 AB A1 B1 A4 B4 CE CE Atributos redundantes
A A1 A2 A3 A4
*
Atributo B B1 B2 A1 A3 redundante CE Si el atributo duplicado (A3) se actualiza rara vez Si las consultas que usan B y A3 son frecuentes (se ahorra una reunin) Cada modificacin de A3 en A supone cambiarlo en todos los B relacionados Al borrar en A hay que cambiar A1 y A3 en B Precisa ms espacio (valores duplicados)
Evita la reunin de AB con A y B para acceder a A4 o B4 Si A4 o B4 aparecen en muchas consultas sobre AB pero sin necesidad de usar otros atributos de A o B Cambios de A4 en A o de B4 en B, supondrn muchas modificaciones en AB Caso 5: Atributos multivaluados
A A1 A2[0..3]
A A1 A2 B1 C1 CE CE B B1 B2 C1 CE C C1 C2
Para relacionar los A con C se ahorra una reunin Se crea una nueva restriccin FOREIGN KEY... Precisa ms espacio
A. Jaime, C. Domnguez 2005
Si el nmero mximo de valores es pequeo y conocido y no cambia a lo largo del tiempo Algunos SGBD dan la posibilidad de usar arrays No conviene que se originen demasiados nulos Las consultas esperadas no deberan ser complicadas
A. Jaime, C. Domnguez 2005
DBD Tema 5
41
DBD Tema 5
42
Otros refinamientos
Caso 6: Datos derivados Almacenar un dato o calcularlo? Ejemplo: Salario total de cada departamento A tener en cuenta: Ahorro de espacio para almacenar datos Costo de mantenimiento de la consistencia de los datos derivados frente al de calcular el dato derivado cada vez que se necesita Caso 7: Tablas extracto Para datos costosos de conseguir (con vista materializada) La actualidad al minuto no es imprescindible (puede valer la de ayer): la tabla extracto se actualiza peridicamente (cada da o cada semana, ...) La tabla extracto contiene los datos para ser usados Caso 8: Lista de elementos Inmueble Cd Calle CP Tipo Descr
Ejercicios
La tabla Tipo contiene las opciones disponibles. El atributo Tipo ocupa menos que descr. La descr slo se modifica en un sitio Si es frecuente el JOIN entre tipo e Inmueble, podemos incluirlo directamente en la tabla Inmueble
A. Jaime, C. Domnguez 2005
DBD Tema 5
43
DBD Tema 5
44
1)
1) F={B{A, C, D, E}, E{F, G}} 2) F={AB, C{D, E}, {A, C}F} 3) F={AB, B{C, D}, {A, C}F, {D, F}G} Calcula una cobertura mnima para cada uno de los siguientes conjuntos de DF:
2)
CUENTA
NBanco NomBanco NSucursal Ciudad ... Saldo DNI_Titular ... ... ... Direccin NCta Inters TfnoTitular ... ... DirTitular Hay que tener en cuenta que el nmero de cuenta completo incluye el cdigo de banco, el de sucursal y el n de cuenta
1) F={AB, CE, C{D, E}, {A, C}F, {A, C} {A, D, E}, {A, C, D}B} 2) F={AB, B{C, D}, {A,F}{B,F}, {A, C}F, {D, F}G, {A, B}{C, D}, {F,G}G, A D}
3)
EMPLEADO_DPTO
4)
EMPLEADO_PROY
DBD Tema 5
45
DBD Tema 5
46
6)
A B C D E F
R1 A B C D R2 A B E
1) R A B C D E
R1 A B C R1 A B D
R2 C D E R2 A B C E
2)
A B C D E F G H I J
7)
A B C D E F
R1 A B C D R2 C E R1 A B C R3 B F R5 D I J R2 A D E R4 F G H
2) R A B C D E F G H I J
3)
A B C D E F G H I J K
8)
A B C D E F G H I J
R1 A B C D E R2 B F G H R3 D I J
R1 A B C D R2 D E R3 B F R4 F G H R5 D I J
4)
R1 A B C D E ... ... F G A B C D E F
9)
A B C D E F G H I J
3) R A B C D E F G H I J K L M N O
R2 A H I J K ... ... L M N O
5)
R1 A B C D E ... ... F G N O R2 C D L M R1 A B C D E F G H I J K L M R2 A B C D E F G M N O
A. Jaime, C. Domnguez 2005
A B C D E F G H I J K L MN O
R3 H I J K B
DBD Tema 5
47
DBD Tema 5
48
DBD Tema 5
49