Anda di halaman 1dari 14

Introduccin

Tema 5. Normalizacin
Dependencias funcionales y normalizacin en BD relacionales

Hasta ahora hemos hecho diseos de BD empleando el sentido


comn.

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:

Elmasri/Navathe 07

Algoritmos de diseo de BD relacionales y dependencias adicionales


Elmasri/Navathe 07

Methodology Monitoring and tunning of the operational system


Connolly/Begg02

Introduccin (10.1)
Dependencias funcionales (10.2)

Anomalas de actualizacin debidas a redundancia en tuplas

Descomposicin de relaciones (11.1)

Valores nulos

Formas normales (10.3, 10.4, 10.5)

Tuplas espurias

Desnormalizacin

Anomalas de actualizacin
"

Anomalas de actualizacin (2)

! "!

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
"

!!

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)

ALUMNO

Valores NULL

Tuplas espurias

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

Son las tuplas inesperadas del resultado de una reunin.


Cuando aparecen se pierde informacin

%
$

%
$

$
%
%

$
#

&! '
)*

),
-,
*

. (
(. ! (

!
#

/
$$$

&
'&
' ()
01 (
(
3 .! ! '

$$$

!
% ! % ( !( ). ! 2 . *
4"! 2! 5 6 ! !
6
3 .!

"
!
!7
$

Divisin de un esquema de relacin

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)

Necesitamos nomenclatura para nombrar a:


Atributos relacionados con uno dado
Relaciones entre atributos de un esquema de relacin

... y relacionarla con otros conceptos de BD:


Superclave
Clave candidata
Atributo primo
...

Dependencia funcional (DF)

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 relacin


Sean X e Y subconjuntos de atributos de R (o sea XR e Y R)
Entonces se dir que X Y (Y depende funcionalmente de X) si:
Para cualquier extensin r de R se verifica que para todo par de tuplas t1, t2
de r:
t1.X = t2.X

t1.Y = t2.Y
8

Reglas de inferencia: Axiomas

Dependencia funcional (DF) (2)

(Reglas de inferencia de Armstrong)

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 semntica de los atributos (universo del discurso)

Utilizaremos la siguiente representacin grfica de las DF en una relacin:

& !( !- ( . ! 3

Ejemplo: {AB, BC} se puede inferir {AC}

Se definen reglas de inferencia con el objetivo de inferir DF de


forma sistemtica.

(R1) Reflexiva: Y X

AA
ABC AB
ABC AC

X
Y

'

XZ
YZ

(R2) Aumento: {X
Y}

AA
AC
BC Z

+, -& . & /0

{CodAsig} {NomAsig, CreT}


{NomAsig} {CodAsig, CreT}

{X
Z}

(R3) Transitiva: {X
Y, Y
Z}

{CodAsig, DNIAlum} {Aula}

ABC ABC
AZ CZ
BCD ZD

A BC
AC
BC Z

AZ

...
9

F+: Cierre del conjunto F de DF

Reglas de inferencia: de simplificacin


(R4) Descomposicin: {X
YZ}

{X
Y}

A BC
BC ZXY
BC Z
(R5) Unin o aditiva: {X
Y, X
Z}

AB
BC X

Se llama cierre del conjunto F de DF, y se representa con F+, al conjunto de


DF que implica lgicamente F.

Ejemplo:
!

{X
YZ}

A BC
BC XY
BC Z
(R6) Pseudotransitiva: {X
Y, WY
Z}

AB
BC ZXY

BC XYZ

1"

%< . ;== >; "

;? ." ;

." ;==

F={NSS {NomEmp, FNcto, Direccin, NDpto},


NDpto {NomDpto, NSSJefe}}
Por ejemplo se pueden inferir:

{WX
Z}

AC ZXY

NSS NSS

(R1)

NSS {NomDpto, NSSJefe}


(R3)
NDpto NomDpto
(R4)
NSS {NomEmp, FNcto, Direccin, NDpto, NomDpto, NSSJefe}
...

F+ contiene a F y a todas las DF que se puedan deducir.

(R5)

X+: Cierre del conjunto de atributos X


bajo el conjunto F de DF

Superclave
Equivalencia de conjuntos de DF

X+ es el conjunto de atributos determinados funcionalmente por X

Algoritmo para calcular X+ bajo el conjunto F de DF


45)6 '
@
%
& ' > )AB* >
6 A 45
45 45 B

El conjunto de atributos X es superclave si X+ incluye a todos los


atributos del esquema de relacin.

Ejemplo: R(ABCDEF)
{A}+ = {A, B, C, D, E, F}
{B}+ = {A, B, C, D, E}

4 5*

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

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

Algoritmo de clculo de una


cobertura mnima Fmn

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 tiene atributos redundantes en X:
No se puede sustituir una DF XA de F por otra YA donde
YX y seguir teniendo un conjunto de DF equivalente a F

Fmn F
//Poner las DF en forma cannica:

Sustituir en Fmn cada X{A1,...,An} por XA1, ..., XAn


//Eliminar atributos redundantes de la izda

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

Para cada DF XA de Fmn

Cobertura mnima Fmn del conjunto F de DF: conjunto de DF mnimo


equivalente a F.

Un conjunto de DF puede tener varias coberturas mnimas.

Si Fmn {XA} equivalente a Fmn entonces


Fmn Fmn {XA}

Algoritmo de clculo de una


cobertura mnima Fmn

Uso de DF para obtener claves candidatas


Partimos de un conjunto de DF mnimo donde obtenemos el cierre de todas las partes
izquierdas:
A B C D E F GH I

Ejemplo:

< > H I C

F={DNI Nom, {DNI,CdAsig} {Nom, Aula}, CdAsig {NomAsig,crdT},


NomAsig crdT}

H forma parte de
todas las claves

Nom

DF que se pueden inferir: CdAsig crdT


Fmn= {DNI Nom, {DNI,CdAsig}

Los atributos que no estn en ninguna DF (columna sin puntos) forman parte de todas las
claves (H). Eliminar esas columna:

Forma cannica: { DNI Nom, {DNI,CdAsig} Nom, {DNI,CdAsig} Aula,


CdAsig NomAsig, CdAsig crdT, NomAsig crdT }
Atributos redundantes a la izquierda: {DNI,CdAsig}

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

Aula, CdAsig NomAsig, NomAsig crdT }

A B C D E F GH I
B+

CD+

+
E

+
F

I+

8

Uso de DF para obtener claves candidatas (2)

Uso de DF para obtener claves candidatas (notas)

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

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

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
FD
claves donde aparece, C por F para obtener nuevas claves: HIEF
Por lo tanto en nuestro caso encontramos tres claves: HIEB, HIECD y HIEFD
9

Descomposicin

Una descomposicin de la relacin R es un conjunto de relaciones {R1,


R2, .. Rn} que conserva todos los atributos de R:
Cada Ri = <Atributos>R
(proyeccin de 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)

Descomposicin conservando dependencias

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+

Ejemplo 1: R1(A,B,C) y R2(D,E)

;G >

>

>

<
<

Esto significa (r... y no r=... ) que la reunin natural de las


proyecciones puede generar tuplas espurias.

<

C D puede inferirse a partir de G?


NO, entonces F+G+, luego NO se conservan las dependencias

Necesitamos establecer una forma de comprobar que la descomposicin


NO conlleva:

Ejemplo 2: R1(A,B,C) y R2(C,D,E,F)

>

<
< >

<
>
< >

La desaparicin de DF
La aparicin de tuplas espurias

>

;G >
<
< >

AB F puede inferirse a partir de G? SI, entonces


F+=G+, luego S se conservan las dependencias

Descomposicin conservando dependencias (2)

Descomposicin sin prdidas (o no aditiva)

Ejemplo3:

R1(A,B,C,D) y R2(C,E)

extensin r de R se cumple:

;G >

>

>

{R1,R2,...Rn} es una descomposicin sin prdidas de R si para cualquier

<

r = r1 * r2 * r3 * * rn (* es reunin natural)

Eso significa que no se generan tuplas espurias (por eso se llama tambin
no aditiva)

<
<

Ejemplo de descomposicin CON prdidas:

F+=G+, luego S se conservan las dependencias

<
Ejemplo 4:

R1(A,B,C) y R2(D,E)
>

>

F= {AB D, AC E, ABD F}

Descomposicin R1(A,B,D,F), R2(A,C,E)

;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)

No se pierden DF, pero se parte el tro ABC.

R1*R2 puede generar tuplas espurias

{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

1 ( "!% "( !
(. ! 3

"! )+ + * ( %
+
+
#

Descomposiciones sucesivas sin prdidas

Si {R1,...,Ri,...,Rn} es una descomposicin sin prdidas (DSP) de R


Si adems {Q1,...,Qk}es una DSP de Ri
Entonces la descomposicin
{R1,...,Ri-1,Q1,...,Qk,Ri+1,...,Rn}
ser tambin una DSP
=% (
5 (
=&

=% (
5 (
=&

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 :

Definicin de
descomposicin

Conservar los atributos

Conservar las dependencias funcionales (se sacrifica a veces)

Descomposicin sin
prdidas (no aditiva)

Evitar el problema de las tuplas espurias


&

( ! " !5
( (
%( ( . (
(
" %F ( =&

Hay que considerar


el rendimiento

Es preferible partir de una cobertura mnima

<

&&
/ & .&

2
' (

'

Conceptos del modelo relacional


R

Primera forma normal (1FN)

Una relacin R est en 1FN si


Todos sus atributos son monovaluados
"3

<(5
!

2 "
"
!% "(

;C

)C . (%

&<+=J;

X es superclave de R si X R

X es clave candidata de R si es superclave mnima:


X superclave
YX, X-Y no es superclave

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


Primo: traduccin del ingls prime. Otros libros lo traducen por atributo principal

(
= .F! (7
& !( M
(
& !( M

SOLUCIN:

>
;

=
"
" ((

(
@ .!

!7"
;C . !
( ;C

( (

SOLUCIONES CON INCONVENIENTES:


+

;
;

=
K

". (
! (. F(
&

L4

3 !(
!
6(
3 !(
(
8

Segunda forma normal (2FN)

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

La relacin R est en 2FN si y slo si:


;J
!
3
"
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

R1

R2

A B C E

B D

3 @
7
D;== ;?&! 'E

>

.!
66 A

-I !(;

3 .!

!&!'

.!

66 A

-I !(

66;

< .

-;

&!'1

!&!'

Si hay DF parciales con una clave candidata se resuelve de la misma


forma:
3
"7
.!

R1 A B C

R A B C D

= .F! (7
+ + +

&!'1

>

R2 C D

.!
>

< .;

.!

>
3

"

2FN: anomalas corregidas


3 @

#
2'

#
2'

>
'

Tercera forma normal (3FN)

7
&! E

2'

'&!

(=

'N

2'

' &!

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
'
2' '
Producto est en 2FN, pero ...
O K
#
OK
8
K9
8
KOC K
$

( !=

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'

Una relacin R est en 3FN si y slo si:


.
(
?
!(. "
3 ( ''
Est en 2FN
-A )A-*
Para toda DF X Y de R:
AB' X es superclave o bien Y es atributo primo

> .!
'

<(" ( .

R2 X Y
-

(. ! 3

.!

= .F! (7
+ + +

3FN: Ejemplos
(. ! 3
1 " 6; ;J K =H

+<

3FN: anomalas corregidas

.!

& 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'

'

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

(. ! 3

? 7
C '
&!

'

2'

'6

'

Suministro est en 3FN, pero ...

Borrar las tuplas de Eroski conlleva


eliminar tambin que PTT suministra Prod2

6
2'
' 2'
<! (Q
&!
<! (Q
&!
!! ! &!
!! ! &!

'6

'
<
&
<
#

Forma normal de Boyce-Codd (FNBC)

Una relacin R est en FNBC si y slo si:


Est en 3FN
Para toda DF X Y de R X es superclave
SOLUCIN:

? 7
'

R1 C B
R A B C

SOLUCIONES CON INCONVENIENTES:

R1 C B

R2 A B

R2 D C
(. ! 3

? 7

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

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
$

FNBC: anomalas corregidas


? 7D
'D
6
2'

6
2'

&! E
("
! !E

'

2'

"

'6

'

6
"
2'
' 6
<! (Q
<! (Q
!! !
!! !

'
<

'

'

' 6

Normalizacin: ejemplo (1)

"
'
&

<

'

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'<

Obtencin de una cobertura mnima.

"

Borrar las tuplas de Eroski ya no elimina que PTT suministra Prod2

8
9

/
<
<
<
<
<
<
<#
<#
<#
<#

2'<
I
I
I
I
I#
I
I
I
I
I

''
!R
6 !!
!
I !
I !
I !
< !'
< !'

1
#

=
!
!
!
!
(
(
(
(
8

Normalizacin: ejemplo (2)


'

Obtencin de las claves

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>

Normalizacin: ejemplo (3)

Claves candidatas: Id, {CIF,CdRes},


{Localidad, CdRes}
Atributos no primos:GrToxic, JefeLab,TtuloJefe

$
8
9
9

<
<
<
<
<
<
<#
<#
<#
<#

''
1 !R
6 !!
!
I !
I !
I !
< !'
< !'

Clave candidata: CIF


Atributos no primos: JefeLab, TtuloJefe

- Claves candidatas:Id, {CIF,CdRes}, {Localidad,CdRes}


- Atributos no primos:GrToxic
#

Normalizacin: ejemplo (4)


(. ! 3
'

H! 4

2'<

Normalizacin: ejemplo (5)

(. ! 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 !
< !'
< !'

- Claves candidatas: Id, {CIF,CdRes},


{Localidad,CdRes}
- Atributos no primos:GrToxic

1 %

/
<
<
<
<#

= C
< '
!"
3 !
C!

"

' ' C>

- Clave candidata: CIF


- Atributo no primo: JefeLab

= C D
=
< '
!S
!"
C
!
3 ! C
!
C!
! (

- Clave candidata: JefeLab


- Atributo no primo: TtuloJefe

''
1 !R
6 !!
!
I !
< !'

'

' ' 2'<


'

/
<
<
<
<
<#
<#

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)

Objetivo: Introduccin de redundancia de forma controlada para mejorar la


eficiencia del sistema:

Caso 2: Duplicar atributos no primos en asociacio-nes 1:N

Para consultas frecuentes


Ejemplo: evitar ejecutar reuniones (join)

Se pierde algo de normalizacin

REGLA de oro para desnormalizar:

Caso 1: Combinar tablas con asociacin 1:1


! '
<("

"

"
!% "
"

<

Considerarlo slo si el comportamiento no es satisfactorio, la relacin tiene


una tasa de actualizacin pequea y una tasa de consultas alta

'

"

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)

Caso 3: Duplicar claves extranjeras en asociaciones 1:N

&! ' "

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)

<

<

<

Para relacionar los A con C se ahorra una reunin


Se crea una nueva restriccin FOREIGN KEY...
Precisa ms espacio
#

##

Otros refinamientos

Desnormalizacin (3)

Caso 4: Duplicar atributos en asociaciones M:N

U
U

"!% "(!
<

"(

<

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


"

"

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
calcular el dato derivado cada vez que se necesita

frente al de

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

C >

"

&

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

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

#$

Ejercicios: identificar dependencias funcionales

Descubrir todas las posibles DF en cada uno de los siguientes esquemas de


relacin:

!<61

;C ;

;?=

! " !
G
G
G
G
GG
I '5

* !
;

#* !

;? 5

& " & !"

" !
%
1"

" 5
( !( '

;? " CGGG"!F( =

;CK " !

@ !
?

"

"

. "

'
G
G
G

%!< . ;== > 6 ; "


!

!(

" !

;? ." ;

%! ." ;==

."

1" <1H

;== ;?&! 'I !(;

(<

F!

;?

!E

%! .

%!< .;

%!&! '1

!&! '

#8

Ejercicios: Cierre de conjunto de atributos y cobertura


mnima

Ejercicios: Comprobacin de descomposicin que


conserva DF y es sin prdidas

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={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) 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

Ejercicios: Comprobacin de descomposicin que


conserva DF y es sin prdidas

<

<

> H
<

< > H I C

X 1

; J

<

I C
1

<

< > H I C

<

< > H

; J

X 1

< I C

#*
*

< >

< >

< > H

; J

<
> H ; J

<
<

Ejercicios: Clculo de claves candidatas y obtencin de


2FN, 3FN y FNBC

< > H I C

< > H I C

X 1

; J

8*

< > H I C

9*

< > H I C

1
X

< > H I C

$*

< >

Ejercicios: Clculo de claves candidatas y obtencin de


2FN, 3FN y FNBC (2)
*

." !F ( !( ;C&!

"
! R I !!
;?

Anda mungkin juga menyukai