Tema 5 - Dpto. Ciencias de la Computación e Inteligencia Artificial

Anuncio
Tema 5:
Normalización en Bases da Datos
Andrés Cordón Franco
Departamento de
Ciencias de la Computación e Inteligencia Artificial
UNIVERSIDAD DE SEVILLA
Bases de Datos
Curso 2005–06
1
Contenido:
5.1 Introducción a la Teorı́a de la Normalización
en Bases de Datos
5.2 Dependencias funcionales. Tipos: completa, transitiva, trivial, elemental
5.3 Primera Forma Normal (1FN)
5.4 Segunda Forma Normal (2FN)
5.5 Tercera Forma Normal (3FN)
5.6 Forma Normal de Boyce–Codd (FNBC)
2
Introducción:
Relación ESCRIBE:
AUTOR
Date, C.
Date, C.
Gardarin
Gardarin
Kim,W.
PAÍS
USA.
USA
Chile
Chile
China
COD
01
02
03
04
04
TÍTULO
DB
SQL(I)
ModeloER
SQL(II)
SQL(II)
EDIT.
Ad
Ad
Verlag
ACM
ACM
Problemas:
1. Redundancia de datos
2. Anomalı́as de modificación de datos
3. Anomalı́as de inserción de datos
4. Anomalı́as de borrados de datos
Formas normales(FN): conjunto de restricciones sobre tablas que evitan problemas de
redundancia y anomalı́as de modificación, inserción y borrado de datos.
3
Dependencias funcionales(I):
R relación, X, Y subconjuntos de sus campos.
(•) Y depende funcionalmente de X si cada
valor de X tiene asociado el mismo valor de Y
en la relación R. Lo escribiremos: X → Y .
X ≡ determinante o implicante
Y ≡campos implicados
Ejemplo: Escribe(autor, pais, codigo, titulo, edit)
autor → pais
codigo → titulo, editorial
cod, autor → editorial, pais
Nota: Dado un valor de X, no tiene por qué ser
posible averiguar el valor de Y . Sólo se exige
que todas las tuplas que aparezcan en la tabla
R con el mismo valor para los campos de X
obligatoriamente tengan el mismo valor para
los campos de Y .
4
Dependencias funcionales(II):
(•) Dependencia funcional plena o completa:
Y tiene dependencia funcional plena o completa del conjunto de campos X si depende funcionalmente de X, pero NO depende de ningún
subconjunto propio de X.
Ejemplo: EVAL(alumno, asignatura, nota)
El campo nota de la relación EVAL tiene dependencia completa de alumno + asignatura.
alumno, asignatura → nota
alumno 9 nota
asignatura 9 nota
(•) Dependencia funcional trivial:
X → Y es trivial si Y es un subconjunto de X.
Ejemplo: autor, cod → autor
alumno, asignatura, nota → nota
5
Dependencias funcionales(III):
(•) Dependencia funcional transitiva:
Z tiene dependencia funcional transitiva respecto de X a través de Y si se cumple:
(i) X → Y ,
Y → Z,
pero
(ii) Y 9 X
Ejemplo 1: LIBRO(isbn, editorial, pais, f echa)
pais depende transitivamente de isbn, pues:
isbn → editorial
editorial → pais
editorial 9 isbn
Ejemplo 2: CORREO(usuario, DN I, pais)
pais NO depende de manera transitiva de DN I,
puesto que:
DN I → usuario
usuario → pais, pero...
usuario → DN I
Nota: DN I y usuario son campos equivalentes
(lo escribiremos DN I ↔ usuario).
6
Dependencias funcionales(IV):
(•) Dependencia funcional elemental:
X → Y es elemental si Y es un atributo unitario, y la dependencia funcional es completa
y no trivial.
Nota: Sólo las dependencias elementales son
útiles para la normalización.
Propiedad: Todas las dependencias funcionales
de una relación pueden deducirse a partir de
las dependencias elementales aplicando las siguientes reglas:
Axiomas de Armstrong:
(A1) (Reflexión)
Si Y ⊆ X, entonces X → Y .
(A2) (Aumentativo)
Si X → Y y Z ⊆ W , XW → Y Z.
(A3) (Transitividad)
Si X → Y e Y → Z, X → Z.
7
Primera Forma Normal:
Para estudira el grado de normalización de una
relación R se parte de:
1. Conjunto de las dependencias funcionales
elementales que aparecen en R, y
2. Conjunto de todas las claves candidatas.
Definición:[Codd,1970 ] Una relación R está en
primera forma normal (1FN) si NO se admiten
atributos multivaluados.
Nota: Por la propia definición del modelo de
datos relacional, NO se admiten atributos multivaluados. En consecuencia, TODAS las relaciones que aparecen en el modelo de datos
relacional están en 1FN.
8
Segunda Forma Normal(I):
Definición: Un campo de R es principal si
pertenece a alguna clave candidata de R.
Ejemplo: LIBRO(isbn, codlibro, autor, edi, f echa)
Campos principales: isbn, codlibro.
Definición:[Codd,1970 ] R está en segunda forma normal (2FN) si:
1. R está en 1FN, y
2. cada campo NO principal de R tiene dependencia funcional completa respecto de
cada una de las claves candidatas.
Nota: Para determinar si una relación está en
2FN es necesario calcular previamente todas
sus claves candidatas.
9
Segunda Forma Normal(II):
Ejemplo: ESCRIBE(autor, pais, isbn, titulo, edit)
La relación ESCRIBE no está en 2FN.
Clave candidata: (autor, isbn)
autor, isbn → pais
¡Pero la dependencia no es completa!:
autor → pais
(•) ¿Cómo conseguir un conjunto de relaciones
equivalentes en 2FN?
Idea: R1(autor, isbn), R2(autor, pais),
R3(isbn, titulo, edit)
Propiedad: Si todas las claves candidatas de
una relación son campos unitarios, dicha relación está en 2FN.
10
Tercera Forma Normal:
Definición:[Codd,1970 ] R está en tercera forma normal (3FN) si:
1. R está en 2FN, y
2. ningún campo NO principal depende transitivamente de una clave candidata.
Ejemplo: SOCIO(dni, ciudad, pais, edad)
La relación SOCIO no está en 3FN. El campo
no principal pais depende transitivamente de la
clave dni (a través del campo ciudad).
(•) ¿Cómo conseguir un conjunto de relaciones
equivalentes en 3FN?
Idea: R1(dni, ciudad, edad), R2(ciudad, pais)
Propiedad: Si una relación tiene a lo sumo un
campo no principal, entonces está en 3FN.
11
Forma Normal de Boyce-Codd(I):
Recordar : Si X → Y , entonces X es el implicante de la dependencia funcional.
Definición:[Boyce–Codd,1974 ] R está en forma normal de Boyce–Codd (FNBC) si:
1. R está en 2FN, y
2. todo implicante de R es una clave candidata de la relación.
Propiedad: Si R está en forma normal de Boyce–
Codd, entones también está en 3FN.
Dem: Si un campo no principal X depende
transitivamente de una clave a través de un
campo Y , entones Y es un implicante de la
relación que no actúa como clave candidata.
12
Forma Normal de Boyce-Codd(II):
Ejemplo: Relación EVAL
EVAL(dni, nombre, codalumno, asig, nota)
La relación EVAL no está en FNBC.
Claves candidatas:
(dni, codasig) y (codalumno, codasig)
Se cumple que dni → nombre.
Luego, dni es un implicante que NO funciona
como calve de la relación EVAL.
(•) ¿Cómo obtener un conjunto de relaciones
equivalentes en FNBC?
Idea: R1(dni, codalumno, nombre),
R2(dni, codasig, nota)
Propiedad: Si R está en 3FN y sus claves candidatas NO se solapan, entonces R también
está en FNBC.
13
Bibliografı́a:
Concepción y diseño de bases de datos,
Adoración de Miguel, Mario Piattini, RA–
MA Editorial (1993)
Apuntes de Ficheros y Bases de Datos,
Mercedes Marqués, Universidad Jaume I en
Castellón (2001)
14
Descargar