Download Bases de Datos - Normalización

Document related concepts
no text concepts found
Transcript
Esquema Relacional
Normalización
BCNF
4a FN
a
5 FN
Bases de Datos I – CTT – CETP - 2016
A/S Leonardo Carámbula
Introducción
• Un esquema relacional que sus relaciones,
tablas, se encuentren en 3a Forma Normal en
general es suficiente para evitar redundancia
e inconsistencias de datos.
• Sin embargo en algunos casos particulares
algunas relaciones son redundantes por más
que cumplan con la 3a Forma Normal.
Bases de Datos I – CTT – CETP - 2016
A/S Leonardo Carámbula
BCNF
• Forma Normal de Boyce - Codd
– es una versión ligeramente más estricta que
la 3a forma normal
• Definición: una tabla esta en BCNF sí y solo sí:
– esta en 3a Forma Normal
– cada dependencia funcional no trivial tiene
una clave candidata como determinante.
• En otras palabras:
– una tabla esta en BCNF si los únicos
determinantes son claves candidatas.
Bases de Datos I – CTT – CETP - 2016
A/S Leonardo Carámbula
BCNF
• Una dependencia funcional A ---» B es trivial cuando B
es parte de A.
• Ejemplo: Alojamientos en las habitaciones de un hotel.
Ocupación (NoHabitación, fechaEntrada, NoCliente,
NombreCliente, precioNoche)
Dependencias Funcionales
– NoHabitación —» precioNoche
– NoCliente —» NombreCliente
Bases de Datos I – CTT – CETP - 2016
A/S Leonardo Carámbula
BCNF
• Ejemplo: Alojamientos en las habitaciones de
un hotel.
Ocupación (NoHabitación, fechaEntrada, NoCliente,
NombreCliente, precioNoche)
Normalizando ...
– Ocupación (NoHabitación, fechaEntrada, NoCliente)
– Habitación (NoHabitación, precioNoche)
– Cliente (NoCliente, NombreCliente)
Bases de Datos I – CTT – CETP - 2016
A/S Leonardo Carámbula
a
4 Forma Normal

una tabla esta en 4a Forma Normal
sí y solo sí:
– esta en 3a Forma Normal o en
BCNF
– no
existen
dependencias
multivaluadas no triviales
Bases de Datos I – CTT – CETP - 2016
A/S Leonardo Carámbula
a
4 Forma Normal

una tabla con dependencia multivaluada?
– Esto implica que la existencia de dos
o más relaciones independientes
muchos a muchos (N a N) causa
redundancia.
– Este tipo de redundancia es la que
elimina la 4a Forma Normal.
Bases de Datos I – CTT – CETP - 2016
A/S Leonardo Carámbula
a
4 Forma Normal
Ejemplo:
tiene (IdFeria, NoPuesto, Codigo)
Bases de Datos I – CTT – CETP - 2016
A/S Leonardo Carámbula
a
4 Forma Normal
Ejemplo:
Feria
Feriante
Producto
Malvin
Pocho
Papa
Malvin
Pocho
Tomate
Malvin
Pocho
Ajo
Peñarol
Pocho
Papa
Peñarol
Pocho
Tomate
Peñarol
Pocho
Ajo
Cerrito
Pocho
Papa
Cerrito
Pocho
Tomate
Cerrito
Pocho
Ajo
Cerrito
Tito
Tomate
Cerrito
Tito
Cebolla
Bases de Datos I – CTT – CETP - 2016
A/S Leonardo Carámbula
a
4 Forma Normal
Ejemplo:
●
●
Supongamos que un feriante tiene los mismos N
productos en todas las ferias.
Existen entonces varias dependencias funcionales
multivaluadas en la tabla
Tiene (IdFeria, NoPuesto, Codigo)
Bases de Datos I – CTT – CETP - 2016
A/S Leonardo Carámbula
a
4 Forma Normal
●
Dependencias multivaluadas:
●
En una feria hay muchos puestos
IdFeria ---» NoPuesto*
●
En un puesto hay muchos
productos
NoPuesto ---» Codigo*
Bases de Datos I – CTT – CETP - 2016
A/S Leonardo Carámbula
a
4 Forma Normal
Normalizando:
Va (IdFeria, NoPuesto)
VA
Vende (NoPuesto, Codigo)
Feria
Feriante
Malvin
Pocho
Peñarol
Pocho
Cerrito
Pocho
Cerrito
Tito
Bases de Datos I – CTT – CETP - 2016
Vende
Feriante
Producto
Pocho
Papa
Pocho
Tomate
Pocho
Ajo
Tito
Tomate
Tito
Cebolla
A/S Leonardo Carámbula
a
4 Forma Normal
Normalizando:
– Va (IdFeria, NoPuesto)
– Vende (NoPuesto, Codigo)
Bases de Datos I – CTT – CETP - 2016
A/S Leonardo Carámbula
a
5 Forma Normal

