Universidad FRANCISCO DE VITORIA Vince in Bono Malum Diseño de Bases de Datos El Modelo Entidad Relación El Modelo Relacional Diseño de Bases de Datos Base de Datos : recopilación de información relacionada con un tema o con un propósito en particular. Ejemplos de Bases de Datos : Base de Datos Académica del C.U.F.Vi., Base de Datos de contribuyentes del M.E.H., Base de Datos de imágenes de las sondas espaciales, etc. Diseño de Bases de Datos Un Sistema de Gestión de Bases de Datos (SGBD) es un conjunto de herramientas que proporcionan una estructura eficiente de almacenamiento y recuperación de la información que contienen las Bases de Datos. Ejemplos de SGBD : Oracle, Informix, DB2, MS-Access, SQL-server, etc. Arquitectura de tres niveles Conceptual : Representación de los datos tal y como se perciben de forma abstracta. Normalmente se formaliza según el modelo entidad-relación, sin ninguna restricción semántica o funcional. Arquitectura de tres niveles Lógico : El modelo Conceptual se traduce a un modelo de organización concreto. De los tres más comunes, jerárquico, red y relacional, modernamente se usa mayoritariamente el relacional. Arquitectura de tres niveles Físico : Implantación en un SGBD y en un entorno hardware concreto del modelo Lógico. El Modelo ER El modelo Entidad-Relación (ER) representa a nivel conceptual los datos de una organización o sistema, sin ninguna restricción semántica o funcional, de forma standard para que el modelo diseñado pueda ser comprendido por el mayor número de personas. El diseño que se obtenga se plasmará de forma gráfica para facilitar su comprensión. El Modelo ER Entidad : Objeto acerca del que se recoge información. Ejemplos : Empleado, Equipo, Medicamento, Pedido, etc. EMPLEADO El Modelo ER EMPLEADO DNI NOMBRE SUELDO EDAD Atributo : Propiedad de una Entidad. Ejemplos : DNI, nombre, sueldo, edad, etc. El Modelo ER Valor : Ocurrencia concreta de un atributo. Por ejemplo : Pedro Pérez puede ser un valor del atributo nombre de la entidad Empleado. Ocurrencia de Entidad : Conjunto de valores que toman los distintos atributos de una entidad. Por ejemplo, de la entidad empleado : DNI : 237892, Nombre : Pedro Pérez, Edad : 32, etc. El Modelo ER Clave, EMPLEADO DNI NOMBRE SUELDO EDAD o Clave Primaria : Atributo o conjunto de atributos que identifica unívocamente una entidad. El Modelo ER Relación : Asociación lógica entre dos entidades. Por ejemplo : relación "trabaja en" entre las entidades Empleado y Empresa. Atributo de una Relación : Propiedad de una relación. El Modelo ER Ocurrencia de Relación : Asociación entre dos ocurrencias de entidad con valores concretos para los atributos de relación. Ejemplo : Brazo de Gitano - está compuesto por - Azucar con cantidad = 300 grs. El Modelo ER Cardinalidad : Propiedad de una relación que indica el número de ocurrencias que relacionamos de ambas entidades.Puede ser : -1:1 -1:N El Modelo ER PASTEL INGREDIENTE NUMERO NOMBRE UNIDADES PRECIO NUMERO NOMBRE UNIDADES PRECIO COMPUESTO CANTIDAD N:N El Modelo ER Relación Recursiva: Asociación de una entidad consigo mísma. PIEZA COMPUESTA El Modelo ER Relación Multi-entidad EMPRESA TRABAJA CON CONSUME PROVEEDOR PIEZA SUMINISTRA EMPRESA SUMINISTRA PIEZA PROVEEDOR Validación del Modelo ER Todas las Entidades son reconocidas por los usuarios Todas las Entidades poseen una clave Ningún atributo se deriva de otros por cálculo o composición No hay atributos repetidos, incluso en distintas entidades Todas las Relaciones son reconocidas por los usuarios Los atributos de una relación sólo tienen sentido cuando ésta ocurre Validación del Modelo ER Posibles problemas derivados de un diseño inadecuado (I) : –Imposibilidad de almacenar datos o relaciones –Ambigüedades –Redundancias que producen incoherencias Validación del Modelo ER Posibles problemas derivados de un diseño inadecuado (II) : –Pérdida de dependencias funcionales –Estados de la Base de Datos inadmisibles en el mundo real –Necesidad de valores nulos o falsos para representar determinadas situaciones Las Formas Normales Son una formalización del diseño que permite su mecanización. Se utilizan para detectar errores y en su caso corregir el diseño. Las Formas Normales Primera Forma Normal (1FN) : Todos los atributos de entidades y relaciones son unitarios, no existen grupos repetitivos. Las Formas Normales 1FN EMPLEADO DNI NOMBRE SUELDO FECHA_ NAC HIJO 1 HIJO 2 ........... HIJO 10 EMPLEADO DNI NOMBRE SUELDO FECHA_ NAC HIJO PADRE DE CLAVE NOMBRE FECHA_ NAC Las Formas Normales Segunda Forma Normal (2FN) : Cada atributo no clave de una entidad depende funcionalmente de toda la clave Las Formas Normales 2FN LINEA DE PEDIDO LINEA DE PEDIDO ID_PEDIDO ARTICULO CANTIDAD PRECIO_ UNITARIO ID PEDIDO ARTICULO CANTIDAD ARTICULO CONTIENE ARTICULO PRECIO_ UNITARIO Las Formas Normales Tercera Forma Normal (3FN) : Cada atributo no clave sólo depende de la clave (no existen dependencias transitivas) Las Formas Normales 3FN ORDENADOR ORDENADOR ID ORDENADOR CPU MONITOR IMPRESORA TIPO IMPRESORA ORDENADOR ID ORDENADOR CPU MONITOR IMPRESORA IMPRESORA IMPRESORA TIPO IMPRESORA Diseño de Bases de Datos Procedimiento de Diseño : Modelo Conceptual Toma de Datos con el Usuario Identificar Entidades y Relaciones Modelo Entidad-Relación Validación Normalización Traducción a Modelo Lógico Usuario El Modelo Relacional El Modelo Relacional representa a nivel Lógico los datos de una organización o sistema, con las restricciones semánticas y funcionales propias de esta organización de Bases de Datos. El Modelo Relacional EMPLEADO Tabla : Implementación a nivel Lógico de una Entidad Colección de Datos con el mismo contenido o tema Tablas Tablas Clave principal : Campo o conjunto de campos que identifican unívocamente un registro Clave ajena : Clave principal de otra tabla que se incluye para relacionar las tablas Indice : Campo no clave por el que se realizan búquedas frecuentes Paso del Modelo ER a Relacional Entidades se transforman en tablas EMPLEADO DNI NOMBRE SUELDO EDAD (DNI, NOMBRE,SUELDO,EDAD) Paso del Modelo ER a Relacional EQUIPO ENTRENADOR CODIGO NOMBRE ESTADIO DNI NOMBRE DOMICILIO ENTRENA (CODIGO,NOMBRE,ESTADIO,DNI) CLAVE AJENA 1:1 (DNI,NOMBRE,DOMICILIO) CLAVE AJENA SIN DUPLICADOS Paso del Modelo ER a Relacional EQUIPO JUGADOR CODIGO NOMBRE ESTADIO DNI NOMBRE FECHA_NAC MILITA (CODIGO,NOMBRE,ESTADIO) CLAVE AJENA 1:N (DNI,NOMBRE,FECHA_NAC,CODIGO) CLAVE AJENA CON DUPLICADOS Paso del Modelo ER a Relacional ALUMNO ASIGNATURA CODIGO NOMBRE CREDITOS DNI NOMBRE FECHA_NAC ESTUDIA N:N ASIGNATURA ALUMNO CODIGO NOMBRE CREDITOS 1:N DNI NOMBRE FECHA_NAC 1:N MATRÍCULA CODIGO DNI Paso del Modelo ER a Relacional ASIGNATURA ALUMNO CODIGO NOMBRE CREDITOS (CODIGO,NOMBRE,CREDITOS) DNI NOMBRE FECHA_NAC (CODIGO,DNI) 1:N 1:N (DNI,NOMBRE,FECHA_NAC) MATRÍCULA CODIGO DNI CLAVES AJENAS CON DUPLICADOS