You are on page 1of 30

Normalización

Tema 5: Normalización en Bases de Datos

Andrés Cordón Franco


e-mail: acordon@us.es

Bases de Datos 2007/08

Ciencias de la Computación e IA (http://www.cs.us.es/)


Universidad de Sevilla

A. Cordón Franco e-mail: acordon@us.es Normalización


Normalización

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

A. Cordón Franco e-mail: acordon@us.es Normalización


Normalización
Introducción

Introducción (I)

AUTOR PAÍS COD-LIBRO TÍTULO EDITORIAL


Date, C. USA. 01 DB Ad
Date, C. USA 02 SQL(I) Ad
Gardarin Chile 03 ModeloER Verlag
Gardarin Chile 04 SQL(II) ACM
Kim,W. China 04 SQL(II) 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
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.

1FN ⇐= 2FN ⇐= 3FN ⇐= FNBC ⇐= 4FN ⇐= 5FN


Nota: En este curso sólo estudiaremos hasta la tercera forma
normal, 3FN.

A. Cordón Franco e-mail: acordon@us.es Normalización


Normalización
Dependencias funcionales
Definición

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

Nota: X1 , . . . , Xk → Y1 , . . . , Yn significa que cada campo Yi tiene


dependencia funcional respecto del conjunto X1 , . . . , Xk .

A. Cordón Franco e-mail: acordon@us.es Normalización


Normalización
Dependencias funcionales
Definición

Dependencias funcionales. Ejemplo

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.

A. Cordón Franco e-mail: acordon@us.es Normalización


Normalización
Dependencias funcionales
Dependencia funcional elemental

Dependencia funcional plena (I)

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 .

A. Cordón Franco e-mail: acordon@us.es Normalización


Normalización
Dependencias funcionales
Dependencia funcional elemental

Dependencia funcional plena (II)

Ejemplo: EVAL(alumno,asignatura,dpto,nota)
(•) El campo nota tiene dependencia plena de alumno, asignatura:
alumno, asignatura → nota
alumno 9 nota
asignatura 9 nota

(•) El campo dpto NO tiene dependencia plena de alumno,


asignatura:
alumno, asignatura → dpto
asignatura → nota

A. Cordón Franco e-mail: acordon@us.es Normalización


Normalización
Dependencias funcionales
Dependencia funcional elemental

Dependencia funcional trivial

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 .

Ejemplo: Las siguientes dependencias funcionales son triviales:


autor, cod → autor
alumno, asignatura, nota → nota
libro → libro

A. Cordón Franco e-mail: acordon@us.es Normalización


Normalización
Dependencias funcionales
Dependencia funcional elemental

Dependencia funcional elemental (I)

Definición
El campo Y tiene dependencia funcional elemental del conjunto
de campos X1 , . . . , Xk si dicha dependencia es:
completa, y
no trivial

Nota: En una dependencia funcional elemental X1 , . . . , Xk → Y ,


el campo implicado Y siempre ha de ser unitario.

A. Cordón Franco e-mail: acordon@us.es Normalización


Normalización
Dependencias funcionales
Dependencia funcional elemental

Dependencia funcional elemental (II)

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

Nota: Para la normalización de una tabla relacional, solamente se


tienen en cuenta las dependencias funcionales elementales.

A. Cordón Franco e-mail: acordon@us.es Normalización


Normalización
Dependencias funcionales
Dependencia funcional transitiva. Campos equivalentes

Dependencia funcional transitiva (I)

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

A. Cordón Franco e-mail: acordon@us.es Normalización


Normalización
Dependencias funcionales
Dependencia funcional transitiva. Campos equivalentes

Dependencia funcional transitiva (II)

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

Nota: N IF y login son campos equivalentes

A. Cordón Franco e-mail: acordon@us.es Normalización


Normalización
Dependencias funcionales
Dependencia funcional transitiva. Campos equivalentes

Campos equivalentes (I)

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

Nota: Habitualmente k = n = 1 y hablaremos de campos


equivalentes de una tabla.

A. Cordón Franco e-mail: acordon@us.es Normalización


Normalización
Dependencias funcionales
Dependencia funcional transitiva. Campos equivalentes

Campos equivalentes (II)

VENTA(código,número,vendedor,artı́culo,color,precio)
codigo ↔ numero, vendedor
codigo → articulo
articulo → color, precio

(•) articulo NO depende transitivamente de numero, vendedor:


numero, vendedor → codigo, codigo → articulo, pero
numero, vendedor ↔ codigo
(•) precio SÍ depende transitivamente de numero, vendedor:
numero, vendedor → articulo, articulo → precio, pero
articulo 9 numero, vendedor (?)
(? Se admiten devoluciones de artı́culos)

A. Cordón Franco e-mail: acordon@us.es Normalización


Normalización
Formas normales
Primera Forma Normal

Primera Forma Normal: 1FN

Definición (Codd, 1970)


Una tabla relacional R está en primera forma normal ( 1FN) si NO
contiene campos multivaluados.

Nota: Por la propia definición del modelo de datos relacional, NO


se admiten campos multivaluados. En consecuencia, TODAS las
relaciones del modelo de datos relacional están automáticamente
en 1FN.

A. Cordón Franco e-mail: acordon@us.es Normalización


Normalización
Formas normales
Segunda Forma Normal. Campos principales

Campos principales y no principales (I)

Para estudiar si una tabla R está en 2FN o 3FN se parte de:


1 Conjunto de las dependencias elementales de R,
2 conjunto de todas las claves candidatas para R,
3 conjunto de los campos equivalentes de R,
4 conjunto de los campos principales de R, y
5 conjunto de los campos no principales de R.

Definición
Un campo de una tabla relacional R es principal si pertenece a
alguna de las claves candidatas de R.

A. Cordón Franco e-mail: acordon@us.es Normalización


Normalización
Formas normales
Segunda Forma Normal. Campos principales

Campos principales y no principales (II)


VENTA(código,número,vendedor,artı́culo,color,precio)
Dependencias elementales:
codigo → numero, codigo → vendedor, codigo → articulo
numero, vendedor → codigo
articulo → color, articulo → precio
Claves candidatas:
1 codigo
2 (numero, vendedor)
Campos equivalentes: codigo ↔ numero, vendedor
Campos principales: codigo, numero, vendedor
Campos no principales: articulo, color, precio

A. Cordón Franco e-mail: acordon@us.es Normalización


Normalización
Formas normales
Segunda Forma Normal. Campos principales

Segunda Forma Normal: 2FN

Definición (Codd, 1970)


Una tabla relacional R está en segunda forma normal ( 2FN) si:
R está en 1FN, y
cada campo no principal de R tiene dependencia funcional
plena respecto de cada una de las claves candidatas de R.

Nota: Si R tiene k claves candidatas y m campos no principales,


entonces para asegurar que R está en 2FN son necesarias m · k
comprobaciones.

A. Cordón Franco e-mail: acordon@us.es Normalización


Normalización
Formas normales
Segunda Forma Normal. Campos principales

Segunda Forma Normal. Ejemplo (I)


EVAL(alumno,edad,asignatura,dpto,nota)

Dependencias funcionales elementales:


alumno → edad
asignatura → dpto
alumno, asignatura → nota
Claves candidatas: (alumno, asignatura)
Campos equivalentes: no hay
Campos principales: alumno, asignatura
Campos no principales: edad, dpto, nota

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

Segunda Forma Normal. Ejemplo (II)

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 no está en 2FN porque el campo no principal edad no


tiene dependencia plena respecto de la clave alumno, asignatura.

A. Cordón Franco e-mail: acordon@us.es Normalización


Normalización
Formas normales
Segunda Forma Normal. Campos principales

Segunda Forma Normal. Ejemplo (III)

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)

