Tema 5. Normalización Introducción Anomalías de actualización

Anuncio
Introducción
Tema 5. Normalización
•
Dependencias funcionales y normalización en BD
relacionales Elmasri/Navathe 02
Hasta ahora hemos hecho
empleando el sentido común.
•
Algoritmos de diseño de BD relacionales y dependencias
adicionales Elmasri/Navathe 02
Los atributos se han agrupado en relaciones de una
forma natural y lógica.
•
Hay agrupaciones que pueden ser mejores que
otras: hace falta una “medida formal” de la bondad
de los diseños.
•
A continuación veremos que, en general, se tiende a
disminuir:
Methodology – Monitoring and tunning of the operational
system Connolly/Begg02
• Introducción (14.1)
diseños
• Dependencias funcionales (14.2)
– Anomalías de actualización
redundancia en tuplas
• Descomposición de relaciones (15.1)
– Valores nulos
• Formas normales (14.3, 14.4, 14.5)
– Tuplas espurias
de
BD
debidas
a
• Desnormalización
© A. Jaime, C. Domínguez 2005
DBD Tema 5
1
© A. Jaime, C. Domínguez 2005
Anomalías de actualización
•
Asig NomAsig CrT CrP Dpto
Dir Alum NomAlum Aula
111
111
111
111
222
111
333
333
333
777
777
777
777
777
777
555
555
555
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
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
•
•
•
Inserción: se añade la asignatura 444 con
INSERT(444,BD,4,2,DMC,888, Null,Null, Null)
– ¡No se puede!
– ¡Violación de integridad de entidades!
•
Inserción: Si se inserta un alumno existente
INSERT(444,BD,4,2,DMC,888, 231, Felipe, 121)
podríamos introducir datos incoherentes (el 231
debería ser Arantza)
111
222
333
3
DBD
PBD
PPI
Dpto
Dpto
Dir
DMC
DIE
777
555
•
ALUMNO
Solución:
– Dividir la relación en varias relacionadas entre sí
Asignatura
Borrado: se elimina al alumno Juan (DNI=123)
– ¡Hay que Borrar 3 tuplas!
– ¡Se pierden los datos de PBD!
DBD Tema 5
DEPARTAMENTO
Asig NomAsig CrT CrP Dpto
Modificación: El director de DMC cambia a 888
– ¡Hay que modificar 6 tuplas!
© A. Jaime, C. Domínguez 2005
Causa:
– Redundancia en los datos debida a
– Más de una entidad incluida en una relación
ASIGNATURA
Borrado del
alumno Juan
•
2
Anomalías de actualización (2)
Modificación del
director de DMC
Asig_Alum
DBD Tema 5
4
4
4
2
2
2
DMC
DMC
DIE
Alumno
Alum NomAlum
123
213
321
132
231
Juan
Luisa
Dolores
Paco
Arantza
Asig_Alum
Asig Alum Aula
111
111
111
111
222
111
333
333
333
123
213
321
132
123
231
123
132
231
313
125
212
313
111
111
121
121
121
Pauta de diseño:
– Diseñar los esquemas de modo que no haya
anomalías de actualización
– Si las hay, hay que documentarlas y señalarlas con
claridad
© A. Jaime, C. Domínguez 2005
DBD Tema 5
4
Valores NULL
•
•
•
•
Tuplas espurias
Almacenar valores NULL supone ocupar espacio
de manera innecesaria
Además pueden confundirse sus significados:
– No aplicable (N/A)
– Desconocido (Unknown)
– Pendiente (Pending)
Los nulos dificultan construcción de ciertas
consultas (ejemplo sumas y resto de funciones
agregadas)
Solución
– Si hay muchos NULL (permanentes), definir
más relaciones
•
•
NomAsig NomAlum Aula
PBD
DBD
DBD
PBD
Asig NomAsig
Asig NomAsig AulaVirtual
111
222
444
555
777
888
111
222
444
555
777
888
DBD
PBD
ABD
BD
MP
TP
1
null
null
2
null
null
PBD
DBD
DBD
PBD
© A. Jaime, C. Domínguez 2005
DBD
DBD
PBD
•
1
2
DBD Tema 5
5
318
121
330
NomAsig NomAlum Aula
PBD
DBD
DBD
DBD
DBD
PBD
Juan
Juan
Juan
Leire
Leire
Leire
Reunión (|X|)
330
318
121
318
121
330
Tuplas
espurias
Pauta de diseño:
– Las condiciones de una reunión deberían 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
© A. Jaime, C. Domínguez 2005
División de un esquema de relación
DBD Tema 5
6
Dependencia funcional (DF)
•
¿Cómo?
– Basándose en la semántica de los atributos:
Dependencia funcional
– Asegurando que no aparecen tuplas espurias al
reconstruir la relación original (sin pérdida de
información)
•
Necesitamos nomenclatura para nombrar a:
– Atributos relacionados con uno dado
– Relaciones entre atributos de un esquema de
relación
•
Juan
Juan
Leire
Leire
NomAsig Aula
DBD
PBD
ABD
BD
MP
TP
Tabla
original
330
318
121
330
NomAsig NomAlum
AsigVirtural
Asig AulaVirtual
111
555
Juan
Juan
Leire
Leire
Proyecciones (π)
Asignatura
Asignatura
Son las tuplas “inesperadas” del resultado de una
reunión.
Cuando aparecen “se pierde información”
... y relacionarla con otros conceptos de BD:
– Superclave
– Clave candidata
– Atributo primo
– ...
•
•
Se expresa como XÆY
Significa que conocido un valor de X, se identifica un
único valor de Y
– Siempre de acuerdo con el significado que se les
atribuyan a los atributos
– Será cierto para todos los posibles estados de la
BD (no solo para un estado concreto)
•
Por ejemplo:
– ¿NombreÆApellido?
– ¿DNIÆNombre? o lo que es lo mismo¿puede
haber dos nombres con el mismo DNI?
•
•
Sea R={A1, A2, ... , An} un esquema de relación
Sean X e Y subconjuntos de atributos de R (o sea
X⊆R e Y ⊆R)
Entonces se dirá que XÆY (Y depende funcionalmente de X) si:
– Para cualquier extensión r de R se verifica que
para todo par de tuplas t1, t2 de r:
•
t1.X = t2.X Æ t1.Y = t2.Y
© A. Jaime, C. Domínguez 2005
DBD Tema 5
7
© A. Jaime, C. Domínguez 2005
DBD Tema 5
8
Reglas de inferencia: Axiomas
Dependencia funcional (DF) (2)
•
(Reglas de inferencia de Armstrong)
Por ser X
superclave
Si X es clave candidata de R:
– XÆY (para todo subconjunto Y de R)
•
XÆY ⇒
/ YÆX
– DNIÆNombre_Pila frente a Nombre_PilaÆDNI
•
Las DF provienen de la semántica de los atributos
(universo del discurso)
•
Utilizaremos la siguiente representación gráfica de las
DF en una relación:
?
?
•
Ejemplo: {A→B, B→C} se puede inferir {A→C}
•
Se definen reglas de inferencia con el objetivo de
inferir DF de forma sistemática.
(R1) Reflexiva: Y ⊆ X ⇒ X→Y
A→A
ABC → AB
ABC → AC
(R2) Aumento: {X→Y} ⇒ XZ→YZ
A→A
A→C
BC → Z
CodAsig NomAsig CrT CrP Dpto NomDpto Dir Alum NomAlum Aula
¿Hay más DF?
ABC → ABC
AZ → CZ
BCD → ZD
(R3) Transitiva: {X→Y, Y→Z} ⇒ {X→Z}
A → BC
A→C
BC → Z
{CodAsig}Æ{NomAsig, CreT}
{NomAsig}Æ{CodAsig, CreT}
A→Z
{CodAsig, DNIAlum}Æ{Aula}
...
© A. Jaime, C. Domínguez 2005
DBD Tema 5
9
© A. Jaime, C. Domínguez 2005
DBD Tema 5
10
F+: Cierre del conjunto F de DF
Reglas de inferencia: de simplificación
(R4) Descomposición: {X→YZ} ⇒ {X→Y}
A → BC
A→B
BC→ ZXY
BC → X
BC → Z
•
Se llama cierre del conjunto F de DF, y se
representa con F+, al conjunto de DF que implica
lógicamente F.
•
Ejemplo:
EMPLEADO_DPTO
(R5) Unión o aditiva: {X→Y, X→Z} ⇒ {X→YZ}
A → BC
BC→ XY
BC → XYZ
BC → Z
NombEmp NSS FNcto Dirección NºDpto NomDpto NSSJefe
– F={NSSÆ{NomEmp, FNcto, Dirección, NºDpto},
NºDptoÆ{NomDpto, NSSJefe}}
– Por ejemplo se pueden inferir:
(R6) Pseudotransitiva: {X→Y, WY→Z} ⇒ {WX→Z}
A→B
BC→ ZXY
AC → ZXY
• NSSÆNSS
(R1)
• NSSÆ{NomDpto, NSSJefe}
(R3)
• NºDptoÆ NomDpto
(R4)
• NSSÆ{NomEmp, FNcto, Dirección, NºDpto,
NomDpto, NSSJefe}
(R5)
• ...
– F+ contiene a F y a todas las DF que se puedan
deducir.
© A. Jaime, C. Domínguez 2005
DBD Tema 5
11
© A. Jaime, C. Domínguez 2005
DBD Tema 5
12
X+: Cierre del cjto. de atributos X
bajo el cjto. F de DF
Superclave
Equivalencia de conjuntos de DF
•
X+ es el conjunto de atributos determinados
funcionalmente por X
•
El conjunto de atributos X es superclave si X+
incluye a todos los atributos del esquema de
relación.
•
Algoritmo para calcular X+ bajo el cjto. F de DF
//Reflexiva
X+←X
Mientras (haya algún cambio en X+)
Para cada DF (Y→Z) de F
Si Y ⊆ X+ entonces
X+ ← X+ ∪ Z //Transitiva
•
Ejemplo: R(ABCDEF)
•
{A}+ = {A, B, C, D, E, F}
{B}+ = {A, B, C, D, E}
A es superclave
B NO es superclave
•
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 XÆY
de E
– Comprobar que Y⊆X+
•
E es equivalente a F si
– E+ = F+
– O sea, si E cubre a F y viceversa
Ejemplo:
AlumAsig DNI Nom CódAsig NomAsig CrédT Aula
– F={ DNIÆNom,
{DNI,CódAsig}ÆAula
CódAsig Æ{NomAsig, crédT} }
– {DNI}+ = {DNI, Nom}
– {CodAsig}+ = {CódAsig, NomAsig, CrédT}
– {DNI,CodAsig}+ = {DNI, Nom, CódAsig,
NomAsig, crédT, Aula}
© A. Jaime, C. Domínguez 2005
DBD Tema 5
13
© A. Jaime, C. Domínguez 2005
Fmín ←F
El conjunto de DF F es mínimo si:
– Está en forma canónica: toda DF tiene un solo
atributo en la parte derecha
//Poner las DF en forma canónica:
– No contiene redundancias:
//Eliminar atributos redundantes de la izda
• Ninguna DF se puede inferir de las demás:
No se puede eliminar ninguna DF de F y
mantener el conjunto de DF equivalente a F
• Ninguna DF X→A
redundantes en X:
14
Algoritmo de cálculo de una
cobertura mínima Fmín
Conjunto F de DF mínimo
•
DBD Tema 5
tiene
atributos
No se puede sustituir una DF X→A de F por
otra Y→A donde Y⊂X y seguir teniendo un
conjunto de DF equivalente a F
Sustituir en Fmín cada X→{A1,...,An} por X→A1, ..., X→An
Para cada DF X→A de Fmín
Para cada atributo B∈X
Si Fmín–{X→A}∪{X–{B}→A} equivalente a Fmín
entonces Sustituir en Fmín X→A por X–{B}→A
//Eliminar las DF que se pueden inferir
Para cada DF X→A de Fmín
Si Fmín–{X→A} equivalente a Fmín entonces
Fmín ←Fmín –{X→A}
Ejemplo:
•
Cobertura mínima Fmín del conjunto F de DF:
conjunto de DF mínimo equivalente a F.
•
Un conjunto de DF puede tener varias coberturas
mínimas.
F={DNIÆNom, {DNI,CódAsig}Æ{Nom, Aula},
CódAsigÆ{NomAsig,crédT}, NomAsigÆcrédT}
Forma canónica: { DNIÆNom, {DNI,CódAsig}Æ Nom,
{DNI,CódAsig}ÆAula, CódAsigÆNomAsig,
CódAsigÆcrédT, NomAsigÆcrédT }
Atributos redundantes a la izquierda: {DNI,CódAsig}Æ Nom
DF que se pueden inferir: CódAsigÆcrédT
Fmín= {DNIÆNom, {DNI,CódAsig}Æ Aula,
CódAsigÆNomAsig, NomAsigÆcrédT }
© A. Jaime, C. Domínguez 2005
DBD Tema 5
15
© A. Jaime, C. Domínguez 2005
DBD Tema 5
16
Uso de DF para obtener claves candidatas
•
Partimos de un conjunto de DF mínimo donde obtenemos el
cierre de todas las partes izquierdas:
•
A B C D E F GH I
B+ • • • •
•
+
CD • • • •
•
+
E
• •
+
F
•
•
I+
• •
A B C D E F G H I
•
Uso de DF para obtener claves candidatas (2)
A B C D E F GH I
B+ • • • •
•
+
CD • • • •
•
+
E
• •
+
F
•
•
+
• •
B forma parte de I
una clave y CD
de otra clave
Los atributos que no estén 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 mínimo número de puntos: el o los
atributos de la fila o filas forman parte de la clave:
•
H forma parte de
todas las claves
•
I y E forman parte
de todas las claves
•
A B C D E F GH I
B+ • • • •
•
+
CD • • • •
•
+
E
• •
+
F
•
•
I+
• •
•
Eliminar todas las columnas determinadas por los atributos de
esas filas
A B C D E F GH I
B+ • • • •
•
CD+ • • • •
•
+
E
• •
+
F
•
•
I+
• •
© A. Jaime, C. Domínguez 2005
DBD Tema 5
Descomposición
•
•
•
•
•
•
17
Aplicar repetidas veces los dos últimos pasos hasta que se
seleccionen todas las columnas:
Con esto se han
seleccionado
todas las
columnas
Las claves descubiertas son: HIEB y HIECD
Si alguna fila de las introducidas es determinada parcialmente
por otra DF, como ocurre con FÆC, 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
Los pasos anteriores no conforman un algoritmo bien demostrado pero
ayudan a descubrir las claves en gran parte de los casos más
habituales.
Se pueden encontrar algoritmos demostrados formalmente en Saiedian
y otros Computer Journal 1996 y en Fadous y Forsyth ACM SIGMOD
1975
También existe una herramienta que acompaña al libro Diseño de BD
relacionales de Adoración de Miguel y otros, Ed. RAMA 1999
© A. Jaime, C. Domínguez 2005
DBD Tema 5
18
Descomposición conservando dependencias
Una descomposición de la relación R es un
conjunto de relaciones {R1, R2, .. Rn} que conserva
todos los atributos de R:
•
(proyección de R)
– Cada Ri = π<Atributos>R
– Cada atributo de R se encuentra en alguna Ri
•
Para cualquier extensión r de R se cumple:
r ⊆ r1 * r2 * r3 * … * rn (* es reunión natural)
•
Esto significa (“r⊆...” y no “r=...” ) que la reunión
natural de las proyecciones puede generar tuplas
espurias.
Necesitamos establecer una forma de comprobar
que la descomposición NO conlleva:
– La desaparición de DF
– La aparición de tuplas espurias
En la descomposición {R1,R2,...,Rn} de R
– F es el conjunto de DF de R
– Cada Ri tiene un conjunto de DF Fi
– Llamamos G=∪Fi
{R1,R2,...Rn} conserva las dependencias si F+=G+
Ejemplo 1: R1(A,B,C) y R2(D,E)
F2
F
F1
ABÆC
ABÆC
DÆE
DÆE
CÆD
G= ∪Fi
ABÆC
DÆE
¿CÆD puede inferirse a partir de G? NO, entonces
F+≠G+, luego NO se conservan las dependencias
•
Ejemplo 2:
F
ABÆC
CÆDE
ABÆF
EÆF
R1(A,B,C) y R2(C,D,E,F)
F1
ABÆC
F2
CÆDE
EÆF
G= ∪Fi
ABÆC
CÆDE
EÆF
¿ABÆF puede inferirse a partir de G? SI, entonces
F+=G+, luego SÍ se conservan las dependencias
© A. Jaime, C. Domínguez 2005
DBD Tema 5
19
© A. Jaime, C. Domínguez 2005
DBD Tema 5
20
Descomposición conservando dependencias (2)
Descomposición sin pérdidas (o no aditiva)
•
•
Ejemplo3:
F
ABÆC
CÆDE
R1(A,B,C,D) y R2(C,E)
F2
F1
G= ∪Fi
ABÆC
CÆD
ABÆC
CÆD
CÆE
•
Ejemplo 4:
F
CÆE
F+=G+,
ABÆC
ABÆC
•
•
¿CDÆE puede inferirse a partir de G? NO, entonces
F+≠G+, luego NO se conservan las dependencias
© A. Jaime, C. Domínguez 2005
DBD Tema 5
r = r1 * r2 * r3 * … * rn (* es reunión natural)
–
Eso significa que no se generan tuplas espurias
21
Ejemplo de descomposición CON pérdidas:
–
R(A,B,C,D,E,F)
–
F= {ABÆD, ACÆE, ABDÆF}
–
Descomposición R1(A,B,D,F), R2(A,C,E)
•
No se pierden DF, pero se parte el trío ABC.
•
R1*R2 puede generar tuplas espurias
{R1, R2} es una descomposición sin pérdidas de R si
y sólo 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
© A. Jaime, C. Domínguez 2005
Descomposiciones sucesivas sin pérdidas
Los atributos de reunión
natural (R1∩R2) son bien
superclave de R1 o de R2
DBD Tema 5
22
Proceso de normalización
•
Si {R1,...,Ri,...,Rn} es una descomposición sin
pérdidas (DSP) de R
•
•
•
Si además {Q1,...,Qk}es una DSP de Ri
Entonces la descomposición
{R1,...,Ri-1,Q1,...,Qk,Ri+1,...,Rn}
será también una DSP
•
•
•
Sabemos
que es una
DSP
–
(por eso se llama también “no aditiva”)
luego SÍ se conservan
las dependencias
G= ∪Fi
ABÆC
CDÆE
R si para cualquier extensión r de R se cumple:
ABÆC
CÆD
CÆE
R1(A,B,C) y R2(D,E)
F2
F1
{R1,R2,...Rn} es una descomposición sin pérdidas de
Sabemos
que es una
DSP
Descomposición de esquemas de relación
insatisfactorios
Repartiendo sus atributos entre otros esquemas de
relación más pequeños
Estos otros esquemas poseen propiedades deseables:
menos anomalías de actualización
La descomposición debe :
– Conservar los atributos
Definición de
descomposición
– Conservar las dependencias funcionales (se
Descomposición sin
pérdidas (no aditiva)
sacrifica a veces)
– Evitar el problema de las tuplas espurias
•
Podemos garantizar que la sucesión
de ambas descomposiciones
también es DSP
Es preferible partir de una cobertura mínima
Relación
normalizada
Buen
diseño
Llegar a la
FN más alta
Hay que considerar
el rendimiento
© A. Jaime, C. Domínguez 2005
DBD Tema 5
23
© A. Jaime, C. Domínguez 2005
DBD Tema 5
24
Conceptos del modelo relacional
Primera forma normal (1FN)
•
X
R
Esquema
de relación
Una relación R está en 1FN si
– Todos sus atributos son monovaluados
Conjunto de
atributos
Multivaluado
DNI
•
X es superclave de R si X → R
•
X es clave candidata de R si es superclave mínima:
– X superclave
– ∀ Y∈X, X-Y no es superclave
Nom
(Imposible en
relacional)
Tfnos
Persona
DNI Nom Tfnos
PERSONA
•
Clave primaria de R: es una concreta entre las
candidatas
•
Atributo primo: es aquel que forma parte de alguna
clave candidata
•
Atributo NO primo: es el que no figura en ninguna
clave candidata
SOLUCIÓN:
Persona’
Tfnos
DNI Nom
DNI Tfno
Sin pérdidas:
Persona’∩Tfnos
→Persona’
Se mantiene de alguna manera:
todos los tfnos asociados a un
DNI aparecen en algún par con
ese DNI
SOLUCIONES CON INCONVENIENTES:
Persona
DNI Nom Tfno
Redundancia de tuplas.
A descomponer después
Máximo 3
valores
Puede incluir
muchos valores
nulos
Persona
DNI Nom Tfno_1 Tfno_2 Tfno_3
Primo: traducción del inglés prime. Otros libros lo traducen por
atributo “principal”
© A. Jaime, C. Domínguez 2005
DBD Tema 5
25
© A. Jaime, C. Domínguez 2005
Segunda forma normal (2FN)
•
•
DBD Tema 5
26
2FN: Ejemplos
X→Y es total, si eliminando cualquier atributo de X,
la DF deja de ser válida: ¬∃ z∈X, X-z→Y
DF parcial
Clave única:
{NSS, NºProy}
no primo
X→Y es DF parcial, si quitando algún atributo de X
la DF sigue siendo válida: ∃ z∈X, X-z→Y
no primo
NSS NºProy Horas NomEmp NomPry LugarPry
no primo
•
•
NO figura
en ninguna
clave
candidata
La relación R está en 2FN si y sólo si:
– Está en 1FN
– Todo atributo no primo depende funcionalmente
de manera total de toda clave de R (primaria o
candidata)
SOLUCIÓN:
– Las DF parciales se llevan a nuevas tablas
– En la tabla original queda la clave y los atributos
que dependan totalmente de ella
Clave única: AB
R
A B C D E
R1
R2
A B C E
B D
DF parcial
NSS NºProy Horas
•
NSS NomEmp
NºProy NomPry LugarPry
Si hay DF parciales con una clave candidata se
resuelve de la misma forma:
Clave candidata: BC
D no primo
R1 A B C
R A B C D
R2 C D
DF parcial de
clave candidata
D no primo
DF parcial de clave primaria
© A. Jaime, C. Domínguez 2005
DBD Tema 5
Sin pérdidas:
R1∩R2→R2
27
© A. Jaime, C. Domínguez 2005
DBD Tema 5
28
2FN: anomalías corregidas
Tercera forma normal (3FN)
Clave única:
{CódTienda, CodProd}
•
DF parcial
Ventas
CódTienda CódProd Precio Unidades SuminisDirSum
Ventas’
CódTienda CódProd Unidades
•
•
•
•
Una relación R está en 3FN si y sólo si:
– Está en 2FN
– Para toda DF X → Y de R:
• X es superclave o bien Y es atributo primo
Producto
CódProd Precio SuminisDirSum
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 información de ningún Producto
Esto supone que no hay
dependencias transitivas
respecto a claves candidatas
A→X (X→A)
X→Y y A clave candidata
•
Producto está en 2FN, pero ...
SOLUCIÓN:
– R(A,X,Y,B) donde X → Y incumple 3FN
– Crear otra relación con X+, con X como clave
– Eliminar Y de R
Claves: A
Producto
CódProd Precio Suminis DirSum
DVD_20
40
ACR Barcelona
TV_100
80
Altus
Teruel
CAD_9
80
ACR Barcelona
C_VID_3 360
ACR Barcelona
R1 A X B
R A X Y B
R2 X Y
– Actualizar DirSum de un suministrador conlleva
modificar varias tuplas
© A. Jaime, C. Domínguez 2005
DBD Tema 5
29
X no
superclave
© A. Jaime, C. Domínguez 2005
3FN: Ejemplos
Asignatura
no superclave
Y no
primo
Sin pérdidas:
R1∩R2→R2
DBD Tema 5
30
3FN: anomalías corregidas
no primo
Producto
CódProd Precio SuminisDirSum
no primo
COD_ASG NOM_ASG CRED DPTO NOM_DPTO DIR_DPTO
Asignatura’
COD_ASG NOM_ASG CRED DPTO
Producto’
CódProdPrecio Suminis
Suministrador
Suminis DirSum
•
Actualizar DirSum de un suministrador Ö modificar
1 tupla
•
Sin embargo, en el siguiente caso, donde:
ASIG
N
Departamento
1
DPTO NOM_DPTO DIR_DPTO
Claves:
Id y
{Localidad,
CódParcela}
transitiva
– 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
DPTO
Suministro
CódTienda CódProd Suministrador
Claves:
{CódTienda, CódProd} y
{CódTienda,Suministrador}
no superclave
Id Localidad CódParcela Área Precio
no primo
•
Suministro está en 3FN, pero ...
Suministro
CódTienda CódProd Suministrador
Eroski
Prod1
ACME
Eroski
Prod2
PTT
Carrefour Prod1
ACME
Carrefour Prod5
ATT
Id Localidad CódParcela Área
© A. Jaime, C. Domínguez 2005
DBD Tema 5
Área Precio
– Borrar las tuplas de Eroski conlleva eliminar
también que PTT suministra Prod2
31
© A. Jaime, C. Domínguez 2005
DBD Tema 5
32
Forma normal de Boyce-Codd (FNBC)
FNBC: ejemplos
Claves: A,
BC y BD
•
Una relación R está en FNBC si y sólo si:
– Está en 3FN
– Para toda DF X → Y de R X es superclave
R1 A B D
R A B C D
C primo
•
SOLUCIÓN:
R2 D C
D no superclave
R1 C B
R A B C
Claves:
AB y AC
R2 A C
B es
C no
primo
superclave
Claves: AB,
EF, AF y CF
Sin pérdidas:
R1∩R2→R1
C no superclave
•
•
•
E primo
En ocasiones se pierde alguna DF ({A,B}→C)
Entonces habrá que replantearse cuál es la clave de R2:
probablemente la combinación de atributos de R2
R A B C D E F
SOLUCIONES CON INCONVENIENTES:
B primo
R1 A B
R2 A C
R1 C B
R2 A B
© A. Jaime, C. Domínguez 2005
R2 F B
F no superclave
DBD Tema 5
33
© A. Jaime, C. Domínguez 2005
DBD Tema 5
Transitiva:
{CIF, CódRes}ÆId,
IdÆ{GrToxic, Localidad}
Id CIF CódRes GrToxic Localidad JefeLab
Suministro
CódTienda CódProd Suministrador
Suministro_2
Id
1
2
3
4
5
6
7
8
9
10
CódTienda Suministrador Suministrador CódProd
Suministro_1
CódTienda Suministrador
Eroski
ACME
Eroski
PTT
Carrefour
ACME
Carrefour
ATT
CIF CódRes GrToxic Localidad JefeLab TítuloJefe
E1
H1
5
Logroño
Eloy Dr. Química
E1
H2
7
Calahorra
Eloy Dr. Química
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. física
E4
H2
7
Ezcaray
Irene
Dr. física
E4
H7
10
Anguiano Irene
Dr. física
E4
H3
1
Anguiano Irene
Dr. física
{CIF,CódRes}+
Id+
CIF+
Localidad+
JefeLab+
Borrar las tuplas de Eroski ya no elimina que PTT
suministra Prod2
•
•
DBD Tema 5
TítuloJefe
Id
CIF
CódRes
GrToxic
Localidad
JefeLab
TituloJefe
Suministro_2
Suministrador CódProd
ACME
Prod1
PTT
Prod2
ATT
Prod5
© A. Jaime, C. Domínguez 2005
34
Normalización: ejemplo (1)
Claves: {CódTienda, CódProd}
y {CódTienda, Suministrador}
•
R3 C E
También pierden {A,B}→C
Generan tuplas espurias
FNBC: anomalías corregidas
Suministro_1
R1 A F C D
35
• • • • • • •
• • • • • • •
•
• •
•
• • •
• •
LocalidadÆCIF
Claves candidatas: Id, {CIF,CódRes},
{Localidad, CódRes}
Atributos no primos:GrToxic, JefeLab,TítuloJefe
© A. Jaime, C. Domínguez 2005
DBD Tema 5
36
Normalización: ejemplo (2)
Normalización: ejemplo (3)
no superclave
Id CIF CódRes GrToxic Localidad JefeLab
no superclave
TítuloJefe
Id CIF CódRes GrToxic Localidad
CIF JefeLab TítuloJefe
Parcial sobre
no primo
no primo
3FN
Primo: en 3FN
2FN
CIF JefeLab JefeLab TítuloJefe
CIF JefeLab TítuloJefe
Id CIF CódRes GrToxic Localidad
Id
1
2
3
4
5
6
7
8
9
10
•
•
CIF CódRes GrToxic Localidad
E1
H1
5
Logroño
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
CIF JefeLab TítuloJefe
E1 Eloy Dr. Química
E2 Marta
Ingeniero
E3 Javier
Ingeniero
E4 Irene
Dr. física
•
•
Clave candidata:
CIF
Atributos no primos:
JefeLab, TítuloJefe
Id
1
2
3
4
5
6
7
8
9
10
CIF CódRes GrToxic Localidad
E1
H1
5
Logroño
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,CódRes}, {Localidad,CódRes}
Atributos no primos:GrToxic
•
•
Claves candidatas: Id,
{CIF,CódRes}, {Localidad,CódRes}
Atributos no primos:GrToxic
© A. Jaime, C. Domínguez 2005
CIF JefeLab
E1 Eloy
E2 Marta
E3 Javier
E4 Irene
• Clave candidata:
CIF
• Atributo no primo:
JefeLab
JefeLab TítuloJefe
Eloy Dr. Química
Marta
Ingeniero
Javier
Ingeniero
Irene
Dr. física
•
DBD Tema 5
37
© A. Jaime, C. Domínguez 2005
Normalización: ejemplo (4)
Clave candidata:
JefeLab
Atributo no primo:
TítuloJefe
DBD Tema 5
38
Desnormalización
CIF JefeLab
•
Id CIF CódRes GrToxic Localidad
JefeLab TítuloJefe
Objetivo: Introducción de redundancia de forma
controlada para mejorar la eficiencia del sistema:
– Para consultas frecuentes
FNBC
– Ejemplo: evitar ejecutar reuniones (join)
no superclave
Ambas en FNBC
Localidad CIF
Id Localidad CódRes GrToxic
Id
1
2
3
4
5
6
7
8
9
10
Localidad CódRes GrToxic
Logroño
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
© A. Jaime, C. Domínguez 2005
Se pierde algo de normalización
•
REGLA de oro para desnormalizar:
– Considerarlo sólo si el comportamiento no es
satisfactorio, la relación tiene una tasa de
actualización pequeña y una tasa de consultas alta
Localidad CIF
Logroño E1
Calahorra E1
Arnedo E2
Haro
E3
Ezcaray E4
Anguiano E4
•
Caso 1º: Combinar tablas con asociación 1:1
Estudiante 1
CIF JefeLab
E1 Eloy
E2 Marta
E3 Javier
E4 Irene
Estudiante
0..1 Proyecto
Estudiante_Proyecto
Proyecto
JefeLab TítuloJefe
Eloy Dr. Química
Marta
Ingeniero
Javier
Ingeniero
Irene
Dr. física
DBD Tema 5
•
39
– 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. Domínguez 2005
DBD Tema 5
40
Desnormalización (2)
•
Caso 2º: Duplicar atributos no primos en asociaciones 1:N
A
–
–
–
–
–
•
*
A A1 A2 A3 A4
B
*
Caso 3º: Duplicar claves extranjeras en asociaciones 1:N
A * 1
Caso 4º: Duplicar atributos en asociaciones M:N
A
1
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 reunión)
Cada modificación de A3 en A supone cambiarlo
en todos los B relacionados
Al borrar en A hay que cambiar A1 y A3 en B
Precisa más espacio (valores duplicados)
B
•
Desnormalización (3)
B * 1 C
1
*
A A1 A2 B1 C1
CE CE
B B1 B2 C1
CE
C C1 C2
– Para relacionar los A con C se ahorra una reunión
– Se crea una nueva restricción FOREIGN KEY...
– Precisa más espacio
© A. Jaime, C. Domínguez 2005
DBD Tema 5
41
*
A A1 A2 A3 A4
B B1 B2 B3 B4
AB A1 B1 A4 B4
CE CE
Atributos redundantes
– Evita la reunión 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, supondrán
muchas modificaciones en AB
•
Caso 5º: Atributos multivaluados
A
A1
A2[0..3]
A A1 A2_1 A2_2 A2_3
– Si el número máximo de valores es pequeño 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 deberían ser complicadas
© A. Jaime, C. Domínguez 2005
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 periódicamente
(cada día o cada semana, ...)
– La tabla extracto contiene los datos para ser usados
•
Caso 8º: Lista de elementos
Inmueble’
Tipo
Cód Calle CP Tipo Tipo Descr
Ejercicios
Inmueble
Cód Calle CP Tipo Descr
1=casa, 2=apartamento, 3=estudio, ...
– La tabla Tipo contiene las opciones disponibles. El atributo
Tipo ocupa menos que descr. La descr sólo se modifica en
un sitio
– Si es frecuente el JOIN entre tipo e Inmueble, podemos
incluirlo directamente en la tabla Inmueble
© A. Jaime, C. Domínguez 2005
DBD Tema 5
43
© A. Jaime, C. Domínguez 2005
DBD Tema 5
44
Ejercicios: identificar dependencias
funcionales
•
1)
Ejercicios: Cierre de conjunto de atributos
y cobertura mínima
Descubrir todas las posibles DF en cada uno de los
siguientes esquemas de relación:
PERSONA
Calcula el cierre de conjunto de atributos para cada
parte izquierda de cada DF:
1) F={B→{A, C, D, E}, E→{F, G}}
2) F={A→B, C→{D, E}, {A, C}→F}
3) F={A→B, B→{C, D}, {A, C}→F, {D, F}→G}
DNI Nombre Apellidos Edad Zona ...
... Calle NºBloque Planta Puerta
2)
•
CUENTA
•
NºBanco NomBanco NºSucursal Ciudad ...
Calcula una cobertura mínima para cada uno de los
siguientes conjuntos de DF:
Saldo DNI_Titular ...
...
... Dirección NºCta Interés
TfnoTitular
...
... DirTitular
1) F={A→B, C→E, C→{D, E}, {A, C}→F, {A,
C}→ {A, D, E}, {A, C, D}→B}
Hay que tener en cuenta que el número de cuenta
completo incluye el código de banco, el de sucursal
y el nº de cuenta
3)
2) F={A→B, B→{C, D}, {A,F}→{B,F}, {A,
C}→F, {D, F}→G, {A, B}→{C, D}, {F,G}→G,
A→D}
EMPLEADO_DPTO
NombreEmp NSS FechaNcto Dirección NºDpto ...
... NombreDpto NSSJefeDpto
4)
EMPLEADO_PROY
NSS NºProy Horas NombreEmp ...
... NombreProy LugarProy
© A. Jaime, C. Domínguez 2005
DBD Tema 5
45
Ejercicios: Comprobación de descomposición
que conserva DF y es sin pérdidas
R1 A D C
© A. Jaime, C. Domínguez 2005
1)
R2 A B E
R1 A B C
R2 C D E
R1 A B D
R2 A B C E
R1 A B C D E
R2 B F G H R3 D I J
R1 A B C
R3 B F
R5 D I J
6)
A B C D E F G
7)
A B C D E F
A B C D E F G H I J
R2 A D E
R4 F G H
3)
8)
A B C D E F G H I J
A B C D E F G H I J K
R1 A B C D R2 D E
R3 B F
R4 F G H
R5 D I J
9)
4)
R1 A B C D E ...
... F G
3) R A B C D E F G H I J K L M N O
A B C D E F
2)
R1 A B C D R2 C E
2) R A B C D E F G H I J
46
Ejercicios: Cálculo de claves candidatas y
obtención de 2FN, 3FN y FNBC
R1 A B C D R2 A B E
1) R A B C D E
DBD Tema 5
A B C D E F G H I J
A B C D E F
R2 A H I J K ...
... L M N O
R1 A B C D E ...
... F G N O
5)
A B C D E F G H I J K L MN 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. Domínguez 2005
DBD Tema 5
R3 H I J K B
47
© A. Jaime, C. Domínguez 2005
DBD Tema 5
48
Ejercicios: Cálculo de claves candidatas y
obtención de 2FN, 3FN y FNBC (2)
10)
NomAsig Dpto CrédsCurso DNIProf Cuatr Año Horario Aula ...
... NºAlumnos
© A. Jaime, C. Domínguez 2005
DBD Tema 5
49
Descargar