Vous êtes sur la page 1sur 116

Diseo Relacional

Fuentes http://www-db.stanford.edu/~ullman/fcdb.html
Fundamentals of Database Systems, Elmasri y Navathe
Database System Concepts,Silberschatz, Korth, Sudarshan

Diseo
Agrupamiento

de atributos
Conformacin de esquemas de
relacin adecuados
Enfocado a relaciones de base
Eliminacin o control de
redundancia

Diseo
Orientado

por

Semntica de los atributos


Dependencias entre atributos
Redundancia
Valores Nulos en tuplas
Integridad de los datos

Diseo

Apoyado en
Formas Normales
Restricciones de Integridad
Concepto de Llave
Eliminacin de anomalas de
actualizacin
Refinamiento de esquemas

Teora de Dependencias

Dependencias Funcionales DF

X Y
Propiedad de atributos de esquema de
relacin R
Satisfecha por cualquier instancia de R
Base de definicin de formas normales
Si dos tuplas de R son iguales en todos los
atributos de X, entonces deben tambin ser
iguales en los atributos de Y

Dependencias Funcionales DF
X Y
Si dos tuplas de R son iguales en todos los
atributos de X, entonces deben tambin ser
iguales en los atributos de Y
Para cualquier par de tuplas t1 , t2 de una instancia
de relacin r(R)
Si t1[X]=t2[X], entonces t1[Y]=t2[Y]

Dependencias Funcionales DF

X Y define restriccin sobre toda instancia

de R
Se dice que X Y se satisface en R
X, Y, Z denotan conjuntos de atributos
A, B, C, representan atributos simples
Ejemplos de DF:cdula nombre persona,
RUT nombre persona, cdigo_producto
stock, {cod-asig,grupo} horario,

DF
X A1A2An se satisface en R cuando cada
X A1, X A2,, X An se satisface en R.
Ejemplo
A BC es equivalente a A B y A C
Los lados izquierdos no se pueden
descomponer
Generalmente, antecedente y consecuente de
DFs son simples.

Ejemplo
Estudiante(cod-e, nombre, sexo, programa,
promedio)
Las DF que se satisfacen son
cod-e nombre
cod-e sexo
cod-e programa
cod-e promedio

Ejemplo

Profesores(cod-p, nomb, cod-cat, nom-cat, codfac,nomb-facultad)


Asignaturas(cod-a, nombre, creditos)
Matricula(cod-e, cod-a, grupo, calificacin)
Programacin (cod-a, grupo ,cod-p, horario,
aula)
Estudiante(cod-e, nombre, sexo, cod-programa,
promedio)
Programas(cod-prog, registro-icfes, nombre,
total_cred, cod-director, nombre-director)

LLaves

K es una superllave de la relacin R si K


determina funcionalmente a todos los atributos
de R (superset)

K es una Llave de R si K es una superllave,


y ningn subconjunto propio de K es una
superllave. (Una llave debe ser minimal)

Ejemplo
Profesores(cod-p, nomb, cod-cat, nomcat, cod-fac,nomb-facultad)
{cod-p, nomb} es una superllave puesto
que los dos determinan a todos los dems
atributos

Ejemplos de llaves

Profesores(cod-p, nomb, cod-cat, nom-cat, codfac,nomb-facultad)


{cod-p} es una llave de Profesores

Programas(cod-prog, registro nombre,


total_cred, cod-director)

{cod-prog} es llave de Programas y determina


los dems atributos

Inferencia de Dependencias
Funcionales

Reglas de Inferencia

A partir de DFs X1 A1, X2 A2,, Xn An ,


determinar si Y B se satisface en la
relacin que satisface el conjunto de DFs
dado.
Ejemplo: Si A B y B C se satisfacen, A C
se debera satisfacer

Base para disear buenos esquemas

Reglas de Inferencia

Dado un conjunto de DF es posible inferir otras


DF que tambin se satisfacen
Aplicacin de axiomas o reglas de inferencia
Conjunto de axiomas o reglas confiable y
completo
Posibilidad de deducir nuevas dependeicias

Axiomas de Armstrong
R1: Reflexividad
YX XY
R2: Aumentatividad
X Y XZ YZ
R3: Transitividad
X Y, Y Z X Z

Reglas Adicionales
R4: Descomposicin
X YZ X Y , X Z
R5: Unin
X Y, X Z X YZ
R6: Seudotransitividad
X Y, WY Z WX Z

