Está en la página 1de 36

Normalización

Francisco Moreno

24/07/21 Curso Bases de Datos 1


Normalización
• Es la técnica usada para diseñar “buenas”
relaciones con el fin de minimizar:
– cierto tipo de redundancia
– el mantenimiento de los datos
– el impacto de futuros cambios en los datos
y en su ingreso

Anomalías de
Anomalías de inserción actualización
y borrado
24/07/21 Curso Bases de Datos 2
Normalización
• Nota: hoy en algunas aplicaciones se sigue una
política de poca normalización. En tal caso, se
debe estar siempre consciente de las posibles
anomalías a las que esto puede conllevar.
• Antes de tomar la decisión de adoptar una política
como la anterior, se debe dominar el proceso de
normalización.
• El objetivo del curso es el diseño de bases de datos
con un alto grado de normalización (mínimo
BCNF  ver más adelante)
24/07/21 Curso Bases de Datos 3
Anomalías
Nota: el nivel (de posicionamiento en
Sea la relación: el mercado) de un producto es
independiente del proveedor (NIT)
CP que lo suministre.
ENVÍO
encargado NIT producto cantidad nivel
M. S.A 101 Leche 10 5
B. Corp 201 Chorizo 29 8
M. S.A 101 Yogur 12 5
M. S.A 101 Pasas 100 3
B. Corp 201 Leche 12 5
B. Corp 201 Pasas 100 3
M. S.A 128 Gato 1 8
Nota: se supondrá que un proveedor (NIT) tiene un solo encargado.
24/07/21 Curso Bases de Datos 4
• Supóngase que un proveedor que suministra 100
productos (distintos) cambia regularmente su
encargado, ¿qué implica esto?
• Supóngase que hay 50 proveedores de Leche y
que el nivel de esta cambia, ¿qué implica esto?
• ¿Qué pasa si se quiere ingresar un proveedor
que todavía no ha suministrado algún producto?
• ¿Qué pasa si se quiere ingresar un producto
pero todavía no se sabe quien lo va a
suministrar?
24/07/21 Curso Bases de Datos 5
• ¿Cuántas veces dice la relación quien es el
encargado de cada proveedor?
• ¿Cuántas veces dice la relación cual es el
nivel de un producto?

24/07/21 Curso Bases de Datos 6


• Nótese que aunque esta relación representa
el negocio, tiene aspectos que pueden ser
inconvenientes.
• La idea de la normalización es diseñar
relaciones que representen el negocio pero
que al mismo tiempo eviten (en lo posible)
aspectos (considerados anomalías en la
normalización) como los anteriores.

24/07/21 Curso Bases de Datos 7


Formas Normales
• Seis formas normales clásicas*:
1NF, 2NF, 3NF, BCNF, 4NF, 5NF
• Mientras una relación esté en una forma
normal más alta “mucho mejor”.
• En la práctica usualmente es suficiente
analizar y llevar la normalización hasta la
BCNF.
*Hay otras: EKNF (Elementary key NF), DKNF (Domain-key NF), 6NF y
recientemente ETNF (Essential tuple NF o “4.5NF”)
24/07/21 Curso Bases de Datos 8
Formas Normales
• Si una relación satisface una forma normal n
automáticamente satisface las n-1 formas
normales anteriores, es decir, cada forma normal
es “más fuerte” que sus predecesoras.
• El análisis de 2NF y 3NF se considera solo para
relaciones con una sola clave candidata. Para
relaciones con más de una clave candidata se
aplica directamente BCNF (BCNF también es
aplicable para relaciones con una sola clave
candidata).
24/07/21 Curso Bases de Datos 9
Primera Forma Normal
• Una relación está en 1NF si los valores de
sus atributos son atómicos*.
• Toda relación está en 1NF (de lo contrario
no sería una relación).
• Es la forma normal más débil, la menos
“exigente”.

* Aunque el concepto de atomicidad es muy elusivo.


24/07/21 Curso Bases de Datos 10
Primera Forma Normal
• Ejemplo.Sea PROVEEDOR con atributos:

NIT nombre sedes


