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