Ejemplo
Dado el siguiente conjunto de dependencias funcionales:

F = {AB C, B D, CD E, CE GH, G A}

Es posible inferir las dependencias BG C de F?

Ejemplo
F = {AB C, B D, CD E, CE GH, G A}
BG->C ?
1.
2.
3.
4.

G->A est en DF
BG->AB aumentatividad
AB->C est en DF
BG->C transitividad de 2 y 3

Cierre de un conjunto de DF

Denotado por F+
F+ = {DF inferidas a partir de F aplicando reglas
de inferencia }
Alternativa clculo de cierre de un atributo Y
Y+ = Y
Buscar DF cuyo antecedente X Y+. Si la DF es
X A, aada A a Y+

Ejemplo
Sea R={A,B,C,G,H,I} y el conjunto de
dependencias funcionales
F={A B, A C, CG H, CG I,B H}
Est A H implicada por F ?

Cierre de un descriptor X

Denotado por X+DF


Calculado con respecto a un conjunto de
atributos dependencias DF de una relacin
X+ = {para cualquier dependencia Y Z, si
Y X+, X+=X+ Z }
Facilita determinar claves de un esquema
Determinar si descriptor es clave

Cierre de un descriptor: ejemplo

Dadas las siguientes dependencias :


{A B, CA D, D FE, F G, H K}
Cierre transitivo de {AD}: AD+
AD+ = ADBFEG
Dado el esquema R(A,B,C,D,E); {A B, C D,
D E}) determinar si AC es una clave
Calcular AC+

Diseo de Esquemas
Meta diseo: evitar anomalias de actualizacin y
redundancia

Anomalias de actualizacin : un cambio en


una ocurrencia de un hecho no cambia todas
las ocurrencias

Anomalas de Eliminacin : Si una tupla se


borra se pierden datos e informacin vlida

Mal Diseo
Programas(cod-prog, registro-icfes, nombre,
total_cred, cod-director, nombre-director)

Cod-prog Registro

nombre

Facultad

Cod-director

Nom-director

3793

1009

In.Sistemas

Ingenieria

34567890

N.N

3456

2345

Estadstica

Ingeniera

45678899

J.J

Otro Mal diseo


nombre

direccin

asignatura facultad

programa

GG

Cl 5#2-30

clculo

Ciencias

Sistemas

GG

Cl 5#2-30

BDatos

Ingenieria Sistemas

MM

Cl 3#4-54

clculo

Ciencias

Fsica

Otro Mal diseo


Cod-p

Nomb-p

Oficina Cod-asig

Nom-asig

creditos

3344

Juan Perez

2123

ITI02

Int.Tecnologia
Informtica

3456

Maria Ruiz

2156

FADA01

Anlisis Algoritmos

4560

Sonia Torres

2089

MD80

Mat Discretas

4567

Jose Bueno

2341

MD01

Mat Discretas

3342

Vicky Rubio

2119

IPOO01

Int. Prog. Orientada


Objetos

Redundancia
Inconsistencias posibles

Ejercicio

Identificar en la relacin EMP_PROJ anomalas de insercin,


modificacin y borrado

Tuplas espurias

Ename , Plocation(EMP_PROJ)
Ssn, Pnumber, Hours,

Pname, Plocation(EMP_PROJ)

Tuplas espurias

(EMP_LOCS)

(EMP_PROJ1)

Formas Normales

Instrumento de diseo

Restricciones sobre tablas

Evitan problemas de redundancia y


anomalas de actualizacin

Refinamientos mejora diseo

Apoyadas en concepto de dependencia

Primera forma Normal: 1FN

Valores de atributos simples

Necesidad de convertir entrada de


atributos en valor atmico

Forma Normal ms simple

No permite atributos multivaluados

Primera forma Normal: 1FN


cedula

nombre

telefonos

3344

Juan Perez

3212796,
3329671

3456

Maria Ruiz

3212132

cedula

Eliminar grupos repetitivos

nombre

telefonos

3344

Juan Perez

3212796

3344

Juan Perez

3329671

3456

Maria Ruiz

3212132

1FN

Segunda forma Normal: 2FN

Basada en dependencia funcional


parcial

Condiciones para que R est 2FN

Estar en 1FN

Todo atributo de R que no forma


parte de la llave depende
funcionalmente de manera completa
de la llave

