Capítulo VI Diagramas de Entidad Relación Capítulo VI Diagramas de entidad relación Tabla de contenido 1.- Concepto de entidad.................................................................................. 91 1.1.Entidad del negocio ......................................................................... 91 1.2.Atributos y datos ............................................................................. 91 2.- Asociación de entidades............................................................................ 92 3.- Diagramas de entidad/relación.................................................................. 93 4.- Tipos de entidades..................................................................................... 94 5.- Tipos de relación....................................................................................... 95 6.- Modelo conceptual de datos...................................................................... 97 7.- Reglas de composición............................................................................ 100 90 Diagramas de entidad relación Diagramas de entidad relación 1.- Concepto de entidad En general, entendemos como entidad cualquier cosa acerca de lo cual guardamos información. Si bien esta es la definición es la que comúnmente se utiliza, en esta sección queremos refinarla un poco para adoptar el enfoque que presenta C. J. Date, en el cual se establece una diferencia entre entidades del negocio y entidades de datos. Esta diferenciación la justificamos desde un punto de vista práctico, ya que la experiencia nos enseña que el análisis de entidades y relaciones no resulta simple para algunos usuarios. Normalmente, cualquier usuario puede entender y definir lo que es una entidad del negocio, pero, al avanzar en el análisis de datos, puede encontrar dificultades para reconocer y definir las entidades asociativas. Al establecer la diferencia entre entidades del negocio y entidades de datos, si bien nos apartamos de la ortodoxia (?), estamos seguros de que facilitamos la participación del usuario. 1.1.- Entidad del negocio Una entidad del negocio es algo acerca de lo cual guardamos información. Ese algo puede ser un objeto tangible - como es el caso de la entidad EMPLEADO - o puede ser de naturaleza totalmente conceptual como es el caso de la entidad CARGO (conjunto de responsabilidades o tareas a las que un empleado puede ser asignado). Una entidad del negocio puede estar "poblada" por uno o más "ocurrencias"; por ejemplo, la entidad EMPLEADO está integrada, en una determinada empresa, por todas las personas que trabajan en ella, y el empleado Juan Pérez vendría a ser una ocurrencia de esa entidad del negocio. 1.2.- Atributos y datos Cada entidad del negocio tiene una serie de características o propiedades que denominamos atributos. Por ejemplo, cada ocurrencia de la entidad EMPLEADO tiene nombre, dirección, sexo, edad, fecha de ingreso a la empresa, etc.; todas esas características constituyen los atributos de la 91 Capítulo VI entidad empleado. Todos los atributos de una entidad del negocio se aplican o tienen el mismo significado para todas sus ocurrencias. Los datos son símbolos matemáticos o de lenguaje o de cualquier otra naturaleza que se utilizan para describir los atributos de las entidades. La descripción de una característica particular de una ocurrencia específica dentro de una entidad es el valor del dato. Para cada ocurrencia de una entidad del negocio, cada atributo tiene un valor específico: Juan (ocurrencia de la entidad empleado) tiene una estatura (atributo) de 1,75 metros. Las palabras dato y atributo, a pesar de que tienen un significado diferente, se utilizan, normalmente, como sinónimos, costumbre que seguimos en nuestras publicaciones. A los valores de los datos se les da una representación con el fin de poderlos comunicar. Para algunos datos, sus valores pueden ser representados de varias formas: la estatura de un empleado, por ejemplo, puede ser expresada en metros, centímetros, pies y hasta en términos relativos, diciendo que es alta, normal o baja. Los valores que un dato puede tomar varían dentro de un rango que constituye el domino del dato, que no es sino el conjunto de todos los valores que un dato puede tomar. Generalmente, alguno de los atributos de una entidad toma valores en forma tal que permite individualizar cada ocurrencia de esa entidad, como es el caso del atributo NOMBRE en la entidad EMPLEADO. Un atributo como éste, que nos permite identificar sin ambigüedad las ocurrencias de una entidad, se denomina identificador. La información se produce a partir de datos; un dato se convierte en información cuando toma significado para algún receptor. Utilizando un paralelo industrial, podríamos decir que los datos son la materia prima con la cual se produce información. 2.- Asociación de entidades Las entidades que participan en un sistema (cosas acerca de las cuales maneja información) se encuentran asociadas con otras entidades; por ejemplo, la entidad MATERIAL se relaciona con la entidad ALMACEN (los diferentes materiales se guardan en diversos almacenes de la empresa). El conocimiento del conjunto de entidades que actúan en un sistema, sus asociaciones y sus atributos, constituyen la base para desarrollar lo que se denomina el modelo conceptual o semántico de datos. Para un sistema, el modelo conceptual de datos constituye el universo acerca del cual maneja y almacena información. 92 Diagramas de entidad relación El objetivo que se persigue al representar un modelo conceptual de datos es crear una buena descripción del significado de los datos, lo cual sólo se logra entendiendo la realidad y capturándola en el modelo. Es necesario, pues, que al construir el modelo conceptual, el analista olvide cualquier consideración acerca de la utilización de los datos y, más aún, acerca del hardware o de los manejadores de bases de datos, concentrándose en el mundo real que rodea el sistema. 3.- Diagramas de entidad/relación Los diagramas de entidad/relación permiten que el analista de sistemas organice, formalice y verifique su comprensión del negocio y del significado de los datos. En un diagrama de entidad/relación, una entidad del negocio se representa por un rectángulo y dentro de él se coloca el nombre de la entidad. Una relación se representa por una línea que une las entidades vinculadas; en esta línea se describe el nombre de la relación. Los nombres de los atributos de las entidades se pueden incluir en la parte inferior de su representación: En este tipo de gráfico, los atributos identificadores se señalan con un * (asterisco) que precede al nombre del atributo. 93 Capítulo VI El número mínimo y máximo de veces que una ocurrencia de cada entidad puede aparecer en las ocurrencias de la relación, se registra junto al nombre de la relación. Estos números se denominan frecuencia mínima y máxima de ocurrencia de la entidad en la relación y usualmente se representan como una fracción: Mínima/Máxima. Si, por ejemplo, el programador Juan Pérez trabaja como programador en Proyecto Cuentas por Cobrar, ello constituye una ocurrencia de una relación entre las entidades PROGRAMADOR y PROYECTO, a la cual podemos darle el nombre de TRABAJA. En esta relación podemos observar que un mismo programador puede trabajar en un proyecto, en varios proyectos o en ninguno. El número de veces que un programador puede entrar en la relación TRABAJA se representa de la siguiente forma: La gráfica representa en forma simple que un PROGRAMADOR trabaja en ningún proyecto (frecuencia mínima), en uno o en varios (frecuencia máxima). Recíprocamente, el desarrollo de un proyecto puede haber requerido la participación de uno o varios programadores, aunque también, si el proyecto aun no se ha iniciado, podemos afirmar que en un proyecto trabajan ninguno, uno o varios programadores. El número mínimo y máximo de veces que una ocurrencia de cada entidad puede aparecer en las ocurrencias de una relación, constituye la cardinalidad de la relación y, como arriba señaláramos, se registra junto a la descripción de la relación, representándolos como una fracción: Mínima/Máxima. 4.- Tipos de entidades Existen entidades cuyas ocurrencias sólo tienen sentido cuando se refieren a las ocurrencias de otras entidades, como es el caso de la entidad HIJOS o DEPENDIENTES de un EMPLEADO. Este tipo de entidades 94 Diagramas de entidad relación caracterizan a otras entidades como si fuesen uno más de sus atributos, por lo que se denominan entidades características o dependientes. Con el fin de distinguir las entidades características de las demás entidades, a éstas se les denomina entidades independientes, para implicar que sus ocurrencias no dependen de ninguna otra entidad. Usualmente, cuando nos referimos a entidades independientes, las llamamos simplemente entidades, sin añadir más adjetivos. 5.- Tipos de relación Diremos que un a relación es designativa (una a muchas) cuando vincula cada ocurrencia de una entidad con varias ocurrencias de la otra entidad (una de las entidades tiene frecuencia máxima 1 y la otra tiene frecuencia máxima n). Es importante aclarar que, cuando decimos una ocurrencia, a veces implicamos "una o ninguna", mientras que otras veces implicamos "exactamente una". Análogamente, cuando decimos varias, implicamos "ninguna, una o muchas". Ejemplo de una relación designativa es la relación que guardan la entidad EMPLEADO y la entidad DEPARTAMENTO; en ella, un empleado sólo puede estar asignado a un departamento, mientras que un mismo departamento puede tener asignados varios empleados (cero, uno o muchos). En este caso, decimos que la relación es designativa y que la entidad EMPLEADO está siendo designada por la entidad DEPARTAMENTO. Cuando una relación representa un vínculo de "muchas a muchas" (las dos entidades tienen frecuencia máxima n), la denominamos simplemente relación, sin añadir ningún adjetivo. Ejemplo de una relación es la que 95 Capítulo VI existe entre REPUESTOS y ALMACEN, en la que un mismo repuesto tiene existencia en varios almacenes (cero, uno o muchos) y, a su vez, un mismo almacén guarda varios (cero, uno o muchos) repuestos. Es posible que dos entidades se asocien en virtud de más de una relación, como es el caso de REPUESTO y EQUIPO. Un repuesto se utiliza para dar mantenimiento a uno o más equipos, pero también, para los efectos de mantener un equipo dado, ciertos repuestos se RESERVAN. Esto puede ser representado de la siguiente forma: Las relaciones que vinculan a más de dos entidades las denominamos relaciones múltiples. En la gráfica vemos un diagrama que nos muestra que existe una relación de CLIENTE con PEDIDO y PRODUCTO, de PEDIDO con PRODUCTO y CLIENTE y de PRODUCTO con CLIENTE y PEDIDO. Tal como ocurre con el ejemplo, en la mayoría de los casos estas asociaciones complejas, si se analizan bien, pueden ser representadas en forma más real y simple, pues, si bien existe una relación entre el CLIENTE y el PRODUCTO, esta siempre es a través de un PEDIDO. 96 Diagramas de entidad relación Sin embargo, existen casos en los que estas relaciones múltiples no pueden simplificarse, ya que, al intentar hacerlo, el modelo pierde significado. Como ejemplo de este tipo de asociaciones múltiples podemos citar el caso de una empresa de servicios de consultoría, en la cual las entidades CLIENTE, SERVICIO y CONSULTOR guardan una relación múltiple: un CONSULTOR está capacitado para prestar diferentes servicios (ANALISTA SENIOR, LIDER DE PROYECTO, DISEÑADOR DE BASES DE DATOS) y, por lo tanto, puede ser asignado a diferentes clientes (o a un mismo cliente) para desempeñar diferentes roles. Las ocurrencias de una misma entidad pueden estar asociadas en virtud de una o más asociaciones recursivas, como es el caso de EMPLEADO y las asociaciones que se establecen en virtud de la supervisión: un empleado supervisa a varios empleados (ninguno, uno o muchos) y, a su vez, un empleado es supervisado por otro empleado (uno y sólo uno). 6.- Modelo conceptual de datos Hasta ahora hemos hablado acerca de "cosas del negocio"; hemos hablado de entidades, entidades dependientes, asociaciones (muchas a muchas) y asociaciones designativas (una a muchas); sin embargo, para completar la representación de un modelo conceptual de datos, (concebido como el universo de la información acerca del cual maneja y almacena un sistema), es necesario introducir una nueva idea o restricción, referida a las relaciones “muchas a muchas”. En un modelo conceptual de datos, no puede haber relaciones “muchas a muchas”, por lo que, cada una de estas asociaciones, deberá descomponerse en dos relaciones del tipo “una a muchas”. Esta restricción tiene todo el sentido del mundo, ya que, una vez identificadas las entidades del negocio y sus interrelaciones, es necesario 97 Capítulo VI comenzar a pensar en las estructuras de datos que servirán para almacenar los datos que describen esas entidades e interrelaciones. Es oportuno señalar, que estas consideraciones se harán, como ya hemos dicho anteriormente, sin tomar en cuenta aún la forma en que los datos se utilizarán o almacenarán. Así pues, para completar un modelo conceptual de datos, cada entidad dará lugar a una entidad de datos, igualmente lo hará cada entidad característica. Sin embargo, cada relación “muchas a muchas” entre dos entidades, también deberá dar lugar a una entidad de datos, a la que podemos llamar entidad asociativa. Esta consideración vista en abstracto no parece tener mucho sentido; sin embargo, si se observa que cualquier relación “muchas a muchas” requerirá un registro separado, tiene todo el sentido del mundo. Veamos, por ejemplo, la relación entre las entidades MATERIAL y FACTURA. Típicamente, esta es una relación en la que una factura incluye varios materiales y en la que un mismo material puede estar presente en varias facturas; esta relación no es algo abstracto, sino algo concreto, puede ser observada y "palpada" en las diferentes líneas de cada factura. Es fácil ver que, probablemente, será necesario crear un registro para cada línea de cada factura. En el ejemplo citado, cuando diseñemos la base de datos, con toda seguridad, tendremos tres registros diferentes: MATERIAL: Código de Material, Descripción, Precio Unitario, ......... FACTURA: Número de Factura, Número de Cliente, Fecha, Monto Total, ……. LINEAS DE FACTURA: Número de Factura, Código de Material, Cantidad Facturada, ………. Los atributos identificadores de las entidades asociativas se conforman con la identificación de las ocurrencias de las entidades que participan en dicha relación. En otras palabras, el identificador de una entidad asociativa es la concatenación de los atributos identificadores de las entidades que participan en la relación. Con todas estas consideraciones en mente, una vez representado el modelo de las entidades del negocio, debe completarse el modelo conceptual de datos de la siguiente forma: 98 Diagramas de entidad relación 1. Identificando las asociaciones muchas a muchas (n a n) y reemplazándolas por entidades asociativas. 2. Identificando las asociaciones múltiples y reemplazándolas, también, por entidades asociativas. 99 Capítulo VI 3. Determinando los atributos identificadores de cada una de las entidades asociativas, a través de la concatenación de los atributos identificadores de las entidades que participan en la relación. 7.- Reglas de composición Cuando elaboramos el modelo conceptual de datos de un área del negocio, lo que, en realidad, estamos haciendo es organizar las “cosas” que integran esa área, creando un mapa que nos permita tener “un lugar para cada cosa” y poner cada “cosa en su lugar”. Dentro de este orden de ideas, para que un modelo conceptual de datos sea de utilidad, deberá estar libre de ambigüedades, lo cual puede lograrse siguiendo ciertas reglas de composición que a continuación presentamos: 1. Una entidad de datos debe concebirse como una clase de objetos que pueden ser descritos por los mismos atributos; por lo tanto, si decimos que algo es una entidad de datos ello debe implicar que los mismos datos serán utilizados para describir cada ocurrencia de la entidad. 2. Todos los atributos de una entidad de datos se aplican de la misma forma o tienen el mismo significado para todas sus ocurrencias; además, para una ocurrencia dada, cada uno de sus atributos tiene un solo valor (valores atómicos). Si esto no ocurre así, quiere decir que, por algún error, estamos considerando más de una entidad; es muy posible que estemos frente a una entidad característica, la cual debe representarse separadamente. 3. No pueden existir relaciones entre entidades del tipo “muchas a muchas”. Este tipo de relaciones debe ser reemplazada por entidades asociativas. 4. No pueden existir relaciones múltiples entre entidades. Este tipo de relaciones debe ser reemplazada por entidades asociativas. 5. Con excepción de las entidades dependientes, por lo menos uno de los atributos de toda entidad toma valores en forma tal que permite individualizar cada ocurrencia de esa entidad. Es decir, dada una entidad, existe algún atributo identificador. 6. Al igual que para cualquier entidad, los atributos de las entidades asociativas deberán tener el mismo significado para 100 Diagramas de entidad relación todas sus ocurrencias y tomarán un solo valor (valores atómicos). Al completar la representación de un modelo conceptual de datos, se deberá verificar que cumple con las reglas de composición arriba enumeradas; en especial deberá evaluarse cualquier dato cuyo valor no sea atómico, con el fin de identificar entidades que hayan podido ser pasadas por alto o la existencia de entidades dependientes; todo ello se hará con el fin de mejorar el modelo, para que sea claro, esté libre de ambigüedades, y nos permita tener “un solo lugar para cada cosa” y poner “cada cosa en su lugar”. 101 Capítulo VI 102