DISEO E IMPLEMENTACIN DE BASE DE DATOS Contenido: 1. Definiciones Bsicas 2. First Normal Form: 1NF 3. Second Normal Form: 2NF 4. Third Normal Form: 3NF 5. Ejemplo Integral 1NF-2NF-3NF 6. Boyce Cood: BCNF 7. Fourth Normal Form: 4NF 8. Fifth Normal Form: 5NF 9. Conclusin Proceso del Diseo e implementacin de una Bases de Datos 1. Definiciones Bsicas > Normalizacin de Bases de Datos > En trminos simples, la normalizacin es el proceso de identificar el mejor lugar donde pertenecen los datos. > La normalizacin es un enfoque de diseo que minimiza la redundancia de datos, protege la integridad y optimiza las estructuras de datos mediante la colocacin de los elementos de datos de manera sistemtica y correcta en los grupos apropiados. > Hay algunas reglas en la normalizacin de una base de datos. Cada regla se denomina una Forma Normal".
Ing. Jonathan Carrillo - Octubre 2013 Proceso del Diseo e implementacin de una Bases de Datos 1. Definiciones Bsicas > Normalizacin de Bases de Datos > El proceso de normalizacin, fue propuesto en un principio por Codd (1972), > Este proceso, hace pasar un esquema relacional por una serie de comprobaciones para certificar que satisface una determinada forma normal. > La normalizacin se lleva a la prctica de forma que los diseos resultantes sean de mxima calidad. > La normalizacin evita anomalas de actualizacin (la insercin, eliminacin o modificacin pueden provocar aparicin de inconsistencias) por datos redundantes
Ing. Jonathan Carrillo - Octubre 2013 Proceso del Diseo e implementacin de una Bases de Datos 1. Definiciones Bsicas > Normalizacin de Bases de Datos > Cada regla est basada en la que le antecede. > Si se cumple la primera regla, se dice que la base de datos est en la "primera forma normal". Si se cumplen las tres primeras reglas, la base de datos se considera que est en la "tercera forma normal". > La normalizacin se adopt porque era tradicional poner todos los datos en un solo lugar (como un archivo o una tabla de la base de datos) y conduca a errores de lgica cuando se trataban de manipular los datos produciendo ineficiencia al momento de realizar consultas. Ing. Jonathan Carrillo - Octubre 2013 Proceso del Diseo e implementacin de una Bases de Datos 1. Definiciones Bsicas > Normalizacin de Bases de Datos > En general, la normalizacin requiere tablas adicionales. > Las guas que la normalizacin provee el marco de referencia para simplificar una estructura de datos compleja. > Una base de datos normalizada ocupa menos espacio en disco que una no normalizada. Hay menos repeticin de datos, lo que tiene como consecuencia un mucho menor uso de espacio en disco.
Ing. Jonathan Carrillo - Octubre 2013 Proceso del Diseo e implementacin de una Bases de Datos 1. Definiciones Bsicas > Normalizacin de Bases de Datos > Relacin: Denominada en el modelo relacional tambin tabla. > Tupla: Las Filas se conocen en el modelo relacional como tuplas > Campo: Interseccin entre la fila y la columna
Ing. Jonathan Carrillo - Octubre 2013 Campo Proceso del Diseo e implementacin de una Bases de Datos 1. Definiciones Bsicas > Normalizacin de Bases de Datos - Tipos
Ing. Jonathan Carrillo - Octubre 2013 Proceso del Diseo e implementacin de una Bases de Datos 2. First Normal Form: 1NF Se dice que el esquema de una relacin R est en la primera forma normal (1NF) si y solo si cada uno de los campos de R son atmicos (contiene un nico valor para un registro determinado o no deben poder ser descompuestos). Ejemplo 1:
La 1ra y 3ra tupla cumple 1NF, cada campo de tupla tiene un nico dato, pero NO ocurre con la 2da tupla ya que el campo Ubicacin_Departamento contiene ms de un valor. Ing. Jonathan Carrillo - Octubre 2013 Departamento Id_Departamento Nombre_Departamento Ubicacin_Departamento 1 Investigacin Portoviejo 2 Desarrollo Quito, Guayaquil, Cuenca 3 Tecnologa Manta Proceso del Diseo e implementacin de una Bases de Datos 2. First Normal Form: 1NF Solucin Ejemplo 1: Crear dos tablas
Ahora los registros de ambas tablas tienen valores nicos en sus campos, por lo tanto ambas cumplen la 1NF Ing. Jonathan Carrillo - Octubre 2013 Departamento Id_Departamento Nombre_Departamento Ubicacin_Departamento 1 Investigacin Portoviejo 2 Desarrollo Quito, Guayaquil, Cuenca 3 Tecnologa Manta Departamento Id_Departamento Nombre_Departamento 1 Investigacin 2 Desarrollo 3 Tecnologa Departamento_Ubicacion Id_Departamento Nombre_Ciudad 1 Portoviejo 2 Quito 2 Guayaquil 2 Cuenca 3 Manta NO NORMALIZADO NORMALIZADO 1NF Proceso del Diseo e implementacin de una Bases de Datos 2. First Normal Form: 1NF Ejemplo 2:
Ing. Jonathan Carrillo - Octubre 2013 NORMALIZADO 1NF NO NORMALIZADO Libro Id_Libro Nombre_Libro Publicacion_Libro 1 Clculo Integral 2000 2 Ecuaciones Diferenciales 1994, 1998, 2000 3 Fundamentos de BDD 1990, 2002 Libro Id_Libro Nombre_Libro 1 Clculo Integral 2 Ecuaciones Diferenciales 3 Fundamentos de BDD Libro_Publicacin Id_Libro Ao_Publicacion 1 200 2 1994 2 1998 2 2000 3 1990 3 2002 Proceso del Diseo e implementacin de una Bases de Datos 2. First Normal Form: 1NF Ejemplo 3: Ing. Jonathan Carrillo - Octubre 2013 NORMALIZADO 1NF NO NORMALIZADO Usuario Id_Usuario Usuario Empresa URL1 URL2 1 Jose ABC www.abc.com www.xyz.com 2 Juan XYZ www.abc.com www.xyz.com Usuario Id_Usuario Usuario Empresa 1 Jose ABC 2 Juan XYZ URL Id_Usuario URL 1 www.abc.com 1 www.xyz.com 2 www.abc.com 2 www.xyz.com Proceso del Diseo e implementacin de una Bases de Datos 2. First Normal Form: 1NF Ejemplo 4:
Ing. Jonathan Carrillo - Octubre 2013 NORMALIZADO 1NF NO NORMALIZADO Estudiante Id_Estudiante Nombre_Estudiante ID_Carrera Carrera_Estudiante Numero_Curso Nombre_Curso Fecha_Curso 2907 Sanchez, Patricio MAT Mathematics MAT0011 MAT0027 EGL0010 Discrete Math Calculus I English Classics I 01/08/2002 30/04/2002 30/12/2001 4019 Montecarlo, Megan PHI Philosophy PHI0010 CS00100 Intro to Philosophy Programming Languages 30/04/2002 30/04/2002 Estudiante Id_Estudiante Nombre_Estudiante Apellido_Estudiante ID_Carrera Carrera_Estudiante 2907 Patricio Sanchez MAT Mathematics 4019 Megan Montecarlo PHI Philosophy Curso Id_Estudiante Numero_Curso Nombre_Curso Fecha_Curso 2907 MAT0011 Discrete Math 01/08/2002 2907 MAT0027 Calculus I 30/04/2002 2907 EGL0010 English Classics I 30/12/2001 4019 PHI0010 Intro to Philosophy 30/04/2002 4019 CS00100 Programming Languages 30/04/2002 Proceso del Diseo e implementacin de una Bases de Datos 2. First Normal Form: 1NF Por lo tanto, podemos concluir que para certificar una tabla en la primera forma normal 1NF se debe: > Eliminar los grupos repetitivos de la tablas individuales creando tuplas individuales. > Crear una tabla separada por cada grupo de datos relacionados. > Identificar cada grupo de datos relacionados con la clave primaria
Ing. Jonathan Carrillo - Octubre 2013 Proceso del Diseo e implementacin de una Bases de Datos 3. Second Normal Form: 2NF Conceptos previos: > Clave Primaria: Es el subconjunto mnimo y no vaco de atributos que permiten identificar de manera nica una tupla dentro de una relacin. > Si existen varios conjuntos que cumplen esta condicin se denominan claves candidatas. > Los atributos que conforman parte de la clave primaria o candidata se denominan atributos primos (Id, DNI), los atributos que no forman parte de ninguna de estas claves se denominan atributos no primos (fecha nacimiento). Ing. Jonathan Carrillo - Octubre 2013 Proceso del Diseo e implementacin de una Bases de Datos 3. Second Normal Form: 2NF Conceptos previos: > Dependencia funcional: B depende funcionalmente de A (A B), si para cualquier valor de A le corresponde un nico valor de B. > Por ejemplo: Si A es el DNI y B es el Nombre, est claro que a cualquier DNI le corresponde un nico Nombre de titular (Nombre depende funcionalmente del DNI). > Otro ejemplo: Si A es Fecha de Nacimiento y B la Edad, es evidente que la Edad depende funcionalmente de la Fecha de Nacimiento. > Dependencia funcional completa: Si B depende de A en su Totalidad. Ing. Jonathan Carrillo - Octubre 2013 Proceso del Diseo e implementacin de una Bases de Datos 3. Second Normal Form: 2NF Conceptos previos: Ejemplo de Dependencia funcional: Sea la siguiente Relacin: Empleado(DNI, Numero_Proyecto, Horas, Nombre_Empleado, Nombre_Proyecto, Ubicacin_Proyecto)
Dni Nombre_Empleado Numero_Proyecto NombreProyecto, Ubicacn_Proyecto Dni, NmeroDpto Horas
Ing. Jonathan Carrillo - Octubre 2013 EMPLEADO DNI Numero_Proyecto Horas Nombre_Empleado Nombre_Proyecto Ubicacin_Proyecto Proceso del Diseo e implementacin de una Bases de Datos 3. Second Normal Form: 2NF Se dice que una tabla se encuentra en segunda forma normal 2NF si y solo si: > La tabla se encuentra en 1NF > Todos sus atributos no primos dependen funcionalmente de forma completa de la clave primaria (existe dependencia funcional completa). En general, para certificar una tabla a Segunda Forma Normal 2NF, se requiere: 1. Crear tablas separadas para aquellos grupos de datos que se aplican a varios registros. 2. Relacionar estas tablas mediante una clave principal externa.
Ing. Jonathan Carrillo - Octubre 2013 Proceso del Diseo e implementacin de una Bases de Datos 3. Second Normal Form: 2NF Ejemplo:
Sea la clave primaria de esta tabla formada por los campos Id_Empleado y Id_Departamento, podemos decir que la tabla se encuentra en 1NF Revisemos las dependencias funcionales: Ing. Jonathan Carrillo - Octubre 2013 NORMALIZADO 1NF Empleado Id_Empleado Id_Departamento Empleado Departameto Aos 1 30 Juan Administrativo 6 2 40 Pedro Tecnologa 3 3 50 Sonia Ventas 1 4 40 Nathalia Tecnologa 10 2 30 Pedro Administrativo 5 Proceso del Diseo e implementacin de una Bases de Datos 3. Second Normal Form: 2NF Ejemplo:
> Id_Empleado Empleado > Id_Departamento Departamento > Id_Empleado, Id_Departamento Aos Por lo tanto, la tabla anterior NO se encuentra en 2NF, ya que NO existe dependencia funcional total respecto a la clave de todos los campos de la relacin. Ing. Jonathan Carrillo - Octubre 2013 Empleado Id_Empleado Id_Departamento Empleado Departameto Aos 1 30 Juan Administrativo 6 2 40 Pedro Tecnologa 3 3 50 Sonia Ventas 1 4 40 Nathalia Tecnologa 10 2 30 Pedro Administrativo 5 Proceso del Diseo e implementacin de una Bases de Datos 3. Second Normal Form: 2NF Ejemplo: > Id_Empleado Empleado > Id_Departamento Departamento > Id_Empleado, Id_Departamento Aos
Se aplica la descomposicin de dependencia:
Ing. Jonathan Carrillo - Octubre 2013 Id_Empleado
Id_Departamento Empleado
Departamento Aos Id_Empleado Id_Empleado Id_Departamento Id_Departamento Empleado Departamento Aos Proceso del Diseo e implementacin de una Bases de Datos 3. Second Normal Form: 2NF Ejemplo: Ing. Jonathan Carrillo - Octubre 2013 NORMALIZADO 2NF Empleado Id_Empleado Id_Departamento Empleado Departameto Aos 1 30 Juan Administrativo 6 2 40 Pedro Tecnologa 3 3 50 Sonia Ventas 1 4 40 Nathalia Tecnologa 10 2 30 Pedro Administrativo 5 Empleado Id_Empleado Empleado 1 Juan 2 Pedro 3 Sonia 4 Nathalia Departamento Id_Departamento Departameto 30 Administrativo 40 Tecnologa 50 Ventas Id_Empleado Id_Departamento Aos 1 30 6 2 40 3 3 50 1 4 40 10 2 30 5 Empleado_Departamento Proceso del Diseo e implementacin de una Bases de Datos 4. Third Normal Form: 3NF Conceptos Previos: Dependencia Transitiva: Una dependencia funcional X Y en un esquema de relacin R es una dependencia transitiva si existe un conjunto de atributos Z que ni es clave candidata ni un subconjunto de ninguna clave de R, tal que: X Y Y Z Se dice que Z tiene dependencia transitiva respecto a X a travs de Y X Y Z
Ing. Jonathan Carrillo - Octubre 2013 Proceso del Diseo e implementacin de una Bases de Datos 4. Third Normal Form: 3NF Se dice que una tabla se encuentra en tercera forma normal 3NF si: > Satisface 2FN > Ningn atributo no primo depende no transitivamente de la clave primaria. (No existe dependencia transitiva) Ningn atributo puede depender uno de otro a no ser que sea la clave primaria. En general, para certificar una tabla a Tercera Forma Normal 3NF, se requiere: > Crear una tabla para aquellos campos que no dependan de la clave. Ing. Jonathan Carrillo - Octubre 2013 Proceso del Diseo e implementacin de una Bases de Datos 4. Third Normal Form: 3NF Ejemplo 1:
Dependencias: > Id_Alumno Nombre, Curso > Id_Alumno, Curso Aula Ing. Jonathan Carrillo - Octubre 2013 Id_Alumno Nombre Curso Aula 1 Marcos Informatica Aula A 2 Lucas Ingls Aula B 3 Mateo Finanzas Aula C Id_Alumno Nombre
Curso Aula Existe dependencia transitiva Proceso del Diseo e implementacin de una Bases de Datos 4. Third Normal Form: 3NF Ejemplo 1: Se aplica descomposicin sin prdidas para la dependencia que impide la 3NF, y obtenemos:
Ing. Jonathan Carrillo - Octubre 2013 Curso Nombre Curso Aula Id_Alumno Id_Alumno Nombre Curso 1 Marcos Informatica 2 Lucas Ingls 3 Mateo Finanzas Curso Aula Informatica Aula A Ingls Aula B Finanzas Aula C NORMALIZADO 3NF Proceso del Diseo e implementacin de una Bases de Datos 4. Third Normal Form: 3NF Ejemplo 2:
Dependencias: > DNI Nombre, Apellido, Codigo_Provincia > DNI, Codigo_Provincia Provincia
Ing. Jonathan Carrillo - Octubre 2013 Nombre Apellido Codigo_Provincia Provincia DNI Alumno DNI Nombre Apellido Codigo_Provincia Provincia 12121349A Salvador Velasco 34 Palencia 12121219A Pedro Valentine 34 Palencia 3457775G Ana Fernandez 47 Valladolid 5674378J Sara Crespo 47 Valladolid 3456858S Marina Serrat 8 Barcelona Proceso del Diseo e implementacin de una Bases de Datos 4. Third Normal Form: 3NF Ejemplo 2:
Ing. Jonathan Carrillo - Octubre 2013 Alumno DNI Nombre Apellido Codigo_Provincia Provincia 12121349A Salvador Velasco 34 Palencia 12121219A Pedro Valentine 34 Palencia 3457775G Ana Fernandez 47 Valladolid 5674378J Sara Crespo 47 Valladolid 3456858S Marina Serrat 8 Barcelona NORMALIZADO 3NF Alumno DNI Nombre Apellido Codigo_Provincia 12121349A Salvador Velasco 34 12121219A Pedro Valentine 34 3457775G Ana Fernandez 47 5674378J Sara Crespo 47 3456858S Marina Serrat 8 Provincia Codigo_Provincia Provincia 34 Palencia 47 Valladolid 8 Barcelona Proceso del Diseo e implementacin de una Bases de Datos 5. Ejemplo integral 1NF-2NF-3NF Base de datos de una Biblioteca
Esta tabla NO cumple el requisito de la Primera Forma Normal 1NF de slo tener campos atmicos, pues el campo de Autor de la 4ta tupla y el nombre del lector es un campo que puede (y conviene) descomponerse. Para el caso del nombre se descompone en apellido paterno y apellido materno. Tal como se muestra en la siguiente tabla.
Ing. Jonathan Carrillo - Octubre 2013 Libro Id_Libro Titulo Autor Editorial Nombre_Lector Fecha Devolucion 1 Variable compleja Murray Spiegel McGraw Hill Prez Gmez, Juan 15/04/2005 2 Visual Basic 5 E. Petroustsos Anaya Ros Tern, Ana 17/04/2005 3 Estadstica Murray Spiegel McGraw Hill Roca, Ren 16/04/2005 4 Oracle University Nancy Greenberg y Priya Nathan Oracle Corp. Garca Roque, Luis 20/04/2005 5 Clipper 5.01 Ramalho McGraw Hill Prez Gmez, Juan 18/04/2005 Proceso del Diseo e implementacin de una Bases de Datos 5. Ejemplo integral 1NF-2NF-3NF Base de datos de una Biblioteca
Ing. Jonathan Carrillo - Octubre 2013 NORMALIZADO 1NF Libro Id_Libro Titulo Autor Editorial Fecha Devolucion 1 Variable compleja Murray Spiegel McGraw Hill 15/04/2005 2 Visual Basic 5 E. Petroustsos Anaya 17/04/2005 3 Estadstica Murray Spiegel McGraw Hill 16/04/2005 4 Oracle University Nancy Greenberg Oracle Corp. 20/04/2005 4 Oracle University Priya Nathan Oracle Corp. 20/04/2005 5 Clipper 5.01 Ramalho McGraw Hill 18/04/2005 Lector Id_Libro Nombre Paterno Materno 1 Juan Prez Gmez 2 Ana Ros Tern 3 Ren Roca 4 Luis Garca Roque 4 Luis Garca Roque 5 Juan Prez Gmez Proceso del Diseo e implementacin de una Bases de Datos 5. Ejemplo integral 1NF-2NF-3NF La Segunda Forma Normal (2NF) pide que no existan dependencias parciales o dicho de otra manera, todos los atributos no clave deben depender por completo de la clave primaria (dependencia funcional completa). Actualmente en nuestras tablas tenemos varias dependencias parciales si consideramos como atributo clave el cdigo del libro.
Ing. Jonathan Carrillo - Octubre 2013 Libro Id_Libro Titulo Autor Editorial Fecha Devolucion 1 Variable compleja Murray Spiegel McGraw Hill 15/04/2005 2 Visual Basic 5 E. Petroustsos Anaya 17/04/2005 3 Estadstica Murray Spiegel McGraw Hill 16/04/2005 4 Oracle University Nancy Greenberg Oracle Corp. 20/04/2005 4 Oracle University Priya Nathan Oracle Corp. 20/04/2005 5 Clipper 5.01 Ramalho McGraw Hill 18/04/2005 Lector Id_Libro Nombre Paterno Materno 1 Juan Prez Gmez 2 Ana Ros Tern 3 Ren Roca 4 Luis Garca Roque 4 Luis Garca Roque 5 Juan Prez Gmez Proceso del Diseo e implementacin de una Bases de Datos 5. Ejemplo integral 1NF-2NF-3NF
Ing. Jonathan Carrillo - Octubre 2013 NORMALIZADO 2NF Es necesaria esta tabla para mantener la informacin de qu libros estn prestados a qu lectores y la fecha de devolucin de cada libro. Libro Id_Libro Titulo Autor Editorial 1 Variable compleja Murray Spiegel McGraw Hill 2 Visual Basic 5 E. Petroustsos Anaya 3 Estadstica Murray Spiegel McGraw Hill 4 Oracle University Nancy Greenberg Oracle Corp. 4 Oracle University Priya Nathan Oracle Corp. 5 Clipper 5.01 Ramalho McGraw Hill Lector Id_Lector Nombre Paterno Materno 101 Juan Prez Gmez 102 Ana Ros Tern 103 Ren Roca 104 Luis Garca Roque Lector_Libro Id_Libro Id_Lector Fecha Devolucion 1 101 15/04/2005 2 102 17/04/2005 3 103 16/04/2005 4 104 20/04/2005 5 101 18/04/2005 Libro Id_Libro Titulo Autor Editorial Fecha Devolucion 1 Variable compleja Murray Spiegel McGraw Hill 15/04/2005 2 Visual Basic 5 E. Petroustsos Anaya 17/04/2005 3 Estadstica Murray Spiegel McGraw Hill 16/04/2005 4 Oracle University Nancy Greenberg Oracle Corp. 20/04/2005 4 Oracle University Priya Nathan Oracle Corp. 20/04/2005 5 Clipper 5.01 Ramalho McGraw Hill 18/04/2005 Lector Id_Libro Nombre Paterno Materno 1 Juan Prez Gmez 2 Ana Ros Tern 3 Ren Roca 4 Luis Garca Roque 4 Luis Garca Roque 5 Juan Prez Gmez Proceso del Diseo e implementacin de una Bases de Datos 5. Ejemplo integral 1NF-2NF-3NF Para la Tercera Forma Normal (3NF) la relacin debe estar en 2NF y adems los atributos no clave deben ser mutuamente independientes y dependientes por completo de la clave primaria (No existe dependencia transitiva) Tambin recordemos que esto significa que las columnas en la tabla deben contener solamente informacin sobre la entidad definida por la clave primaria y, por tanto, las columnas en la tabla deben contener datos acerca de una sola cosa. Ing. Jonathan Carrillo - Octubre 2013 Proceso del Diseo e implementacin de una Bases de Datos 5. Ejemplo integral 1NF-2NF-3NF En nuestro ejemplo en 2NF, la siguiente tabla conserva informacin acerca del libro, los autores y editoriales, y existe dependencia transitiva:
Por lo que debemos crear nuevas tablas para satisfacer los requisitos de 3NF: Ing. Jonathan Carrillo - Octubre 2013 NO CUMPLE 3NF Libro Id_Libro Titulo Autor Editorial 1 Variable compleja Murray Spiegel McGraw Hill 2 Visual Basic 5 E. Petroustsos Anaya 3 Estadstica Murray Spiegel McGraw Hill 4 Oracle University Nancy Greenberg Oracle Corp. 4 Oracle University Priya Nathan Oracle Corp. 5 Clipper 5.01 Ramalho McGraw Hill Proceso del Diseo e implementacin de una Bases de Datos 5. Ejemplo integral 1NF-2NF-3NF Ing. Jonathan Carrillo - Octubre 2013 NORMALIZADO 3NF Libro Id_Libro Titulo Autor Editorial 1 Variable compleja Murray Spiegel McGraw Hill 2 Visual Basic 5 E. Petroustsos Anaya 3 Estadstica Murray Spiegel McGraw Hill 4 Oracle University Nancy Greenberg Oracle Corp. 4 Oracle University Priya Nathan Oracle Corp. 5 Clipper 5.01 Ramalho McGraw Hill Libro Id_Libro Titulo 1 Variable compleja 2 Visual Basic 5 3 Estadstica 4 Oracle University 5 Clipper 5.01 Autor Id_Autor Autor 201 Murray Spiegel 202 E. Petroustsos 203 Nancy Greenberg 204 Priya Nathan 205 Ramalho Editorial Id_Editorial Editorial 501 McGraw Hill 502 Anaya 503 Oracle Corp. Contina. Proceso del Diseo e implementacin de una Bases de Datos 5. Ejemplo integral 1NF-2NF-3NF Aunque hemos creado nuevas tablas para que cada una tenga slo informacin acerca de una entidad, tambin hemos perdido la informacin acerca de qu autor ha escrito qu libro y las editoriales correspondientes, por lo que debemos crear otras tablas que relacionen cada libro con sus autores y editoriales.
Ing. Jonathan Carrillo - Octubre 2013 NORMALIZADO 3NF Libro Id_Libro Titulo 1 Variable compleja 2 Visual Basic 5 3 Estadstica 4 Oracle University 5 Clipper 5.01 Autor Id_Autor Autor 201 Murray Spiegel 202 E. Petroustsos 203 Nancy Greenberg 204 Priya Nathan 205 Ramalho Editorial Id_Editorial Editorial 501 McGraw Hill 502 Anaya 503 Oracle Corp. Id_libro Id_Editorial 1 501 2 502 3 501 4 503 5 501 Libro_Editorial Libro_Autor Id_Libro Id_Autor 1 201 2 202 3 201 4 203 4 204 5 205 Proceso del Diseo e implementacin de una Bases de Datos 5. Ejemplo integral 1NF-2NF-3NF Y el resto de las tablas no necesitan modificacin.
Integrando todo lo anterior se obtendra:
Ing. Jonathan Carrillo - Octubre 2013 Lector Id_Lector Nombre Paterno Materno 101 Juan Prez Gmez 102 Ana Ros Tern 103 Ren Roca 104 Luis Garca Roque Lector_Libro Id_Libro Id_Lector Fecha Devolucion 1 101 15/04/2005 2 102 17/04/2005 3 103 16/04/2005 4 104 20/04/2005 5 101 18/04/2005 Proceso del Diseo e implementacin de una Bases de Datos 5. Ejemplo integral 1NF-2NF-3NF Resultado final: Base de Datos en 3NF
Ing. Jonathan Carrillo - Octubre 2013 Lector Id_Lector Nombre Paterno Materno 101 Juan Prez Gmez 102 Ana Ros Tern 103 Ren Roca 104 Luis Garca Roque Lector_Libro Id_Libro Id_Lector Fecha Devolucion 1 101 15/04/2005 2 102 17/04/2005 3 103 16/04/2005 4 104 20/04/2005 5 101 18/04/2005 Libro Id_Libro Titulo 1 Variable compleja 2 Visual Basic 5 3 Estadstica 4 Oracle University 5 Clipper 5.01 Autor Id_Autor Autor 201 Murray Spiegel 202 E. Petroustsos 203 Nancy Greenberg 204 Priya Nathan 205 Ramalho Editorial Id_Editorial Editorial 501 McGraw Hill 502 Anaya 503 Oracle Corp. Id_libro Id_Editorial 1 501 2 502 3 501 4 503 5 501 Libro_Editorial Libro_Autor Id_Libro Id_Autor 1 201 2 202 3 201 4 203 4 204 5 205 Proceso del Diseo e implementacin de una Bases de Datos 5. Ejemplo integral 1NF-2NF-3NF Resultado final: Creacin de Tablas - Base de Datos en 3NF
Ing. Jonathan Carrillo - Octubre 2013 LIBRO LIBRO LIBRO LIBRO AUTOR EDITORIAL LIBRO_EDITORIAL LIBRO_AUTOR LIBRO LECTOR LIBRO_LECTOR LECTOR LECTOR LECTOR 1NF 2NF 3NF Proceso del Diseo e implementacin de una Bases de Datos 5. Ejemplo integral 1NF-2NF-3NF Tabla Resumen: Ing. Jonathan Carrillo - Octubre 2013 FORMA NORMAL CARACTERISTICA PROCEDIMIENTOS 1NF Si y solo si cada uno de los campos de R son atmicos (contiene un nico valor para un registro determinado o no deben poder ser descompuestos *Eliminar los grupos repetitivos de la tablas individuales creando tuplas individuales.
*Crear una tabla separada por cada grupo de datos relacionados.
*Identificar cada grupo de datos relacionados con la clave primaria. 2NF Todos sus atributos no primos dependen funcionalmente de forma completa de la clave primaria (existe dependencia funcional completa) *Crear tablas separadas para aquellos grupos de datos que se aplican a varios registros.
*Relacionar estas tablas mediante una clave principal (externa). 3NF Ningn atributo puede depender uno de otro a no ser que sea la clave primaria (No existe dependencia transitiva) *Crear una tabla para aquellos campos que no dependan de la clave Proceso del Diseo e implementacin de una Bases de Datos 6. Boyce Cood: BCNF Consideraciones Preliminares: > El diseo de base de datos, tal y como se realiza en la actualidad en la industria, presta especial atencin a la normalizacin hasta la 3FN. > La BCNF y la 4NF es considerada por otros diseadores formas normales que basta llegar. > Otros opinan que la 4NF, y sobre todo la 5NF es polmica. Mencionan que hay bases de datos peores en 5NF. > Otro punto que conviene resaltar es que los diseadores de bases de datos no necesitan normalizar hasta la forma normal ms alta posible.
Ing. Jonathan Carrillo - Octubre 2013 Proceso del Diseo e implementacin de una Bases de Datos 6. Boyce Cood: BCNF La BCNF (Boyce-Codd Normal Form) se propuso como una forma que es ms estricta que la 3NF, es decir, toda relacin que est en BCNF lo est tambin en 3NF. Una tabla est en Forma Normal de Boyce-Codd o BCNF si: > Satisface 3NF > Solo existen dependencias funcionales elementales que dependan de la clave primaria o de cualquier clave alternativa. Ing. Jonathan Carrillo - Octubre 2013 Proceso del Diseo e implementacin de una Bases de Datos 6. Boyce Cood: BCNF Ejemplo: La siguiente tabla se encuentra en 3FN:
Aunque la tabla anterior se mantiene en 3FN, mantiene dependencias funcionales. En este caso hay dependencia entre el cdigo postal y la poblacin, ya que, conocido el cdigo postal se puede conocer la poblacin, y conocida la direccin y la poblacin, se conoce el cdigo postal. Ing. Jonathan Carrillo - Octubre 2013 Poblacin Codigo_Postal Direccion Poblacin 30009 C/ Pantano Camarillas n16 Murcia 48596 Av. Buenos Aires n12 Madrid Proceso del Diseo e implementacin de una Bases de Datos 6. Boyce Cood: BCNF Ejemplo:
Para transformar la tabla anterior en BCNF se crea las siguientes relaciones o tablas:
Ing. Jonathan Carrillo - Octubre 2013 CodigoPostal_Direccion Codigo_Postal Direccion 30009 C/ Pantano Camarillas n16 48596 Av. Buenos Aires n12 Poblacin Codigo_Postal Direccion Poblacin 30009 C/ Pantano Camarillas n16 Murcia 48596 Av. Buenos Aires n12 Madrid CodigoPostal_Poblacin Codigo_Postal Poblacin 30009 Murcia 48596 Madrid NORMALIZADO BCNF Proceso del Diseo e implementacin de una Bases de Datos 7. Fourth Normal Form: 4NF Dependencia Funcional multivaluada o de mltiples valores: Una dependencia multivaluada de X sobre Z (es decir X Z), siendo X y Z atributos de la misma tabla, ocurre cuando Z tiene un conjunto de valores bien definidos sobre cualquier valor de X. Es decir, dado X sabremos los posibles valores que puede tomar Z. Una tabla est en 4NF, si: > Satisface BCNF > Las nicas dependencias funcionales multivaluadas que existen son las dependencias funcionales de la clave con los atributos que no forman parte de la misma. Ing. Jonathan Carrillo - Octubre 2013 Proceso del Diseo e implementacin de una Bases de Datos 7. Fourth Normal Form: 4NF Ejemplo: Supongamos la siguiente tabla. Los atributos de la tabla transporte son Conductor, Tipo_vehculo y Tipo_Carga, formando los tres campos la clave primaria. A cada conductor se le puede asignar un vehculo u otro, y cada vehculo puede transportar varios tipos de carga.
Ing. Jonathan Carrillo - Octubre 2013 Conductor Tipo_Vehculo Tipo_Carga Juan Furgoneta Perecederos Marcos Furgoneta Perecederos Juan Furgoneta Muebles Marcos Furgoneta Muebles Juan Camin Mudanza Marcos Camin Mudanza Transporte Proceso del Diseo e implementacin de una Bases de Datos 7. Fourth Normal Form: 4NF Ejemplo:
Con estas condiciones: > Los conductores son independientes de la carga > El tipo de vehculos depende del conductor > Tipo de vehculo depende del Tipo de carga. En este caso hay dependencias funcionales multivaluadas, ya que algunos atributos que forman la clave dependen de otro atributo que tambin la forman.
Ing. Jonathan Carrillo - Octubre 2013 Conductor Tipo_Vehculo Tipo_Carga Juan Furgoneta Perecederos Marcos Furgoneta Perecederos Juan Furgoneta Muebles Marcos Furgoneta Muebles Juan Camin Mudanza Marcos Camin Mudanza Transporte Proceso del Diseo e implementacin de una Bases de Datos 7. Fourth Normal Form: 4NF Ejemplo: Para conseguir que esta tabla est en 4FN se necesita crear dos nuevas tablas, mantenindose en cada una de ellas una dependencia mltiple: Ing. Jonathan Carrillo - Octubre 2013 Conductor Tipo_Vehculo Tipo_Carga Juan Furgoneta Perecederos Marcos Furgoneta Perecederos Juan Furgoneta Muebles Marcos Furgoneta Muebles Juan Camin Mudanza Marcos Camin Mudanza Transporte Conductor Tipo_Vehculo Juan Furgoneta Marcos Furgoneta Juan Furgoneta Marcos Furgoneta Juan Camin Marcos Camin Conductor_TipoVehiculo Tipo_Vehculo Tipo_Carga Furgoneta Perecederos Furgoneta Perecederos Furgoneta Muebles Furgoneta Muebles Camin Mudanza Camin Mudanza TipoVehculo_TipoCarga NORMALIZADO 4NF Proceso del Diseo e implementacin de una Bases de Datos 8. Fifth Normal Form: 5NF Conceptos previos: > Proyeccin: Creacin de una tabla cuyos elementos forman un subconjunto de una tabla dada. Se incluyen todas las filas y algunas columnas. > Unin: Formar, a partir de dos tablas, una nueva con todos los campos de una de ellas y los registros de ambas, excepto los repetidos. Ambas tablas han de tener el mismo grado y las mismas columnas. > Se dice que se tiene una tabla con dependencia de unin (o de tipo JOIN) si se puede obtener esa tabla como resultado de combinar mediante la operacin JOIN varias proyecciones de la misma. Ing. Jonathan Carrillo - Octubre 2013 Proceso del Diseo e implementacin de una Bases de Datos 8. Fifth Normal Form: 5NF Una tabla est en 5NF, si: > Satisface 4NF > Cada dependencia de unin (JOIN) en ella es implicada por las claves candidatas. La 5NF se emplea cuando en una misma tabla tenemos mucha informacin redundante, con pocos atributos o cuando una tabla posee una gran cantidad de atributos, y se hace por ello inmanejable Es por aquello que la 5NF es la ms compleja y polmica de todas. Polmica pues no se evidencia que el paso a 5NF mejore la base de datos. Ing. Jonathan Carrillo - Octubre 2013 Proceso del Diseo e implementacin de una Bases de Datos 8. Fifth Normal Form: 5NF Es raro encontrarse este tipo de problemas cuando la normalizacin llega a 4NF. Esto se debe a restricciones semnticas especiales aplicadas sobre la tabla. Para conseguir que una tabla 4NF con gran cantidad de atributos est en 5NF, se parte la tabla original en tantas tablas como se desee, teniendo cada una de ellas en comn con las dems los campos que forman la clave primaria en la tabla original.
Ing. Jonathan Carrillo - Octubre 2013 Proceso del Diseo e implementacin de una Bases de Datos 8. Fifth Normal Form: 5NF Ejemplo para el caso de una tabla que posee una gran cantidad de atributos: Supongamos que tenemos una empresa donde se guardan los siguientes Datos: Personales, Familiares, Profesionales y Clnicos de cada empleado en una nica tabla en 4NF llamada Empleado, definida por: Empleado(Id, a, b, c, x, y, z, o, p, q, r, s, t)
Ing. Jonathan Carrillo - Octubre 2013 Codi go I d a b c x y z o p q r s t 1 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 Datos Fami l i ares Datos Profesi onal es Datos Personal es Datos Cl ni cos Empl eado Proceso del Diseo e implementacin de una Bases de Datos 8. Fifth Normal Form: 5NF Ejemplo para el caso de una tabla que posee una gran cantidad de atributos: Para conseguir que esta tabla est en 5FN se necesita crear nuevas tablas: Ing. Jonathan Carrillo - Octubre 2013 Codi go Codi go I d a b c I d x y z 1 D1 D2 D3 1 D4 D5 D6 Codi go Codi go I d o p q I d r s t 1 D7 D8 D9 1 D10 D11 D12 Datos Profesi onal es Datos Personal es Datos Cl ni cos Datos Fami l i ares Proceso del Diseo e implementacin de una Bases de Datos 8. Fifth Normal Form: 5NF Ejemplo para el caso de una tabla que posee mucha informacin redundante, con pocos atributos Ing. Jonathan Carrillo - Octubre 2013 Ttulo_Libro Fecha_Prestamo Socio T1 FT S1 T2 FU S2 T3 FV S1 T4 FG S4 T1 FH S3 T2 FT S4 T3 FV S3 Biblioteca NORMALIZADO 5NF Titulo_Fecha Ttulo_Libro Fecha_Prestamo Ttulo_Libro Socio T1 FT T1 S1 T2 FU T2 S2 T3 FV T3 S1 T4 FG T4 S4 T1 FH T1 S3 T2 FT T2 S4 T3 FV T3 S3 Ttulo_Socio Fecha Socio FT S1 FU S2 FV S1 FG S4 FH S3 FT S4 FV S3 Fecha_Socio Proceso del Diseo e implementacin de una Bases de Datos 9. Conclusin Ing. Jonathan Carrillo - Octubre 2013 La normalizacin es un enfoque de diseo que minimiza la redundancia de datos, protege la integridad y optimiza las estructuras de datos; por lo general, una normalizacin razonable permite mejorar el rendimiento