Ejemplo de 2FN
Matricula(cod-e, cod-a, nom-estud, calificacin)

Llave {cod-e, cod-a}


{cod-e, cod-a} calificacin
{cod-e, cod-a} nom-estud
Sin embargo, cod-e nom-estud
DEPENDENCIA PARCIAL DE LA LLAVE

Ejemplo de 2FN
Transformar a 2FN
Matricula(cod-e, cod-a, nom-estud, calificacin)
Descomponer Matricula en dos relaciones
Matricula1(cod-e, cod-a, calificacin)
Estudiante(cod-e, nom-estud)
Cuando las llaves candidatas de R no son
compuestas la relacin est en 2FN

Ejemplo de 2FN
cod-e

cod-a

Nom-est

nota

08762

750022

Juan Jimenez

3.5

06777

750777

Bety Cruz

4.0

08762

750655

Juan Jimenez

3.8

07654

750022

Raul Sanchez

2.6

cod-a
cod-e

nota
Nom-est

Dependencia parcial de llave

Ejemplo de 2FN
cod-e

cod-a

nota

08762

750022

3.5

06777

750777

4.0

08762

750655

3.8

07654

750022

2.6
cod-e

Nom-est

08762

Juan Jimenez

06777

Bety Cruz

08762

Juan Jimenez

07654

Raul Sanchez

Tercera Forma Normal :3FN

Basada en concepto dependencia transitiva

Condiciones para que R est 3FN

Estar en 2FN

Ningn atributo no llave de R depende


transitivamente de una llave candidata

Ejemplo 3FN
Profesores(cod-p, nomb, cod-cat, nom-cat, codfac,nomb-facultad)

{cod-p} cod-cat
{cod-cat} nomb-cat

{cod-p} nomb-cat
dependencia transitiva

Idem para nomb-facultad

Ejemplo 3FN
Profesores(cod-p, nomb, cod-cat, nom-cat, codfac,nomb-facultad)
Descomponer Profesores en
Profesor(cod-p, nomb, cod-cat, cod-fac)
Categorias( cod-cat, nom-categoria)
Facutades( cod-fac, nomb-facultad)

Ejemplo 3FN
cod-p

nombre

cod-cat

Nom-cat

cod-fac nomb-facultad

3344

Juan Perez

Asistente

Ingeniera

4560

Sonia Torres

Auxiliar

Ciencias

4567

Jose Bueno

Titular

Salud

3456

Maria Ruiz

Asistente

Ciencias

{cod-p} nombre, cod-cat, nom-cat, cod-fac, nomb-facultad


{cod-cat} nomb-cat

{cod-fac} nomb-facultad
Dependencias transitivas de la llave primaria

Ejemplo 3FN
cod-cat

Nom-cat

Asistente

Auxiliar

Titular

Asistente

cod-fac

nomb-facultad

Ingeniera

Ciencias

Salud

Ciencias

cod-p

nombre

cod-cat

cod-fac

3344

Juan Perez

4560

Sonia Torres

4567

Jose Bueno

3456

Maria Ruiz

Tercera Forma Normal (3FN)


R con DFs F est en 3NF si siempre que
una DF no trivial X A se cumple en R
a) X es una superllave de R, o

b) A es un atributo primo de R

Tercera Forma Normal (3FN)

La condicin de Minimalidad de una llave es


clave en la segunda condicin

Si R est en FNBC est en 3FN

Si R est en 3NF, puede haber redundancia. La


descomposicin de R en relaciones en 3NF
siempre es posible sin prdida y preservando
dependencias

Obteniendo 3FN

Si X A viola la 3FN, alguna de las siguientes


situaciones se presenta:
X es un subconjunto de alguna llave K (dependencia parcial)
El par (X, A) se almacena de manera redundante.
X no es un subconjunto propio de alguna llave. (dependencia
transitiva)
Existe una cadena de DFs K X A
No se puede asociar un valor de X con un valor de K a menos
que se asocie un valor A con un valor X

Forma Normal Boyce-Codd


Una relacin R est en Forma Normal de Boyce
y Codd, BCNF, si siempre que la dependencia
funcional no trivial (Y X) XY se satisface en
R, entonces X es una superllave de R

(X es un implicante en X Y)

Forma Normal Boyce-Codd

Basada en concepto de implicante

Condiciones para que R est FNBC

Estar en 2FN

Todo implicante de R es una llave candidata de R

