3 MODELO ENTIDAD - RELACIÓN Ingeniería Informática © 2012 – Análisis y Diseño Estructurado Ingeniería de Software I 1 Objetivos Comprender qué datos existen y cómo se relacionan entre ellos, independientemente de cómo son o serán almacenados físicamente. Comprender qué información necesita la organización y la operación para que pueda soportar los procesos del negocio. Servir de punto de partida para el diseño de almacenamientos que terminarán siendo: Completos. Consistentes. No redundantes. Flexibles. Ingeniería Informática © 2012 – Análisis y Diseño Estructurado Ingeniería de Software I 2 1 Modelos de datos Modelo Conceptual de Datos. Un modelo de entidad - relación extendido y “poblado”. Modelo Entidad – Relación. Una representación “no poblada” de entidades y relaciones Ingeniería Informática © 2012 – Análisis y Diseño Estructurado Ingeniería de Software I 3 Entidades Una entidad es un objeto de importancia para el negocio sobre el que se guardan datos. Los almacenamientos contienen la información necesaria para describir estas entidades: Elementos de datos, algunos de los cuales son claves de acceso. “... En este negocio necesitamos saber sobre nuestros clientes, contratos, pedidos ...” Ingeniería Informática © 2012 – Análisis y Diseño Estructurado Ingeniería de Software I 4 2 Relaciones Una relación es una asociación entre dos entidades que expresa una conexión para el negocio. Las relaciones representan las asociaciones que existen entre ocurrencias de entidades. Ejemplo: Los clientes realizan pedidos. Un proveedor recibe una orden de compra. Generalmente no lo hacen, pero no existe ninguna razón por la cual no lo puedan hacer. Depende del cliente. Muy bien, los clientes hacen pedidos, pero ¿pueden hacer más de un pedido por vez? Ingeniería Informática © 2012 – Análisis y Diseño Estructurado Ingeniería de Software I 5 Elementos de datos “ ... Por supuesto necesitamos conocer sobre nuestros clientes, adónde enviarle la mercadería, adónde enviarle la factura, cuál es su límite de crédito...” Los elementos de datos son los datos que necesitamos guardar sobre cada ocurrencia de las entidades. No lo vamos a determinar en un modelo de entidad – relación. Se definirán en un momento más avanzado del análisis. Ingeniería Informática © 2012 – Análisis y Diseño Estructurado Ingeniería de Software I 6 3 Ocurrencias de una entidad Una ocurrencia de una entidad es un valor específico (o instancia) de dicha entidad. Ejemplo: El pedido N° 43401. El cliente Juan Pérez. ... Voy a querer saber con cuántos clientes trabajo y cuántos pedidos realizan. Además, voy a necesitar identificar al cliente e identificar un pedido y revisarlo... Ingeniería Informática © 2012 – Análisis y Diseño Estructurado Ingeniería de Software I 7 Notación del ERM Maestro Entidad Cliente Denominación de la relación Relación Denominación De la entidad Detalle Pedido Ingeniería Informática © 2012 – Análisis y Diseño Estructurado Ingeniería de Software I 8 4 Cardinalidad y Opcionalidad A Relación uno a uno: Para una ocurrencia de la entidad A pueden existir 0 o 1 ocurrencias relacionadas de la entidad B. B Ejemplo: Para una ocurrencia de la entidad B pueden existir 1 y solo 1 ocurrencia relacionadas de la entidad A. Empleado Gerente Ingeniería Informática © 2012 – Análisis y Diseño Estructurado Ingeniería de Software I 9 Cardinalidad y Opcionalidad A Relación uno a muchos: Para una ocurrencia de la entidad A pueden existir 0, 1 o muchas ocurrencias relacionadas de la entidad B. B Ejemplo: Para una ocurrencia de la entidad B pueden existir 1 y solo 1 ocurrencia relacionadas de la entidad A. Proveedor Ingeniería Informática © 2012 – Análisis y Diseño Estructurado Ingeniería de Software I Orden de Compra 10 5 Cardinalidad y Opcionalidad A Relación muchos a muchos: Para una ocurrencia de la entidad A pueden existir 1 o muchas ocurrencias relacionadas de la entidad B. B Ejemplo: Para una ocurrencia de la entidad B pueden existir 0, 1 o muchas ocurrencias relacionadas de la entidad A. Orden de Compra Producto Ingeniería Informática © 2012 – Análisis y Diseño Estructurado Ingeniería de Software I 11 Cardinalidad y Opcionalidad A Relación múltiple: Las ocurrencias de las entidades A y B están relacionadas por más de una condición de negocio. B Pendiente de entrega Ejemplo: Orden de Compra Asignada Ingeniería Informática © 2012 – Análisis y Diseño Estructurado Ingeniería de Software I Proveedor 12 6 Cardinalidad y Opcionalidad Relación recursiva: Para una ocurrencia de la entidad A existen 0, 1 o muchas ocurrencias de la misma entidad. A Ejemplo: Partes Ingeniería Informática © 2012 – Análisis y Diseño Estructurado Ingeniería de Software I 13 Ejercicio rápido de cardinalidad y opcionalidad Dibujar los siguientes ejemplos de relaciones entre entidades y asignar la cardinalidad y opcionalidad que corresponda. 1. 2. 3. 4. 5. 6. 7. 8. Cada pedido da lugar a una sola factura. En una factura se incluye un solo pedido. Un pedido puede existir aún si no ha sido facturado. Un empleado puede ser o no un vendedor. Un vendedor es un empleado. Un cliente puede hacer un pedido por vez. Quien no tenga pedidos pendientes no es cliente (o sea, un cliente debe tener siempre un pedido hecho). Un cliente es independiente del número de pedidos que tenga pendientes (de hecho puede tener varios) y no deja de ser cliente por no tener pedidos hechos. Cada pedido se aplica a un solo cliente. Cada vendedor puede tener uno o más clientes. Cualquier cliente es visitado sólo por un vendedor. Cada producto consiste en una o más partes. Cada parte es sólo utilizada por un producto y no por otros. Todas las partes son utilizadas en algún producto. Cada producto consiste en una o más partes. Cada parte puede ser utilizada en uno o más productos (al menos es usada en uno). Cada producto consiste en una o más partes. Cada parte puede ser utilizada en uno o más productos. Hay partes que no son utilizadas por ningún producto (son para reventa). Ingeniería Informática © 2012 – Análisis y Diseño Estructurado Ingeniería de Software I 14 7 Construyendo el modelo de entidad – relación 3 Dibujar el modelo de entidad relación. 2 Identificar la relaciones entre entidades. 1 directas Identificar posibles entidades. Ingeniería Informática © 2012 – Análisis y Diseño Estructurado Ingeniería de Software I 15 Ejemplo: Revendedora San Martín San Martín es una empresa que vende productos alimenticios a almacenes. Su proceso de pedidos tiene las siguientes características: San Martín vende aproximadamente 150 productos diferentes. Algunos productos se venden en más de un tamaño (en promedio, tres tamaños por producto). San Martín cuenta con 1600 clientes actualmente. Los clientes obtienen su mercadería a través de pedidos, donde solicitan los productos en sus distintos tamaños. Un pedido tipo tiene 40 ítems Los productos se almacenan en sus distintos tamaños en alguno de los tres almacenes de San Martín. Ingeniería Informática © 2012 – Análisis y Diseño Estructurado Ingeniería de Software I 16 8 Relaciones Para relaciones recursivas Cómo completar la matriz: Cliente Producto Tamaño - Producto Pedido Almacén Para cada par de entidades preguntar: qué relación de negocio directa existe entre cada una de ellas. Las relaciones directas consisten en verbos o frases verbales que conectan sustantivos. Por ejemplo: Cliente REALIZA pedidos. Las relaciones indirectas son aquellas en donde la relación se expresa por medio de otra entidad de la matriz. Por ejemplo: El cliente PIDE un producto. Lo hace a través de un pedido. Estas relaciones no se marcan en la matriz. Habrá que controlar si existen relaciones múltiples entre entidades. Ingeniería Informática © 2012 – Análisis y Diseño Estructurado Ingeniería de Software I 17 Dibujando el modelo de entidad – relación A esta altura se dejan sin resolver las relaciones muchos a muchos. Ingeniería Informática © 2012 – Análisis y Diseño Estructurado Ingeniería de Software I 18 9