Tema 5. Normalizacin
Dependencias funcionales y normalizacin en BD relacionales
Hay agrupaciones que pueden ser mejores que otras: hace falta una
medida formal de la bondad de los diseos.
Elmasri/Navathe 07
Introduccin (10.1)
Dependencias funcionales (10.2)
Valores nulos
Tuplas espurias
Desnormalizacin
Anomalas de actualizacin
"
! "!
Causa:
Redundancia en los datos debida a
Ms de una entidad incluida en una relacin
ASIGNATURA
!
!
!
DEPARTAMENTO
Solucin:
Dividir la relacin en varias relacionadas entre s
"
!!
ALUMNO
Valores NULL
Tuplas espurias
%
$
%
$
$
%
%
$
#
&! '
)*
),
-,
*
. (
(. ! (
!
#
/
$$$
&
'&
' ()
01 (
(
3 .! ! '
$$$
!
% ! % ( !( ). ! 2 . *
4"! 2! 5 6 ! !
6
3 .!
"
!
!7
$
Cmo?
Basndose en la semntica de los atributos: Dependencia
funcional
Asegurando que no aparecen tuplas espurias al reconstruir la
relacin original (sin prdida de informacin)
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?
t1.Y = t2.Y
8
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
& !( !- ( . ! 3
(R1) Reflexiva: Y X
AA
ABC AB
ABC AC
X
Y
'
XZ
YZ
(R2) Aumento: {X
Y}
AA
AC
BC Z
+, -& . & /0
{X
Z}
(R3) Transitiva: {X
Y, Y
Z}
ABC ABC
AZ CZ
BCD ZD
A BC
AC
BC Z
AZ
...
9
{X
Y}
A BC
BC ZXY
BC Z
(R5) Unin o aditiva: {X
Y, X
Z}
AB
BC X
Ejemplo:
!
{X
YZ}
A BC
BC XY
BC Z
(R6) Pseudotransitiva: {X
Y, WY
Z}
AB
BC ZXY
BC XYZ
1"
;? ." ;
." ;==
{WX
Z}
AC ZXY
NSS NSS
(R1)
(R5)
Superclave
Equivalencia de conjuntos de DF
Ejemplo: R(ABCDEF)
{A}+ = {A, B, C, D, E, F}
{B}+ = {A, B, C, D, E}
4 5*
E es equivalente a F si
E+ = F+
O sea, si E cubre a F y viceversa
/<2 . 7
2'
0/78 ;C ;
08
08
08
D ;C
3'
(E
95 G D ;C ; E
( ;
'
95 G D
: '
95 G D ;C ;
!F E
( ;
D;
!F
!F
E9
A es superclave
B NO es superclave
Conjunto F de DF mnimo
Fmn F
//Poner las DF en forma cannica:
Ejemplo:
< > H I C
H forma parte de
todas las claves
Nom
Los atributos que no estn en ninguna DF (columna sin puntos) forman parte de todas las
claves (H). Eliminar esas columna:
B+
CD+
E+
F+
I+
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+
8
Eliminar todas las columnas determinadas por los atributos de esas filas
A B C D E F GH I
B+
+
CD
+
E
+
F
I+
Aplicar repetidas veces los dos ltimos pasos hasta que se seleccionen todas las
columnas:
A B C D E F GH I
B+
+
CD
E+
F+
I+
B forma parte de
una clave y CD de
otra clave
Descomposicin
En la descomposicin {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+
;G >
>
>
<
<
<
>
<
< >
<
>
< >
La desaparicin de DF
La aparicin de tuplas espurias
>
;G >
<
< >
Ejemplo3:
R1(A,B,C,D) y R2(C,E)
extensin r de R se cumple:
;G >
>
>
<
r = r1 * r2 * r3 * * rn (* es reunin natural)
Eso significa que no se generan tuplas espurias (por eso se llama tambin
no aditiva)
<
<
<
Ejemplo 4:
R1(A,B,C) y R2(D,E)
>
>
F= {AB D, AC E, ABD F}
;G >
<
CD E puede inferirse a partir de G? NO, entonces
F+G+, luego NO se conservan las dependencias
R(A,B,C,D,E,F)
R1 R2 R1
R1 R2 R2
1 ( "!% "( !
(. ! 3
"! )+ + * ( %
+
+
#
=% (
5 (
=&
Proceso de normalizacin
Definicin de
descomposicin
Descomposicin sin
prdidas (no aditiva)
( ! " !5
( (
%( ( . (
(
" %F ( =&
<
&&
/ & .&
2
' (
'
<(5
!
2 "
"
!% "(
;C
)C . (%
&<+=J;
X es superclave de R si X R
(
= .F! (7
& !( M
(
& !( M
SOLUCIN:
>
;
=
"
" ((
(
@ .!
!7"
;C . !
( ;C
( (
;
;
=
K
". (
! (. F(
&
L4
3 !(
!
6(
3 !(
(
8
2FN: Ejemplos
X
Y es total, si eliminando cualquier atributo de X, la DF deja de ser vlida: zX, X-zY
X
Y es DF parcial, si quitando algn atributo de X la DF sigue siendo vlida: zX, X-zY
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
R1
R2
A B C E
B D
3 @
7
D;== ;?&! 'E
>
.!
66 A
-I !(;
3 .!
!&!'
.!
66 A
-I !(
66;
< .
-;
&!'1
!&!'
R1 A B C
R A B C D
= .F! (7
+ + +
&!'1
>
R2 C D
.!
>
< .;
.!
>
3
"
#
2'
#
2'
>
'
7
&! E
2'
'&!
(=
'N
2'
' &!
( !=
6
+
"(
+
+
6
!
!
!
!
6'
SOLUCIN:
R(A,X,Y,B) donde X Y incumple 3FN
Crear otra relacin con X+, con X como clave
Eliminar Y de R
? 7
R1 A X B
R A X Y B
( !=
'
2'
> .!
'
<(" ( .
R2 X Y
-
(. ! 3
.!
= .F! (7
+ + +
3FN: Ejemplos
(. ! 3
1 " 6; ;J K =H
+<
.!
& J ;J K & J
.!
'&!
2'
( !=
C+K & J
'
>
2' '&!
6
6
'
!=
6;
>
1 " 6; ;J K =H
+<
&J
1 ;J K & J
C+K & J
1
?
D1
''
'
P! &!
2'
.!
2'
''
P!
P! &!
? 7
&! E '
("
! !E
2'
'
(. ! 3
? 7
C '
&!
'
2'
'6
'
6
2'
' 2'
<! (Q
&!
<! (Q
&!
!! ! &!
!! ! &!
'6
'
<
&
<
#
? 7
'
R1 C B
R A B C
R1 C B
R2 A B
R2 D C
(. ! 3
? 7
R2 A C
.!
= .F! (7
+ + +
(. ! 3
R1 A B
R1 A B D
R A B C D
R2 A C
? 7
'
.!
FNBC: ejemplos
(. ! 3
<>
< .!
R A B C D E F
H
%F . ! D
E
! ". ( (. ! (
.!
>
(. ! 3
>' >
R1 A F C D
R2 F B
R3 C E
$
6
2'
&! E
("
! !E
'
2'
"
'6
'
6
"
2'
' 6
<! (Q
<! (Q
!! !
!! !
'
<
'
'
' 6
"
'
&
<
'
2'
&!
&!
&!
'
#
$
1 %
H! 4
2'<
"
! ("3 7D C>
+ (E C
C DH! 4 1
E
1 %
"
= C
< '
< '
!"
3 !
3 !
3 !
C!
C!
C!
C!
D
!S
!S
C
C
C
C
!
!
!
!
&!
<
&
'
'
6
6
H! 4
2'<
"
8
9
/
<
<
<
<
<
<
<#
<#
<#
<#
2'<
I
I
I
I
I#
I
I
I
I
I
''
!R
6 !!
!
I !
I !
I !
< !'
< !'
1
#
=
!
!
!
!
(
(
(
(
8
D C>
2'<
H! 4
''
1 %T
+ (ET
C T
C>T
1 %
"
&!
( %!
.!
>;
'
2'<
I
I
I
I
I#
I
I
I
I
I
H! 4
2'<
''
1 %
"
/
<
<
<
<#
= C D
=
< '
!S
!" C
!
3 ! C
!
C!
! (
C>
'
+(
H! 4
1
1 %
"
C>
$
8
9
9
<
<
<
<
<
<
<#
<#
<#
<#
''
1 !R
6 !!
!
I !
I !
I !
< !'
< !'
H! 4
2'<
(. ! 3
1 %
''
'
2'<
H! 4
"
.!
'
#
$
8
9
2'<
I
I
I
I
I#
I
I
I
I
I
<
<
<
<
<
<
<#
<#
<#
<#
"
(. ! 3
>;
%(
>;
&!
1 %
''
>;
>;
;
''
1 !R
6 !!
!
I !
I !
I !
< !'
< !'
1 %
/
<
<
<
<#
= C
< '
!"
3 !
C!
"
= C D
=
< '
!S
!"
C
!
3 ! C
!
C!
! (
''
1 !R
6 !!
!
I !
< !'
'
/
<
<
<
<
<#
<#
H! 4
''
1 !R
6 !!
!
I !
I !
I !
< !'
< !'
#
$
8
9
2'<
I
I
I
I
I#
I
I
I
I
I
/
<
<
<
<#
= C
< '
!"
3 !
C!
= C D
=
< '
!S
!"
C
!
3 ! C
!
C!
! (
Desnormalizacin
Desnormalizacin (2)
"
"
!% "
"
<
'
"
<
<
<
##
Otros refinamientos
Desnormalizacin (3)
U
U
"!% "(!
<
"(
<
"
frente al de
C >
"
&
G (
&
(!
G . !"
(!
" G ("
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
#$
!<61
;C ;
;?=
! " !
G
G
G
G
GG
I '5
* !
;
#* !
;? 5
" !
%
1"
" 5
( !( '
;? " CGGG"!F( =
;CK " !
@ !
?
"
"
. "
'
G
G
G
!(
" !
;? ." ;
%! ." ;==
."
1" <1H
(<
F!
;?
!E
%! .
%!< .;
%!&! '1
!&! '
#8
<
<
<
2) F={AB, B{C, D}, {A,F}{B,F}, {A, C}F, {D, F}G, {A, B}{C, D},
{F,G}G, AD}
<
<
<
<
<
<
<
<
<
<
<
<
<
1) F={AB, CE, C{D, E}, {A, C}F, {A, C} {A, D, E}, {A, C, D}B}
<
<
<
< > H I C
<
<
<
> H I <
>
C
<
<
<
>
C
<
<
<
<
<
> H I
<
<
<
> H I
#9
<
<
> H
<
< > H I C
X 1
; J
<
I C
1
<
< > H I C
<
< > H
; J
X 1
< I C
#*
*
< >
< >
< > H
; J
<
> H ; J
<
<
< > H I C
< > H I C
X 1
; J
8*
< > H I C
9*
< > H I C
1
X
< > H I C
$*
< >
." !F ( !( ;C&!
"
! R I !!
;?