Toda relacin que est en BCNF tambin est


en 3FN; sin embargo una relacin 3FN no est
necesariamente en BCNF.

Forma Normal Boyce-Codd


La definicin de BCNF difiere ligeramente de la 3FN.
La nica diferencia entre ellas es la condicion (b) de
3FN, la cual permite que A sea primo, pero esta
condicin no se considera en BCNF.

Una tabla est en FNBC si est en 3FN y los nicos determinantes


son claves candidatas

Ejemplo FNBC
Estudiante(cod-e, cedula, cod-asig)
Llaves candidatas
{cod-e, cod-asig}
{cedula, cod-asig}

Hay mas de una llave candidata


Las llaves candidatas son compuestas
Las llaves candidatas tienen interseccin no vaca

Ejemplo FNBC
cod-e

cod-asig

cod-e

cod-asig

cedula

08762

750022

08762

750022

31222222

06777

750777

06777

750777

19788888

08762

750655

08762

750655

31222222

07654

750022

07654

750022

45678900
cod-e

cedula

08762

31222222

06777

19788888

08762

31222222

07654

45678900

Ejemplo FNBC
Sea R= (A;B,C)
DF={AB C, C A}

Claves: AB, BC

Est R en 3FN ?
Est R en BCNF ?

Propiedades de las
Descomposiciones

3FN vs FNBC
Dos importantes propiedades de una decomposicin
1. Unin sin prdida (Lossless Join)
Debe ser posible reconstrur la relacin original a partir
del esquema de las proyecciones (relaciones
descompuestas)
2. Preservacin de dependencias (Dependency Preservation)
Debe ser posible verificar en las relaciones
proyectadas que todas las DF se satisfacen

3FN vs FNBC
La descomposicin FNBC garantiza (1)
La descomposicin en 3FN puede garantizar
(1) y (2).
FNBC no siempre garantiza que (1) y (2) se
cumplan

Refinamiento de Esquemas
Normalizacin

Basada en operadores algebra


Proyeccin
Join Natural

Propiedades deseables refinamiento


(descomposicin)
Proyecciones derivadas: independientes
R1, R2 proyecciones de R, son independientes si
Sus atributos comunes son llave primaria de, al menos, una
relacin
Cada df en R se puede deducir de las df de R1 y R2

Ejemplos de descomposicin
R(cedula, departamento, municipio)
Descomposicin 1
R1(cedula, municipio) R2(municipio, departamento)
Descomposicin 2
R1(cedula, municipio) R2(cedula, departamento)
Se pierde la dependencia
municipiodepartamento
Descomposicin 3
R1(cedula, departamento) R2(municipio, departamento)
Se pierde informacin y de dependencia
cedula municipio

Unin sin prdida

Si R se ha proyectado sobre R1, R2,, Rk , se


debera poder reconstrur R uniendo las
proyecciones
Cualquier tupla en R se podra obtener uniendo
los fragmentos de tupla en las relaciones
proyectadas

Descomposicin de esquemas

R se puede descomponer en varias relaciones en


cierta forma normal
Sean A1 ... An atributos de R. Una
descomposicin de R significa reemplazar a R por
relaciones tales que:
Cada esquema de relacin nuevo contiene un
subconjunto de los atributos de R, y
Cada atributo de R aparece como un atributo al
menos en una de las nuevas relaciones.

Ejemplo
Profesor

cod-p

nombre

cod-cat

puntaje

cod-fac

nom-cat

3344

Juan Perez

500

Auxiliar

4560

Sonia Torres

400

Asociado

4567

Jose Bueno

450

Titular

3456

Maria Ruiz

500

Asociado

DF en Profesor cod-p nombre, cod-cat, puntaje, cod-fac, nom-cat


y cod-cat nom-cat
Est Profesor en FNBC?

Ejemplo
Profesor

cod-p

nombre

cod-cat

puntaje

cod-fac

nom-cat

3344

Juan Perez

500

Auxiliar

4560

Sonia Torres

400

Asociado

4567

Jose Bueno

450

Titular

3456

Maria Ruiz

500

Asociado

DF en Profesor cod-p nombre, cod-cat, puntaje, cod-fac, nom-cat


y cod-cat nom-cat
Est Profesor en FNBC?

No, por la DF cod-cat nom-cat puesto que cod-cat no


es una superllave

Descomposicin
cod-p

