Diseño de Bases de Datos Modelo Entidad-Relación (MER) Gestion y Modelación de Datos Diseño de BD - Modelo Entidad Relación Marı́a Constanza Pabón Julio de 2011 Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Contenido 1 Diseño de Bases de Datos 2 Modelo Entidad-Relación (MER) Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Diseño de Bases de Datos Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Diseño Conceptual Describe el contenido (información) de la base de datos, no las estructuras de almacenamiento Tiene como propósito comprender el dominio del problema y facilitar la comunicación entre las personas interesadas (desarrolladores, usuarios, ...) Son completos y expresivos, y las descripciones que con ellos se construyen son simples, precisas y fáciles de usar Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Modelos de Datos Definición ”Los modelos de datos están integrados por una serie de conceptos para describir datos, sus relaciones y restricciones, y son útiles para representar, de manera abstracta, el mundo real” [?] Un modelo de datos tiene 3 componentes [?] Un conjunto de tipos de estructuras de datos Un conjunto de reglas u operadores para manipular datos Un conjunto de reglas de integridad Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Estructuras del Modelo Entidad-Relación (MER) I En el Modelo Entidad-Relación se describe el mundo real a través de entidades, relaciones entre las entidades y atributos Tiene una notación esquemática: El Diagrama Entidad Relación Entidad Una entidad es una cosa u objeto en el mundo real que es distinguible de todos los demás objetos. Ejemplo: una persona Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Estructuras del Modelo Entidad-Relación (MER) II Atributo Las propiedades de una entidad se describen mediante un conjunto de atributos. La entidad tiene un valor para cada uno de sus atributos. Ejemplo, el número de cédula es un atributo de una persona, y su valor podrı́a ser 29.092.939 El dominio de un atributo es el conjunto de valores permitidos para ese atributo. Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Estructuras del Modelo Entidad-Relación (MER) III Conjunto de entidades (o Tipo de Entidad) Es un conjunto de entidades del mismo tipo que comparten las mismas propiedades, o atributos. Ejemplo: el conjunto de todas las personas que son clientes de un banco. Las entidades individuales son la extensión del conjunto de entidades. El tipo de entidad define la intensión de la entidad Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Estructuras del Modelo Entidad-Relación (MER) IV Relación Es una asociación entre dos o más entidades. Ejemplo: si se tienen las entidades ”estudiante Perez” y ”curso Bases de Datos” se puede definir una relación que asocie al estudiante con el curso. Una relación también puede tener atributos. Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Estructuras del Modelo Entidad-Relación (MER) V Conjunto de Relaciones Es un conjunto de relaciones del mismo tipo. El Tipo de Relación define las propiedades comunes de un conjunto de relaciones (intensión / extensión). Al número de tipos de entidad que participan en un tipo de relación se le denomina grado. Ejemplo: relación binaria (grado 2), ternaria (grado 3). Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Ejemplos de Entidad Sujeto: Cliente, Proveedor, Empleado Objeto: Producto, Factura Evento: Solicitud de Pedido, Ajuste, Venta Lugar: Ciudad, Paı́s, Bodega Abstracción: Tipo de cliente, Unidad de medida Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Diagrama Entidad Relación La estructura de una base de datos puede ser expresada gráficamente con un Diagrama Entidad-Relación Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Ejemplo Marı́a Constanza Pabón Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Diseño de Bases de Datos Modelo Entidad-Relación (MER) Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Tipos de Atributo I Simple / Compuesto Simple: no se divide en subpartes Compuesto: se divide en subpartes. Se representa con ovalos conectados. Ej. NombreEstudiante Monovaluado / Multivaluado Monovaluado: tiene un solo valor para una entidad especı́fica Multivaluado: tiene un conjunto de valores para una entidad especı́fica. Se representa con un doble ovalo. Ej. DirecciónCorreo Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Tipos de Atributo II Almacenado / Derivado Almacenado: se guarda en la base de datos Derivado: Su valor se obtiene a partir del valor de otros atributos o entidades relacionados. Se representa con un ovalo punteado. Ej. Edad (se deriva del año de nacimiento) Valor Nulo Un atributo toma un valor nulo cuando una entidad no tiene un valor para el. El valor nulo puede indicar que el valor no existe para la entidad (”no aplica”) o que es desconocido. Ejemplo: SegundoNombre Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Ejemplo Marı́a Constanza Pabón Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Diseño de Bases de Datos Modelo Entidad-Relación (MER) Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Entidades Regulares Una entidad regular existe por si misma. Ejemplo: Empleado Débiles La existencia de una entidad débil depende de la existencia de una entidad regular. Se representa con dos rectángulos concéntricos. Ejemplo: Hijos (del empleado), si se elimina el empleado, se eliminan también sus hijos. Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Restricciones del MER Restricciones Inherentes Limita los tipos de estructura que es posible representar en el modelo de datos Los tipos de relación solo se pueden definir entre tipos de entidades Clave primaria (Llave) Restricciones Semánticas Restringen los valores que pueden tomar los atributos o imponen limitaciones a las caracterı́sticas de las relaciones Cardinalidad de la relación Participación de las entidades en las relaciones Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Atributos Clave Un conjunto de atributos suficiente para distinguir de manera unı́voca las entidades y las relaciones. La Clave Primaria (Llave) es una clave elegida por el diseñador como elemento principal para identificar las entidades. Es elegida de un conjunto de Claves Candidatas. Se representa subrayando el nombre de los atributos. Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Cardinalidad Expresa el número de entidades a las que otra entidad puede estar asociada vı́a un conjunto de relaciones Para un conjunto de relaciones binarias R entre los conjuntos de entidades A y B, la cardinalidad es: Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Restricciones de Participación Participación Total La participación de un conjunto de entidades E en un conjunto de relaciones R es total si cada entidad en E participa al menos en una relación en R. La participación es obligatoria. Se representa con doble linea. Participación Parcial La participación de un conjunto de entidades E en un conjunto de relaciones R es parcial si solo algunas entidades en E participan en relaciones en R. La participación es opcional. Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Dependencias Dependencia en Existencia Cuando la entidad débil no puede existir sin la existencia de la entidad regular de la cual depende Dependencia en Identificación Cuando, además de la dependencia en existencia, la entidad débil no se puede identificar con sus propios atributos, y debe incluir en su clave la clave de la entidad regular Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño MER Extendido Especialización / Generalización (IS-A) Herencia de atributos Restricciones sobre la generalización Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Especialización / Generalización Especialización El proceso de designación de subgrupos dentro de un conjunto de entidades. Ejemplo: la especialización de persona en empleado y cliente La especialización se hace por una o más caracterı́sticas distintivas (atributos o participación en relaciones) Generalización Se puede dar cuando dos conjuntos de entidades tienen similitudes (atributos y relaciones en común). Ejemplo: las entidades empleado y cliente se generalizan en persona Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Especialización / Generalización La especialización se da en un proceso de diseño descendente La generalización en un proceso de diseño ascendente También se puede llamar relación superclase-subclase. Se representa con un triangulo etiquetado con ”ES” (IS-A) Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Herencia de Atributos Los conjuntos de entidades de nivel más bajo (subclases) heredan los atributos y la participación en las relaciones de los conjuntos de entidades de nivel más alto (superclase) Jerarquı́a En una jerarquı́a un conjunto de entidades dado puede estar implicado como un conjunto de entidades de nivel más bajo sólo en una única relación ES Herencia Múltiple Si un conjunto de entidades es un conjunto de entidades de nivel más bajo en más de una relación ES, entonces el conjunto de entidades tiene herencia múltiple Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Restricciones sobre la generalización I Pueden generar requisitos a cumplir durante la inserción, actualización o eliminación de datos. Definido por condición Una entidad es miembro de un conjunto de entidades de nivel más bajo si satisface una condición establecida. Ejemplo: si tipo-cuenta = “Ahorro”, la Cuenta es una Cuenta-de-Ahorro Definido por usuario Si la asignación a un conjunto de entidades de nivel más bajo no se establece por una condición Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Restricciones sobre la generalización II Disjunto Requiere que una entidad no pertenezca a más de un conjunto de entidades de nivel más bajo. Ejemplo: Cuenta-de-Ahorro y Cuenta-Corriente en la generalización Cuenta Se representa añadiendo la etiqueta ”Disjunto” al triangulo. Solapado La misma entidad puede pertenecer a más de un conjunto de entidades de nivel más bajo. Ejemplo: Empleado y Cliente en la generalización Persona Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Restricciones sobre la generalización III Generalización o especialización total Cada entidad de nivel más alto debe pertenecer a un conjunto de entidades de nivel más bajo. Ejemplo: la generalización Cuenta Se representa uniendo con lı́nea doble la entidad de nivel más alto con el simbolo del triangulo. Generalización o especialización parcial Algunas entidades de nivel más alto pueden no pertenecer a algún conjunto de entidades de nivel más bajo. Ej. grupos de trabajo a los que pertenece un empleado Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Notaciones Marı́a Constanza Pabón Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Diseño de Bases de Datos Modelo Entidad-Relación (MER) Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Aspectos de diseño [?, ?] I Entidad o atributo?: al tratar algo como entidad se modela mejor una situación en la que se almacena información extra, es una definición más general Entidad o relación?: Prestamo se puede modelar como entidad o como relaciones. Generalmente se usan las relaciones para modelar una acción Atributo o relación? Entidades fuerte o débil?: una entidad fuerte con sus entidades débiles se puede considerar un solo objeto Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Aspectos de diseño [?, ?] II Clave primaria: atributos del mundo real o surrogates? tener en cuenta que la clave primaria: No acepta valores nulos: siempre debe estar disponible cuando se crea la entidad o relación Es única en el conjunto de entidades o relaciones Es mı́nima: es irreducible, no incluye atributos que no son requeridos para garantizar su unicidad Es estable: su valor no cambia Marı́a Constanza Pabón Diseño de Bases de Datos Modelo Entidad-Relación (MER) Estructuras Diagrama Entidad Relación Tipos de Atributo Entidades Restricciones del MER MER Extendido Notaciones Aspectos de diseño Aspectos de diseño [?, ?] III Algunos errores: Usar la clave primaria de una entidad como un atributo de otra entidad, en lugar de usar una relación Designar a los atributos de la clave primaria de entidades relacionadas como atributos del conjunto de relaciones Relaciones redundantes Situaciones poco comunes: Entidades sin relaciones Relaciones en las que varias entidades tienen participación obligatoria (problema huevo-gallina: quien primero?) Marı́a Constanza Pabón Bibliografı́a I