1 Barbie {Cl 2 #1-3, Cl 30 #9-98}
2 Kitty {Av 5 #1-8, Cr 2 #3-2, Cr 1 #9-8}

• Si cada sede representa un valor semántico por sí


mismo, entonces PROVEEDOR no es una
relación y; por lo tanto, no está en 1NF.
24/07/21 Curso Bases de Datos 11
• Solución 1:

NIT nombre dirección


1 Barbie Cl 2 #1-3
1 Barbie Cl 30 #9-98
2 Kitty Av 5 #1-8
2 Kitty Cr 2 #3-2
2 Kitty Cr 1 #9-8
24/07/21
Primera Forma Normal
CP (acá se supone que dos proveedores no
tienen su sede en la misma dirección, de lo
• Solución 2: contrario la CP sería compuesta)

Relación CF Relación
SEDE PROVEEDOR
dirección idprov NIT nombre
Cl 2 #1-3 1 1 Barbie
Cl 30 #9-98 1 2 Kitty
Av 5 #1-8 2
Cr 2 #3-2 2
Cr 1 #9-8 2 CP

24/07/21 Curso Bases de Datos 13


Primera Forma Normal
• Nótese que en la relación SEDE se repite el
NIT del proveedor por cada dirección que
este tenga; sin embargo, esto NO ES UN
PROBLEMA DE NORMALIZACIÓN.
• De hecho SEDE está altamente normalizada
(incluso está en 5NF al igual que
PROVEEDOR).

24/07/21 Curso Bases de Datos 14


Segunda Forma Normal
• Una relación está en 2NF si y solo si está en
1NF y todos los atributos no clave* (si los
hay) dependen funcionalmente por
completo de la clave primaria.
• ¿Está la relación ENVÍO (diapositiva 4) en
2NF? Veamos:

* Es decir, los atributos que no hacen parte de la clave primaria.


24/07/21 Curso Bases de Datos 15
Diagrama de DF completas para la
relación ENVÍO

nivel producto
cant
NIT

encargado

24/07/21 Curso Bases de Datos 16


• Como los atributos nivel y encargado no
dependen funcionalmente por completo de
la CP, la relación no está en 2NF
• Solución: Con las “flechas conflictivas”
(flechas rojas) se crean relaciones
adicionales
• Por lo tanto, el proceso de normalización se
puede considerar como una eliminación de
“flechas conflictivas”
24/07/21 Curso Bases de Datos 17
Resultado de la partición
Nueva relación
PRODUCTO producto nivel

Relación producto
ENVÍO cant
modificada NIT

Nueva relación
NIT encargado
EMPRESA
24/07/21 Curso Bases de Datos 18
• ¿Soluciona esta partición las anomalías
mencionadas?
• ¿Están las relaciones resultantes en 2NF?
• ¿Los atributos producto y NIT en la
relación ENVÍO qué características deben
poseer (aparte de conformar lar CP de
ENVÍO)?

24/07/21 Curso Bases de Datos 19


Tercera Forma Normal
Una relación está en 3NF si y solo si los
atributos no clave (si los hay):
• Dependen funcionalmente por completo de
la CP
• Son mutuamente independientes (es decir,
no hay DF entre ellos)

24/07/21 Curso Bases de Datos 20


• Sea la relación:
Valor de la
MATRÍCULA afición
cédula nom_afición valor
10 Música100
20 Pintura 200
30 Música100
40 Pintura 200
50 Bolos 100

Reglas del negocio:


• Cada persona solo puede elegir una afición
• El precio (valor) de la misma afición es el mismo para
todas las personas

24/07/21 Curso Bases de Datos 21


• ¿Qué inconvenientes puede tener la relación
anterior?
• ¿Está en 2NF? ¿En 3NF? Veamos el diagrama:

cédula nom_afición
Dependencia entre
atributos no clave

valor

24/07/21 Curso Bases de Datos 22


Se hace la siguiente partición:
CF
MATRÍCULA AFICIÓN
cédula nom_afición nom_afición valor
10 Música Música 100
20 Pintura Pintura 200
30 Música Bolos 100
40 Pintura
50 Bolos

CP CP Nótese que a diferencia de la


relación anterior, aquí es posible
24/07/21 Curso Bases de Datos insertar una afición que no
23 haya
sido elegida por los estudiantes.
• ¿Desaparecen las anomalías analizadas en el
nuevo esquema?
• El hecho de que en MATRÍCULA se repita el
nombre de la afición por cada estudiante que la
tome ¿es un problema de normalización?
• ¿Qué pasaría si la partición se hiciese así:
R1(cédula, nom_afición) y R2(cédula, valor) ?
¿Están en 3NF?
• ¿Qué pasaría si la partición se hiciese así:
R1(cédula, valor) y R2(nom_afición, valor) ?
¿Están en 3NF?
24/07/21 Curso Bases de Datos 24
Algoritmo para descomposición 3NF de
una relación R
3NF(S)
S: Conjunto de DFs que se cumplen en R.
BEGIN
1.Hallar S̄ (cierre mínimo de S)
2.Dividir S̄ en m subconjuntos s1, s2, …, sm con base en los lados
izquierdos.
3.Crear el esquema Ri con todos los atributos incluidos en si, para 1  i  m
(la CP de Ri es el lado izquierdo correspondiente).
4.Si ningún esquema Ri incluye la CP de R, crear un esquema R0 que
contenga los atributos que forman la clave de R.
5.Eliminar (si los hay) los esquemas redundantes (un esquema es
redundante si está abarcado por otro).
END
Ver ejemplos en documento
24/07/21 anexoCurso
en la página
Bases de Datos del curso 25
BCNF
• Una relación está en BCNF si y solo si todo
determinante es clave candidata
• Un determinante es un atributo del cual DF
por completo otro atributo

24/07/21 Curso Bases de Datos 26


Sea la relación:

MATRÍCULA_SEMESTRE
ced_est carné materia nota_def
10 912 Cálculo 1.0
10 912 Historia 1.9
10 912 Español 2.9
20 987 Cálculo 5.0
20 987 Química 3.0
30 965 Español 2.9

24/07/21 Curso Bases de Datos 27


• ¿Qué inconvenientes puede tener esta relación?
• ¿Cuáles son sus claves candidatas?
Veamos el diagrama de DFs completas:

carné

materia nota_def

ced_est

24/07/21 Curso Bases de Datos 28


• ¿Está en BCNF?
• ¿Cuáles son los determinantes? ¿Es cada
uno de ellos una clave candidata?
• ¿Cómo se debe partir está relación?

24/07/21 Curso Bases de Datos 29


Pueden ser
4NF compuestos

DMV: Dependencia Multivaluada.


Dada una relación R con los atributos A, B y C,
la DMV:
A > B

Se cumple en R si y solo si el conjunto de


valores de B correspondiente a un par dado (A, C) en
R depende solo del valor de A y es independiente del
valor de C.

24/07/21 Curso Bases de Datos 30


• Teorema del complemento. Sea una relación
R(A, B, C) si se cumple que:
A  > B entonces automáticamente se
cumple:
A  > C.
• Una DF es una DMV pero una DMV no
necesariamente es una DF
• Una relación está en 4NF si y solo si está en
BCNF y todas las DMVs en R son de hecho
DFs
24/07/21 Curso Bases de Datos 31
Ejemplo.
Sea la relación Z:

curso profesor texto


Física Ñoño MB
¿Qué se quiere
Física Ñoño PO representar con esta
Física Dino MB relación?
Física Dino PO ¿Qué inconvenientes
puede tener?
Mat. Ñoño MB
¿Cuál es su CP?
Mat. Ñoño AV ¿Está en BCNF?
Mat. Ñoño TR

24/07/21 Curso Bases de Datos 32


Veamos, por ejemplo, si en Z se cumple:
curso > texto

• Dada la pareja (Física, Ñoño) el conjunto de


textos correspondientes es {MB, PO}.
• Dada la pareja (Física, Dino) el conjunto de textos
correspondientes es {MB, PO}.
• Si se mira cual es el conjunto de textos
correspondiente a Física (sin importar el profesor)
el resultado es: {MB, PO}. En forma análoga para
Mat.

24/07/21 Curso Bases de Datos 33


Por lo tanto, curso > texto y por el
teorema del complemento curso > profesor.
profesor

¿Cómo se debe partir Z para lograr 4NF?


Solución: R1(curso, texto) y
R2(curso, profesor)

24/07/21 Curso Bases de Datos 34


• Otro ejemplo, sea la relación:
codpréstamo cedcliente dir ciudad
1 10 Cl 1#3-1 Cali
1 10 Cl 9#2-2 Medellín
2 10 Cl 1#3-1 Cali
2 10 Cl 9#2-2 Medellín
2 35 Cr 5#1-2 Bogotá
2 35 Cl 1#3-1 Cali
2 35 Av 1#8-9 Cali
3 35 Cr 5#1-2 Bogotá
3 35 Cl 1#3-1 Cali
3 35 Av 1#8-9 Cali
24/07/21 Curso Bases de Datos 35
• Supóngase que siempre que un préstamo se
le hace a un cliente (se permiten préstamos
compartidos), este se registra con todas sus
direcciones (dir y ciudad), entonces:
A B

cedcliente > {dir, ciudad}


cedcliente > codpréstamo

A C
24/07/21 Curso Bases de Datos 36

También podría gustarte