You are on page 1of 13

Introduccin Tema 5.

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

A. Jaime, C. Domnguez 2005

DBD Tema 5

A. Jaime, C. Domnguez 2005

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

Anomalas de actualizacin (2)


Causa: Redundancia en los datos debida a Ms de una entidad incluida en una relacin
ASIGNATURA DEPARTAMENTO ALUMNO

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

Solucin: Dividir la relacin en varias relacionadas entre s


Asignatura 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

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

Dir 777 555

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

A. Jaime, C. Domnguez 2005

A. Jaime, C. Domnguez 2005

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

NomAsig Aula DBD DBD PBD 318 121 330

AsigVirtural Asig AulaVirtual 111 555 1 2


5

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

A. Jaime, C. Domnguez 2005

DBD Tema 5

A. Jaime, C. Domnguez 2005

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

A. Jaime, C. Domnguez 2005

DBD Tema 5

A. Jaime, C. Domnguez 2005

DBD Tema 5

Dependencia funcional (DF) (2)


Si X es clave candidata de R: X Y (para todo subconjunto Y de R)
Por ser X superclave

Reglas de inferencia: Axiomas


(Reglas de inferencia de Armstrong) Ejemplo: {AB, BC} se puede inferir {AC} Se definen reglas de inferencia con el objetivo de inferir DF de forma sistemtica.

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:

(R1) Reflexiva: Y X XY AA ABC AB ABC AC (R2) Aumento: {XY} XZYZ AA AC BC Z ABC ABC AZ CZ BCD ZD

CodAsig NomAsig CrT CrP Dpto NomDpto Dir Alum NomAlum Aula

Hay ms DF? {CodAsig} {NomAsig, CreT} {NomAsig} {CodAsig, CreT} {CodAsig, DNIAlum} {Aula} ...

(R3) Transitiva: {XY, YZ} {XZ} A BC AC BC Z AZ

A. Jaime, C. Domnguez 2005

DBD Tema 5

A. Jaime, C. Domnguez 2005

DBD Tema 5

10

Reglas de inferencia: de simplificacin


(R4) Descomposicin: {XYZ} {XY} A BC AB BC ZXY BC X BC Z

F+: Cierre del conjunto F de DF


Se llama cierre del conjunto F de DF, y se representa con F+, al conjunto de DF que implica lgicamente F. Ejemplo:

(R5) Unin o aditiva: {XY, XZ} {XYZ} A BC BC XY BC XYZ BC Z

EMPLEADO_DPTO

NombEmp NSS FNcto Direccin NDpto NomDpto NSSJefe

F={NSS {NomEmp, FNcto, Direccin, NDpto}, NDpto {NomDpto, NSSJefe}} Por ejemplo se pueden inferir:

(R6) Pseudotransitiva: {XY, WYZ} {WXZ} AB BC ZXY AC ZXY

NSS NSS

(R1)

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

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

A. Jaime, C. Domnguez 2005

DBD Tema 5

11

A. Jaime, C. Domnguez 2005

DBD Tema 5

12

X+: Cierre del cjto. de atributos X bajo el cjto. F de DF


X+ es el conjunto de atributos determinados funcionalmente por X Algoritmo para calcular X+ bajo el cjto. F de DF //Reflexiva X+X Mientras (haya algn cambio en X+) Para cada DF (YZ) de F Si Y X+ entonces X+ X+ Z //Transitiva Ejemplo: F={ DNI Nom, {DNI,CdAsig} Aula CdAsig {NomAsig, crdT} } {DNI}+ = {DNI, Nom} {CodAsig}+ = {CdAsig, NomAsig, CrdT} {DNI,CodAsig}+ = {DNI, Nom, CdAsig, NomAsig, crdT, Aula}

Superclave Equivalencia de conjuntos de DF


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} 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 YX+ E es equivalente a F si E+ = F+ O sea, si E cubre a F y viceversa

AlumAsig DNI Nom CdAsig NomAsig CrdT Aula

A. Jaime, C. Domnguez 2005

DBD Tema 5

13

A. Jaime, C. Domnguez 2005

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

Algoritmo de clculo de una cobertura mnima Fmn


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

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={DNI Nom, {DNI,CdAsig} {Nom, Aula}, CdAsig {NomAsig,crdT}, NomAsig crdT} Forma cannica: { DNI Nom, {DNI,CdAsig} Nom, {DNI,CdAsig} Aula, CdAsig NomAsig, CdAsig crdT, NomAsig crdT } Atributos redundantes a la izquierda: {DNI,CdAsig} DF que se pueden inferir: CdAsig crdT Fmn= {DNI Nom, {DNI,CdAsig} Aula, CdAsig NomAsig, NomAsig crdT } Nom

A. Jaime, C. Domnguez 2005

DBD Tema 5

15

A. Jaime, C. Domnguez 2005

DBD Tema 5

16

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 G H I A B C D E F GH I B+ + CD + E + F I+