una tabla esta en 5a Forma Normal
sí y solo sí:
– esta en 4a Forma Normal
– cada dependencia de unión
(join) en ella es implicada por
las claves candidatas.
Bases de Datos I – CTT – CETP - 2016
A/S Leonardo Carámbula
a
5 Forma Normal
Ejemplo:
Tiene (Número, Cid, CodBarra)
Bases de Datos I – CTT – CETP - 2016
A/S Leonardo Carámbula
a
5 Forma Normal
Tiene
Ejemplo:
Factura
Vendedor
Producto
10001
Pepe
Arroz
10001
Pepe
Fideos
10001
Majo
Perfume
10001
Majo
Crema
10001
Liza
Crema
20002
Pepe
Arroz
20002
Majo
Crema
20002
Liza
Crema
30003
Pepe
Fideos
30003
Majo
Perfume
30003
Pocho
Cemento
30003
Pocho
Arena
30003
Juan
Celular
30003
Bases de Datos I – CTT
– CETP -Juan
2016
Netbook
A/S Leonardo Carámbula
a
5 Forma Normal
Ejemplo:
●
●
Supongamos que por más que varios vendedores
participen en una factura, un producto siempre es
facturado por el mismo vendedor.
Existen entonces varias dependencias de unión
(join) en la tabla.
Tiene (Número, Cid, CodBarra)
Bases de Datos I – CTT – CETP - 2016
A/S Leonardo Carámbula
a
5 Forma Normal
Tiene (Número, CId, CodBarra)
●
●
Dependencias:
●
Número ––» CodBarra*
●
CodBarra ––» CId
Con un join:
Número ––» CodBarra, CId
Bases de Datos I – CTT – CETP - 2016
A/S Leonardo Carámbula
a
5 Forma Normal
Normalizando:
figura (Número, CId)
tiene (Número, CodBarra)
vende (CId, CodBarra)
Bases de Datos I – CTT – CETP - 2016
A/S Leonardo Carámbula
a
5 Forma Normal
Normalizando:
Figura
Tiene
Factura
Producto
10001
Arroz
10001
Fideos
Vendedor
Producto
Juan
Celular
Juan
Netbook
Liza
Crema
Majo
Perfume
Majo
Crema
Pepe
Arroz
Pepe
Fideos
Pocho
Cemento
Factura
Vendedor
10001
Pepe
10001
Perfume
10001
Majo
10001
Crema
10001
Liza
20002
Arroz
20002
Pepe
20002
Crema
20002
Majo
30003
Fideos
20002
Liza
30003
Perfume
30003
Pepe
30003
Cemento
30003
Majo
30003
Arena
30003
Pocho
30003
Celular
30003
30003
Bases
de Datos IJuan
– CTT – CETP
- 2016
Vende
Pocho
Arena
Netbook A/S Leonardo
Carámbula
a
5 Forma Normal
Normalizando:
– figura (Número, Cid)
–
tiene (Número, CodBarra)
–
vende (CId, CodBarra)
Bases de Datos I – CTT – CETP - 2016
A/S Leonardo Carámbula