P. UNIVERSIDAD CATÓLICA DE VALPARAÍSO FACULTAD DE INGENIERÍA ESCUELA DE INFORMÁTICA Base de Datos Usuario A Programa de Aplicación Bodega Usuario B • • • Usuario N • • • Insumo Proveedor Profesores: Franklin Johnson P. José Miguel Rubio L. Índice de Contenidos Introducción a las Bases de Datos El Recurso Dato Dato v/s Información Historia de las Bases de Datos Componentes de un ambiente de Base de Datos Beneficios & Riesgos del uso de Base de Datos Sistema de archivos v/s Bases de Datos Bases de Datos y Desarrollo de Sistemas de Información Base de Datos 2 Índice de Contenidos Sistemas de Gestión de Base de Datos Conceptos Principales funciones Ventajas de utilizar SGBD Consideraciones del uso de un SGB Base de Datos 3 Índice de Contenidos Modelamiento de una Base de Datos Modelo Conceptual: Entidad Relación Asociaciones entre entidades, Cardinalidad de Asociaciones Claves candidatas y claves primarias, Atributos multivaluados Reglas del Negocio Modelo Lógico: Relacional Modelo Lógico Transformación de entidades y relaciones Proceso de Normalización de Relaciones Análisis de vistas Base de Datos 4 Del MER al Modelo Relacional 1 2 Transformación de entidades (MER) Transformación de asociaciones(MER) Identificación de Vistas Especificación de relaciones Normalización Normalización Mezcla de Relaciones Mezcla de Relaciones Base de Datos 5 Del MER al Modelo Relacional 3 a) Método 1 b) Método 2 c) Base de Datos Método 1 + Método 2 6 Esquema de las Etapas del Modelo Lógico Modelo Conceptual Transformación de entidades Transformación de asociaciones Diseño Lógico de la BD Normalización Modelo Relacional Base de Datos Mezcla de Relaciones 7 Esquema de las Etapas del Modelo Lógico 3. Normalización: Las relaciones creadas anteriormente en los pasos 1) y 2) pueden tener redundancia innecesaria y pueden generar anomalías lo que hace necesaria la normalización. 4. Mezcla de Relaciones: En muchos casos las relaciones creadas anteriormente se refieren a la misma entidad, en esos casos podían mezclarse para obtener una única relación. Uno de los pasos más importantes es la “Normalización”. Base de Datos 8 Transformación de MER a Relacional Mezcla de Relaciones: Para evitar que existen relaciones que tengan las mismas claves primarias.(Revisar contexto) R1 (Rol alumno, dirección, nombre, teléfono) R2 (Rol alumno, carrera, curso, nombre) R3 (Rol alumno, nivel socio-económico, nombre, carrera, factor) Mezcla: R (Rol alumno, dirección, nombre, teléfono, carrera, curso, nivel socio-económico, factor) Base de Datos 9 Diseño Lógico: Normalización La normalización es el proceso que convierte complejas estructuras de datos en estructuras simples y estables. Base de Datos 10 Transformación de Vista de Usuario Entidades MER 1. Diseño Lógico: Normalización Entidad No Normalizada Eliminar grupos repetitivos 2. Entidades Normalizadas Primera forma normal Eliminar dependencias parciales 3. Entidades en Segunda forma normal Eliminar dependencias transitivas 4. Entidades en Tercera forma normal Relaciones en 3FN Remover dependencias de Boyce Cood Base de Datos de Relaciones FNBC Conjunto 11 Normalización 1. Dependencia Parcial: 1 FN Parte de la clave determina un no clave La relación debe tener clave primaria compuesta. Se define cuando parte de la clave primaria determina por si sola 1 o más atributos de la relación. R1 (K1 K2 a1 a2 a3) K2 a3 Base de Datos 12 Normalización 2. Dependencia Transitiva: 2 FN Un campo no clave determina un no clave Se representa cuando un atributo no clave determina un atributo no clave. R (K1, a1, a2, a3) K1 a1, a2, a3 Base de Datos 13 Normalización 3. Dependencia Funcional: 3FN Campo clave determina un no clave Es una asociación entre dos atributos que se define como: “Para una relación R, el atributo B es funcionalmente dependiente del atributo A, si para cada instancia de A, el valor de A determina en forma única al valor de B”. Esto se escribe: A -> B y se lee: “A determina a B” o “B es funcionalmente dependiente de A” Determinante Son aquellos atributos que determinan a otro, es decir, a través de ellos se puede obtener el otro inequívocamente. Son los atributos del lado izquierdo de la flecha de dependencias funcionales. Base de Datos 14 Normalización 3. Dependencia Funcional: 3FN Los atributos dependen exclusivamente de la clave primaria. La normalización está basada en el análisis de las dependencias funcionales. Una dependencia funcional entre dos atributos A y B es cuando el atributo B es funcionalmente dependiente del atributo A, para toda ocurrencia de A. R (K1, K2, a1 a2 a3) K1 K2 a1, a2, a3 R (K1, a1, a2) K1 a1, a2 El atributo del lado izquierdo (clave) es llamado Determinante Base de Datos 15 Pasos para la Normalización 1. Eliminar Grupos Repetitivos Elementos o conjunto de atributos que pueden repetirse en una relación 2. Eliminar Dependencia Parcial: 1 FN Parte de la clave determina un no clave 3. Eliminar Dependencia Transitiva: 2 FN Un campo no clave determina un no clave Base de Datos 16 Pasos para la Normalización 1. Eliminar Grupos Repetitivos Para eliminar los grupos repetitivos se deben generar dos relaciones: Una que contenga como clave primaria, la clave de la relación original, y como atributos aquellos campos que no tienen grupos repetitivos. La segunda relación se formará de una clave compuesta, formada por la clave de la relación original y la clave del grupo repetitivo, y como atributos todos los campos que conforman el grupo repetitivo. Base de Datos 17 ?? Pasos para la Normalización 2. Eliminar Dependencia Parcial: 1 FN Se formarán dos nuevas relaciones: La primera tendrá la clave compuesta y como atributos aquellos campos que dependan exclusivamente de ella (clave compuesta). La segunda formará una relación cuya clave primaria es la parte de la clave compuesta que genera la dependencia parcial y como atributos los campos que dependan de ella ?? Base de Datos 18 Pasos para la Normalización 3. Eliminar Dependencia Transitiva: 2 FN Al eliminar esta dependencia se generan las siguientes relaciones: Una relación cuya clave primaria corresponde al campo que genera la dependencia transitiva y como atributos los campos que son determinadas por ella. Y la segunda relación se genera con clave primaria de la relación en 2FN, y como atributos aquellos que dependan funcionalmente de ella (el atributo que genera la dependencia transitiva se conoce como clave foránea) Base de Datos 19 ?? Del MER al Modelo Relacional 1 2 Transformación de entidades Transformación de asociaciones Identificación de Vistas Especificación de relaciones Normalización Normalización Mezcla de Relaciones Mezcla de Relaciones Base de Datos 20 Modelo Relacional a partir de las Vistas 1. Especificar la vista como una relación 2. Normalizar la relación obtenida, hasta llegar a 3 FN 3. Cada relación en 3FN se transforma en una tabla del modelo relacional Lo ideal es complementar este método con alguno anterior, para incorporar cualquier detalle que no se encuentre en el MER, y afinar otros aspectos donde corresponda. Base de Datos 21 Modelo Relacional a partir de las Vistas 1. Especificar la vista como una relación 2. Normalizar la relación obtenida, hasta llegar a 3 FN 3. Cada relación en 3FN se transforma en una tabla del modelo relacional Lo ideal es complementar este método con alguno anterior, para incorporar cualquier detalle que no se encuentre en el MER, y afinar otros aspectos donde corresponda. ?? Base de Datos 22 Normalización: Ejemplo Integración de Vistas Hospital Dr. Santana RUT: 89.900.120-K Los Leones 180 Fono: 56-2-6677889 Santiago-Chile FACTURA NOMBRE PACIENTE: DIRECCIÓN: COD-ITEM #PACIENTE: FONO: NOMBRE ITEM VALOR SUBTOTAL %IMPUESTO ?? TOTAL Base de Datos 23 Normalización: Ejemplo Hospital Dr. Santana RUT: 89.900.120-K Los Leones 180 Fono: 56-2-6677889 Santiago-Chile #CAMA #PIEZA Informe Utilización Camas FECHA: __/__/__ TIPO FECHA ALTA #PACIENTE NOMBRE PACIENTE CAMA ESPERADA ?? Base de Datos 24 Normalización: Ejemplo #Paciente: Nombre Paciente: Dirección Paciente: Fono Paciente: Fecha Admisión: Fecha Alta: Ubicación: Citófono: ISAPRE: ?? Base de Datos 25 Normalización: Ejemplo Hospital Dr. Santana RUT: 89.900.120-K Los Leones 180 Fono: 56-2-6677889 Santiago-Chile FECHA: __/__/__ Informe Médicos #Médico: Nombre: Dirección: Teléfono: Especialidad: #PACIENTE NOMBRE PACIENTE UBICACIÓN #CAMA #PIEZA DIAGNÓSTICO ?? Base de Datos 26 Siguientes Formas Normales Eliminar anomalías resultantes Entidades en Boyce Codd FN Eliminar dependencias multivaluadas ••• Base de Datos Entidades en 4FN 27 Normalización 4. Boyce/Codd Forma Normal (B/C FN) Corresponde a una 3FN pero con poco más estricta: Una relación que está en FNBC está en 3FN, pero… Una relación en 3FN no está necesariamente en FNBC Es una situación poco común, pero puede ocurrir. Boyce y Codd propone para eliminar esa anomalía: “Una Relación R está en BC FN, si y sólo si cada determinante es clave candidata” Base de Datos 28 Normalización 4. Boyce/Codd Forma Normal (B/C FN) Se utiliza principalmente para reducir la redundancia innecesaria de ciertos campos, en casos como: CASO 1: Parte de la clave determina un clave, cuando una entidad tiene una clave compuesta, es posible que aún existan anomalías en 3FN (“overlapping de claves”). CASO 2: Para incorporar algunas restricciones adicionales a una situación específica, que puede llevar a redundancia innecesaria Base de Datos 29 Normalización 4. Boyce/Codd Forma Normal (B/C FN) Ejemplo B/C FN (caso 1) 1.- Cada alumno puede tener varias materias de interés. 2.- Por cada materia, un alumno tiene sólo un tutor. 3.- Cada materia tiene varios tutores. 4.- Cada tutor orienta sólo en una materia. 5.- Cada tutor orienta a varios estudiantes en una materia. TUTORÍAS (Nro-Alumno, Materia, Tutor) Base de Datos 30 Normalización 4. Boyce/Codd Forma Normal (B/C FN) Ejemplo B/C FN Nro-Alumno Base de Datos Mat eria Tut or 123 Física Einst ein 123 Música Mozart 456 Biología Darwin 78 9 Física Bohr 999 Física Einst ein 31 Normalización 4. Boyce/Codd Forma Normal (B/C FN) Ejemplo B/C FN Nro-Alumno Base de Datos Tut or 123 Einst ein 123 Mozart 456 Darwin 78 9 Bohr 999 Einst ein 32 Normalización 4. Boyce/Codd Forma Normal (B/C FN) Ejemplo B/C FN Tut or Materia Einst ein Física Mozart Música Darwin Biología Bohr Física Base de Datos 33 Normalización 4. Boyce/Codd Forma Normal (B/C FN) Ejemplo B/C FN Nro Alumno, Tutor Base de Datos Tutor, Materia 34 Normalización 5. 4ta Forma Normal Cuando una entidad está en B/C FN, puede tener anomalías con respecto a las dependencias multivaluadas (DM). Una DM existe cuando hay al menos tres atributos (A, B, C) en una relación R, y para cada valor de A existe un conjunto de valores de B y de C definidos, pero independientes entre sí Base de Datos 35 Normalización 5. 4ta Forma Normal Ejemplo 4 FN 1. Cada curso puede tener varios instructores. 2. Cada curso utiliza varios textos. 3. El texto utilizado para un cierto curso es independiente del instructor. CURSOS (Nom-Curso, Instructor, Libro) Base de Datos 36 Normalización 5. 4ta Forma Normal Ejemplo 4 FN NOM-CURSO INSTRUCTOR LIBRO Administ ración Whit e Green Black Drucker Pet ers Finanzas West on Gilf ord Base de Datos Gray 37 Normalización 5. 4ta Forma Normal Ejemplo 4 FN NOM-CURSO INSTRUCTOR LIBRO Administ ración Whit e Drucker Administ ración Whit e Pet er s Administ ración Green Drucker Administ ración Green Pet er s Administ ración Black Drucker Administ ración Black Pet er s Finanzas Gray West on Finanzas Gray Giford Base de Datos 38 Normalización 5. 4ta Forma Normal Ejemplo 4 FN CURSO INSTRUCTOR Administ ración Whit e Administ ración Green Administ ración Black Finanzas Gray Base de Datos 39 Normalización 5. 4ta Forma Normal Ejemplo 4 FN CURSO LIBRO Administ ración Administ ración Drucker Pet ers Finanzas West on Finanzas Gilford Base de Datos 40 Normalización 5. 4ta Forma Normal Ejemplo 4 FN Curso Curso, Instructor Curso, Libro Instructor Libro Base de Datos 41 ERROR: syntaxerror OFFENDING COMMAND: --nostringval-STACK: /Title () /Subject (D:20080617185702-04’00’) /ModDate () /Keywords (PDFCreator Version 0.9.5) /Creator (D:20080617185702-04’00’) /CreationDate (usuario) /Author -mark-