Uso de DF para obtener claves candidatas (2)


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 + B forma parte de I una clave y CD de otra clave Con esto se han seleccionado todas las columnas

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+

H forma parte de todas las claves

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 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: HIEFD F 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

A. Jaime, C. Domnguez 2005

DBD Tema 5

17

A. Jaime, C. Domnguez 2005

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.

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

Necesitamos establecer una forma de comprobar que la descomposicin NO conlleva: La desaparicin de DF La aparicin de tuplas espurias

AB F 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

A. Jaime, C. Domnguez 2005

DBD Tema 5

20

Descomposicin conservando dependencias (2)

Descomposicin sin prdidas (o no aditiva)


{R1,R2,...Rn} es una descomposicin sin prdidas de R si para cualquier extensin r de R se cumple: 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: R(A,B,C,D,E,F) F= {AB D, AC E, ABD F} Descomposicin R1(A,B,D,F), R2(A,C,E) No se pierden DF, pero se parte el tro ABC. R1*R2 puede generar tuplas espurias

Ejemplo3: F AB C C DE AB C C D C E

R1(A,B,C,D) y R2(C,E) F2 F1 G= Fi AB C C D F+=G+, C E AB C C D C E

luego S se conservan las dependencias

Ejemplo 4: F AB C CD E

R1(A,B,C) y R2(D,E) F2 F1 AB C

G= Fi AB C

