diseño lógico: normalizacióndbd-200… · al diseñar una bd relacional, podemos obtener...
TRANSCRIPT
1
© José María Cavero 2010DBDySI-1
Temario
2o cuatrimestre
Diseño Lógico
Diseño Lógico Estándar
Diseño Lógico Específico
Normalización
Seguridad en BD
Diseño Físico y Administración de Bases de Datos
Otras tecnologías de Bases de Datos
Bases de Datos Distribuidas
Almacenes de Datos
Práctica
Diseño de una BD usando una herramienta CASE
Desarrollo de una aplicación con conexión a una BD
© José María Cavero 2010
Diseño Lógico:
Normalización
Diseño de Bases de Datos y
Seguridad de la Información
www.kybele.es
2
© José María Cavero 2010DBDySI-3
Tecnología y Diseño de Bases de Datos
M. Piattini, E. Marcos, C. Calero y B. Vela
Ed.: RA-MA, 2006 Octubre
Introducción a los Sistemas de Bases de Datos
C. J. Date
Ed.: Prentice Hall, Séptima Edición, 2001
Diseño de Bases de Datos. Problemas Resueltos.
A. de Miguel et al.
Ed.: RA-MA, 2001
Bibliografía
© José María Cavero 2010DBDySI-4
Índice
1. Introducción
2. Dependencias Funcionales
3. Teoría de la Normalización
4.1. Formas Normales
4.2. Descomposición y Síntesis
4. Ejercicios
3
© José María Cavero 2010DBDySI-5
Índice
1. Introducción
2. Dependencias Funcionales
3. Teoría de la Normalización
4.1. Formas Normales
4.2. Descomposición y Síntesis
4. Ejercicios
© José María Cavero 2010DBDySI-6
Introducción: “Objetivos”
Código Nombre Ciudad Provincia
01 Juan Móstoles Madrid
02 María Móstoles Madrid
03 Pepe Navalcarnero Madrid
04 Antonio Valmojado Toledo
EMPLEADOS
Decidir si una R es “correcta”
Si no, descomponer en {R1, R2…Rn}, tal que:
Las relaciones sean “correctas”
Descomposición “sin pérdidas”
Código Nombre Provincia
01 Juan Madrid
02 María Madrid
03 Pepe Madrid
04 Antonio Toledo
Ciudad Provincia
Móstoles Madrid
Navalcarnero Madrid
Valmojado Toledo
EMPLEADOS_1
CIUDADES
4
© José María Cavero 2010DBDySI-7
Introducción: un ejemplo
ESTUDIANTE (Cód_E, Nombre_E, Ciudad)
SOLICITA (Cód_B, Cód_E, Fecha)
BECA (Cód_B, Nombre_B, Requisito)
ESTUDIANTE
BECA
Solicita
Cód_EstudianteNombreCiudad
Fecha
Cód_BecaNombreRequisito
© José María Cavero 2010DBDySI-8
Introducción: un ejemplo
Cód_E Cód_B Fecha
E2 B2 12/11/08
E2 B1 14/10/08
E2 B3 15/09/08
E3 B3 21/09/08
E1 B2 11/11/08
E3 B2 10/10/08
E1 B1 12/11/08
Cód_E Nombre_E Ciudad
E1 Juan Madrid
E2 María Madrid
E3 Pepe Soria
Cód_B Nombre_B Requisito
B1 Beca1 IT
B2 Beca2 IT
B3 Beca3 II
Estudiante Solicita Beca
Cód_E Nombre_E Ciudad Cód_B Nombre_B Requisito Fecha
E2 María Madrid B2 Beca2 IT 12/11/08
E2 María Madrid B1 Beca1 IT 14/10/08
E2 María Madrid B3 Beca3 II 15/09/08
E3 Pepe Soria B3 Beca3 II 21/09/08
E1 Juan Madrid B2 Beca2 IT 11/11/08
E3 Pepe Soria B2 Beca2 IT 10/10/08
E1 Juan Madrid B1 Beca1 IT 12/11/08
Estudiante_Solicita_Beca
5
© José María Cavero 2010DBDySI-9
Al diseñar una BD relacional, podemos obtener
diferentes esquemas
La teoría de la normalización consigue una
formalización en el diseño lógico
Representación adecuada de la realidad y
problemas de diseños inadecuados
La teoría de la normalización permite afrontar el
problema de diseño de bases de datos
relacionales de una manera rigurosa y objetiva
Introducción: diseño
© José María Cavero 2010DBDySI-10
Formas de abordar el proceso de modelado:
A) Obteniendo el esquema relacional directamente
B) Realizando el proceso de diseño en dos fases
Posibles problemas: Incapacidad para almacenar ciertos hechos.
Redundancias y, por tanto, posibilidad de inconsistencias
Ambigüedades
Pérdida de información (aparición de tuplas espurias)
Pérdida de dependencias funcionales
Existencia de valores nulos (inaplicables)
Aparición de estados que no son válidos en el mundo real
Introducción: diseño
6
© José María Cavero 2010DBDySI-11
Anomalías:
Inserción
Borrado
Modificación
Introducción: diseño “correcto”
Cód_E Nombre_E Ciudad Cód_B Nombre_B Requisito Fecha
E2 María Madrid B2 Beca2 IT 12/11/08
E2 María Madrid B1 Beca1 IT 14/10/08
E2 María Madrid B3 Beca3 II 15/09/08
E3 Pepe Soria B3 Beca3 II 21/09/08
E1 Juan Madrid B2 Beca2 IT 11/11/08
E3 Pepe Soria B2 Beca2 IT 10/10/08
E1 Juan Madrid B1 Beca1 IT 12/11/08
Estudiante_Solicita_Beca
© José María Cavero 2010DBDySI-12
Índice
1. Introducción
2. Dependencias Funcionales
3. Teoría de la Normalización
4.1. Formas Normales
4.2. Descomposición y Síntesis
4. Ejercicios
7
© José María Cavero 2010DBDySI-13
Dependencias entre los datos
MAT Nombre Apellido Población Provincia Asignatura Conv Nota
001 Juan Pérez Móstoles Madrid DBD Sep/09 NP
001 Juan Pérez Móstoles Madrid DBD Jun/10 SB
002 María García Alcorcón Madrid Redes Jun/10 AP
003 Eva Gómez Madrid Madrid DBD Sep/09 NOT
003 Eva Gómez Madrid Madrid Redes Jun/10 NOT
003 Eva Gómez Madrid Madrid SSOO Jun/10 NOT
004 Luis Martín Valmojado Toledo DBD Sep/09 SUSP
NOTAS
© José María Cavero 2010DBDySI-14
Son semántica
Dependencias entre los datos
MAT Nombre Apellido Población Provincia
001 Juan Pérez Móstoles Madrid
002 María García Alcorcón Madrid
003 Eva Gómez Madrid Madrid
004 Luis Martín Valmojado Toledo
ESTUDIANTE
8
© José María Cavero 2010DBDySI-15
¿A -> B?, ¿B -> C?, ¿C -> B?
Dependencias entre los datos
A B C D E
001 B1 1 1254 X
002 B2 7 5478 Y
003 B3 54 2568 Z
004 B4 0 3698 F
005 B3 54 4758 X
006 B6 21 2678 S
007 B3 54 2147 S
008 B2 7 2147 T
T1
© José María Cavero 2010DBDySI-16
¿A -> B?, ¿B -> C?, ¡C-/>B!
Dependencias entre los datos
A B C D E
001 B1 1 1254 X
002 B2 7 5478 Y
003 B3 54 2568 Z
004 B4 0 3698 F
005 B3 54 4758 X
006 B6 21 2678 S
007 B3 54 2147 S
008 B2 7 2147 T
009 B8 7 4789 Q
T1
9
© José María Cavero 2010DBDySI-17
Las dependencias son propiedades inherentes al
contenido semántico de los datos; forman parte de las
restricciones de usuario del modelo relacional y se han
de cumplir para cualquier extensión de un esquema de
relación
Sin pérdida de generalidad vamos a considerar que el
esquema relacional está compuesto por un único
esquema de relación: R (A,DEP), donde:
A: conjunto de atributos de la relación
DEP: cjto. de dependencias existentes entre los atributos
Existen distintos tipos: funcionales, multivaluadas,
jerárquicas y de combinación
Dependencias entre los datos
© José María Cavero 2010DBDySI-18
Sea el esquema de relación R(A,DF), y sean X, Y dos
subconjuntos de A, a los que llamamos descriptores.
Se dice que Y depende funcionalmente de X o que X implica
o determina a Y, y se denota como X Y si, y sólo si, a cada
valor x del atributo X, le corresponde un único valor y del
atributo Y.
Un determinante o implicante es un conjunto de
atributos del que depende funcionalmente otro conjunto
de atributos al que llamamos implicado.
Por ejemplo: Cód_Estudiante Nombre
Dos descriptores X e Y son equivalentes si:
X Y Y X, o bien, X Y (Cód_Estudiante DNI)
Dependencias funcionales
10
© José María Cavero 2010DBDySI-19
DF: ejemplo
Cód_E Nombre_E Ciudad Cód_B Nombre_B Requisito Fecha
E2 María Madrid B2 Beca2 IT 12/11/08
E2 María Madrid B1 Beca1 IT 14/10/08
E2 María Madrid B3 Beca3 II 15/09/08
E3 Pepe Soria B3 Beca3 II 21/09/08
E1 Juan Madrid B2 Beca2 IT 11/11/08
E3 Pepe Soria B2 Beca2 IT 10/10/08
E1 Juan Madrid B1 Beca1 IT 12/11/08
Estudiante_Solicita_Beca
En esta extensión,
Cód_E Nombre_E
Cód_E, Cód_B Fecha
Fecha Ciudad
…
Y, ¿para toda extensión válida?
© José María Cavero 2010DBDySI-20
DF: ejemplo
Cód_E Nombre_E Ciudad País
E1 Juan Madrid España
E2 María Madrid España
E3 Pepe Soria España
Estudiante
Si Cód_E es clave, se satisface:
Cód_E {Cód_E, Nombre_E, Ciudad, País}
Si A B y A no es una clave candidata,
involucrará cierta redundancia
¿Interesa reducir el número de dependencias?
11
© José María Cavero 2010DBDySI-21
Dependencia funcional X Y es trivial si Y X
Ej: Cód_Curso, Cód_Edición Cód_Curso
Cierre de un conjunto de dependencias:
DF+: conjunto de todas las dependencias funcionales
implicadas por DF.
Primera aproximación: axiomas de Armstrong:
Reflexividad: si Y X, entonces X Y
Aumento: si X Y, entonces XZ YZ
Transitividad: si X Y y Y Z, entonces X Z
Dependencias funcionales
© José María Cavero 2010DBDySI-22
Podemos calcular DF+ aplicando los axiomas
Calcular el cierre de un subconjunto tal que X sea
implicante: cierre transitivo de un descriptor X de R
respecto al conjunto de dependencias DF, (X+DF)
Dado R(A, DF), se define X+DF como un subconjunto de
los atributos de A tales que X X+DF DF+, siendo X+
DF máximo en el sentido de que la adición de cualquier
atributo vulneraría la condición anterior
Consecuencias: cálculo de SK y K
Algoritmo de Ullman
Cierre de un descriptor
12
© José María Cavero 2010DBDySI-23
R (A, B, C, D, E, F, DF), donde DF=A B, B A,
C A, D C, (E, C) D, A F, C F, hallar el
cierre del descriptor (E, C)
E, C E, C
E, C E, C, D
E, C E, C, D, A
E, C E, C, D, A, B
E, C E, C, D, A, B, F
Por tanto,
(E, C)+ = E, C, D, A, B, F
Cierre transitivo de un descriptor: ejemplo
© José María Cavero 2010DBDySI-24
Dado DF, X Y DF+ sii Y X+DF
DF1 y DF2 son equivalentes si DF+1 = DF+
2.
Si para toda dependencia X YDF2 se cumple que Y
X+DF1, entonces toda dependencia de DF2 está en
DF1 y por tanto DF1 es un recubrimiento de DF2
Si para toda dependencia Z WDF1 se cumple que
W Z+DF2, entonces toda dependencia de DF1 está en
DF2 y por tanto DF2 es un recubrimiento de DF1 está
Si se cumplen ambas condiciones, DF1 y DF2
son mutuamente recubrimientos, luego son
equivalentes
Equivalencia de conjuntos de DF
13
© José María Cavero 2010DBDySI-25
Sea R (X, Y, Z), con X Y, Y Z, Y X
Z tiene una dependencia transitiva respecto a X a través
de Y (X Z)
Si Z Y, la dependencia transitiva es estricta.
Ej: DIRECCIÓN (CP, Localidad, Provincia)
con CP Localidad, Localidad Provincia
Además, Localidad CP
Entonces, CP Provincia
Por tanto, CP Provincia
Además, como Provincia Localidad, se da una
dependencia transitiva estricta.
Dependencia funcional transitiva
© José María Cavero 2010DBDySI-26
De todos los posibles conjuntos equivalentes a
un conjunto dado de dependencias, hay algunos
de ellos que son mínimos, por lo que se dice
que son recubrimientos irredundantes (también
llamados minimales) del conjunto dado de
dependencias:
Un único atributo en el implicado
Irreducible por la izquierda (no atributos extraños)
Sin DF redundantes
Cálculo del recubrimiento irredundante
14
© José María Cavero 2010DBDySI-27
Se calcula el cierre X+DF de X
Si X+DF A, X no es clave
Si X+DF A, X es una superclave. Si para algún
subconjunto X’i del descriptor, X’i+
DF A, X no es clave
En caso contrario X es una clave candidata.
Determinación de si un descriptor es
clave de una relación
© José María Cavero 2010DBDySI-28
Sea R(A,DF) eliminando descriptores equivalentes
Aspectos a tener en cuenta
a) Todo atributo independiente forma parte de todas las claves
b) Los descriptores equivalentes dan lugar a varias claves
c) Ningún atributo implicado que no es implicante forma parte
de ninguna clave
d) Todo atributo implicante pero no implicado forma parte de
todas las claves (siempre que no tenga otros equivalentes)
e) Aquellos atributos que son implicantes e implicados pueden
formar parte de alguna clave
Algoritmo para la obtención de las
claves candidatas
15
© José María Cavero 2010DBDySI-29
Paso 1. Eliminación de descriptores independientes
Paso 2. Eliminación de descriptores equivalentes
Paso 3. Determinación de un descriptor (en el que no
haya implicados) que sea clave de Rsie
Paso 4. Determinación de un descriptor de Rsie (en el
que puede haber implicados siempre que sean también
implicantes)
Paso 5. Tratamiento de atributos independientes para
obtener una clave de la relación original
Paso 6. Tratamiento de descriptores equivalentes
Algoritmo para la obtención de las
claves candidatas
© José María Cavero 2010DBDySI-30
Índice
1. Introducción
2. Dependencias Funcionales
3. Teoría de la Normalización
4.1. Formas Normales
4.2. Descomposición y Síntesis
4. Ejercicios
16
© José María Cavero 2010DBDySI-31
Dado un conjunto A de atributos y el conjunto D
de dependencias existentes entre ellos que
constituyen un esquema de relación R(A, D), se
trata de transformar, por medio de sucesivas
proyecciones, este esquema de partida en un
conjunto de n esquemas de relación {Ri (Ai, Di)}n
i=1 , tales que cumplan unas determinadas
condiciones:
El conjunto de esquemas Ri deberán ser equivalentes a
R y mejores que el esquema de partida
Teoría de la normalización
© José María Cavero 2010DBDySI-32
Descomposición sin pérdida de información
Cód_E Cód_B Fecha
E2 B2 12/11/08
E2 B1 14/10/08
E2 B3 15/09/08
E3 B3 21/09/08
E1 B2 11/11/08
E3 B2 10/10/08
E1 B1 12/11/08
Cód_E Nombre_E Ciudad
E1 Juan Madrid
E2 María Madrid
E3 Pepe Soria
Cód_B Nombre_B Requisito
B1 Beca1 IT
B2 Beca2 IT
B3 Beca3 II
Estudiante Solicita Beca
Cód_E Nombre_E Ciudad Cód_B Nombre_B Requisito Fecha
E2 María Madrid B2 Beca2 IT 12/11/08
E2 María Madrid B1 Beca1 IT 14/10/08
E2 María Madrid B3 Beca3 II 15/09/08
E3 Pepe Soria B3 Beca3 II 21/09/08
E1 Juan Madrid B2 Beca2 IT 11/11/08
E3 Pepe Soria B2 Beca2 IT 10/10/08
E1 Juan Madrid B1 Beca1 IT 12/11/08
Estudiante*Solicita*Beca
17
© José María Cavero 2010DBDySI-33
Descomposición con pérdida de información
Cód_E Nombre_E Ciudad Fecha
E2 María Madrid 12/11/08
E2 María Madrid 14/10/08
E2 María Madrid 15/09/08
E3 Pepe Soria 21/09/08
E1 Juan Madrid 11/11/08
E3 Pepe Soria 10/10/08
E1 Juan Madrid 12/11/08
Cód_E Nombre_E Ciudad Cód_B Nombre_B Requisito Fecha
E2 María Madrid B2 Beca2 IT 12/11/08
E2 María Madrid B1 Beca1 IT 12/11/08
E2 María Madrid B1 Beca1 IT 14/10/08
E2 María Madrid B3 Beca3 II 15/09/08
E3 Pepe Soria B3 Beca3 II 21/09/08
E1 Juan Madrid B2 Beca2 IT 11/11/08
E3 Pepe Soria B2 Beca2 IT 10/10/08
E1 Juan Madrid B1 Beca1 IT 12/11/08
E1 Juan Madrid B2 Beca2 IT 12/11/08
Estudiante_Nueva
Estudiante_Nueva*Beca_Nueva
Beca_Nueva
Cód_B Nombre_B Requisito Fecha
B2 Beca2 IT 12/11/08
B1 Beca1 IT 14/10/08
B3 Beca3 II 15/09/08
B3 Beca3 II 21/09/08
B2 Beca2 IT 11/11/08
B2 Beca2 IT 10/10/08
B1 Beca1 IT 12/11/08
© José María Cavero 2010DBDySI-34
Descomposición con pérdida de información
Cód_E Nombre_E Ciudad Fecha
E2 María Madrid 12/11/08
E2 María Madrid 14/10/08
E2 María Madrid 15/09/08
E3 Pepe Soria 21/09/08
E1 Juan Madrid 11/11/08
E3 Pepe Soria 10/10/08
E1 Juan Madrid 12/11/08
Cód_E Nombre_E Ciudad Cód_B Nombre_B Requisito Fecha
E2 María Madrid B2 Beca2 IT 12/11/08
E2 María Madrid B1 Beca1 IT 12/11/08
E2 María Madrid B1 Beca1 IT 14/10/08
E2 María Madrid B3 Beca3 II 15/09/08
E3 Pepe Soria B3 Beca3 II 21/09/08
E1 Juan Madrid B2 Beca2 IT 11/11/08
E3 Pepe Soria B2 Beca2 IT 10/10/08
E1 Juan Madrid B1 Beca1 IT 12/11/08
E1 Juan Madrid B2 Beca2 IT 12/11/08
Estudiante_Nueva
Estudiante_Nueva*Beca_Nueva
Beca_Nueva
Cód_B Nombre_B Requisito Fecha
B2 Beca2 IT 12/11/08
B1 Beca1 IT 14/10/08
B3 Beca3 II 15/09/08
B3 Beca3 II 21/09/08
B2 Beca2 IT 11/11/08
B2 Beca2 IT 10/10/08
B1 Beca1 IT 12/11/08
18
© José María Cavero 2010DBDySI-35
Índice
1. Introducción
2. Dependencias Funcionales
3. Teoría de la Normalización
4.1. Formas Normales
4.2. Descomposición y Síntesis
4. Ejercicios
© José María Cavero 2010DBDySI-36
Un esquema de relación está en una cierta forma normal
si satisface un conjunto de restricciones
Cuanto más alta sea la forma normal menores serán los
problemas en el mantenimiento de la BD
Codd propuso inicialmente tres formas normales
basadas en las DF: 1FN, 2FN y 3FN
En 1974 introdujo una definición más restrictiva de la
3FN que se denominó Forma Normal de Boyce-Codd
(FNBC).
La 4FN se basa dependencias multivaluadas y la 5FN
en las dependencias de proyección-combinación
Formas normales
19
© José María Cavero 2010DBDySI-37
Formas normales
1FN2FN
3FN
FNBC
4FN
5FN
DKFN
6FN
© José María Cavero 2010DBDySI-38
Una relación está en 1FN cuando cada atributo
sólo toma un valor del dominio simple
subyacente
Primera forma normal
Estudiante (Código, Nombre, Beca)
Código Nombre Beca
E1 JuanBeca1
Beca2
E2 María Beca3
E3 PepeBeca2
Beca3
Tabla, no relación
Grupos repetitivos
Código Nombre Beca
E1 Juan Beca1
E1 Juan Beca2
E2 María Beca3
E3 Pepe Beca2
E3 Pepe Beca3
1FN
20
© José María Cavero 2010DBDySI-39
Una relación está en 2FN si:
Está en 1FN.
Cada atributo no principal tiene DF completa respecto de
cada una de las claves.
No se cumple cuando algún atributo no principal
depende funcionalmente de algún subcjto de la clave
Cualquier relación binaria, cualquier relación cuyas
claves son simples y cualquier relación en la que todos
sus atributos son principales, está en 2FN
Siempre se pueden obtener esquemas en 2FN sin
pérdida de información ni de dependencias.
Segunda forma normal
© José María Cavero 2010DBDySI-40
ESTUDIANTE_BECA (AT, DEP) donde:
AT = {Cod_Estudiante, Cod_Beca, Fecha_Sol, Título}
DEP = {Cod_Estudiante, Cod_Beca Fecha_Sol
Cod_Estudiante Título}
Transformamos en:
ESTUDIANTE_BECA1 (AT1, DEP1) donde:
AT1 = {Cod_Estudiante, Cod_Beca, Fecha_Sol }
DEP1 = {Cod_Estudiante, Cod_Beca Fecha_Sol }
ESTUDIANTE (AT2, DEP2) donde:
AT2 = {Cod_Estudiante, Título}
DEP2 = {Cod_Estudiante Título}
Segunda forma normal: ejemplo
21
© José María Cavero 2010DBDySI-41
Un esquema de relación R, está en 3FN si, y sólo si:
Está en 2FN.
No existe ningún atributo no principal que dependa
transitivamente de alguna clave de R.
No se cumple cuando existen atr. no principales que
dependen funcionalmente de otros atr. no principales
Toda relación binaria y toda relación que tiene, como
mucho, un atr. no principal, está en 3FN
Siempre se pueden obtener esquemas de relación en
3FN sin pérdida de información ni de DF
Tercera forma normal
© José María Cavero 2010DBDySI-42
ESTUDIANTE (AT, DEP) donde:
AT = {Cod_Estudiante, Cod_Proyecto,
Nombre_Proyecto}
DEP = {Cod_Proyecto Nombre_Proyecto
Cod_Estudiante Cod_Proyecto}
ESTUDIANTE1 (AT1,DEP1) donde:
AT1={Cod_Estudiante, Cod_Proyecto}
DEP1={Cod_Estudiante Cod_Proyecto}
PROYECTO (AT2,DEP2) donde:
AT2={Cod_Proyecto, Nombre_Proyecto}
DEP2={Cod_Proyecto Nombre_Proyecto}
Tercera forma normal: ejemplo
22
© José María Cavero 2010DBDySI-43
Posibles problemas si 3FN y claves candidatas
compuestas que se solapan
Se dice que una relación se encuentra en FNBC si, y
sólo si, todo determinante es una clave candidata.
ASISTE (Cod_Curso, Nom_Curso, Cod_Estud, Calif)
Cod_Curso Nom_Curso,
Cod_Curso, Cod_Estudiante Calificación
Se repite nombre y código por cada estudiante
Si 3FN y claves no solapadas, también en FNBC
Toda relación binaria está en FNBC.
En la transformación pueden perderse DF
Forma normal de Boyce-Codd
© José María Cavero 2010DBDySI-44
SE_MATRICULA1 (Cod_Curso, Cod_Edición,
Cod_Estudiante, Fecha)
Cod_Curso, Cod_Edición, Cod_Estudiante Fecha
Cod_Edición,Cod_Estudiante,Fecha Cod_Curso
Claves candidatas:
(Cod_Curso, Cod_Edición, Cod_Estudiante)
(Cod_Edición,Cod_Estudiante,Fecha)
Se solapan ya que comparten los atributos Cod_Edición
y Cod_Estudiante; sin embargo, debido a que los únicos
determinantes son los dos descriptores anteriores, que
son claves candidatas, la relación sí se encuentra en
FNBC.
Forma normal de Boyce-Codd: ejemplo
23
© José María Cavero 2010DBDySI-45
CLASE (AT,DEP) donde:
AT={Cod_Estudiante, Cod_Profesor, Materia}
DEP={Cod_Estudiante, Materia Cod_Profesor
Cod_Profesor Materia}
CLASE1 (AT1,DEP1) donde:
AT1={Cod_Estudiante, Cód_Profesor}
DEP1={}
CLASE2 (AT2,DEP2) donde:
AT2={Cod_Profesor, Materia}
DEP2={Cod_Profesor Materia}
Pérdida de DF
Forma normal de Boyce-Codd: ejemplo
© José María Cavero 2010DBDySI-46
Índice
1. Introducción
2. Dependencias Funcionales
3. Teoría de la Normalización
4.1. Formas Normales
4.2. Descomposición y Síntesis
4. Ejercicios
24
© José María Cavero 2010DBDySI-47
Aspectos a tener en cuenta:
Avanzar en las formas normales
Conservación de los atributos
Conservación de las dependencias
Conservación de la información (lossless join)
El proceso de descomposición
© José María Cavero 2010DBDySI-48
COD_E CP CIUDAD
E1 28008 Madrid
E2 28008 Madrid
COD_E CP
E1 28008
E2 28008
CP CIUDAD
28008 Madrid
28008 Madrid
COD_E CP
E1 28008
E2 28008
COD_E CIUDAD
E1 Madrid
E2 Madrid
COD_E CP
CP CIUDAD
COD_E CP CP CIUDAD
COD_E CP ¿CP CIUDAD?
Conservación de las dependencias
25
© José María Cavero 2010DBDySI-49
La descomposición implica separar un esquema
en otros, en un proceso reversible.
COD_E PUESTO CIUDAD
E1 Administrativo Madrid
E2 Administrativo Móstoles
COD_E PUESTO
E1 Administrativo
E2 Administrativo
COD_E CIUDAD
E1 Madrid
E2 Móstoles
COD_E PUESTO
E1 Administrativo
E2 Administrativo
PUESTO CIUDAD
Administrativo Madrid
Administrativo Móstoles
COD_E PUESTO CIUDAD
E1 Administrativo Madrid
E1 Administrativo Móstoles
E2 Administrativo Madrid
E2 Administrativo Móstoles
COD_E PUESTO CIUDAD
E1 Administrativo Madrid
E2 Administrativo Móstoles
Descomposición sin pérdida de
información (lossless join)
© José María Cavero 2010DBDySI-50
Comprobación de descomposición sin pérdida
de información
Una descomposición D = {R1, R2} es sin
pérdida (lossless join) con respecto a un
conjunto de DF sii
(A1∩A2)→(A1-A2) ó
(A1∩A2)→(A2-A1)
Descomposición sin pérdida de
información (lossless join)
26
© José María Cavero 2010DBDySI-51
Descomposición en 3FN conservando DF y la
información
1. Encontrar un recubrimiento mínimo
2. Para cada conjunto de DF de la forma X→Ai, un
esquema R({X,A1…Am},{X→A1,… X→Am}
3. Si ningún esquema contiene una clave de R, crear un
esquema con la clave.
Algoritmo de síntesis
© José María Cavero 2010DBDySI-52
1. Hallar un recubrimiento minimal DFm
2. Determinar la(s) clave(s), así como los atributos principales y no principales
3. Identificar la FN en que se encuentra la relación
Si se desea llegar a una forma normal más avanzada:
4. Agrupar las DF que tengan el mismo implicante y/o eq.
5. Obtener proy. indep sobre cada una de las DF (o de los grupos), de forma que los atributos que aparecen en la DF constituyen una nueva relación y los atr.no ppales, así como la DF, desaparezcan de la relación origen.
6. Proseguir esta descomposición repitiendo el paso 5 hasta que no pueda continuarse porque todas las DF estén implicadas por una clave.
El proceso de descomposición
27
© José María Cavero 2010DBDySI-53
R ({a, b, c, d} { ab, bc, cd})
R1 ({a, b} {a b}) R’({a, c, d} {c d})
R2 ({c, d} {c d}) R3 ({a, d}{})
ab
cd
Clave: a
Clave: a, c
Clave: a, c
R ({a, b, c, d} { ab, bc, cd})
R1 ({c, d} {c d}) R’({a, b, c} {a b, b c})
R2 ({b, c} {b c}) R3 ({a, b}{a b})
cd
b c
Clave: a
Clave: a
Clave: a
Descomposición
incorrecta
Descomposición
correcta
El proceso de descomposición
© José María Cavero 2010DBDySI-54
Índice
1. Introducción
2. Dependencias Funcionales
3. Teoría de la Normalización
4.1. Formas Normales
4.2. Descomposición y Síntesis
4. Ejercicios
28
© José María Cavero 2010DBDySI-55
o Sea R1 el esquema de relación siguiente:
o R1({A,B,C,D},
{AB,
B,DA})
o Y sea R2 un esquema de relación una de cuyas extensiones válidas es:
Ejercicios
A B C D
A1 B1 C1 D1
A2 B1 C2 D1
a. R1 y R2 son equivalentes
b. R1 y R2 no son equivalentes
c. R1 y R2 no son equivalentes, pero lo serían si sustituimos en R1 la
dependencia B,DA por CA
d. La extensión dada es válida en R1, pero no tenemos información suficiente
para asegurar que sean equivalentes
e. R1 y R2 serían equivalentes si R1 no tuviera ninguna dependencia
© José María Cavero 2010DBDySI-56
o Sea R el esquema de relación R({A,B,C},{A→B}).
o Dadas las siguientes extensiones:
Ejercicios
A B C
A1 B1 C1
A2 B1 C2
a. E1 es válida en R
b. E2 es válida en R
c. E3 es válida en R
d. a) y b) son correctas
e. a) y c) son correctas
A B C
A1 B1 C1
A1 B2 C2
A B C
A1 B1 C1
A1 B1 C2
29
© José María Cavero 2010DBDySI-57
a) R ({A,B,C,D,
{A,BC,
BD,
DA)
b) R ({A,B,C,D,
{AB,
B,C,DA)
Ejercicios
© José María Cavero 2010DBDySI-58
c) R ({CANTANTE, GALA, CANCIÓN, COMPOSITOR, FECHA,
NOMINADO
{CANTANTE, GALACANCIÓN,
CANTANTE, CANCIÓNGALA,
CANTANTE, CANCIÓN NOMINADO,
CANCIÓN CANTANTE, GALA, NOMINADO,
CANCIÓN, COMPOSITOR FECHA)
Ejercicios
30
© José María Cavero 2010DBDySI-59
d) R ({A, B, C, D, E, F
{A, BE,
A, EB,
A, E C,
E, F D,
E A,
E B,
E C)
Ejercicios
© José María Cavero 2010DBDySI-60
e) R({A,B,C,D,E,F,G},
{A,B,D E,
E D,
E A,
F A,
E F,
C G,
D E,
EC B})
Ejercicios