A. Cordón Franco e-mail: acordon@us.es Normalización


Normalización
Formas normales
Segunda Forma Normal. Campos principales

Segunda Forma Normal. Propiedades

Si el implicante de una dependencia funcional es unitario, entonces


la dependencia es automáticamente completa. Por tanto:

Propiedad 1: Si todas las claves candidatas de una tabla


relacional R son unitarias, R está automáticamente en 2FN.

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.

A. Cordón Franco e-mail: acordon@us.es Normalización


Normalización
Formas normales
Tercera Forma Normal

Tercera Forma Normal: 3FN

Definición (Cood, 1970)


Una tabla relacional R está en tercera forma normal (3FN) si:
R está en 2FN, y
ningún campo no principal de R depende transitivamente de
alguna clave candidata de R.

Nota: Si R está en 2FN y tiene k claves candidatas y m campos


no principales, entonces para asegurar que R también está en 3FN
son necesarias m · k comprobaciones.

A. Cordón Franco e-mail: acordon@us.es Normalización


Normalización
Formas normales
Tercera Forma Normal

Tercera Forma Normal. Ejemplo (I)


LIBRO(código,isbn,tı́tulo,autor,paı́s)

Dependencias funcionales elementales:


codigo → isbn
isbn → codigo, isbn → titulo, isbn → autor
autor → pais
Claves candidatas: (1) codigo (2) isbn
Campos equivalentes: codigo ↔ isbn
Campos principales: codigo, isbn
Campos no principales: titulo, autor, pais

Puesto que todas las claves candidatas son unitarias, la tabla


LIBRO está automáticamente en 2FN.
A. Cordón Franco e-mail: acordon@us.es Normalización
Normalización
Formas normales
Tercera Forma Normal

Tercera Forma Normal. Ejemplo (II)

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.

A. Cordón Franco e-mail: acordon@us.es Normalización


Normalización
Formas normales
Tercera Forma Normal

Tercera Forma Normal. Ejemplo (III)

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)

A. Cordón Franco e-mail: acordon@us.es Normalización


Normalización
Formas normales
Tercera Forma Normal

Tercera Forma Normal. Propiedades (I)


Propiedad 2: Si R está en 2FN y posee un único campo no
principal, entonces R también está en 3FN.

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

Puesto que todas las claves candidatas son unitarias, SOCIO


está en 2FN. Puesto que tiene un único campo no principal(edad),
SOCIO también está en 3FN.
A. Cordón Franco e-mail: acordon@us.es Normalización
Normalización
Formas normales
Tercera Forma Normal

Tercera Forma Normal. Propiedades (II)


Propiedad 3: Si todos los campos de R son principales,
entonces R está automáticamente en 3FN.
Ejemplo: ESTUDIAR(nif,cod− alum,asignatura)
nif → cod− alum, cod− alum → nif

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

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).
http://www3.uji.es/˜mmarques/f47/apun/apun.html

A. Cordón Franco e-mail: acordon@us.es Normalización

You might also like