{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

CD E puede inferirse a partir de G? NO, entonces F+G+, luego NO se conservan las dependencias

A. Jaime, C. Domnguez 2005

DBD Tema 5

21

A. Jaime, C. Domnguez 2005

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
Sabemos que es una DSP

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

Sabemos que es una DSP

Conservar las dependencias funcionales (se


Descomposicin sin prdidas (no aditiva)

Evitar el problema de las tuplas espurias


Es preferible partir de una cobertura mnima

Podemos garantizar que la sucesin de ambas descomposiciones tambin es DSP

Relacin normalizada

Buen diseo

Llegar a la FN ms alta

Hay que considerar el rendimiento

A. Jaime, C. Domnguez 2005

DBD Tema 5

23

A. Jaime, C. Domnguez 2005

DBD Tema 5

24

Conceptos del modelo relacional


R Esquema de relacin X Conjunto de atributos DNI 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

Primera forma normal (1FN)


Una relacin R est en 1FN si Todos sus atributos son monovaluados
Multivaluado
(Imposible en relacional)

Nom PERSONA

Tfnos

Persona DNI Nom Tfnos

SOLUCIN: Persona DNI Nom Tfnos DNI Tfno


Sin prdidas: PersonaTfnos Persona
Se mantiene de alguna manera: todos los tfnos asociados a un DNI aparecen en algn par con ese DNI

SOLUCIONES CON INCONVENIENTES: Persona DNI Nom Tfno Persona


Redundancia de tuplas. A descomponer despus Mximo 3 valores Puede incluir muchos valores nulos

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

DNI Nom Tfno_1 Tfno_2 Tfno_3

A. Jaime, C. Domnguez 2005

DBD Tema 5

25

A. Jaime, C. Domnguez 2005

DBD Tema 5

26

Segunda forma normal (2FN)


XY es total, si eliminando cualquier atributo de X, la DF deja de ser vlida: zX, X-zY XY es DF parcial, si quitando algn atributo de X la DF sigue siendo vlida: zX, X-zY
NO figura en ninguna clave candidata

2FN: Ejemplos
Clave nica: {NSS, NProy}

DF parcial

no primo

no primo

NSS NProy Horas NomEmp NomPry LugarPry no primo DF parcial

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 NProy Horas

NSS NomEmp

NProy NomPry LugarPry

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


D no primo

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

D no primo DF parcial de clave primaria Sin prdidas: R1R2R2

A. Jaime, C. Domnguez 2005

DBD Tema 5

27

A. Jaime, C. Domnguez 2005

DBD Tema 5

28

2FN: anomalas corregidas


Clave nica: {CdTienda, CodProd}

Tercera forma normal (3FN)

DF parcial

Ventas CdTienda CdProd Precio Unidades SuminisDirSum

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

Ventas CdTienda CdProd Unidades

Producto CdProd 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 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

Actualizar DirSum de un suministrador conlleva modificar varias tuplas


A. Jaime, C. Domnguez 2005

X no superclave

Y no primo

Sin prdidas: R1R2R2

DBD Tema 5

29

A. Jaime, C. Domnguez 2005

DBD Tema 5

30

3FN: Ejemplos

3FN: anomalas corregidas


Producto CdProd Precio SuminisDirSum Producto CdProdPrecio Suminis Suministrador Suminis DirSum

Asignatura

no superclave

no primo

no primo

COD_ASG NOM_ASG CRED DPTO NOM_DPTO DIR_DPTO

Asignatura COD_ASG NOM_ASG CRED DPTO Departamento DPTO NOM_DPTO DIR_DPTO ASIG

N 1
DPTO

Actualizar DirSum de un suministrador 1 tupla Sin embargo, en el siguiente caso, donde:

modificar

Claves: Id y {Localidad, CdParcela}

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 Suministro CdTienda CdProd Suministrador
Claves: {CdTienda, CdProd} y {CdTienda,Suministrador}

transitiva

no superclave no primo

Id Localidad CdParcela rea Precio

Suministro est en 3FN, pero ...


Suministro CdTienda CdProd Suministrador Eroski Prod1 ACME Eroski Prod2 PTT Carrefour Prod1 ACME Carrefour Prod5 ATT

Id Localidad CdParcela rea

rea Precio

Borrar las tuplas de Eroski conlleva eliminar tambin que PTT suministra Prod2
31
A. Jaime, C. Domnguez 2005

A. Jaime, C. Domnguez 2005

DBD Tema 5

DBD Tema 5

32

Forma normal de Boyce-Codd (FNBC)


Claves: A, BC y BD

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

SOLUCIONES CON INCONVENIENTES: R2 A C R2 A B

B primo

F no superclave

R1 A B R1 C B

Tambin pierden {A,B}C Generan tuplas espurias

A. Jaime, C. Domnguez 2005

DBD Tema 5

33

A. Jaime, C. Domnguez 2005

DBD Tema 5

34

FNBC: anomalas corregidas


Claves: {CdTienda, CdProd} y {CdTienda, Suministrador} Suministro CdTienda CdProd Suministrador

Normalizacin: ejemplo (1)


Transitiva: {CIF, CdRes} Id, Id {GrToxic, Localidad}

Id CIF CdRes GrToxic Localidad JefeLab

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+

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

Localidad CIF


A. Jaime, C. Domnguez 2005

Claves candidatas: Id, {CIF,CdRes}, {Localidad, CdRes} Atributos no primos:GrToxic, JefeLab,TtuloJefe


DBD Tema 5 36

DBD Tema 5

35

A. Jaime, C. Domnguez 2005

Normalizacin: ejemplo (2)

Normalizacin: ejemplo (3)


no superclave no superclave CIF JefeLab TtuloJefe no primo Primo: en 3FN 3FN CIF JefeLab JefeLab TtuloJefe

Id CIF CdRes GrToxic Localidad JefeLab

TtuloJefe Id CIF CdRes GrToxic Localidad Parcial sobre no primo

2FN Id CIF CdRes GrToxic Localidad CIF 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
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

A. Jaime, C. Domnguez 2005

DBD Tema 5

Normalizacin: ejemplo (4)


CIF JefeLab Id CIF CdRes GrToxic Localidad JefeLab TtuloJefe

Desnormalizacin
Objetivo: Introduccin de redundancia de forma controlada para mejorar la eficiencia del sistema: Para consultas frecuentes Ejemplo: evitar ejecutar reuniones (join)

FNBC Localidad CIF

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

Id Localidad CdRes GrToxic

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

Caso 1: Combinar tablas con asociacin 1:1


Estudiante 1 Estudiante Proyecto 0..1 Proyecto

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

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]

Caso 3: Duplicar claves extranjeras en asociaciones 1:N


A * 1 * B * 1 C 1

A A1 A2 B1 C1 CE CE B B1 B2 C1 CE C C1 C2

A A1 A2_1 A2_2 A2_3

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

Inmueble Tipo Cd Calle CP Tipo Tipo Descr

1=casa, 2=apartamento, 3=estudio, ...

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

A. Jaime, C. Domnguez 2005

DBD Tema 5

44

Ejercicios: identificar dependencias funcionales


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

Ejercicios: Cierre de conjunto de atributos y cobertura mnima


Calcula el cierre de conjunto de atributos para cada parte izquierda de cada DF:

1)

DNI Nombre Apellidos Edad Zona ...


... Calle NBloque Planta Puerta

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


... ... Direccin NCta Inters Saldo DNI_Titular ... ... ... DirTitular TfnoTitular

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, AD}

3)

EMPLEADO_DPTO

NombreEmp NSS FechaNcto Direccin NDpto ...


... NombreDpto NSSJefeDpto

4)

EMPLEADO_PROY

NSS NProy Horas NombreEmp ...


... NombreProy LugarProy

A. Jaime, C. Domnguez 2005

DBD Tema 5

45

A. Jaime, C. Domnguez 2005

DBD Tema 5

46

Ejercicios: Comprobacin de descomposicin que conserva DF y es sin prdidas


R1 A D C R2 A B E

Ejercicios: Clculo de claves candidatas y obtencin de 2FN, 3FN y FNBC


1)
A B C D E F G

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

A. Jaime, C. Domnguez 2005

DBD Tema 5

48

Ejercicios: Clculo de claves candidatas y obtencin de 2FN, 3FN y FNBC (2)


10)

NomAsig Dpto CrdsCurso DNIProf Cuatr Ao Horario Aula ...


... NAlumnos

A. Jaime, C. Domnguez 2005

DBD Tema 5

49

You might also like