nombre

cod-cat

puntaje

cod-fac

3344

Juan Perez

500

4560

Sonia Torres

400

4567

Jose Bueno

450

3456

Maria Ruiz

500

cod-cat

nom-cat

Auxiliar

Asistente

Asociado

Relaciones en FNBC

Descomposicin sin prdida


cod-p

nombre

cod-cat

puntaje

cod-fac

3344

Juan Perez

500

4560

Sonia Torres

400

4567

Jose Bueno

450

3456

Maria Ruiz

500

cod-p

cod-cat

nom-cat

Auxiliar

Asistente

Asociado

nombre

cod-cat

puntaje

cod-fac

nom-cat

3344

Juan Perez

500

Asistente

4560

Sonia Torres

400

Auxiliar

4567

Jose Bueno

450

Asociado

3456

Maria Ruiz

500

Asistente

Descomposicin con prdida


A
1
4
7

B
2
5
2

C
3
6
8

A
1
4
7

B
2
5
2

A B; C B

A
1
4
7

B
2
5
2

B
2
5
2

C
3
6
8

B
2
5
2

A
1
4
7
1
7

C
3
6
8

B
2
5
2
2
2

C
3
6
8
8
3

Descomposicin sin prdida


La descomposicin de R en relaciones X e
Y es sin prdida con respecto a un
conjunto de DFs F si, para cada instancia
r que satisface F se cumple que
X ( r )

Y ( r ) = r

Descomposicin sin prdida


Siempre se cumple que
r X ( r )

Y ( r )

Cuando la inclusin en la otra direccin se


satisface, la descomposicin es sin prdida.
Extensibilidad directa para descomposiciones
en 3 o ms relaciones.

Descomposicin sin prdida


La descomposicin de R en relaciones R1 e
R2 es sin prdida con respecto a un
conjunto de DFs F si el cierre de F
contiene:
R1 R2 X, o
R1 R2 Y

Atributos comunes son superllave de


alguna de las relaciones resultantes

Descomposicin sin prdida


En la descomposicin de ABC en AB y
BC hay prdida. La interseccin B no
es una llave de ninguna de las
relaciones resultantes

Descomposicin sin prdida


Si W Z se satisface en R y

W Z = , entonces
la descomposicin de R en R-Z y WZ
tiene la propiedad de ser sin
prdida.

Ejemplo
A
1
4
7

B
2
5
2

A
1
4
7

C
3
6
8

C
3
6
8

B
2
5
2

C
3
6
8

A B; C B

A
1
4
7

C
3
6
8

B
2
5
2

C
3
6
8

A
1
4
7

B
2
5
2

C
3
6
8

Para verificar A B hay que hacer JOIN

Comprobacin de la propiedad reunin


sin prdida Relaciones binarias

Ejemplo 1:
Sea R={A, B, C, D, E}

FD={A BD, BCD, ACE}

La descomposicin R1= {A, E}

R2={A, B, C, D}

Cumple la propiedad de reunin sin prdida respecto a FD?

Comprobacin de la propiedad reunin


sin prdida Relaciones binarias
Sea R={A, B, C, D, E}
R1= {A, E}

FD={A BD, BCD, ACE}

R2={A, B, C, D}

R1 R2 = A;
R1 - R2 = E;
R2 - R1=BCD

A+= ABCDE

Se cumple A BCD

Esta descomposicin cumple la propiedad de reunin sin


prdida de informacin porque: R1 R2 R2 - R1

Comprobacin de la propiedad reunin


sin prdida Relaciones binarias
Ejemplo 2:
Sea R={A, B, C, D, E}
R1= {A, D, E}

FD={A BD, BCD, ACE}

R2={B, C, D}

R1 R2 = D;
R1 - R2 = AE;
R2 - R1 = BC

D+= D

No se cumple D AE ni D BC

NO CUMPLE la propiedad unin sin prdida

Comprobacin de la propiedad reunin


sin prdida

Comprobacin de la propiedad reunin


sin prdida
Ejemplo
R={A, B, C, D, E}

DF={ ABD, BCD, ACE }

La descomposicin de R en

R1= (A, E),

R2=(A, B, C)

cumple la propiedad de reunin sin prdida?

y R3=(B,D)

Comprobacin de la propiedad reunin


sin prdida
Ejemplo
R={A, B, C, D, E}

Descomposicin FNBC

