Algoritmos de descomposicin
Primera Forma Normal
Descripcin -Una relacin es primera forma normal si y solo si sus tuplas (filas) contienen valores atmicos, es decir, no contienen valores que a su vez sean conjuntos. -En resumen, que todos los atributos (columnas) deben tener todos sus valores, o lo que es lo mismo, no debe haber celdas en blanco.
Ejemplo: Suponga que un diseador principiante desea guardar los nombres y los nmeros telefnicos de los clientes. Procede a definir una tabla de cliente como la que sigue:
Cliente
ID Cliente 123 456 Nombre Rachel James Apellido Ingram Wright Telfono 555-861-2025 555-403-1659
789
Cesar
Dure
555-808-9633
En este punto, el diseador se da cuenta de un requisito para guardar mltiples nmeros telefnicos para algunos clientes. Razona que la manera ms simple de hacer esto es permitir que el campo "Telfono" contenga ms de un valor en cualquier registro dado:
Cliente ID Cliente 123 456 789 Nombre Rachel James Cesar Apellido Ingram Wright Dure Telfono 555-861-2025 555-403-1659 555-776-4100 555-808-9633
El diseador puede evitar esta restriccin definiendo mltiples columnas del nmero telefnico:
Cliente
ID Cliente
123 456 789
Nombre
Rachel James Cesar
Apellido
Ingram Wright Dure
Telfono 1
555-861-2025 555-403-1659 555-808-9633
Telfono 2
555-776-4100
Telfono 3
Sin embargo, esta representacin hace uso de columnas que permiten valores nulos, y por lo tanto no se conforman con la definicin de la 1NF de Date. Incluso si se contempla la posibilidad de columnas con valores nulos, el diseo no est en armona con el espritu de 1NF. Telfono 1, Telfono 2, y Telfono 3, comparten exactamente el mismo dominio y exactamente el mismo significado; el dividir del nmero de telfono en tres encabezados es artificial y causa problemas lgicos. Un diseo conforme con 1FN, Un diseo que est inequvocamente en 1FN hace uso de dos tablas: una tabla de cliente y una tabla de telfono del cliente.
Telfono del cliente Cliente ID Cliente Telfono 555-861-2025 555-403-1659 555-776-4100 555-808-9633
ID Cliente
123 456 789
Nombre
Rachel James Cesar
Apellido
Ingram Wright Dure
123 456 456 789
En este diseo no ocurren grupos repetidos de nmeros telefnicos. En lugar de eso, cada enlace Cliente-a-Telfono aparece en su propio registro
Segunda Forma Normal
Descripcin -Una relacin es segunda forma normal si y solo si: -Es primera forma normal. -Cualquier atributo (columna) no perteneciente a una clave (primaria o extranjera) tiene dependencia funcional total de la clave primaria, es decir, que a cada valor de dicho atributo solo le corresponde un valor de la clave primaria.
Ejemplo: Considere una tabla describiendo las habilidades de los empleados:
Habilidades de los empleados Empleado Jones Habilidad Mecanografa Lugar actual de trabajo 114 Main Street
Jones
Jones Bravo Ellis
Taquigrafa
Tallado Limpieza ligera Alquimia
114 Main Street
114 Main Street 73 Industrial Way 73 Industrial Way
Ellis
Harrison
Malabarismo
Limpieza ligera
73 Industrial Way
73 Industrial Way
La nica clave candidata de la tabla es {Empleado, Habilidad}. El atributo restante, Lugar actual de trabajo, es dependiente solo en parte de la clave candidata, llamada Empleado. Por lo tanto la tabla no est en 2NF. Un alternativa 2NF a este diseo representara la misma informacin en dos tablas:
Empleados Empleado Jones Bravo Ellis
Lugar actual de trabajo
114 Main Street 73 Industrial Way 73 Industrial Way Habilidades de los empleados Empleado Jones Jones Jones Bravo Ellis Ellis Harrison Habilidad Mecanografa Taquigrafa Tallado Limpieza ligera Alquimia Malabarismo Limpieza ligera
Harrison
73 Industrial Way
Tercera Forma Normal
Descripcin -Una relacin es tercera forma normal si y solo si: -Es segunda forma normal.
-Los atributos (columna) no pertenecientes a una clave (primaria o extranjera) son mutuamente independientes funcionalmente.
Ejemplo Un ejemplo de una tabla 2NF que falla en satisfacer los requerimientos de la 3NF es:
Ganadores del torneo Torneo Indiana Invitational Cleveland Open Ao 1998 1999 Ganador Al Fredrickson Bob Albertson Al Fredrickson Chip Masterson Fecha de nacimiento del ganador 21 de julio de 1975 28 de septiembre de 1968 21 de julio de 1975 14 de marzo de 1977
Des Moines Masters 1999 Indiana Invitational 1999
La nica clave candidata es {Torneo, Ao}. La violacin de la 3NF ocurre porque el atributo no primario Fecha de nacimiento del ganador es dependiente transitivamente de {Torneo, Ao} va el atributo no primario Ganador. Para expresar los mismos hechos sin violar la 3NF, es necesario dividir la tabla en dos:
Fecha de nacimiento del jugador
Ganador
Chip Masterson Al Fredrickson Bob Albertson
Fecha de nacimiento
14 de marzo de 1977 21 de julio de 1975 28 de septiembre de 1968 Ganadores del torneo Torneo Indiana Invitational Cleveland Open Des Moines Masters Indiana Invitational Ao 1998 1999 1999 1999 Ganador Al Fredrickson Bob Albertson Al Fredrickson Chip Masterson
Cuarta Forma Normal
Descripcin -Una relacin es cuarta forma normal si y solo si: -Es forma normal de BCNF. -Para toda la dependencia multivalor todos los atributos (columna) distintos de A dependen funcionalmente de A, es decir, A es clave. -Es decir, si la relacin es BCNF y las nicas dependencias multivalor permitidas son las definidas sobre las claves candidatas, entonces se cumple. Ejemplo:
Permutaciones de envos de pizzas
Restaurante Vincenzo's Pizza Variedad de Pizza Corteza gruesa rea de envo Springfield
Vincenzo's Pizza
Vincenzo's Pizza
Corteza gruesa
Corteza fina
Shelbyville
Springfield
Vincenzo's Pizza
Elite Pizza Elite Pizza A1 Pizza A1 Pizza A1 Pizza A1 Pizza A1 Pizza A1 Pizza
Corteza fina
Corteza fina Corteza rellena Corteza gruesa Corteza gruesa Corteza gruesa Corteza rellena Corteza rellena Corteza rellena
Shelbyville
Capital City Capital City Springfield Shelbyville Capital City Springfield Shelbyville Capital City
Cada fila indica que un restaurante dado puede entregar una variedad dada de pizza a un rea dada. Note que debido a que la tabla tiene una clave nica y ningn atributo no-clave, no viola ninguna forma normal hasta el BCNF. Pero debido a que las variedades de pizza que un restaurante ofrece son independientes de las reas a las cuales el restaurante enva, hay redundancia en la tabla.
Para satisfacer la 4NF, debemos poner los hechos sobre las variedades de pizza ofrecidas en una tabla diferente de los hechos sobre reas de envo:
Variedades por restaurante Restaurante Vincenzo's Pizza Vincenzo's Pizza Elite Pizza Elite Pizza A1 Pizza A1 Pizza Variedad de pizza Corteza gruesa Corteza fina Corteza fina Corteza rellena Corteza gruesa Corteza rellena
reas de envo por restaurante Restaurante rea de envo
Vincenzo's Pizza
Vincenzo's Pizza Elite Pizza
Springfield
Shelbyville Capital City
A1 Pizza
A1 Pizza A1 Pizza
Springfield
Shelbyville Capital City
En contraste, si las variedades de pizza ofrecidas por un restaurante a veces variaran de un rea de envo a otra, la tabla original de la tres columnas satisfara la 4NF.
Forma Normal Boyce-Codd
-Aun siendo formas 3 Normal pueden aparecer problemas en una relacin si esta presenta ms de una clave. -Para resolver estos problemas recurrimos a la forma normal de Boyce y Codd (BCNF). -Llamaremos determinante al atributo o conjunto de estos del cual depende funcionalmente algn otro atributo de la relacin. -Se dice que una relacin est en forma normalizada de Boyce y Codd si y solo si cada determinante es unaclave candidata. -Toda forma BCNF es tambin 3 forma normal, pero no a la inversa. Ejemplo Sea la relacin CURSO (Estudiante, Asignatura, Profesor) en la que un profesor solo imparte una nica asignatura. Con la dependencias funcionales siguientes: Estudiante, Asignatura -> Profesor; Profesor -> asignatura la tabla de la relacin CURSO
procedemos a su normalizacin hasta FNBC. Aplicamos la regla de descomposicin sin prdidas a la dependencia que impide la restriccin en FNBC, Asignatura Profesor: PROFE_ASIG(profesor, asignatura) ESTU_PROFE(estudiante, profesor) Quedndonos las tablas:
Slo podemos asegurar una descomposicin sin prdidas para una normalizacin hasta 3FN, a partir de ella no podemos asegurar que no se pierdan dependencias. Si se llega a FNBC y se pierde una dependencia entonces podemos proceder de dos maneras posibles: 1.-Dejamos la normalizacin hasta 3FN. 2.-Rediseamos el entidad-relacin.