Licenciatura en Ciencia de la Computación Bases de Datos No Convencionales Normalización de Bases de Datos Relacionales Profesor Fredi Palominos Villavicencio Teoría de Normalización : Es un procedimiento formal, reversible, que se ejecuta paso a paso, que permite: - Optimizar la estructura de la Base de Datos - Identificar y resolver situaciones no deseables - Atributos no atómicos - Dependencias parciales de clave - Dependencias transitivas - Redundancias de información - Anomalías de modificación, inserción y borrado los datos que deben estar juntos, deben estarlo. hechos distintos se deben almacenar en objetos distintos
Tipos de problemas : Clave Primaria Nº Factura Fecha RUT Cliente Cliente Producto Valor Cantidad Descuento 000257 01-07-2000 1234567 Juan Pérez.Valpo Lápiz Bic 100 250 5 % 000257 01-07-2000 1234567 Juan Pérez.Valpo Block 1000 200 5 % 000257 01-07-2000 1234567 Juan Pérez.Valpo Lápiz Grafito 70 50 0 % 000258 01-07-2000 1234568 Ana Palma.Stgo Lápiz Bic 100 400 6 % 000258 01-07-2000 1234568 Ana Palma.Stgo Cuaderno 500 350 6 % 000258 01-07-2000 1234568 Ana Palma.Stgo Regla 100 20 0 % Dependencia transitiva entre Atributos no clave Valores no atómicos Dependencia parcial de clave Dependencia Funcional : Se dice que el atributo Y es funcionalmente dependiente del atributo X, si el valor del atributo Y está determinado por el valor del atributo X. Se denota como X Y Cuando el valor del atributo Y depende conjuntamente de varios Atributos, se dice que existe una dependencia funcional total de Y Respecto de dichos atributos. Se denota por X,Z,W Y Ejemplo: NºFactura, Producto Cantidad
Diagrama de Dependencias : Establece esquemáticamente las dependencias funcionales que existen entre los atributos de una base de datos relacional. Por ejemplo, para la tabla presentada a continuación se obtiene : Nº Factura Fecha RUT Cliente Cliente Producto Valor Cantidad Descuento 000257 01-07-2000 1234567 Juan Pérez.Valpo Lápiz Bic 100 250 5 % 000257 01-07-2000 1234567 Juan Pérez.Valpo Block 1000 200 5 % 000257 01-07-2000 1234567 Juan Pérez.Valpo Lápiz Grafito 70 50 0 % 000258 01-07-2000 1234568 Ana Palma.Stgo Lápiz Bic 100 400 6 % 000258 01-07-2000 1234568 Ana Palma.Stgo Cuaderno 500 350 6 % 000258 01-07-2000 1234568 Ana Palma.Stgo Regla 100 20 0 % Descuento, Cantidad Producto Nº Factura Valor Fecha, Cliente, Rut Cliente Primera Forma Normal Una relación está en Primera Forma Normal (1NF) si cada uno de sus atributos toma valores atómicos, es decir, en lo que al sistema de información respecta, los valores de los atributos son indivisibles. Nº Factura Fecha RUT Cliente NomCli Ciudad Producto Valor Cantidad Descuento 000257 01-07-2000 1234567 Juan Pérez Valpo Lápiz Bic 100 250 5 % 000257 01-07-2000 1234567 Juan Pérez Valpo Block 1000 200 5 % 000257 01-07-2000 1234567 Juan Pérez Valpo Lápiz Grafito 70 50 0 % 000258 01-07-2000 1234568 Ana Palma Stgo Lápiz Bic 100 400 6 % 000258 01-07-2000 1234568 Ana Palma Stgo Cuaderno 500 350 6 % 000258 01-07-2000 1234568 Ana Palma Stgo Regla 100 20 0 % Se transformaron en valores atómicos
Segunda Forma Normal Una relación está en Segunda Formal Normal (2NF) si y sólo si está en 1NF y cada atributo no-clave de la relación es total y funcionalmente dependiente de la clave primaria. Descuento, Cantidad Producto Nº Factura Valor Fecha, NomCli, Ciudad, Rut Cliente Nº Factura Fecha RUT Cliente Cliente Ciudad 000257 01-07-2000 1234567 Juan Pérez Valpo 000258 01-07-2000 1234568 Ana Palma Stgo Producto Valor Lápiz Bic 250 Block 200 Lápiz Grafito 50 Cuaderno 350 Regla 20 Nº Factura Producto Cantidad Descuento 000257 Lápiz Bic 250 5 % 000257 Block 200 5 % 000257 Lápiz Grafito 50 0 % 000258 Lápiz Bic 400 6 % 000258 Cuaderno 350 6 % 000258 Regla 20 0 % Tercera Forma Normal Una relación está en Tercera Formal Normal (3NF) si y s lo si está en 2NF y no existen dependencias funcionales entre atributos que no pertenecen a la clave primaria de la relación. Ciudad, NonCli, Rut Cliente, Fecha Nº Factura Nº Factura Fecha RUT Cliente 000257 01-07-2000 1234567 000258 01-07-2000 1234568 RUT Cliente NomCli Ciudad 1234567 Juan Pérez Valpo 1234568 Ana Palma Stgo
Base de Datos Normalizada RUT Cliente NomCli Ciudad Nº Factura Fecha RUT Cliente 000257 01-07-2000 1234567 000258 01-07-2000 1234568 1234567 Juan Pérez Valpo 1234568 Ana Palma Stgo Producto Valor Lápiz Bic 250 Block 200 Lápiz Grafito 50 Cuaderno 350 Regla 20 Nº Factura Producto Cantidad Descuento 000257 Lápiz Bic 250 5 % 000257 Block 200 5 % 000257 Lápiz Grafito 50 0 % 000258 Lápiz Bic 400 6 % 000258 Cuaderno 350 6 % 000258 Regla 20 0 % Forma Normal de Boyce Codd Con frecuencia existen situaciones en donde la tercera forma normal no es capaz de responder adecuadamente en relaciones en las que se dan algunas de las siguientes condiciones: (A) Hay varias claves candidatas. (B) Las claves candidatas son compuestas, y (C) Hay traslape de los atributos que componen las claves candidatas (es decir, tienen atributos comunes). Debido a que las tres condiciones anteriores no se dan con frecuencia, en la mayoría de los casos la tercera forma normal es suficiente.
Forma Normal de Boyce Codd DEFINICIÓN BCNF : Una relación está en Formal Normal de Boyce/Codd (BCNF) si y sólo si cada determinante (en la relación) es una clave candidata. Forma Normal de Boyce Codd Ejemplo : Sea la siguiente relación : Pertenece = { RutAlum, CodAsig, RutProf } Donde se dan las siguientes restricciones: 1. En una asignatura, cada alumno tiene clases con un solo profesor. 2. Cada profesor imparte una sola asignatura 3. Cada asignatura la imparten varios profesores Por tanto, en ella existen los siguientes determinantes: (a) RutAlum, Codasig RutProf (b) RutProf CodAsig No está en FNBC pues el determinante (b) no es clave candidata. Solución: Descomponer Pertenece en : R1 = RutAlum, RutProf (Pertenece) R1 = RutProf, CodAsig (Pertenece) Obs: Dadas las restricciones, las relaciones no son independientes
Básicas 1ª FN (Codd, 1970) Concepto de relación normalizada. 2ª, 3ª FN (Codd, 1970), FNBC (Boyce/Codd), 1974. Basadas en dependencias funcionales. Otras 4ª FN. Fagin, 1977. Basada en dependencias multivaluadas. 5ª FN. Fagin, 1979. Basada en dependencias de proyección / combinación.