Para cada DF X A en F+ que no satisfaga FNBC


Descomponer R en (R - A) y (X, A)
Si (R - A) o (X,A) no estn en FNBC, aplique la descomposicin
recursivamente
Garantiza descomposicin sin prdida pero no la preservacin de
dependencias

Garantiza descomposicin sin prdida pero no la preservacin de


dependencias

Descomposicin en FNBC
Ejemplo:
Sea R={CSJDPQV}, Llave C,
DF={ JP C, SD P, J S}
SD P genera la descomposicin SDP, CSJDQV.
J S, descompone CSJDQV en JS y CJDQV
Relaciones finales: SDP, JS, and CJDQV

Probando FNBC

Verificar si una dependencia no trivial


produce violacin FNBC

1. calcular +
2. Verificar que el cierre incluye todos
los atributos de R ( es una superllave
de R)

FNBC y dependencias
No es siempre posible obtener una descomposicin FNBC que
preserve dependencias

R = (J, K, L ), F = {JK L, L K }
LLaves candidatas = JK y JL
R no est en FNBC
Cualquier descomposicin de R falla al
preservar
JK L
Esto implica que la prueba de JK L requiere
un join

Descomposicin FNBC
Cuando varias dependencias producen
violaciones a la FNBC, el orden en el cual
se tratan puede conducir a diferentes
conjuntos de relaciones

FNBC y preservacin DF
En general, FNBC no preserva dependencias
CSZ, CS Z, Z C

No se puede descomponer en FNBC preservando la FD


CS Z, VERIFICARLO
CSJDPQV no se puede descomponer en SDP, JS y CJDQV
no preserva dependencias (DFs: JP C, SD P, J S)
Descomposicin sin prdida
Si se aadiera JPC al conjunto de relaciones la descomposicin
preservara dependencias
Sin embargo, las tuplas en JPC que se almacenan para verificar
la dependencia funcional producen Redundancia

Preservacin de dependencias en
descomposiciones

Si R se descompone en X,Y y Z, se
debe cumplir que las DFs que se
satisfagan en R se sigan
satisfaciendo individualmente en
X, Y y Z

Preservacin de dependencias
Algoritmo de sntesis relacional en 3FN (Conserva dependencias)

1. Calcular una cobertura mnima G para DF

2. Por cada implicante que aparezca en G crear un nuevo esquema D con los
atributos (X U A), donde X es el implicante (XA), adems X es las clave de la
relacin
3. Situar cualquier atributo que sobre en un esquema de relacin, siempre
buscando la conservacin de los atributos.

Cubrimiento para conjunto de


dependencias

Un cubrimiento Minimal (Cannico) G para un


conjunto de dependencias F es un conjunto de
dependencias funcionales minimal equivalente a F

No tiene dependencias redundantes

No tiene partes redundantes de dependencias

Cubrimiento para conjunto de


dependencias
Un cubrimiento Minimal (Cannico) G para
un conjunto de dependencias F
Cierre de F = Cierre de G.
El lado derecho de cada df en G es un atributo
simple
Si G se cambia borrando una df o borrando
atributos de una df en G, el cierre cambia.

Cubrimiento para conjunto de


dependencias

Cada df en G es necesaria, y tan pequea


como sea posible para obtener el mismo
cierre de F
A B, ABCD E, EF GH, ACDF EG
tiene el siguiente cubrimiento minimal:
A B, ACD E, EF G, EF H

Cubrimiento Cannico

Conjuntos de DF pueden tener dependencias


redundantes que se pueden inferir a partir de
otras
Ejemplo: A C es redundante en: {A B, B C}
Partes de una dependencia funcional pueden ser
redundantes
En el lado derecho: {A B, B C, A CD} se puede
simplificar como {A B, B C, A D}
En el izquierdo: {A B, B C, AC D} se puede
simplificar como {A B, B C, A D}

Recubrimiento minimal
Para encontrar el recubrimiento minimal:

1. Descomponer todas las DF en dependencias


normalizadas . (Lado derecho con un nico atributo)
2. Eliminar atributos redundantes

3. Eliminar las DF redundantes

Recubrimiento minimal: Ejemplo


Sea DF = {A BD, B CD, AC E}

Encontrar el recubrimiento minimal.

Paso 1: Dejar lado derecho de las DF como un solo atributo

{A B, A D, B C, B D, AC E}

Recubrimiento minimal: Ejemplo


