Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
1 Normalización 2 Formas Normales Es una restricción aplicada a los atributos de una relación que impide que se presenten anomalías indeseables en los datos. Propiedades: No existen tuplas repetidas Las tuplas no están ordenadas (de arriba hacia abajo) Los atributos no están ordenados (de izquierda a derecha) Todos los valores de los atributos son atómicos. Observaciones: Para establecer si una relación esta en forma normal se debe examinar la DF y por lo tanto una relación se representará con dos componentes: Los atributos Las Dependencias Funcionales entre ellos 3 Normalización Relación 5FN Relación 4FN Relación BCNF Relación 3FN Relación 2FN Relación 1FN Relaciones No Normalizadas 4 Pasos para el proceso de Normalización Según James Martin: Forma No Normalizada 1ra. Forma Normal 2da. Forma Normal 3ra. Forma Normal 1. Reducir todas las estructuras de datos que no sean bidimensionales a relaciones o segmentos bidimensionales. 2. Cada atributo no clave debe tener dependencia funcional completa de la clave primaria 3. No debe de existir dependencias transitivas entre atributos no clave 5 Pasos para el proceso de Normalización Eliminar dependencias Parciales y/o incompletas: Eliminar dependencias Transitivas: A* B C A* B* C D Convertir a: A* B* C A* D Conversión a 2FN: Conversión a 3FN: Convertir a: A* B B* C 6 Forma No Normalizada Una relación R esta en la forma no normalizada, si sus atributos se encuentran en una forma ambigua, sin distinción funcional y con longitud variable Ejemplo: En la base de datos ASIGNACIÓN, donde se ha definido la relación ASIGNACIÓN (Profesor, Curso, Ayudante de Catedra). Profesor Curso Ayudante Catedra JOSE PELAEZ SOSA (D001) Introducción IngenierÍa de Sistemas (IIAB13) Redes II (IIAB35) {OSCAR TORRES (AC015), LUIS RIQUELME (AC010), MARIA NARVAES (AC005)} {OSCAR TORRES(AC015), VICENTE CHAVEZ(AC011)} JUANA MENESES CALLE (D002) BASE DE DATOS I (IIAB44) {VICENTE CHAVEZ(AC011), VERONICA MORA (AC008)} Esta relacion no está normalizada (FNN) Ejemplo: en la F2C3={VICENTE CHAVEZ (AC011), VERONICA MORA(AC008)} 7 Primera Forma Normal (1FN) Una relación R está en la primera forma normal (1FN) si y sólo si todos los valores de atributos simples son atómicos. Es decir que en toda intersección de fila (registro) y columna (atributo) existe un único valor. Ejemplo: Sea la base de datos PEDIDOS, donde se ha denifido la relación ORDEN_CLIENTE(Cod_Cli, Nom_Cli, Ciudad_Cli, CostoEntregaUnit, Prec_Unit, Nro_Inv, Cant., Fecha). Cod_Cli Nom_Cli Ciudad_Cli CostoEntregaUnit Prec_Unit Nro_Inv Cant. Fecha C1 JUAN AREQUIPA 0.75 8.20 13 1 05/06/2010 C1 JUAN AREQUIPA 0.75 8.20 13 2 12/10/2010 C2 JUANA TACNA 1.95 4.00 12 1 15/05/2010 C2 JUANA TACNA 1.95 8.20 13 1 15/05/2010 C2 JUANA TACNA 1.95 2.00 11 3 15/05/2010 C3 JOSE AREQUIPA 0.75 4.00 12 1 10/08/2010 C3 JOSE AREQUIPA 0.75 2.00 11 2 10/08/2010 C4 RITA ILO 1.05 10.50 14 1 05/05/2010 8 Anomalías en la 1FN En la Inserción: No se puede ingresar un nuevo artículo del inventario en la relación ORDEN_CLIENTE, a menos que el artículo se haya vendido al menos a un CLIENTE. En la Eliminación: Si queremos eliminar el Artículo 14 del inventario, el borrado del registro no sólo quitaría la información del inventario acerca del artículo 14 sino también la información de la cliente RITA que alguna vez compró un artículo. En la Actualización: Si la cliente JUANA se muda de TACNA a AREQUIPA, se tendrá que modificar cada registro que contenga a JUANA. Cod_Cli Nom_Cli Ciudad_Cli CostoEntregaUnit Prec_Unit Nro_Inv Cant. Fecha C1 JUAN AREQUIPA 0.75 8.20 13 1 05/06/2010 C1 JUAN AREQUIPA 0.75 8.20 13 2 12/10/2010 C2 JUANA TACNA 1.95 4.00 12 1 15/05/2010 C2 JUANA TACNA 1.95 8.20 13 1 15/05/2010 C2 JUANA TACNA 1.95 2.00 11 3 15/05/2010 C3 JOSE AREQUIPA 0.75 4.00 12 1 10/08/2010 C3 JOSE AREQUIPA 0.75 2.00 11 2 10/08/2010 C4 RITA ILO 1.05 10.50 14 1 05/05/2010 ORDEN_CLIENTE 9 Segunda Forma Normal (2FN) Una relación R está en la segunda forma normal (2FN) si y sólo si está en la 1FN y cada atributo no clave tiene dependencia funcional completa de la clave primaria. 1. Construimos la clave primaria: Cod_Cli + Nro_Inv + Fecha 2. Construimos el DDF: Nomb_Cli, Ciudad_Cli, CostoEntregaUnitCod_Cli Nro_Inv Fecha Cant. Prec_Unit 10 3. Todos los atributos no claves en una relación dividida sean total y funcionalmente dependiente de la clave primaria. Cod_Cli Nro_Inv Fecha Cant. Relación CLIENTES_ENTREGA Nomb_Cli, Ciudad_Cli, CostoEntregaUnitCod_Cli Relación INVENTARIO Prec_UnitNro_Inv Relación ORDEN 11 Cod_Cli Nro_Inv Fecha Cant. C1 13 05/06/2010 1 C1 13 12/10/2010 2 C2 12 15/05/2010 1 C2 13 15/05/2010 1 C2 11 15/05/2010 3 C3 12 10/08/2010 1 C3 11 10/08/2010 2 C4 14 05/05/2010 1 Cod_Cli Nom_Cli Ciudad_Cli CostoEntregaUnit C1 JUAN AREQUIPA 0.75 C2 JUANA TACNA 1.95 C3 JOSE AREQUIPA 0.75 C4 RITA ILO 1.05 Nro_Inv Prec_Unit 11 2.00 12 4.00 13 8.20 14 10.50 Relación CLIENTES_ENTREGA Relación Orden Relación Inventario 12 Anomalías en la 2FN En la Inserción: No se puede ingresar un nuevo CostoEntregaUnit para una ciudad en particular, hasta que haya al menos un cliente que resida en esa ciudad. En la Eliminación: Suponga que la clienta RITA cierra su cuenta y se elimina el registro correspondiente en la relación CLIENTES_ENTREGA. Como RITA es la única cliente de ILO, la eliminación del registro también causará que se quite la información CostoEntregaUnit de S/. 1.50 para la ciudad de Ilo. En la Actualización: En la relación CLIENTES_ENTREGA, JUAN y JOSE son de AREQUIPA. Si se cambia de precio de entrega CostoEntregaUnit para AREQUIPA, entonces el precio CostoEntregaUnit se debe actualizar dos veces en vez de sólo una. Cod_Cli Nom_Cli Ciudad_Cli CostoEntregaUnit C1 JUAN AREQUIPA 0.75 C2 JUANA TACNA 1.95 C3 JOSE AREQUIPA 0.75 C4 RITA ILO 1.05 Relación CLIENTES_ENTREGA 13 Tercera Forma Normal (3FN) Una relación R está en la tercera forma normal (3FN) si y sólo si está en la 2FN y no existe dependencias transitivas entre atributos no clave. Sea la relación CLIENTES_ENTREGA Nomb_Cli, Ciudad_Cli, CostoEntregaUnitCod_Cli Se eliminan las dependencias transitivas: Nomb_Cli, Ciudad_Cli CostoEntregaUnit Cod_Cli Ciudad_Cli Relación CLIENTES: Relación COSTO_ENTREGA: 14 ILORITAC4 AREQUIPAJOSEC3 TACNAJUANAC2 AREQUIPAJUANC1 Ciudad_CliNom_CliCod_Cli Relación CLIENTES 1.05ILO 1.95TACNA 0.75AREQUIPA CostoEntregaUnitCiudad_Cli Relación COSTO_ENTREGA 1.05ILORITAC4 0.75AREQUIPAJOSEC3 1.95TACNAJUANAC2 0.75AREQUIPAJUANC1 CostoEntregaUnitCiudad_CliNom_CliCod_Cli Relación CLIENTES_ENTREGA 2FN 15ILORITAC4 AREQUIPAJOSEC3 TACNAJUANAC2 AREQUIPAJUANC1 Ciudad_CliNom_CliCod_Cli Relación CLIENTES 1.05ILO 1.95TACNA 0.75AREQUIPA CostoEntregaUnitCiudad_Cli Relación COSTO_ENTREGA 1 2 1 3 1 1 2 1 Cant. 10/08/201011C3 05/05/201014C4 15/05/201013C2 15/05/201011C2 10/08/201012C3 12 13 13 Nro_Inv 15/05/2010 12/10/2010 05/06/2010 Fecha C2 C1 C1 Cod_Cli Resultado de la Normalización 14 13 12 11 Nro_Inv 10.50 8.20 4.00 2.00 Prec_Unit Relación INVENTARIO Relación ORDEN Forma Normal de Boyce – Codd (FNBC) 16 La forma normal de Boyce Codd (FNBC), se basa en la concepción del uso de la determinante funcional y su soporte está en las claves candidatas de la relación. Un determinante funcional es un atributo o conjunto de atributos de una relación R, del cual depende funcionalmente en forma completa algún otro atributo de la misma relación. Una relación R está en FNBC, si y sólo si está en 3FN, y cada dependencia funcional no trivial tiene una clave candidata como determinante. Consideraciones para comprobar si una relación se encuentra en FNBC. • Si en la relación no existe claves candidatas compuestas (varios atributos juntos), está en FNBC. • Si en la relación existe varias claves candidatas compuestas y estás tienen un atributoen común, no está en FNBC. Forma Normal de Boyce – Codd (FNBC) 17 Ejemplo: se tiene la relación Asignación donde se tiene las siguientes dependencias funcionales: Estudiante, Idioma Profesor Profesor Idioma. En esta relación se plantearía las siguientes claves candidatas [Estudiante, Idioma] y [Profesor, Idioma]. Cualquiera de las dos claves candidatas se puede elegir como clave principal. Si se elige la asociación [Profesor, Idioma] es porque a un profesor se le asigna un idioma que ha estudiado para que enseñe a los estudiantes y si se elige la asociación [Estudiante, Idioma] es porque un estudiante elige el idioma que quiere estudiar. Forma Normal de Boyce – Codd (FNBC) 18 El primer paso: es elegir la clave principal. Se elige [Profesor, Idioma]. El segundo paso: es identificar el atributo en común en las dos claves candidatas planteadas para quitarlos y asociar los dos atributos restantes, esto permitirá no redundar información en la relación. El atributo en común encontrado es [Idioma], por lo tanto, quedaría la asociación [Estudiante, Profesor]. El resultado de aplicar FNBC a la relación Asignación quedara como se muestra en la figura. se puede observar que los datos repetidos son eliminados por restricciones de la clave primaria. Ejemplo de FNBC 19 Ciudad Calle Código postal Apurímac Constitución 100 083 Apurímac Perú 1000 083 Apurímac José María Arguedas 30 083 Cusco Constitución 500 085 Ejemplo: se tiene la relación Dirección donde se tiene las siguientes dependencias funcionales: Donde se tiene que: Una calle en una ciudad tiene un código postal. El código postal tiene una estructura tal que su valor determina la ciudad. Pero en una ciudad, varias calles pueden tener el mismo código postal. Calle, Ciudad Código postal Código postal Ciudad. Ejemplos NOTA (DNI_P, NOMBRE_P, DNI_A, CALIF) ¿Está en 3FN? ó ¿Está en FNBC? Supongamos las siguientes dependencias funcionales: • Supuesto 1: DNI_P NOMBRE_P; DNI_P, DNI_A CALIFICACIÓN • Supuesto 2: NOMBRE_P DNI_P; DNI_P, DNI_A CALIFICACIÓN DNI_P NOMBRE_P CALIFICACIÓN DNI_A DNI_A CALIFICACIÓN DNI_P NOMBRE_P 20 Dependencia Multivaluada Una dependencia multivaluada representa una dependencia entre atributos (por ejemplo A, B y C) en una relación de modo que para cada valor de A hay un conjunto de valores de B y un conjunto de valores de C; Sin embargo, los conjuntos de valores de B y C son independientes entre si A B C A1 B1 C1 A1 B2 C1 A1 B1 C2 A1 B2 C2 A B 21 22 Cuarta Forma Normal (4FN) Una relación R está en 4FN si y sólo si esta en 3FN o FNBC y no posee dependencias multivaluadas no triviales. COD_CLIENTE NOMBRE DIRECCIÓN TELEFONO E-MAIL C001 RAUL SALAZAR AV. PERU 1020 983632598 raul@gmail.com C002 JOSE PERES AV. CONSTITUCIÓN 100 983456895 jose@hotmail.com C003 MARIA ALVAREZ PSJE. 2 DE MAYO 122 953689547 maria@yahoo.com 983202010 raul@hotmail.com raul@yahoo.es CLIENTE RAUL mailto:raul@gmail.com mailto:jose@Hotmail.com mailto:maria@yahoo.com 23 Cuarta Forma Normal (4FN) COD_CLIENTE NOMBRE DIRECCIÓN TELEFONO E-MAIL C001 RAUL AV. PERU 1020 983632598 983202010 raul@gmail.com raul@hotmail.com raul@yahoo.es C002 JOSE AV. CONSTITUCIÓN 100 983456895 jose@hotmail.com C003 MARIA PSJE. 2 DE MAYO 122 953689547 maria@yahoo.com COD_CLIENTE NOMBRE DIRECCIÓN TELEFONO E-MAIL C001 RAUL AV. PERU 1020 983632598 raul@gmail.com C001 RAUL AV. PERU 1020 983202010 raul@hotmail.com C001 RAUL AV. PERU 1020 983632598 raul@yahoo.es C002 JOSE AV. CONSTITUCIÓN 100 983456895 jose@hotmail.com C003 MARIA PSJE. 2 DE MAYO 122 953689547 maria@yahoo.com mailto:raul@gmail.com mailto:raul@gmail.com mailto:raul@gmail.com mailto:jose@Hotmail.com mailto:maria@yahoo.com mailto:raul@gmail.com mailto:raul@hotmail.com mailto:raul@gmail.com mailto:jose@Hotmail.com mailto:maria@yahoo.com 24 COD_CLIENTE NOMBRE DIRECCIÓN TELEFONO E-MAIL C001 RAUL AV. PERU 1020 983632598 raul@gmail.com C001 RAUL AV. PERU 1020 983202010 raul@hotmail.com C001 RAUL AV. PERU 1020 983632598 raul@yahoo.es C001 RAUL AV. PERU 1020 983202010 raul@gmail.com C001 RAUL AV. PERU 1020 983632598 raul@hotmail.com C001 RAUL AV. PERU 1020 983202010 raul@yahoo.es C002 JOSE AV. CONSTITUCIÓN 100 983456895 jose@hotmail.com C003 MARIA PSJE. 2 DE MAYO 122 953689547 maria@yahoo.com COD_CLIENTE NOMBRE DIRECCIÓN TELEFONO E-MAIL C001 RAUL AV. PERU 1020 983632598 NULL C001 RAUL AV. PERU 1020 983202010 NULL C001 RAUL AV. PERU 1020 NULL raul@gmail.com C001 RAUL AV. PERU 1020 NULL raul@hotmail.com C001 RAUL AV. PERU 1020 NULL raul@yahoo.es C002 JOSE AV. CONSTITUCIÓN 100 983456895 jose@hotmail.com C003 MARIA PSJE. 2 DE MAYO 122 953689547 maria@yahoo.com mailto:raul@gmail.com mailto:raul@hotmail.com mailto:raul@gmail.com mailto:raul@gmail.com mailto:raul@hotmail.com mailto:raul@gmail.com mailto:jose@Hotmail.com mailto:maria@yahoo.com mailto:raul@gmail.com mailto:raul@hotmail.com mailto:raul@gmail.com mailto:jose@Hotmail.com mailto:maria@yahoo.com 25 COD_CLIENTE NOMBRE DIRECCIÓN C001 RAUL AV. PERU 1020 C002 JOSE AV. CONSTITUCIÓN 100 C003 MARIA PSJE. 2 DE MAYO 122 COD_CLIENTE TELEFONO C001 983632598 C001 983202010 C002 983456895 C003 953689547 COD_CLIENTE E-MAIL C001 raul@gmail.com C001 raul@hotmail.com C001 raul@yahoo.es C002 jose@hotmail.com C003 maria@yahoo.com COD_CLIENTE NOMBRE, DIRECCIÓN CLIENTE TELEFONO E-MAIL COD_CLIENTE TELEFONO COD_CLIENTE E-MAIL mailto:raul@gmail.com mailto:raul@gmail.com mailto:raul@gmail.com mailto:jose@Hotmail.com mailto:maria@yahoo.com 26 Juguete Precio Unitario Color Tamaño AUTO 8 AZUL 1 AUTO 8 AZUL 2 AUTO 8 AZUL 3 AUTO 8 AZUL 4 AUTO 8 Rojo 1 AUTO 8 Rojo 2 AUTO 8 Rojo 3 AUTO 8 Rojo 4 CAMION 10 Negro 1 CAMION 10 Negro 2 CAMION 10 Blanco 1 CAMION 10 Blanco 2 CAMION 10 Rojo 1 CAMION 10 Rojo 2 INVENTARIO El DDF es: JUGUETE COLOR TAMAÑO Precio Unitario Ejemplo 2: 27 SOLUCIÓN 1: Se crea una nueva relación TAMAÑO : JUGUETE tamaño Se crea una nueva relación INVENTARIO-COLOR: JUGUETE Precio Unitario COLOR El atributo multivalor COLOR se reemplaza por 3 atributos dependientes: COLOR1, COLOR2, COLOR3. Se crea una nueva relación INVENTARIO: JUGUETE Precio Unitario, Color1, Color2, Color3. 28 SOLUCIÓN 1: Juguete Precio Unitario Color1 Color2 Color3 AUTO 8 Azul Rojo -------- CAMION 10 Negro Blanco Rojo INVENTARIO Juguete Tamaño AUTO 1 AUTO 2 AUTO 3 AUTO 4 CAMION 1 CAMION 2 TAMAÑO 29 SOLUCIÓN 2: Se divide en tres relaciones: PRECIO, TAMAÑO Y COLOR que están en 4FN al eliminarse las DMV: Se separan los atributos no clave que no son total y funcionalmente dependientes de la clave primaria. Juguete Precio Unitario AUTO 8 CAMION 10 PRECIO Juguete Tamaño AUTO 1 AUTO 2 AUTO 3 AUTO 4 CAMION 1 CAMION 2 TAMAÑO Juguete Color AUTO Azul AUTO Rojo CAMION Negro CAMION Blanco CAMION Rojo COLOR Juguete Precio Unitario Juguete Tamaño Juguete Color 30 Quinta Forma Normal (5FN) La Quinta Forma Normal (5FN) se puede considerar como una extensión de la Cuarta Forma Normal (4FN). Es raro encontrarse este tipo de problemas cuando la normalización llega a 4FN. Se deben a restricciones muy concretas. Persona Conocimientos Proyecto Emilio Informática Proyecto 1 Emilio Medicina Proyecto 1 Emilio Informática Proyecto 3 Emilio Medicina Proyecto 3 José Francés Proyecto 1 José Economía Proyecto 1 Andrés Infomática Proyecto 1 Andrés Infomática Proyecto 2 PERSONAS Esta tabla contiene información acerca de una persona, sus conocimientos y el proyecto donde trabaja. La información no indica necesariamente que la persona aplique todos sus conocimientos en un proyecto. 31 Supóngase que la relación PERSONAS en vez de contener información sobre CONOCIMIENTOS y PROYECTO de una PERSONA, la relación también contenga información sobre los CONOCIMIENTOS que la PERSONA aplica en un proyecto dado. Esto quiere decir que un PROYECTOpueda no requerir todos los CONOCIMIENTOS de una PERSONA. Persona Conocimientos Proyecto Emilio Informática Proyecto 1 Emilio Informática Proyecto 3 Emilio Medicina Proyecto 3 José Francés -------------- José Economía Proyecto 1 Andrés Infomática Proyecto 1 Andrés Infomática Proyecto 2 APLICACIÓN - CONOCIMIENTOS Esta nueva relacion todavía tiene propiedades indeseables: Algunos hechos están encargados 2 veces, por ejemplo Emilio y Andrés poseen el conocimiento de Informática. Hay campos en blanco, por ejemplo: José tiene el conocimiento de FRANCÉS que no está aplicando en ningun proyecto. Estas propiedades surgen por que la relación APLICACION-CONOCIMIENTOS contiene dependencias multivaluadas dependientes (el valor CONOCIMIENTOS que está asociado con PROYECTO depende de los conocimientos que el proyecto requiera). Persona Conocimientos Emilio Informática Emilio Medicina José Francés José Economía Andrés Infomática CONOCIMIENTOS Persona Proyecto Emilio Proyecto 1 Emilio Proyecto 3 José Proyecto 1 Andrés Proyecto 1 Andrés Proyecto 2 ASIGNACIONES Proyecto Conocimientos Proyecto 1 Informática Proyecto 1 Economía Proyecto 2 Informática Proyecto 3 Informática Proyecto 3 Francés CONOCIMIENTOS-NECESARIOS 32
Compartir