Professional Documents
Culture Documents
1 Introducción
2 Dependencias funcionales
Definición
Dependencia funcional elemental
Dependencia funcional transitiva. Campos equivalentes
3 Formas normales
Primera Forma Normal
Segunda Forma Normal. Campos principales
Tercera Forma Normal
4 Bibliografı́a
Introducción (I)
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
A. Cordón Franco e-mail: acordon@us.es Normalización
Normalización
Introducción
Introducción (II)
Definición
Formas normales (FN): conjunto de restricciones sobre tablas
relacionales que evitan los problemas de redundancia de datos y de
anomalı́as de modificación, inserción y borrado de datos.
Dependencias funcionales
Definición
Sean R una tabla relacional y X1 , . . . , Xk e Y campos de R.
Diremos que Y depende funcionalmente de X1 , . . . , Xk si al fijar
un valor de los campos X1 . . . , Xk , se fija también el valor que
puede tomar el campo Y en la tabla R.
Lo escribiremos: X → Y .
X ≡ determinante o implicante
Y ≡campo implicado
ESCRIBE(autor,paı́s,código,tı́tulo,editorial,páginas)
autor → pais
codigo → titulo codigo → editorial codigo → paginas
codigo → titulo, editorial, paginas
cod, autor → editorial, pais
Nota: No debe confundirse con el concepto de campo derivado. Es
claro que si Y es un campo derivado de X (por ejemplo, edad de
f echanacimiento), entonces X → Y .
Sin embargo, al revés no es cierto. Para que Y tenga dependencia
funcional de X, no es necesario que se pueda deducir el valor
concreto del campo Y a partir del campo X.
Definición
Diremos que Y tiene dependencia funcional plena o completa del
conjunto de campos X1 , . . . , Xk si depende funcionalmente de
dicho conjunto, pero NO depende de ningún subconjunto propio
de X1 , . . . , Xk .
Ejemplo: EVAL(alumno,asignatura,dpto,nota)
(•) El campo nota tiene dependencia plena de alumno, asignatura:
alumno, asignatura → nota
alumno 9 nota
asignatura 9 nota
Definición
Diremos que el campo Y tiene dependencia funcional trivial del
conjunto de campos X1 , . . . , Xk si Y es uno de los campos
X1 . . . , Xk .
Definición
El campo Y tiene dependencia funcional elemental del conjunto
de campos X1 , . . . , Xk si dicha dependencia es:
completa, y
no trivial
Ejemplo: EVAL(alumno,edad,asignatura,dpto,nota)
Un conjunto de dependencias funcionales elementales que
describen la tabla EVAL es:
alumno, asignatura → nota
alumno → edad
asignatura → dpto
Definición
El campo Z tiene dependencia funcional transitiva respecto de los
campos X1 , . . . , Xk a través de los campos Y1 , . . . , Yn si se cumple
que:
X1 , . . . , Xk → Y1 . . . , Yn , y
Y1 , . . . , Yn → Z, pero
Y1 , . . . , Yn 9 X1 , . . . , Xk
Ejemplo 1: LIBRO(isbn,páginas,autor,paı́s)
pais depende transitivamente de isbn a través de autor, pues:
isbn → autor, autor → pais, y
autor 9 isbn
Ejemplo 2: CORREO(login,NIF,nombre,apellidos,edad,paı́s)
pais NO depende de manera transitiva de N IF a través de login,
puesto que:
N IF → login, login → pais, pero
login → N IF
Definición
Sean R una tabla relacional y X1 , . . . , Xk , Y1 . . . , Yn campos de R.
Diremos que X1 , . . . , Xk e Y1 . . . , Yn son conjuntos de campos
equivalentes si:
X1 , . . . , Xk depende funcionalmente de Y1 . . . , Yn , e
Y1 , . . . , Yn depende funcionalmente de X1 . . . , Xk , e
Lo escribiremos
X1 , . . . , Xk ↔ Y1 . . . , Yn
VENTA(código,número,vendedor,artı́culo,color,precio)
codigo ↔ numero, vendedor
codigo → articulo
articulo → color, precio
Definición
Un campo de una tabla relacional R es principal si pertenece a
alguna de las claves candidatas de R.
Número de comprobaciones: 3 · 1 = 3
A. Cordón Franco e-mail: acordon@us.es Normalización
Normalización
Formas normales
Segunda Forma Normal. Campos principales
EVAL(alumno,edad,asignatura,dpto,nota)
Comprobaciones:
1 ¿Es alumno, asignatura → edad completa? NO
2 ¿Es alumno, asignatura → dpto completa? NO
3 ¿Es alumno, asignatura → nota completa? SÍ
EVAL(alumno,edad,asignatura,dpto,nota)
(•) ¿Cómo conseguir un conjunto de tablas en 2FN equivalente?
R1(alumno, edad)
PK=alumno
R2(asignatura, dpto)
PK=asignatura
R3(alumno, asignatura, nota)
PK=(alumno, asignatura)
FK=alumno (Ã R1) FK=asignatura (Ã R2)
Ejemplo: ALUMNO(código,nif,nombre,edad,dirección)
Claves candidatas: (1) codigo, (2) nif
Puesto que ambas claves candidatas son unitarias, la tabla
ALUMNO está en 2FN.
LIBRO(código,isbn,tı́tulo,autor,paı́s)
¿Está la tabla LIBRO en 3FN? Núm. de comprobaciones: 3 · 2 = 6
1 ¿titulo depende transitivamente de codigo? NO
2 ¿titulo depende transitivamente de isbn? NO
3 ¿autor depende transitivamente de codigo? NO
4 ¿autor depende transitivamente de isbn? NO
5 ¿pais depende transitivamente de codigo? SÍ
6 ¿pais depende transitivamente de isbn? SÍ
El campo pais tiene dependencia transitiva de codigo a través del
campo autor. Luego, LIBRO no está en 3FN.
LIBRO(código,isbn,tı́tulo,autor,paı́s)
(•) ¿Cómo conseguir un conjunto de tablas en 3FN equivalente?
R1(autor, pais)
PK = autor
R2(codigo, isbn, titulo, autor)
PK = codigo
FK =autor (Ã R1)
Ejemplo: SOCIO(nif,código,edad)
nif → codigo, nif → edad
codigo → nif
Claves candidatas: (1) nif , (2) codigo
Campos equivalentes: nif ↔ codigo
Campos principales: nif, codigo
Campos no principales: edad
Claves candidatas:
1 (nif, asignatura)
2 (cod− alum, asignatura)
Campos equivalentes: nif ↔ cod− alum
Campos principales: nif, cod− alum, asignatura
Campos no principales: no hay
ESTUDIAR está automáticamente en 3FN porque sólo posee
campos principales.
A. Cordón Franco e-mail: acordon@us.es Normalización
Normalización
Formas normales
Tercera Forma Normal
Bibliografı́a