Paso 2: Eliminar atributos redundantes
Hay que analizar DF que tienen en el implicante atributos compuestos

DF = {A B, A D, B C, B D, AC E}
Verificar si E est en el cierre de A.
A+ = ABCDE
Como E est en el cierre del atributo A, entonces C es redundante en AC E

CubMin= {A B, A D, B C, B D, A E}

Recubrimiento minimal: Ejemplo


Paso 3: Eliminar DF redundantes

CubMin= {A B, A D, B C, B D, A E}
Hay que revisar todas las DF:

Como B no est en A+, entonces A B no es redundante

Recubrimiento minimal: Ejemplo


Paso 3: Eliminar DF redundantes

CubMin= {A B, A D, B C, B D, A E}

Lo mismo para B C, B D, A E

Recubrimiento minimal: Ejemplo


Paso 3: Eliminar DF redundantes

CubMin= {A B, B C, B D, A E}
B C; B+ = ?
+
B D; B = ?
A E; A+= ?

Son redundantes ???

Calcular el cierre de cada atributo en CubMin, como se hizo antes

Recubrimiento minimal: Ejemplo


Paso 3: Eliminar DF redundantes

CubMin= {A B, B C, B D, A E}
B C; B+ = BD
+
B D; B = BC
A E; A+= ABCD

NO redundantes

C, D y E no se encuentran en el cierre de cada atributo


respectivamente, por lo tanto estas DF son no redundantes

Preservacin de dependencias
Algoritmo de sntesis relacional en 3FN (Conserva dependencias)

1. Calcular una cobertura mnima G para DF

2. Por cada implicante que aparezca en G crear un nuevo esquema D con los
atributos (X U A), donde X es el implicante (XY), adems X es las clave de la
relacin
3. Situar cualquier atributo que sobre en un esquema de relacin, siempre
buscando la conservacin de los atributos.

Preservacin de dependencias
Algoritmo de sntesis relacional en 3FN (Conserva dependencias)

Ejemplo:
R={dni, num_proy, salario, nombre_emp, id_depto, nombre_proy, ubi_poy}

dni salario, nombre_emp, id_depto


num_proy nombre_proy, ubi_proy
dni, num_proy salario,nombre_emp,id_depto, nombre_proy, ubi_proy

Preservacin de dependencias
Algoritmo de sntesis relacional en 3FN (Conserva dependencias)
R={dni, num_proy, salario, nombre_emp, id_depto, nombre_proy, ubi_poy}

Sea G la cobertura mnima de R:


G= {dni salario nombre_emp, id_depto;
num_proy nombre_proy, ubi_proy }

R1=(dni, salario, nombre_emp, id_depto)


R2=(num_proy, nombre_proy, ubi_poy)

No garantiza que se mantenga la informacin

Descomposicin 3FN
Conservacin de dependencias y descomposicin sin prdida

Descomposicin 3FN

Conservacin de dependencias
Descomposicin sin prdida
Cada esquema resultante est en 3FN

Descomposicn 3FN
Ejemplo 1:
R={dni, num_proy, salario, nombre_emp, id_depto, nombre_proy, ubi_poy}

G= {dni salario nombre_emp, id_depto;


num_proy nombre_proy, ubi_proy }

R1=(dni, salario, nombre_emp, id_depto)


R2=(num_proy, nombre_proy, ubi_poy)
R3=(dni, num_proy)

En el paso 3 del algoritmo se agrega la relacin R3,


que contiene la llave de la relacin

Descomposicn 3FN
Ejemplo 2:
R={P, L, C, A, }

DF= {P LCA, LC AP, A C}

G= {P LC, LC AP, A C}

R1=(P, L, C)
R2=(L, C, A, P)
R3=(A, C)

Aplicando el paso 4 del algoritmo: R1 y R3 estn incluidas en R2, son


redundantes.

Cierre de atributos:Usos
Usos del cierre de atributos
Probar superllaves:
Para probar si es una superllave, calcular +, y
verificar si + contiene todos los atributos de R.

Probar dependencias funcionales


Verificar si una dependencia funcional se
satisface (est en F+), se hace verificando si +.
Es decir, calcular + usando cierre de atributos, y
verificar si este contiene a .
Forma simple y poco costosa

Cierre de atributos
Usos del cierre de atributos

Calcular cierre de F
Para cada R, encontrar +, y para cada
S +, entregar la dependencia funcional
S.

