Capı́tulo 2: Diseño de Bases de Datos Dr. José Torres Jiménez Laboratorio de Tecnologı́as de Información Centro de Investigación y de Estudios Avanzados del IPN Cinvestav-Tamaulipas Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 1 / 101 Fases del Diseño de Bases de Datos Outline 1 Fases del Diseño de Bases de Datos Análisis de Requerimientos Diseño Conceptual Diseño Lógico Diseño Fı́sico Ejemplo de Diseño de una Base de Datos 2 El Modelo Entidad - Relación Ejemplos 3 El Modelo ELKA Diseño de Bases de Datos Modelos ELKA Manejando Relaciones Recursivas Procesos Concurrentes 4 ER a ELKA Transformación de Entidades Transformación de Relaciones Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 2 / 101 Fases del Diseño de Bases de Datos Fases del Diseño de Bases de Datos Es una practica estándar el dividir el diseño de bases de datos en las siguiente fases: Análisis de Requerimientos Diseño Conceptual Diseño Lógico Diseño Fı́sico Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 3 / 101 Fases del Diseño de Bases de Datos Análisis de Requerimientos DiseñoConceptual Entidad ( Relacional) Diseño Lógico (Modelo ELKA Normalización Diseño Físico (Almacenamiento y Acceso) Figura 1: Fases de Diseño de Bases de Datos Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 4 / 101 Fases del Diseño de Bases de Datos Análisis de Requerimientos Análisis de Requerimientos La fase de análisis de requerimientos produce una descripción operacional de la base de datos. Su objetivo es asegurar que la base de datos contenga los datos necesarios para las funciones y aplicaciones donde se usará la base de datos. Esta fase es realizada normalmente por los diseñadores de bases de datos a través de entrevistas con los usuarios del sistema que será realizado. En este sentido se dice que esta fase es una fase de: Adquisición de Conocimiento. La salida de esta fase (valga la redundancia) son los requerimientos del sistema. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 5 / 101 Fases del Diseño de Bases de Datos Diseño Conceptual Diseño Conceptual La fase de Diseño Conceptual se alimenta del Análisis de Requerimientos y produce un diseño que trata de reflejar como son los datos. Es una práctica común que estas dos primeras fases sean hechas de manera participativa y a través de refinamientos sucesivos a través de la interacción de los diseñadores y los usuarios del sistema. El diseño conceptual trata de crear un Modelo Parcial del Universo donde se trata de capturar lo suficiente para poder soportar todas las funciones a las que servirá el sistema final. El resultado final de esta fase es un Esquema de la Base de Datos. No necesariamente este esquema puede ser implementado directamente en algún manejador de base de datos. Dentro de esta fase es común el uso del modelo Entidad - Relación. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 6 / 101 Fases del Diseño de Bases de Datos Diseño Lógico Diseño Lógico Tomando el esquema de la base de datos de la fase de Diseño Conceptual, esta fase produce un diseño que se acerca más a la implementación en un Sistema Manejador de Base de Datos. En esencia esta fase transforma el modelo Entidad - Relación en tablas que podrán ser implementadas en un sistema manejador de base de datos particular. El modelo de datos que usaremos para esta etapa es el modelo ELKA(Entity Link Key Attribute). Una vez que el modelo Entidad - Relación es transformado a tablas y produce el modelo ELKA, se eliminan ciertas anomalı́as, debidas principalmente a la redundancia, el proceso a través del cuál se da esto se conoce como NORMALIZACIÓN. Es importante comentar que el proceso de NORMALIZACIÓN es un Medio y no un Fin. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 7 / 101 Fases del Diseño de Bases de Datos Diseño Fı́sico Diseño Fı́sico Una vez que tenemos las tablas resultantes del Diseño Lógico es importante el decidir tanto la estructura de almacenamiento y las estrategias de acceso. La estructura de almacenamiento se refiere a como almacenar los datos, y la estrategia de acceso se refiere a como llegar a los datos. Algunos ejemplos de estructuras de almacenamiento son: Archivos Planos, Archivos Comprimidos, Archivos Codificados, Formatos Especı́ficos (DBF, DAT, DBM, etc.). Las estrategias de acceso pueden ser: Acceso Secuencial, Acceso Binario, Acceso Heap, Acceso usando Btrees, etc. Cada vez es más común que los sistemas manejadores de base de datos tengan ya predefinida la estructura de almacenamiento y como estrategia de acceso tengan solo dos: Acceso Secuencial y Acceso usando B-Trees. Entonces esta etapa se reduce en términos simples a la selección de los INDICES para acelerar el acceso. En ocasiones por eficiencia es posible que en esta fase del proceso se realice una DESNORMALIZACIÓN, es decir aceptar una Forma Normal de Menor Nivel que a la que se puede llegar, recuérdese que la NORMALIZACIÓN es un medio y no un fin. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 8 / 101 Fases del Diseño de Bases de Datos Ejemplo de Diseño de una Base de Datos Ejemplo de Diseño de una Base de Datos Suponga que es deseado en el departamento de capacitación de una empresa el llevar el control de los cursos de capacitación y de la capacitación de cada empleado. Análisis de Requerimientos y Diseño Conceptual En estas dos fases es fundamental el poder identificar en base a las necesidades del sistema las entidades de interés y sus relaciones. En base a las entrevistas realizadas se plantea que es necesario el poder realizar la planeación de cursos y llevar el control de los cursos que ha tomado cada empleado. Los atributos de interés que se han identificados se ilustran en la figura 2. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 9 / 101 Fases del Diseño de Bases de Datos Ejemplo de Diseño de una Base de Datos EMPLEADO #Empleado Nombre Dirección Departamentoalquepertenece Salario CURSO #Curso NombredelCurso Figura 2: Atributos de Interés de Empleados y Cursos Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 10 / 101 Fases del Diseño de Bases de Datos Ejemplo de Diseño de una Base de Datos Con esto podemos llevar el control de los empleados y cursos, pero no de la relación entre ellos, de este modo es necesario el crear una relación que indique que cursos ha tomado cada empleado y que empleados han tomado que curso. En este sentido es necesario adicionalmente el poder identificar que tipo de relación hay: ¿Un empleado sólo puede tomar un curso? ¿Un curso sólo puede ser tomado por un empleado? ¿Un curso puede ser tomado por varios empleados? ¿Un empleado puede tomar varios cursos? Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 11 / 101 Fases del Diseño de Bases de Datos Ejemplo de Diseño de una Base de Datos De acuerdo a lo analizado (que reflejarı́a las reglas del negocio particular) se determino que un empleado puede tomar varios cursos y un curso puede ser tomado por varios empleados. Entonces surge el modelo Entidad Relación ilustrado en la figura 3. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 12 / 101 Fases del Diseño de Bases de Datos Ejemplo de Diseño de una Base de Datos #Empleado Departamento NombreEmpleado EMPLEADO Departamento Dirección INSCRITO NombreCurso CURSO #Curso Figura 3: Modelo Entidad - Relación de la Base de Datos de Empleados y Cursos Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 13 / 101 Fases del Diseño de Bases de Datos Ejemplo de Diseño de una Base de Datos Diseño Lógico En esta fase tomando el modelo entidad - relación debemos producir el modelo ELKA correspondiente. En la Figura 4 se ilustra el modelo ELKA resultante. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 14 / 101 Fases del Diseño de Bases de Datos Ejemplo de Diseño de una Base de Datos #Empleado, NombreEmpleado, Dirección , Departamento #Curso,NombreCurso EMPLEADO CURSO #Empleado, #Curso INSCRITO Figura 4: Modelo ELKA de la base de datos de Empleados y Cursos Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 15 / 101 Fases del Diseño de Bases de Datos Ejemplo de Diseño de una Base de Datos El proceso de Normalización involucra (por lo general) el particionar las tablas del modelo ELKA en tablas NORMALIZADAS donde se ha reducido o eliminado la redundancia. Por ejemplo, si todos los empleados del mismo departamento tuvieran el mismo Salario, entonces podrı́amos particionar la tabla de Empleado en dos según se ilustra en la figura 5. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 16 / 101 Fases del Diseño de Bases de Datos Ejemplo de Diseño de una Base de Datos #Empleado, NombreEmpleado, Dirección, Departamento #Curso,NombreCurso EMPLEADO CURSO Departamento,Salario #Empleado, #Curso DEPARTAMENTO INSCRITO Figura 5: Modelo ELKA de la base de datos de Empleados y Cursos Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 17 / 101 Fases del Diseño de Bases de Datos Ejemplo de Diseño de una Base de Datos Diseño Fı́sico Tomando como base el modelo ELKA normalizado se procede a realizar el diseño fı́sico de la base de datos. Asumiendo que (normalmente) no se tiene la opción de seleccionar la estructura de almacenamiento, esta etapa se refiere solo a la asignación de los tipos de datos especı́ficos de cada campo y a la definición de los ı́ndices(B-Trees). Como regla general debe haber un ı́ndice por cada llave de cada tabla, pero adicionalmente se deberı́an de diseñar ı́ndices para optimizar las consultas o reportes que son más frecuentes. También es importante el considerar que dependiendo de la frecuencia de uso, el tamaño de las bases de datos, el tamaño de los ı́ndices, el costo de actualizar los ı́ndices, etc. algunos ı́ndices se designan como temporales y otros como permanentes. Para nuestro caso el resultado final esta ilustrado en las tablas 1 y 2 Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 18 / 101 Fases del Diseño de Bases de Datos Nombre De Campo #Empleado NombreEmpleado Dirección Departamento #Curso NombreCurso Salario Ejemplo de Diseño de una Base de Datos Tipo de Campo Numérico 6 dı́gitos Carácter 35 posiciones Carácter 40 posiciones Carácter 20 posiciones Numérico 6 dı́gitos Carácter 35 posiciones Numérico 6 dı́gitos enteros 2 decimales Cuadro 1: Definición de Campos de la Base de Datos de Empleados y Cursos Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 19 / 101 Fases del Diseño de Bases de Datos Indice EMPX CURSOX DEPX INSCX INSCX Ejemplo de Diseño de una Base de Datos Tabla EMPLEADO CURSO DEPARTAMENTO INSCRITO INSCRITO Campo #Empleado #Curso Departamento #Empleado #Curso Cuadro 2: Definición de Campos de la Base de Datos de Empleados y Cursos Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 20 / 101 Fases del Diseño de Bases de Datos Ejemplo de Diseño de una Base de Datos Para poder soportar la obligatoriedad de algunas relaciones es necesario crear adicionalmente reglas de integridad que pueden ser soportadas directamente por el sistema manejador de base de datos o se tienen que programar. Dentro de este aspecto es importante considerar todas las reglas de integridad (que aún sin estar capturadas en los modelos Entidad - Relación o el ELKA) garantizaráan que la base de datos conserve su INTEGRIDAD. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 21 / 101 El Modelo Entidad - Relación Outline 1 Fases del Diseño de Bases de Datos Análisis de Requerimientos Diseño Conceptual Diseño Lógico Diseño Fı́sico Ejemplo de Diseño de una Base de Datos 2 El Modelo Entidad - Relación Ejemplos 3 El Modelo ELKA Diseño de Bases de Datos Modelos ELKA Manejando Relaciones Recursivas Procesos Concurrentes 4 ER a ELKA Transformación de Entidades Transformación de Relaciones Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 22 / 101 El Modelo Entidad - Relación Un modelo de datos trata de capturar la organización lógica de los datos, adicionalmente en ocasiones es posible capturar en él algunas reglas de integridad y facilitar la ejecución de consultas. El modelado de datos semántico que usaremos será el de Entidad Relación, una Entidad es cualquier cosa de la cuál deseamos llevar información, una Relación representa la manera en la cuál diferentes entidades(aunque puede ser la misma). Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 23 / 101 El Modelo Entidad - Relación Los tres componentes de un diagrama Entidad Relación son: Entidades. Representados como rectángulos con el nombre de la entidad dentro(el nombre es en singular). Relaciones. Representados como rombos, con el nombre de la relación dentro. Que reflejan la manera en que se relacionan las entidades. Atributos. Representados como Ovalos con el nombre del atributo dentro. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 24 / 101 El Modelo Entidad - Relación Adicionalmente es importante saber que: Los atributos se unen a las entidades a través de lı́neas. Las entidades se unen a las relaciones a través de lı́neas con las interpretaciones dadas en la tabla 6. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 25 / 101 El Modelo Entidad - Relación REPRESENTACIÓN INTERPRETACIÓN Relación1 -Obligatoria Relación1 - NoObligatoria RelaciónN -Obligatoria RelaciónN - NoObligatoria Figura 6: Diferentes conectores de los enlaces que conectan entidades. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 26 / 101 El Modelo Entidad - Relación De esta manera si tenemos que dos entidades están conectadas a través de una relación tendremos un total de 16 posibles combinaciones. Cuando una relación conecta tres entidades tendremos 64 posibles combinaciones de terminaciones, etc. Por otro lado existen tres tipos de Relaciones según se indica en las figuras 7, 8 y 9.La relación isa indica que una entidad es un subconjunto de otra, esto implica que ambas tienen la misma llave. La relación id implica que una de las entidades tiene adicionalmente otros campos como llave. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 27 / 101 El Modelo Entidad - Relación Figura 7: Representación de una relación normal isa Figura 8: Representación de una relación isa id Figura 9: Representación de una relación id Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 28 / 101 El Modelo Entidad - Relación Ejemplos Asignación de Salones El problema de asignación de salones puede ser planteado de manera muy simplificada como la planeación en tiempo y espacio de un conjunto de cursos , es decir, se tiene que definir para cada curso en que salón y a que hora se imparte. En este sentido un posible modelo entidad relación es ilustrado en la figura 10 Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 29 / 101 El Modelo Entidad - Relación Ejemplos Termina Día HORARIO Inicia # Curso Salón NombreCurso CURSO SALÓN SeImparte Figura 10: Modelo Entidad-Relación para el problema de Asignación de Salones Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 30 / 101 El Modelo Entidad - Relación Ejemplos Explosión de Materiales El problema de explosión de materiales que surge en diversas empresas manufactureras, se refiere principalmente a la posibilidad de modelar que una parte está compuesta de varias partes y una parte forma parte de varias partes. Un posible modelo Entidad -Relación es presentado en la figura 11. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 31 / 101 El Modelo Entidad - Relación Ejemplos PARTE COMPOSICIÓN #PARTE Figura 11: Modelo Entidad-Relación de Explosión de Materiales Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 32 / 101 El Modelo Entidad - Relación Ejemplos Departamentos, Empleados y Proyectos Se tiene una empresa en la que los empleados están asignados a departamentos, dentro de la empresa se desarrollan diversos proyectos y en él pueden participar empleados incluso de diferente departamento. Un posible modelo Entidad - Relación es presentado en la figura 12. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 33 / 101 El Modelo Entidad - Relación Ejemplos #Emp #Dep DEPARTAMENTO PERTENECE NombreEmp EMPLEADO NombreDep DESARROLLA #Proy PROYECTO Monto Figura 12: Modelo Entidad-Relación de Departamentos, Empleados y Proyectos Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 34 / 101 El Modelo Entidad - Relación Ejemplos Proyecto, Proveedor y Parte Se sabe que en una empresa se desarrollan proyectos que utilizan partes suministradas por varios proveedores. Adicionalmente se sabe que los pedidos (Proveedor-Parte-Proyecto) son almacenados en diversos almacenes(pero un pedido en un solo almacén). Un posible modelo Entidad - Relación se da en la figura 13. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 35 / 101 El Modelo Entidad - Relación Ejemplos #Proyecto Monto PROYECTO #Proveedor #Parte NombreProveedor PROVEEDOR PEDIDO Capacidad PARTE #Almacén ALMACÉN Figura 13: Modelo Entidad-Relación de Proyecto, proveedor y parte Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 36 / 101 El Modelo Entidad - Relación Ejemplos Empresa Completa #Emp #Dep DEPARTAMENTO NombreEmp EMPLEADO PERTENECE #Parte NombreDep PARTE DESARROLLA PEDIDO PROYECTO #Proveedor PROVEEDOR #Proy NombreProveedor Monto ALMACÉN #Almacén Capacidad Figura 14: Modelo Entidad-Relación de empresa completa Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 37 / 101 El Modelo Entidad - Relación Ejemplos Estado Civil La relación isa es usada para ilustrar el estado civil de empleados en la figura 15 Nombre #Empleado EMPLEADOS isa isa isa isa DIVORCIADOS VIUDOS SOLTEROS CA CB isa CASADOS CC CD UNION LIBRE CE Figura 15: Modelo Entidad-Relación de una base de datos para indicar el estado Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 38 / 101 El Modelo Entidad - Relación Ejemplos Telenovelas El tipo de relación id es ilustrado en una base de datos de telenovelas de acuerdo a la figura 16 Nombre NOVELA Productor id Fecha EPISODIO Número Figura 16: Modelo Entidad-Relación para base de datos de telenovelas Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 39 / 101 El Modelo Entidad - Relación Ejemplos REGLA PARA UNA RELACIÓN isa Y UNA RELACIÓN id. Una relación es isa cuando la entidad que se considera HIJA tiene la misma llave que el PADRE. Una relación es id cuando la entidad que se considera HIJA la llave de la entidad PADRE más otros atributos. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 40 / 101 El Modelo Entidad - Relación Ejemplos Universidad Dentro de una universidad se desea automatizar el proceso de inscripciones, manejo de calificaciones, generación de listas y en general los servicios de control escolar. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 41 / 101 El Modelo Entidad - Relación Ejemplos ALUMNO Matricula (Llave) Nombre Carrera Dirección Tutor PROFESOR RFC (Llave) Nombre Grado Especialidad Salario Dirección Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 42 / 101 El Modelo Entidad - Relación Ejemplos SALON Número (Llave) Ubicación Capacidad MATERIA Clave (Llave) Nombre Descripción PLAN DE ESTUDIOS Carrera (Llave) Materias del plan Nombre Descripción Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 43 / 101 El Modelo Entidad - Relación Ejemplos SEMESTRES ID (Llave) Inicio Fin Anotaciones Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 44 / 101 El Modelo Entidad - Relación Ejemplos Se sabe además que: Un alumno puede no estar inscrito en algún semestre. Un alumno solo puede tener una carrera. Un alumno puede estar tomando cero, una o más materias. Un profesor puede impartir cero, una o más materias (incluso puede tener varios grupos de la misma). En un salón puede haber programadas, cero, una o más materias(pero no a la misma hora). Las materias son abiertas por grupos pudiendo haber cero, uno o más grupos de una materia. Cada materia puede tener o ser prerrequisito o correquisito de cero, una o más materias. Las materias pueden ser comunes a diferentes carreras. Cada materia es evaluada con 3 exámenes parciales y uno final. Siendo la calificación final el promedio de las cuatro calificaciones. Además se lleva registro de faltas. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 45 / 101 El Modelo Entidad - Relación PLANES Ejemplos CONTIENE MATERIAS PERTENECE REQUISITO id SALÓN ALUMNOS HORARIO GRUPO INSCRITO PLANEACIÓN SEMESTRE IMPARTE PROFESSOR Figura 17: Modelo Entidad-Relación de una universidad Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 46 / 101 El Modelo Entidad - Relación Ejemplos Praxis del Diseño de Bases de Datos Uno de los posibles problemas de utilizar el modelo Entidad - Relación como herramienta para el diseño conceptual es que no es implementable directamente en archivos planos, y es necesario realizar la conversión a su equivalente en archivos. Ante esto han surgido algunos paquetes que realizan la conversión automática de diagramas Entidad - Relación a Sistemas Manejadores de Bases de Datos comerciales, uno de estos paquetes es ERWIN que genera código para ORACLE, SYBASE, DB2, etc. Algunos diseñadores al no contar con una forma automatizada de manipular los diagramas Entidad - Relación, han optado por utilizar una forma de modelado más cercana a archivos planos. Una de estas técnicas es el modelo ELKA. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 47 / 101 El Modelo Entidad - Relación Ejemplos Es importante aclarar que una posible opción, serı́a el generar los diagramas Entidad - Relación y después convertirlos a un diagrama ELKA; aunque en la práctica muchos diseñadores generan directamente el diagrama ELKA sin pasar por el diagrama Entidad - Relación. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 48 / 101 El Modelo ELKA Outline 1 Fases del Diseño de Bases de Datos Análisis de Requerimientos Diseño Conceptual Diseño Lógico Diseño Fı́sico Ejemplo de Diseño de una Base de Datos 2 El Modelo Entidad - Relación Ejemplos 3 El Modelo ELKA Diseño de Bases de Datos Modelos ELKA Manejando Relaciones Recursivas Procesos Concurrentes 4 ER a ELKA Transformación de Entidades Transformación de Relaciones Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 49 / 101 El Modelo ELKA Modelo de una Base de Datos Sencilla Supongamos que en el departamento de capacitación de una empresa se desea llevar información de los cursos tomados por cada empleado y de los cursos. Los atributos de interés de los empleados son: #Empleado Nombre Dirección Departamento al que pertenecen Salario Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 50 / 101 El Modelo ELKA Los atributos de interés de cada curso son: #Curso Nombre del Curso. Seguramente usted obtendrı́a el diseño de la figura 18 Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 51 / 101 El Modelo ELKA # Empleado ,Nombre ,Dirección , Departamento ,Salario # Curso ,Nombre EMPLEADOS CURSOS # Empleado, #Curso INSCRITOS Figura 18: Ejemplo de una base de datos simple Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 52 / 101 El Modelo ELKA Diseño de Bases de Datos El diseño de una base de datos es una parte muy importante en el desarrollo de una aplicación. Se han propuesto diferentes metodologı́as para llevar a cabo esta tarea. Una de estas metodologı́as es el uso del MODELO ELKA que será visto a continuación. El modelo ELKA tiene las siguientes componentes clave: E: Entity Entidad L: Link Liga K: Key Llave A: Attribute Atributo Veremos a través de un ejemplo como se emplea esta metodologı́a de diseño. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 53 / 101 El Modelo ELKA Diseño de Bases de Datos Suponga que una compañı́a necesita tener una Base de Datos que contenga la información de las siguientes Entidades: PROVEEDORES, PARTES, PROYECTOS, EMPLEADOS, ALMACENES, DEPARTAMENTOS Los atributos relevantes de cada entidad son los siguientes: PROVEEDORES (Num Prov (llave), Nombre, Status) PROYECTOS (Num Proy (llave), Nombre, Fecha Ini, Fecha Fin) Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 54 / 101 El Modelo ELKA Diseño de Bases de Datos PARTES (Num Par (llave), Nombre, Color) EMPLEADOS (Num Emp (llave),Nombre,Sueldo) ALMACENES (Num Alm (llave), Capacidad) DEPARTAMENTOS (Num Dep (llave), Nombre) Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 55 / 101 El Modelo ELKA Diseño de Bases de Datos Además se sabe que: Un proveedor puede suministrar una o más partes a uno o más proyectos. Un proyecto puede tener asignados uno o más empleados incluso de diferente departamento. Un empleado solo está asignado a un proyecto y solo pertenece a un departamento. Un departamento tiene uno o más empleados. Un almacén puede tener cero, uno o más pedidos de diferentes partes suministrados por diferentes proveedores. Una parte puede ser suministrada en varias cantidades por diferentes proveedores. Un pedido solo puede estar en un almacén. Un proyecto puede tener uno o más pedidos. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 56 / 101 El Modelo ELKA Diseño de Bases de Datos Entidad Una entidad es cualquier objeto del cuál se desean almacenar datos dentro de un base de datos. Enlace Un enlace es la relación o forma en que se relacionan las entidades v.g. Un departamento se relaciona con empleados de forma que un departamento puede tener uno o más empleados. Un empleado se relaciona con departamentos de forma que un empleado solo pertenece a un departamento. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 57 / 101 El Modelo ELKA Diseño de Bases de Datos TIPOS DE ENLACE El modelo ELKA define 4 tipos de Enlaces: 1-a-1 1-a-N DEBIL (Cero, Uno o más) 1-a-N FUERTE (Uno o más) N-a-M Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 58 / 101 El Modelo ELKA Diseño de Bases de Datos LLAVE Es un atributo o atributos que permite identificar unı́vocamente a un elemento de una entidad. ATRIBUTO Es una caracterı́stica de un elemento de una entidad. Un elemento de una entidad es implementada computacionalmente como un registro(también conocido como Tuplo). Un atributo es entonces un campo de un registro. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 59 / 101 El Modelo ELKA Diseño de Bases de Datos Representación de una Entidad ELKA representa una entidad como un rectángulo con un recuadro en la esquina inferior izquierda. En el recuadro se pone el nombre de la entidad. En la parte superior dentro del rectángulo se ponen los nombres de los atributos separados por comas. Los atributos que forman parte de la llave van subrayados (la llave puede ser de un solo atributo). La entidad almacen es ilustrada en la figura 19. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 60 / 101 El Modelo ELKA Diseño de Bases de Datos Num_Alum,Capacidades ALMACENES Figura 19: Representacion de la entidad almacén Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 61 / 101 El Modelo ELKA Diseño de Bases de Datos Representación de Enlaces Enlace 1-a-1 La representación es ilustrada en la figura 20. X, Y, P X, Z, W A B Figura 20: Representación de un enlace de 1 a 1 Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 62 / 101 El Modelo ELKA Diseño de Bases de Datos Esto indica que la entidad A hereda la llave X a la entidad B. Por cada ocurrencia de un tuplo en A existen cero o una ocurrencia del tuplo en B Por cada ocurrencia de un tuplo en B existe una ocurrencia del tuplo en A. De acuerdo al planteamiento anterior, un empleado solo está asignado a un proyecto y a un departamento de forma que tenemos enlaces 1-a-1 según se indica en la figura 21 Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 63 / 101 El Modelo ELKA Diseño de Bases de Datos Num_Dep,Nombre Num_Emp,Nombre,Sueldo Num_Proy,Fecha_Ini, Fecha_Fin DEPARTAMENTO EMPLEADO PROYECTO ? ? Num_Emp,Num_Dep EMP _ DEPTO Num_Emp,Num_Proy EMP _ PROY Figura 21: Ejemplo de enlaces de 1 a 1 Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 64 / 101 El Modelo ELKA Diseño de Bases de Datos Ejmeplo de enlace 1 a N débil Enlace 1-a-N débil La representación es ilustrada en la figura 22. X, Y, P X, Z, W A B Figura 22: Representación de un enlace de 1 a N débil Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 65 / 101 El Modelo ELKA Diseño de Bases de Datos Esto indica que la entidad A hereda la llave X a la entidad B. Por cada ocurrencia de un tuplo en A existen cero, una o más ocurrencias del tuplo en B Por cada ocurrencia de un tuplo en B existe una ocurrencia del tuplo en A. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 66 / 101 El Modelo ELKA Diseño de Bases de Datos Considerando que existe una entidad llamada PEDIDOS que contiene los atributos: Num Prov Num Par Num Proy Cantidad Tenemos que un ALMACEN puede tener cero, uno o más pedidos de diferentes partes suministradas por diferentes proveedores. De esto tenemos una relación 1-a-N DEBIL entre PEDIDOS y ALMACENES como se ilustra en la figura 23 Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 67 / 101 El Modelo ELKA Diseño de Bases de Datos Enlace 1-a-N débil Num_Prov,Nombre, Status Num_Par,Nombre, Color PROVEEDOR PARTE ? Num_Prov, Num_Par, Num_Proy,Cantidad ? ? Num_Proy,Nombre,Fecha_ini, Fecha_fin PROYECTO PEDIDO Num_Prov, Num_Par, Num_Proy,Num_alm PED_ ALM Num_alm,Capacidad ALMACENES Figura 23: Ejemplo de un enlace de 1 a N débil Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 68 / 101 El Modelo ELKA Diseño de Bases de Datos Enlace 1-a-N Fuerte La manera de representar este enlace se indica en la figura 24. X, Y, P X, Z, W A B Figura 24: Representación de un enlace de 1 a N fuerte Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 69 / 101 El Modelo ELKA Diseño de Bases de Datos Esto indica que la entidad A hereda la llave X a la entidad B. Por cada ocurrencia de un tuplo en A existen una o más ocurrencias del tuplo en B. Por cada ocurrencia de un tuplo en B existe una ocurrencia del tuplo en A. De acuerdo a la definición un departamento tiene uno o más empleados y un proyecto tiene uno o mas empleados, según se indica en la figura 25 Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 70 / 101 El Modelo ELKA Diseño de Bases de Datos Enlace 1-a-N Fuerte Num_Dep,Nombre Num_Emp,Nombre,Sueldo Num_Proy,Fecha_Ini, Fecha_Fin DEPARTAMENTO EMPLEADO PROYECTO Num_Emp,Num_Dep Num_Emp,Num_Proy EMP _ DEPTO EMP_ PROY Figura 25: Ejemplo de enlaces de 1 a N fuertes Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 71 / 101 El Modelo ELKA Diseño de Bases de Datos Enlace N-a-M Se representa a través de dos enlaces 1-a-N ya sean fuertes o débiles utilizando una entidad conectora. Los casos se ilustran en las figuras 26, 27,28, y 29. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 72 / 101 El Modelo ELKA Diseño de Bases de Datos X, Y Z, W A B X, Z C Figura 26: Representación de enlace N a M Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 73 / 101 El Modelo ELKA Diseño de Bases de Datos X, Y Z, W A B X, Z C Figura 27: Representación de enlace N a M Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 74 / 101 El Modelo ELKA Diseño de Bases de Datos X, Y Z, W A B X, Z C Figura 28: Representación de enlace N a M Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 75 / 101 El Modelo ELKA Diseño de Bases de Datos X, Y Z, W A B X, Z C Figura 29: Representación de enlace N a M Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 76 / 101 El Modelo ELKA Diseño de Bases de Datos Modelo Elka Final Num_Dep,Nombre Num_Emp,Nombre,Sueldo Num_Proy,Fecha_Ini, Fecha_Fin DEPARTAMENTO EMPLEADO PROYECTO Num_Emp,Num_Dep Num_Emp,Num_Proy EMP _ DEPTO EMP _ PROY Num_Prov,Nombre, Status Num_Par,Nombre,Color PROVEEDOR PARTE Num_Prov, Num_Par, Num_Prov, Cantidad PEDIDO Num_Prov, Num_Par, Num_Proy,Num_alm PED_ ALM Num_Alm,Capacidad ALMACENES Figura 30: Modelo ELKA final Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 77 / 101 El Modelo ELKA Diseño de Bases de Datos Modelo ELKA de una Universidad Dentro de una universidad se desea automatizar el proceso de inscripciones, manejo de calificaciones, generación de listas y en general los servicios de control escolar. De acuerdo a la información recopilada se tienen identificadas las siguientes entidades: ALUMNO Matricula (Llave) Nombre Carrera Dirección Tutor Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 78 / 101 El Modelo ELKA Diseño de Bases de Datos PROFESOR RFC (Llave) Nombre Grado Especialidad Salario Dirección SALON Número (Llave) Ubicación Capacidad MATERIA Clave (Llave) Nombre Descripción Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 79 / 101 El Modelo ELKA Diseño de Bases de Datos PLAN DE ESTUDIOS Carrera (Llave) Materias del plan Nombre Descripción SEMESTRES ID (Llave) Inicio Fin Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 80 / 101 El Modelo ELKA Diseño de Bases de Datos Anotaciones: Un alumno puede no estar inscrito en algún semestre. Un alumno solo puede tener una carrera. Un alumno puede estar tomando cero, una o más materias. Un profesor puede impartir cero, una o mas materias (incluso puede tener varios grupos de una materia). En un salón puede haber programadas, cero, una o más materias(pero no a la misma hora). Las materias son abiertas por grupos pudiendo haber cero, uno o más grupos de una materia. Cada materia puede tener o ser prerrequisito o correquisito de cero, una o más materias. Las materias pueden ser comunes a diferentes carreras. Cada materia es evaluada con 3 exámenes parciales y uno final. Siendo la calificación final el promedio de las cuatro calificaciones. Además se lleva registro de faltas. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 81 / 101 El Modelo ELKA Diseño de Bases de Datos Carr,Nombre,Descrip Clave,Nombre,Descrip CARRERAS MATERIAS Carr, Clave,Semestre Clave, Clave1,Tipo_Req PLANES REQUISITOS Matricula,Nombre, Carr,Direc, Tutor Clave, ID, Num, RFC ID,Inicio, Fin,Anot ALUMNOS GRUPOS SEMESTRE Clave, ID, Num, RFC, Matricula,E1, E2,E3,EF, CF, F1, F2,F3, FF Num,Ubicación,Capacidad RFCNombre,Grado, Esp, Salario LISTAS SALONES PROFESORES Figura 31: Modelo ELKA de una universidad Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 82 / 101 El Modelo ELKA Modelos ELKA Manejando Relaciones Recursivas Explosión de Materiales El problema de explosión de materiales, de forma tal que una parte puede estar compuesta de cero, una o más partes y una parte puede formar parte de cero, una o más partes.En la figura 32 se ilustra este modelo. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 83 / 101 El Modelo ELKA Modelos ELKA Manejando Relaciones Recursivas P#,Nombre, Peso, Color PMAYOR, PMENOR PARTES EXPLOSIÓN Figura 32: Modelo ELKA de explosión de materiales Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 84 / 101 El Modelo ELKA Modelos ELKA Manejando Relaciones Recursivas Requisitos de Materias El problema de requisitos de materias de forma tal que una materia tiene cero, uno o más requisitos y una materia puede ser requisito de cero, una o más materias. Se ilustra en la figura 33. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 85 / 101 El Modelo ELKA Modelos ELKA Manejando Relaciones Recursivas Cve,Nombre,Descrip Cve, Req MATERIAS REQUISITOS Figura 33: Modelo ELKA de requisitos de materias Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 86 / 101 El Modelo ELKA Modelos ELKA Manejando Relaciones Recursivas El problema de un organigrama tradicional en el que un empleado es jefe de cero, uno o más empleados y un empleado tiene cero o un jefe. La figura 34 contiene este modelo. #Emp,Nombre,Sueldo,Profesión Jefe, Subordinado EMPLEADOS ORGANIGRAMA Figura 34: Modelo ELKA de una base de datos de organigramas Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 87 / 101 El Modelo ELKA Modelos ELKA Manejando Relaciones Recursivas Circuitos Secuenciales El problema de una Base de Datos para el manejo de circuitos secuenciales en los que de un estado Ex se va a un estado Ey si la entrada es cero o a un estado Ez si la entrada es un uno. La figura 35 indica un ejemplo de un circuito secuencial y la figura 36 presenta este modelo ELKA. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 88 / 101 El Modelo ELKA Ex Modelos ELKA Manejando Relaciones Recursivas ¦ Ey ¦ Ez Figura 35: Ejemplo de un circuito secuencial Id_Edo,Nombre,Descrip Edo_Actual, Edo_Fut0, Edo_Fut1 ESTADOS CKTO _SEC Figura 36: Modelo ELKA de bases de datos para circuitos secuenciales Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 89 / 101 El Modelo ELKA Modelos ELKA Manejando Relaciones Recursivas Árbol Genealógico El problema de un árbol genealógico en el que una persona tiene padre y madre(aunque deberı́a haber algunos que no, problema del huevo y la gallina) y una persona puede tener cero, uno o más hijos. La figura 37 presenta el modelo ELKA correspondiente. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 90 / 101 El Modelo ELKA Modelos ELKA Manejando Relaciones Recursivas Id_Per,Nombre,Fecha_Nac, Fecha_Muerte,Sexo Padre, Madre, Hijo PERSONAS GENEALOGICO Figura 37: Modelo ELKA de un árbol genealógico Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 91 / 101 El Modelo ELKA Modelos ELKA Manejando Relaciones Recursivas Sistema Experto El problema de un sistema experto en el que se maneja incertidumbre en el que de una regla se pueden disparar tres: Cuando la regla es verdadera. Cuando la regla es falsa. Cuando no se sabe si es falsa o verdadera. En la figura 38 se presenta un ejemplo de reglas del sistema experto y en la figura 39 se presenta el modelo ELKA. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 92 / 101 El Modelo ELKA Modelos ELKA Manejando Relaciones Recursivas Rw Incierto Falso Rx Ry Verdadero Rz Figura 38: Ejemplo de reglas de un sistema experto Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 93 / 101 El Modelo ELKA Modelos ELKA Manejando Relaciones Recursivas #R,Nombre,Descrip Ract, R_Si, R_No, R_Quizas REGLAS CADENAS Figura 39: Modelo ELKA de un sistema experto Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 94 / 101 El Modelo ELKA Modelos ELKA Manejando Relaciones Recursivas Instrucciones de un Programa El problema de una base de datos para un programa en el que se manejan instrucciones de tipo secuencial e instrucciones de tipo condicional en las que si la condición es verdadera sigue una instrucción y sino sigue otra. La figura 40 contiene el modelo elka correspondiente. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 95 / 101 El Modelo ELKA Modelos ELKA Manejando Relaciones Recursivas # Instr,Descrip INSTRUCCIONES # Instr,Instr_Verdad,Instr_Falso # Instr,Instr_Sig CONDICIONALES SECUENCIALES Figura 40: Modelo ELKA de la instrucciones de un programa Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 96 / 101 El Modelo ELKA Modelos ELKA Manejando Relaciones Recursivas Procesos concurrentes El problema de una base de datos para dos procesos concurrentes en el que se pueden dar los casos de que avance un proceso, avance el otro o avancen ambos y además cada una de las instrucciones puede ser secuencial o condicional. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 97 / 101 ER a ELKA Outline 1 Fases del Diseño de Bases de Datos Análisis de Requerimientos Diseño Conceptual Diseño Lógico Diseño Fı́sico Ejemplo de Diseño de una Base de Datos 2 El Modelo Entidad - Relación Ejemplos 3 El Modelo ELKA Diseño de Bases de Datos Modelos ELKA Manejando Relaciones Recursivas Procesos Concurrentes 4 ER a ELKA Transformación de Entidades Transformación de Relaciones Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 98 / 101 ER a ELKA ER a ELKA El objetivo de este capı́tulo es el de presentar una serie de ideas que pueden auxiliar en el proceso de conversión de un modelo Entidad Relación al modelo ELKA equivalente. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 99 / 101 ER a ELKA Transformación de Entidades Transformación de entidades Cada una de las entidades de un modelo Entidad-Relación es mapeada a una tabla dentro del modelo ELKA. Es importante en este paso el designar las llaves de cada una de las tablas. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 100 / 101 ER a ELKA Transformación de Relaciones Transformación de relaciones Relación N - Relación N La relación es transformada a una tabla. Esta nueva tabla hereda las llaves de las entidades a las que estaba conectada la relación. La llave de la nueva tabla es la combinación de las llaves heredadas. Relación N -Relación 1 Obligatoria La relación es transformada a la herencia de los campos llaves de la entidad con relación N a la entidad con relación 1 obligatoria. Los campos heredados no forman parte de la llave. Relación N - Relación 1 No Obligatoria La relación entre cada una de las entidades de un modelo Entidad-Relación es mapeada a una entidad dentro del modelo ELKA. Es importante en este paso el designar las llaves de cada una de las entidades. Dr. José Torres Jiménez (Cinvestav-LTI) Capı́tulo 2 Bases de Datos 101 / 101