P. UNIVERSIDAD CATÓLICA DE VALPARAÍSO FACULTAD DE INGENIERÍA ESCUELA DE ING. INFORMÁTICA Base de Datos Usuario A Programa de Aplicación Bodega Usuario B • • • Usuario N • • • Insumo Proveedor Profesor: 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 Índice de Contenidos Metodología para el desarrollo de una BD Identificación y Formulación de Requerimientos Diseño Conceptual Diseño Lógico Diseño Físico Base de Datos 5 Definir Diseño de la Base de Datos Realidad Requisitos de Datos Modelo Externo Diseño Conceptual Modelo Conceptual Diseño Lógico Modelo Lógico Diseño Físico Modelo Físico Esquema Conceptual Esquema Lógico Esquema Físico Base de Datos 6 Definir Diseño de la Base de Datos Diseño Conceptual Recibe como entrada la especificación de requerimientos (modelo externo) y su resultado es el esquema conceptual de la base de datos, que es una descripción de alto nivel de la estructura de la base de datos, independiente del software que se use para manipularla. El Modelo Conceptual consolida las visiones de las distintas personas involucradas en la realidad a representar. En el caso de un modelo de datos, esta consolidación permite chequear consistencias (todos los usuarios deben referirse al mismo ítem de dato con el mismo nombre) y validar que todos los datos y asociaciones hayan sido identificados. Además se debe capturar la semántica de los datos, e información sobre el uso y mantención de ellos. Modelos Conceptuales: MER (Modelo Entidad Relación propuesto por Chen), Modelos OO. Base de Datos 7 Definir Diseño de la Base de Datos Diseño Lógico Recibe como entrada el esquema conceptual y da como resultado un esquema lógico, que es una descripción de la estructura de la base de datos que puede procesar el software DBMS. Modelos Lógicos: Relacional, de Redes, Jerárquico. Diseño Físico Recibe como entrada el esquema lógico y da como resultado un esquema físico, que es una descripción de la implementación de una base de datos, describe las estructuras de almacenamiento y los métodos usados para tener un acceso efectivo a los datos. Modelos Físicos: Modelo Unificador, Memoria de Elementos. Base de Datos 8 Tipos de Modelos Modelos Externos o Vistas Usuarios Cocina Factura Comedor Living ............ . Consulta Cltes. Control Inventario Consolidación Consistencia Completitud Modelo Conceptual Maqueta MD Comprensible Eficiencia Seguridad Integridad Modelo Interno o Lógico Plano Schema BD Dependiente del DBMS Programas y Métodos de Acceso Realidad Física Casa BD Base de Datos 9 Naturaleza del Dato Para describir un dato deben considerarse tres niveles de abstracción o estados en que se encuentra el dato. Realidad, Metadato y Dato. Eventos, Objetos, Atributos Diccionario de Datos Base de Datos Definición Tipo de Registro Ocurrencia de Registro Atributos Definición Itemes de Dato Ocurrencia de Itemes de Dato Realidad Metadato Dato (Valor) Clase de Entidades Base de Datos 10 Naturaleza del Dato Realidad Comprende el mundo real (una organización), con sus componentes y el medio ambiente en el cual opera. Cualquier organización se considera como un conjunto de personas, recursos financieros, materiales y equipos, que son organizados para satisfacer ciertos objetivos; además posee una interacción con el medio. Una entidad es una persona, objeto o evento sobre lo que la organización decide coleccionar y almacenar datos. Una entidad puede ser tangible como un empleado, un producto, un computador o un cliente; o intangible como una cuenta de un banco, un vuelo, un centro de costos. Una clase de entidades, es un conjunto de entidades que poseen características similares. Por ejemplo, todos los clientes de una empresa. También se le llama tipo de entidades, y a veces, suele usarse indistintamente el término entidad o clase de entidad. Base de Datos 11 Naturaleza del Dato Realidad: En general, cada entidad es asociada a una y solo una clase de entidades. Sin embargo, esta asignación así como la definición de clase de entidades puede ser arbitraria. Por ejemplo, la clase Empleados involucra a los empleados con contrato fijo solamente o también a los con contrato a honorarios, la respuesta va a depender del criterio del diseñador. El número de clases de entidades por organización depende del tamaño y complejidad de ella. Por ejemplo, una organización de tamaño medio define generalmente varias de clases de entidades. Base de Datos 12 Naturaleza del Dato Realidad: Un atributo es una propiedad de una clase de entidades que se desea almacenar. Para cada clase existe un conjunto de atributos de interés para la organización. Por ejemplo, para la clase Empleado algunos atributos de interés serían: Rut, Nombre, Dirección, Teléfono y Cargo. Cada entidad dentro de una clase, debe poseer al menos un atributo (o una combinación de ellos) que la distinga de otras entidades dentro de su clase. A este atributo se le llama identificador, llave o clave primaria. Por ejemplo, el Rut para Empleado, Nro.Producto para Producto, Nro.Factura + Nro.Producto para Pedido. Este atributo debe ser único, es decir, no pueden existir dos entidades con un mismo valor para ese atributo dentro de una clase. Otra propiedad de una entidad es la asociación o relacionamiento (relationship) entre dos o más clases de entidades. Esta se verá más adelante. Las entidades son del mundo real, pero en la práctica es difícil para un administrador tomar decisiones en base a la observación directa de ellas. Por eso la organización requiere modelar estas entidades. Base de Datos 13 Naturaleza del Dato Metadato: Es información acerca de los datos de una organización. Se usa para desarrollar modelos lógicos de las entidades y asociaciones de una organización. El metadato es almacenado y mantenido en el diccionario de datos (o repositorio) de una organización. Cada atributo tiene un tipo de ítem de dato como metadato. Un ítem de dato es la unidad de dato más pequeña en una Base de Datos. Por ejemplo, Nombre del Empleado, Rol del Alumno, Fecha de Orden de Compra. En el diccionario de datos se registra por cada ítem de dato, información sobre su nombre, largo, tipo y una breve descripción narrativa de él. Un dato agregado, es un conjunto de ítems de datos que son nombrados y referidos como un todo. Por ejemplo, Fecha está compuesto de Día, Mes y Año. Debe registrarse información sobre ellos en el diccionario de datos. Un tipo de registro es un conjunto de ítems de datos y/o datos agregados. La definición de un tipo de registro para cada clase de entidades que se guarda en el diccionario de datos contiene por ejemplo: nombre del registro, descripción, tamaño (o largo), ítems de datos, datos agregados e identificación de clave primaria. Base de Datos 14 Naturaleza del Dato Dato o Valor: Corresponde a ocurrencias de datos. Por cada entidad, existe una ocurrencia de registro que contiene valores de ítem de datos que la representan. Es importante distinguir la diferencia entre metadatos (definiciones del dato) y dato (ocurrencias del dato). Los metadatos no son almacenados en la base de datos sino que en el diccionario de datos. Los datos (ocurrencias de datos) son almacenados en la base de datos. Base de Datos 15 Representación del Dato Para representar los datos de una determinada realidad, consideremos dos aspectos básicos del modelamiento de datos: Entidades y Asociaciones. Una entidad, como ya se definió, es un objeto, evento o persona sobre la cual la organización decide coleccionar y almacenar datos. La asociación, es una conexión lógica entre entidades. Para representar gráficamente estos elementos, utilizaremos la simbología propuesta por Bachmann. Base de Datos 16 Representación del Dato A Entidad A A a b c d Entidad A con atributos a, b, c y d. Asociación Base de Datos 17 Representación del Dato: Asociación Asociación del tipo UNA UNA asociación de la entidad A a la B. Significa que para un cierto período de tiempo habrá una ocurrencia de la entidad A que tiene una y sólo una ocurrencia de la entidad B asociada a ella. Por ejemplo, en un cierto instante un PACIENTE de un hospital está asignado a una CAMA. Paciente Base de Datos Cama 18 Representación del Dato: Asociación Asociación del tipo MUCHAS: Una asociación del tipo MUCHAS entre entidades A y B, significa que para un cierto período de tiempo, habrá una ocurrencia de la entidad A que tiene cero, una o más ocurrencias de la entidad B asociada a ella. Por ejemplo, un EMPLEADO puede tener cero, una o más CARGAS FAMILIARES. Empleado Base de Datos Cargo 19 Representación del Dato: Asociación Asociación Condicional: Establece que para una ocurrencia de la entidad A existen dos posibilidades: que exista una ocurrencia de una entidad B asociada a ella, o que no exista. Por ejemplo, en un hospital una CAMA es asignada a sólo un PACIENTE o está desocupada en un cierto instante de tiempo. Paciente Base de Datos Cama 20 Representación del Dato: Asociación Asociación en Ambos Sentidos: Si existe una asociación entre ocurrencias de la entidad A con la B, también existe entre B con A. Esto genera tres tipos de asociaciones: UNO a UNO (1:1) Paciente Cama UNO a MUCHOS (1:N) Empleado Cargo MUCHOS a MUCHOS (N:M) Alumno Base de Datos Asignatura 21 Representación del Dato: Asociación Múltiples Asociaciones entre Entidades: Al modelar datos a veces es conveniente dos o más asociaciones entre dos tipos de entidades para aprovechar una misma descripción o contenido de un tipo de registro. ASEGURADO BENEFICIARIO RUT NOMBRE DIRECCION RUT NOMBRE DIRECCION POLIZA #POLIZA FECHA, MONTO RUT-A RUT-B Base de Datos 22 Representación del Dato: Asociación Múltiples Asociaciones entre Entidades: Es posible definir una sola clase de entidad (PERSONA) la cual se relacionaría con PÓLIZA de dos formas: como asegurado o como beneficiario. PERSONA POLIZA Asegurado RUT NOMBRE DIRECCION Beneficiario #POLIZA FECHA, MONTO RUT-A, RUT-B Cuando existen dos o más asociaciones entre dos entidades, cada asociación debe ser rotulada con un nombre que clarifique la asociación. En general, esto complica la legibilidad del modelo, por ello es conveniente ser lo más simple para representar estas asociaciones. Base de Datos 23 Representación del Dato: Asociación Asociaciones Recursivas (Loops): Es posible que se requiera describir asociaciones entre entidades de una misma clase, a esto se le llama asociaciones recursivas o loops. Existen de tres tipos: 1:1 EMPLEADO Base de Datos Casadocon Existen EMPLEADOS que son casados entre ellos, es decir, tienen una asociación 1:1, pero es posible que sólo algunos sean casados entre ellos, por lo que deberá ser una asociación condicional. 24 Representación del Dato: Asociación Asociaciones Recursivas (Loops): 1:N EMPLEADO Jefe-de Si se supone que cada empleado tiene sólo un jefe, entonces puede existir una asociación de jefe a subordinado. M:N PRODUCTO Base de Datos Component es Un PRODUCTO se compone de otros PRODUCTOS (piezas) y éstos a su vez de otros, y así sucesivamente. 25 Representación del Dato: Asociación Asociaciones Recursivas (Loops): M:N. Una asociación M:N como la anterior, puede también ser reducida a una o más asociaciones 1:N usando una entidad de intersección. PRODUCTO #PRODUCTO NOMBRE ETC. PIEZA #PIEZA #COMPONENTE CANT-USADA El #PIEZA corresponde al #PRODUCTO de aquel producto que se divide en otras componentes. Cada componente de ese producto se identifica por el #COMPONENTE (el cual también corresponde a un #PRODUCTO). CANT-USADA indica cuanto usa la pieza #X del componente #Y. Por ejemplo si se tiene la siguiente ocurrencia de PIEZA: X Y 20 Estos datos corresponderían al evento que la pieza (o producto) X, usa 20 unidades de la componente Y (o producto). Base de Datos 26 Semántica de los Datos Se refiere al significado de los datos. Cuando se realiza un análisis organizacional resulta muy difícil capturar los datos y sus asociaciones para todas las situaciones en que los datos van a ser usados. Es así, como se han creado diversas formas de modelar los datos; sin embargo, cada modelo tendrá sus restricciones en cuanto a si representan los aspectos de semántica de los datos o no los representan. Se definen distintos tipos de semánticas, que en esencia son reglas acerca de la integridad de la base de datos. Dentro de los tipos más usuales de semántica están: Cardinalidad o conectividad Grado Dependencia Tiempo Unicidad Clase ( o generalización) Agregación Base de Datos 27 Semántica de los Datos Cardinalidad Corresponde a las asociaciones 1:1, 1:N, M:N (incluida condicionalidad) ya vistas. Grado Es el número de entidades que participan en una asociación. Los grados más típicos son: unaria, binaria y ternaria. Base de Datos 28 Semántica de los Datos Grado La asociación unaria (o recursiva) es una relación entre ocurrencias de una misma clase de entidades, pueden ser 1:1, 1:M o M:N. Casado-con EMPLEADO Jefe-de EMPLEADO La asociación binaria es una relación entre ocurrencias de dos clases de entidades, pueden ser 1:1, 1:M o M:N. Pedidos-Cliente CLIENTE Base de Datos PEDIDO 29 Semántica de los Datos Grado: La asociación ternaria es una relación (simultánea) entre ocurrencias de tres clases de entidades. Cada entidad puede participar con UNA o MUCHAS en esta relación, o sea, relacionas ternarias pueden ser 1:1:1, 1:1:M, etc. PRODUCTO ORDEN PEDIDO Embarque BODEGA Base de Datos 30 Semántica de los Datos Grado: Una asociación ternaria, no es lo mismo que tres relaciones binarias. Por ejemplo el atributo CANT-EMBARCADA de un cierto producto dada una ORDEN-PEDIDO emitida por un cliente a una BODEGA debe ir en la asociación Embarque, no puede ir en una asociación entre PRODUCTO y BODEGA, ni entre PRODUCTO y ORDEN-PEDIDO, ni entre BODEGA y ORDEN-PEDIDO. Otra forma de representar este tipo de asociación es: ORDEN PEDIDO PRODUCTO Producto-para-Embarque Pedido-a-Embarcar EMBARQUE Bodega-desde-donde-Embarcar BODEGA Base de Datos 31 Semántica de los Datos Dependencia: Se refiere al hecho que alguna entidad no puede existir sin la ocurrencia de otra entidad. Por ejemplo, una ORDEN-DE-PEDIDO no puede existir si no existe el CLIENTE que la solicitó. Esta dependencia es opuesta a la asociación condicional y es relevante en el proceso de inserción y eliminación, pues no podría ingresarse una nueva ORDEN-DE-PEDIDO si no existe el CLIENTE, ni podría eliminarse un CLIENTE sin que se eliminen las ocurrencias de las ORDENES-DEPEDIDO asociadas a él. Dentro de este contexto aparece el concepto de integridad referencial, que se presenta cuando existe alguna clave primaria (o alguna parte de ella) de alguna entidad que es referenciada desde otra entidad. Base de Datos 32 Semántica de los Datos Dependencia: Esto es muy común cuando existe una clave foránea (campo que es clave primaria en otra entidad). Por ejemplo, para las siguientes ocurrencias de entidades DEPTO (NRO-DEPTO, NOMBRE) y EMPLEADO (NRO-EMP, NOM-EMP, NRO-DEPTO): NRO-DEPTO 100 150 200 NOMBRE Producción Ventas Compras NRO-EMP 4340 4980 6065 6670 NOM-EMP Mario Araya Cecilia Bustos Ana Gómez Luis Pino NRO-DEPTO 100 150 150 120 donde la clave foránea de la entidad EMPLEADO es NRO-DEPTO, y si se desea eliminar en DEPTO el registro del departamento 100, no se debiera poder realizar esa eliminación pues Mario Araya quedaría trabajando en un departamento inexistente. Para que esto sea así, se deben definir restricciones referenciales en el DBMS con que se trabaje. También es posible que estos se presente cuando existe una entidad con clave primaria compuesta. Supongamos que si no se asigna un #ORDEN a cada pedido de un CLIENTE, se tiene que: ORDEN-DE-PEDIDO (RUT-CLTE, FECHA, DETALLE) CLIENTE (RUT-CLTE, NOM-CLTE, DIR-CLTE) no pudiendo existir una ORDEN-DE-PEDIDO si no existe el CLIENTE, pues los datos del cliente deben existir para que tenga validez la orden. Base de Datos 33 Semántica de los Datos Tiempo: Es una componente multifacética y compleja del dato; se refiere a si el contenido de una base de datos varía o no en el tiempo. En muchos casos sólo el valor actual es requerido, sin embargo en otros es requerida una historia, por lo cual es necesario registrar un conjunto de datos. Por ejemplo, en una empresa manufacturera el precio de un producto cambia según el material y forma de producción usada; si contabilidad, facturación y control de la producción, requieren registrar el precio y el período sobre el cual ese precio es efectivo, una solución simple es almacenar un conjunto de precios y sus respectivas fechas de vigencia en la entidad PRODUCTO (lo que sucede en muchos lenguajes de programación tradicionales), pero no es la solución para bases de datos pues esos precios y fechas se debieran almacenar separados del producto. En un nivel conceptual es suficiente con indicar que se requiere una historia de los precios al definir lo requerimientos de la base de datos, sin embargo, a nivel interno se ha comprobado que para datos volátiles la solución es compleja, algunas veces es más simple almacenar el dato original y en un archivo separado (también llamado archivo diferencial) almacenar los cambios o diferencias que permitan ajustar los valores que cambian, con esto se ahorra espacio. Base de Datos 34 Semántica de los Datos Tiempo: Otro aspecto de tiempo, es que ciertos datos son legítimos o pueden existir dependiendo del instante en que se está. Por ejemplo, cuando se crea un EMBARQUE de productos, este EMBARQUE puede existir aunque no exista el transporte todavía, pero el EMBARQUE no puede ser creado a menos que exista una o más ORDENES DE PEDIDO asociadas. Este tipo de restricción (crear un EMBARQUE sin orden) se le llama restricción de inserción y relaciona los instantes en que los datos son almacenados en la base de datos (que dato es almacenado primero). Otro aspecto es lo referido al período de tiempo en que la relación está vigente. Por ejemplo, una vez que el EMBARQUE sale de la BODEGA, es asignado a un cierto medio de TRANSPORTE (barco, tren, avión, etc.) el cual puede cambiar en el tiempo; al ser recibido el EMBARQUE por el CLIENTE, éste debe ser disociado del medio de transporte no existiendo relación entre EMBARQUE y TRANSPORTE en ese instante. A este tipo de restricción, se le llama restricción de retención. Base de Datos 35 Semántica de los Datos Unicidad: Se define unicidad por clave primaria, se trata que una ocurrencia debe ser única al tener un atributo que la diferencia de las demás. Los criterios para seleccionar la clave primaria: La clave candidata no debe cambiar su valor durante la vida de la ocurrencia Elegir la clave candidatas que no tenga valores nulos. Otra forma de unicidad es la llamada exclusividad, significa que uno de varios tipos de datos o asociaciones pueden presentarse, pero no todos, por ejemplo en: TRABAJADOR -A HONORARIOS TAREA Esposo/Esposa o Padre/Hijo EMPLEADO TRABAJADOR DE-PLANTA Base de Datos 36 Semántica de los Datos Generalización (Clase – SubClase): Permite definir una clase de entidad general que representa a entidades que tienen distinto significado en la organización, pero características o atributos similares. Por ejemplo, CLIENTE puede tener distintos significados: algunos clientes son internacionales, otros nacionales, personas individuales o empresas, etc.; es decir, pueden existir varias subclases de CLIENTE. Una subclase no sólo hereda las características o atributos de su superclase, sino que también puede tener atributos propios. Por ejemplo, para todos los clientes se requieren los atributos NOMBRE, DIRECCION, FONO, pero para los clientes internacionales además se requieren los atributos CODIGO-POSTAL y PAIS. Una manera frecuente de identificar subclases, es asociarle un atributo para el cual la ocurrencia de una entidad tendrá un valor único (por ejemplo: agregar tipo de cliente como atributo de CLIENTE). Pero esto no es aceptable cuando los atributos varían en las subclases, ya que en los modelos de datos no se permiten definiciones variables o de distintos tipos para una misma clase de entidad. Base de Datos 37 Semántica de los Datos Agregación: Es una colección de entidades diferentes pero relacionadas. Una entidad agregada es una entidad compuesta de otras entidades, que pueden tener sus propios atributos. Por ejemplo, una ORDEN DE TRABAJO involucra la participación de las entidades MATERIA PRIMA, HERRAMIENTAS, CENTRO DE TRABAJO Y TRABAJADOR. Base de Datos 38 Resumen de Semánticas TIPO SEMANTICA MODELOS DATOS QUE MEJOR LA REPRESENTAN Cardinalidad Todos Grado Todos Dependencia Modelo E-R Tiempo Ninguno lo maneja en forma adecuada Unicidad por: 1. Clave Primaria 2. Exclusividad 1. La mayoría de los modelos 2. Modelo E-R Generalización Base de Datos 1. Modelo de Datos Orientado a Objeto 2. Modelo E-R 39 Modelo Conceptual de Datos Se analizará el Modelo Entidad – Relación (MER) propuesto por Chen en 1976. Este es un modelo independiente de la tecnología o DBMS a utilizar. Se basa en reconocer, y caracterizar las entidades básicas del modelo y luego la relación que existe entre ellas. Entidad fuerte: Elementos que pueden identificarse claramente. Entidad débil Aquella que su existencia depende de la existencia de otra. Ejemplos: taller mecánico-fábrica de piezas, Oficina propiedadesconstructora Base de Datos 40 Modelo Conceptual de Datos: MER Elementos del modelo entidad relación y sus extensiones más usadas y su representación gráfica. Dominio: Conjunto de valores de un mismo tipo. Por ejemplo: Nombres de Personas, Rut Válidos, Estados Civiles. Dominio Base de Datos 41 Modelo Conceptual de Datos: MER Símbolos: Entidad Atributo Base de Datos Asociación Clave Primaria Gerundio Atributo Multivaluado 42 Simbología del MER Entidad: Los Tipos de Entidad representan objetos de la realidad. Además se componen de atributos, los cuales representan las características de un tipo de entidad. Ejemplo: Persona, Proceso, Factura, Guía de Despacho, Cliente, Producto. Tipo de Entidad Base de Datos 43 Simbología del MER Atributo: Elemento de un Dominio. Aporta mediante su rótulo, la semántica de los valores del Dominio al que está asociado. Ejemplo: Rut, nombre, departamento, edad, tipo proyecto. Dominio Atributo Base de Datos 44 Modelo Conceptual de Datos: MER Extensiones a Simbología MER: Atributo Compuesto Atributo Derivado Entidad Débil Base de Datos 45 Simbología del MER Atributo Compuesto: Corresponde a grupos de atributos que tienen afinidad en cuanto a su significado o a su uso. Ejemplo: Dirección = calle + número + ciudad Atributo Componente 1 Atributo Componente N Atributo Compuesto Base de Datos 46 Modelo Conceptual de Datos: MER Semántica de Grado Binaria Unaria Ternaria Base de Datos 47 Modelo Conceptual de Datos: MER Semántica de Generalización Alumno Memorista ISA Semántica de Unicidad por Exclusividad Base de Datos 48 Modelo Conceptual de Datos: MER Semántica Cardinalidad Cardinalidad 1 Mandatoria Cardinalidad Muchos (M) (1,2,....M) Cardinalidad Opcional 0 o 1 Cardinalidad Opcional 0-Muchos (0,1,...M) Base de Datos 49 Cardinalidad de la Asociación •Mandatoria 1 •Muchos (1, 2, 3, …muchos) 3 Base de Datos 50 Modelo Conceptual de Datos: MER Características Especiales: Cada diamante dentro del Modelo E/R representa un tipo de asociación, este diamante existe tanto para las asociaciones 1:1, 1:M y M:N. Se acostumbra darle un nombre a la asociación, generalmente se utilizan verbos de tal manera de representar a través de ellos, la acción que une a las entidades. Un diamante pueden ir atributos, sólo si se tratan de asociaciones M:N, a éstos se les llama datos de intersección. Por ejemplo, un modelo E/R para una distribuidora de productos podría ser el siguiente: Base de Datos 51 Modelo Conceptual de Datos: MER Nombre Dirección realiza CLIENTE #Producto #Pedido Fecha PEDIDO Descripción Cantidad PRODUCTO tiene Tpo-Entrega Precio #Proveedo r tiene PROVEEDOR Nombre-Prov Base de Datos Dir-Prov 52 Modelo Conceptual de Datos: MER Es decir, los atributos pueden estar asociados a entidades y asociaciones; en este último caso corresponden a datos de intersección. En el momento de la implementación una asociación con atributos en ella, se convierte en una entidad o archivo. Esto lleva a un dilema: ¿es un diamante una entidad?, a nivel interno debe serlo, a nivel externo sólo depende de como la ve el usuario. Por ejemplo una alternativa al modelo anterior sería considerando LINEA-PRODUCTO como una asociación no como una entidad: Base de Datos 53 Modelo Conceptual de Datos: MER Nombre Dirección #Pedido realiza CLIENTE PEDIDO tiene #Producto #Producto Fecha Cantidad Descripción #Pedido PRODUCTO Precio LINEA PRODUCTO es-asignado Tpo-Entrega #Proveedor tiene PROVEEDOR Nombre-Prov Base de Datos Dir-Prov 54 Modelo Conceptual de Datos: MER La semántica de generalización o clase-subclase es llamada ISA en el modelo E/R. Se presentan subclases en algunas de las siguientes situaciones: Atributos diferentes son usados para describir cada subclase de entidad. Por ejemplo, en un hospital se requiere para algunos PACIENTE almacenar atributos sobre su permanencia en el hospital, en cambio para los PACIENTE ambulatorios no se necesitan esos atributos sino otros. Cada subclase de entidad participa en diferentes asociaciones. Por ejemplo, un PACIENTE ambulatorio no es asignado a una CAMA (una asociación condicional puede eliminarse en este caso), otro tipo de PACIENTE si es asignado. Se presenta 1 y 2 a la vez. Por ejemplo en la siguiente figura se muestra un modelo con estas tres situaciones: Base de Datos 55 Modelo Conceptual de Datos: MER #Paciente Nombre Dirección #Médico tiene PACIENTE ISA PACIENTE AMBULATORIO Fecha-Chequeo Base de Datos Nom-med MEDICO ISA PACIENTE RESIDENTE Fecha-Alta CAMA asigna Diagnóstico #Cama Tipo 56 El Modelo Entidad Relación Identificador de un tipo de entidad: Un atributo I, posiblemente compuesto, de un tipo de entidad TE, es un identificador de TE si y sólo si satisface las siguientes 2 propiedades independientes del tiempo. Unicidad. En cualquier momento dado, no existen dos elementos en TE con el mismo valor de I. Minimalidad. Si I es compuesto, no será posible eliminar ningún atributo componente de I sin destruir la propiedad de unicidad. Base de Datos 57 Claves candidatas y clave primarias Evitar el uso de claves ”inteligentes” (una llave que representa información) Ejemplo: xx bodega yy (producto) xxyy tipo Por ejemplo si se cambia de bodega produce ya un problema !! Considerar claves simples o atributos simples en un reemplazo de grandes claves compuestas. Base de Datos 58 Claves Candidatas y Claves Primaria Dependencia de Existencia Cuando existe una cardinalidad mandatoria 1, la ocurrencia de 1 entidad existe sólo si existe la ocurrencia de la entidad relacionada. Entidad Débil: es la que no puede existir por si sola. Depende la existencia de entidad fuerte. Relación por Identificador La entidad débil normalmente no tiene un identificador natural (propio) y su clave primaria será la clave de la primaria de la entidad fuerte, como parte de su clave primaria y otro(s) atributo(s) identificador de la entidad débil. Base de Datos 59 Ejemplo Ejemplo: Sistema de Información para la gestión del Plan de Ordenación Docente Identificar para la Universidad: Entidades, atributos, relaciones, cardinalidad, etc. Base de Datos 60 Ejemplo Base de Datos 61