Bsqueda de todas las claves


1. Obtener los atributos S que no figuran en la parte derecha de DF
2. Verificar si S es superllave. Si lo es, es nica.
3. Si no lo es, agregar las combinaciones posibles de subconjuntos R-S y
verificar si esos sub conjuntos son llave.
Obviar aquellos subconjuntos que contienen una llave ya calculada porque no son
minimales.
4. Si S es vaco iniciar con atributos que estn en la izquierda aunque tambin estn
en la derecha.

Bsqueda de todas las claves


T={A, B, C, D, E, F}
DF= {BF, FD, CA, BC, AE, DB}
Sizq= Vacio
SDer= E
Smed = ABCDF

A+= AE
B+ = BFDCAE
C+=CAE
D+=DBFCAE
F+=FABCDE
AC+=ACE

Prueba de 3FN

Verificar solo DFs en F, no todas las DFs en


F+.
Usar el cierre de atributos para verificar si en
cada dependencia , es una superllave.
Si no es superllave, verificar si cada atributo
en est contenido en una llave candidata de R
Prueba costosa porque requiere encontrar llaves
candidatas
Probar si un esquema est en 3FN es un NP-hard
La descomposicin en 3FN que se muestra se puede
hacer en tiempo polinomial

Algoritmo Descomposicin 3FN


Sea Fc un cubrimiento cannico de F;
i := 0;
for each df en Fc do
if ninguno de los esquemas Rj, 1 j i contiene
then begin
i := i + 1;
Ri :=
end
if ninguno de los esquemas Rj, 1 j i contiene una llave
candidata para R
then begin
i := i + 1;
Ri := cualquier llave candidata para R;
end
return (R1, R2, ..., Ri)

Dependencias multivaluadas

Una dependencia es multivaluada X Y,


(X multidetermina Y), si dos tuplas t1 y t2 existen en R de modo que
t1[x] = t2[X], entonces tambin deben existir otras dos tuplas t3 y t4
con las siguientes propiedades:
Sea Z= (R-(XUY))

T3[X] = t4[X]= T1[X] = t2[X]


T3[Y] = t1[Y] y T4[Y] = t2[Y]
T3[Z] = t2[Z] y T4[Z] = t1[Z]

Dependencias multivaluadas
NombreE nombre_proy,
NombreE
Prez
Prez
Prez
Prez

nombre_proy
Proyecto X
Proyecto Y
Proyecto X
Proyecto Y

NombreE subordinado
subordinado
Juan
Ana
Ana
Juan

X Y

Dado un valor particular de X, el conjunto de valores de Y est


completamente determinados por X y no depende de los atributos Z
restantes de R .
Los valores de Y se repiten en tuplas separadas por cada valor de Z,
que se produzca con ese mismo valor de X .

Dependencias multivaluadas

Un esquema de R esta en 4FN respecto a un conjunto de


dependendencias, si por cada MVD no trivial X Y,
entonces X es una superclave.

Una MVD es trivial si:


a) Y es subconjunto de X o,
b) XUY = R

Dependencias multivaluadas
NombreE nombre_proy,

NombreE
Prez
Prez
Prez
Prez

nombre_proy
Proyecto X
Proyecto Y
Proyecto X
Proyecto Y

NombreE subordinado
subordinado
Juan
Ana
Ana
Juan

X Y

Es una relacin donde todos los atributos son la clave. R est en BCNF
pero no est en 4FN.
La relacin tiene las MVD no triviales: NombreE nombre_proy,
NombreE subordinado, y NombreE no es la clave de R

Dependencias multivaluadas
DESCOMPOSICION EN 4FN
Mientras exista un esquema Q en D que no est en 4FN

* Elegir un esquema de relacin Q en D que no est en 4FN


Localizar la MVD que viola 4FN
*
Sustituir Q en dos relaciones (Q-Y) y (X,Y)
*

Dependencias multivaluadas
NombreE
Perez
Perez
Perez
Perez

nombre_proy
x
y
x
y

subordinado
Juan
Ana
Ana
Juan

R1
NombreE
Perez
Perez

nombre_proy
x
y

MVD1= NombreE nombre_proy

R2
NombreE
Perez
Perez

subordinado
Juan
Ana

MVD2= NombreE subordinado

R1y R2 estn en 4FN. Las MVD son triviales.

Vous aimerez peut-être aussi