RESUMEN DE LA UNIDAD 2 “DISEÑO DE BASES DE DATOS Y EL MODELO E-R” TEMA 2.1 EL PROCESO DE DISEÑO En este capítulo se presenta una metodología para el diseño conceptual de bases de datos que se basa en el modelo de datos más popular en la actualidad, el modelo entidad-relación. El diseño de bases de datos es el proceso por el que se determina la organización de una base de datos, incluidos su estructura, contenido y las aplicaciones que se han de desarrollar. Durante mucho tiempo, el diseño de bases de datos fue considerado una tarea para expertos: más un arte que una ciencia. El diseño de bases de datos se ha convertido en una actividad popular, desarrollada no sólo por profesionales sino también por no especialistas. Según ha avanzado la tecnología de bases de datos, así se han desarrollado las metodologías y técnicas de diseño. Se ha alcanzado un consenso, por ejemplo, sobre la descomposición del proceso de diseño en fases, sobre los principales objetivos de cada fase y sobre las técnicas para conseguir estos objetivos. Debido a la falta de enfoques estructurados para el diseño de bases de datos, a menudo se subestiman el tiempo o los recursos necesarios para un proyecto de bases de datos, las bases de datos son inadecuadas o ineficientes en relación a las demandas de la aplicación, la documentación es limitada y el mantenimiento es difícil. La tecnología de bases de datos cuenta ya con un marco teórico, que incluye la teoría relacional de datos, procesamiento y optimización de consultas, control de concurrencia, gestión de transacciones y recuperación, etc. El diseño de una base de datos es un proceso complejo que abarca decisiones a muy distintos niveles. La complejidad se controla mejor si se descompone el problema en subproblemas y se resuelve cada uno de estos subproblemas independientemente, utilizando técnicas específicas. TEMA 2.2 MODELO E-R El modelo entidad-relación es el modelo conceptual más utilizado para el diseño conceptual de bases de datos. Fue introducido en 1976. El modelo entidad-relación está formado por un conjunto de conceptos que permiten describir la realidad mediante un conjunto de representaciones gráficas y lingüísticas. Originalmente, el modelo entidad-relación sólo incluía los conceptos de entidad, relación y atributo. Más tarde, se añadieron otros conceptos, como los atributos compuestos y las jerarquías de generalización, en lo que se ha denominado modelo entidad-relación extendido. En general, un modelo no es capaz de expresar todas las propiedades de una realidad determinada, por lo que hay que añadir aserciones que complementen el esquema. Entidad Cualquier tipo de objeto o concepto sobre el que se recoge información: cosa, persona, concepto abstracto o suceso. Por ejemplo: coches, casas, empleados, clientes, empresas, oficios, diseños de productos, conciertos, excursiones, etc. Las entidades se representan gráficamente mediante rectángulos y su nombre aparece en el interior. Un nombre de entidad sólo puede aparecer una vez en el esquema conceptual. Hay dos tipos de entidades: fuertes y débiles. Una entidad débil es una entidad cuya existencia depende de la existencia de otra entidad. Una entidad fuerte es una entidad que no es débil. Relación Es una correspondencia o asociación entre dos o más entidades. Cada relación tiene un nombre que describe su función. Las relaciones se representan gráficamente mediante rombos y su nombre aparece en el interior. Las entidades que están involucradas en una determinada relación se denominan entidades participantes. El número de participantes en una relación es lo que se denomina grado de la relación. Por lo tanto, una relación en la que participan dos entidades es una relación binaria; si son tres las entidades participantes, la relación es ternaria; etc. Atributo Es una característica de interés o un hecho sobre una entidad o sobre una relación. Los atributos representan las propiedades básicas de las entidades y de las relaciones. Toda la información extensiva es portada por los atributos. Gráficamente, se representan mediante bolitas que cuelgan de las entidades o relaciones a las que pertenecen. Cada atributo tiene un conjunto de valores asociados denominado dominio. El dominio define todos los valores posibles que puede tomar un atributo. Puede haber varios atributos definidos sobre un mismo dominio. Los atributos pueden ser simples o compuestos. Un atributo simple es un atributo que tiene un solo componente, que no se puede dividir en partes más pequeñas que tengan un significado propio. Un atributo compuesto es un atributo con varios componentes, cada uno con un significado por sí mismo. Un grupo de atributos se representa mediante un atributo compuesto cuando tienen afinidad en cuanto a su significado, o en cuanto a su uso. Un atributo compuesto se representa gráficamente mediante un óvalo. Los atributos también pueden clasificarse en monovalentes o polivalentes. Un atributo monovalente es aquel que tiene un solo valor para cada ocurrencia de la entidad o relación a la que pertenece. Un atributo polivalente es aquel que tiene varios valores para cada ocurrencia de la entidad o relación a la que pertenece. A estos atributos también se les denomina multivalorados, y pueden tener un número máximo y un número mínimo de valores. Por último, los atributos pueden ser derivados. Un atributo derivado es aquel que representa un valor que se puede obtener a partir del valor de uno o varios atributos, que no necesariamente deben pertenecer a la misma entidad o relación. TEMA 2.3 RESTRICCIONES La cardinalidad de un atributo indica el número mínimo y el número máximo de valores que puede tomar para cada ocurrencia de la entidad o relación a la que pertenece. Identificador Un identificador de una entidad es un atributo o conjunto de atributos que determina de modo único cada ocurrencia de esa entidad. Un identificador de una entidad debe cumplir dos condiciones: 1. No pueden existir dos ocurrencias de la entidad con el mismo valor del identificador. 2. Si se omite cualquier atributo del identificador, la condición anterior deja de cumplirse. Toda entidad tiene al menos un identificador y puede tener varios identificadores alternativos. Las relaciones no tienen identificadores. En primer lugar hay que definir los principales objetos que interesan al usuario. Estos objetos serán las entidades. Una forma de identificar las entidades es examinar las especificaciones de requisitos de usuario. Para liarlo aún más, los usuarios usan, muchas veces, sinónimos y homónimos. Dos palabras son sinónimos cuando tienen el mismo significado. Los homónimos ocurren cuando la misma palabra puede tener distintos significados dependiendo del contexto. Hay que tener mucho cuidado cuando parece que un mismo atributo se debe asociar a varias entidades. De cada atributo se debe anotar la siguiente información: ·Nombre y descripción del atributo. ·Tipo de dato y longitud. ·Valores por defecto del atributo (si se especifican). ·Si el atributo siempre va a tener un valor (si admite o no nulos). · Si el atributo es compuesto y, en su caso, qué atributos simples lo forman. · Si el atributo es derivado y, en su caso, cómo se calcula su valor. · Si el atributo es multievaluado. TEMA 2.4 DIAGRAMAS E-R Denominado por sus siglas como: E-R; Este modelo representa a la realidad a través de un esquema gráfico empleando los terminología de entidades, que son objetos que existen y son los elementos principales que se identifican en el problema a resolver con el diagramado y se distinguen de otros por sus características particulares denominadas atributos, el enlace que rige la unión de las entidades está representada por la relación del modelo. Recordemos que un rectángulo nos representa a las entidades; una elipse a los atributos de las entidades, y una etiqueta dentro de un rombo nos indica la relación que existe entre las entidades, destacando con líneas las uniones de estas y que la llave primaria de una entidad es aquel atributo que se encuentra subrayado. Diseñar el modelo E-R, para la relación Registro de automóvil que consiste en obtener la tarjeta de circulación de un automóvil con los siguientes datos:- Automóvil- Modelo, Placas, Color - Tarjeta de circulación -Propietario, No serie, Tipo. Indicamos con este ejemplo que existe una relación de pertenencia de uno a uno, ya que existe una tarjeta de circulación registrada por cada automóvil. El siguiente ejemplo indica que un cliente puede tener muchas cuentas, pero que una cuenta puede llegar a pertenecer a un solo cliente (Decimos puede, ya que existen cuentas registradas a favor de más de una persona). Un diagrama E-R, puede ser representado también a través de una colección de tablas. Para cada una de las entidades y relaciones existe una tabla única a la que se le asigna como nombre el del conjunto de entidades y de las relaciones respectivamente, cada tabla tiene un número de columnas que son definidas por la cantidad de atributos y las cuales tienen el nombre del atributo. TEMA 2.5 DISEÑO CON DIAGRAMAS E-R En la gráfica se aprecia la forma en que se representan las entidades, las relaciones, los atributos y la cardinalidad de las relaciones. Como ejercicio clasificar e identificar las entidades y los atributos. Expresar con sus palabras las relaciones e identificar la cardinalidad, expresando su significado. Otro elemento a tener en cuenta es, que como se ha dicho, las relaciones representan muy usualmente acciones (verbos) que se dan entre conjuntos de entidades, lo cual sería un buen para preferir esta representación antes que tomarlos como atributos o como conjuntos de entidades. Se puede optar por representar entidades débiles como atributos compuestos multivalorados. Pero si la entidad débil participa en otra relación o tiene muchos atributos es preferible manejarla como entidad. En la gráfica se aprecia la forma en que se representan las entidades, las relaciones, los atributos y la cardinalidad de las relaciones. Observaciones: Los nombres de las entidades se escriben en mayúsculas y en singular. Los nombres de los atributos en minúsculas y en singular. Los atributos identificadores se marcan con el símbolo #. Los atributos obligatorios se marcan con * y los opcionales con o. TEMA 2.6 CONJUNTO DE ENTIDADES DEBILES Un conjunto de entidades débiles es aquel que no tiene suficientes atributos para formar una clave primaria. Un conjunto que sí tiene una clave primaria se denomina conjunto de entidades fuertes. Cada conjunto de entidades débiles debe estar asociado con un conjunto de entidades llamado conjunto de entidades identificadoras o propietarias. Así, el conjunto de entidades débiles depende existencialmente del conjunto de entidades identificadoras. La relación que asocia el conjunto de entidades débiles con el conjunto de entidades identificadoras se denomina relación identificadora. La relación identificadora es varios a uno del conjunto de entidades débiles al conjunto de entidades identificadoras y la participación del conjunto de entidades débiles en la relación es total. Aunque un conjunto de entidades débiles no tiene clave primaria, deben hacerse distinguir todas aquellas entidades del conjunto de entidades que dependen de una entidad fuerte particular. El discriminante de un conjunto de entidades débiles es un conjunto de atributos que permiten esta distinción. La clave primaria de un conjunto de entidades débiles se forma con la clave primaria del conjunto de entidades identificadoras, más el discriminante del conjunto de entidades débiles. Un conjunto de entidades débiles se indica en los diagramas E-R mediante un rectángulo dibujado con una línea doble y la correspondiente relación de identificación mediante un rombo dibujado con línea doble. En algunos casos, el diseñador de la base de datos puede elegir expresar un conjunto de entidades débiles como un atributo compuesto multivalorado del conjunto de entidades propietarias. En nuestro ejemplo, el conjunto de entidades identificador para pago es préstamo, y la relación préstamo-pago que asocia las entidades pago con sus correspondientes entidadespréstamo es la relación identificadora. Aunque un conjunto de entidades débiles no tiene clave primaria, no obstante se necesita conocer un medio para distinguir todas aquellas entidades del conjunto de entidades que dependen de una entidad fuerte particular. El discriminante de un conjunto de entidades débiles es un conjunto de atributos que permite que esta distinción se haga. Por ejemplo, el discriminante del conjunto de entidades débiles pago es el atributo númeropago, ya que, para cada préstamo, un número de pago identifica de forma única cada pago para ese préstamo. El discriminante de un conjunto de entidades débiles se denomina la clave parcial del conjunto de entidades. TEMA 2.7 MODELO E-R EXTENDIDO Es un modelo conceptual de datos de alto nivel: Sirve para representar los conceptos del Mundo que nos interesan con sus relaciones y características. Es una herramienta muy utilizada directamente o a través de otras herramientas o programas. El Modelo Entidad-Relación Extendido incluye todos los conceptos del Entidad-Relación e incorpora los conceptos de Subclase y superclase con los conceptos asociados de Especialización y Generalización. Otro nuevo concepto incluido por el ERE es el de Categoría. Asociado a estos conceptos está el importante mecanismo de Herencia de atributos. Habrá que tener en cuenta que no existe una terminología estandarizada para estos conceptos, por lo que usaremos la más difundida. SUBCLASE: Grupo de elementos con algo en común, que pertenecen a una entidad. Ejemplo: Pertenecientes a empleado, tenemos las subclases Ingeniero, Supervisor. SUPERCLASE: Entidad de la que procede una subclase. RELACIÓN: Clase/Subclase(o Superclase/Subclase): Es una relación 1:1 en la que ambos elementos son el mismo. Se suele representar por Ejemplo: Ingeniero Es Empleado. –Una Entidad no puede ser sólo miembro de una subclase. Debe ser también miembro de la superclase. –Una Entidad puede ser miembro de varias subclases. Ejemplo: Un Empleado puede ser Ingeniero y Supervisor. –Una Entidad se define por sus atributos y sus relaciones, los cuales son heredados por sus subclases. –Atributos y Relaciones locales o específicas: Son aquellas que son propias de una subclase (no de la superclase a la que pertenece). ESPECIALIZACIÓN: Proceso para definir un conjunto de subclases de un tipo de Entidad (llamada superclase). –Pueden definirse varias subclases según distintos criterios. Ejemplo: Empleado Tipo de Trabajo: Ingeniero, Técnico... Tipo de Contrato: Fijo, Por Horas...–Deben definirse los atributos y relaciones específicas (si existen). •GENERALIZACIÓN: Proceso inverso a la Especialización. Identificar las características comunes a varios tipos de Entidad y generalizar todas ellas en una superclase, con los tipos de Entidad originales como subclases. Como consecuencia de las restricciones definidas anteriormente, aparecen reglas para la inserción y borrado de Especialización (y Generalización). Algunas de esas reglas son las siguientes: Borrar una tupla de una superclase implica el borrado automático en todas las subclases a las que pertenezca. Insertar una tupla en una superclase implica que tiene que ser obligatoriamente insertada en todas las subclases definidas por predicado en las que satisfaga el predicado de definición. Insertar una tupla en una superclase de una especialización total implica una inserción obligatoria en al menos una de las subclases de la especialización. Existen otras reglas correspondientes a los distintos tipos de especialización y a las operaciones de inserción y borrado. Una categoría es una subclase de la unión de dos o más superclases que pueden tener diferentes claves ya que pueden representar diferentes entidades. En este caso es necesario sintetizar una clave subrogada, que identifique cada una de las ocurrencias de la categoría y que será heredada como clave foránea por cada una de las superclases. Por cuestiones de eficiencia a la hora de realizar los joins entre la categoría y sus correspondientes clases, se añadirá un atributo a la tabla de la categoría que exprese a que subclase pertenece cada túpla en particular. TEMA 2.8 NOTACION UML CON MODELO E-R Los diagramas entidad-relación ayudan a modelar el componente de representación de datos de los sistemas de software. La representación de datos, sin embargo, solo forma parte del diseño global del sistema. otros componentes son los modelos de interacción del usuario con el sistema, la especificación de los módulos funcionales del sistema y su interacción, etc. el lenguaje de modelado unificado, es una norma desarrollada bajo los auspicios del grupo de Administración de Objetos, para la creación de especificaciones de diferentes componentes de los sistemas de software. Algunas partes de UML son: Diagramas de clase. Los diagramas de clase son parecidos a los diagramas ER. Diagramas de caso de uso. Los diagramas de caso de uso muestran la interacción entre los usuarios y el sistema, en especial los pasos de las tareas que llevan a cabo los usuarios (como retirar dinero o matricularse en una asignatura). Diagramas de actividad. Los diagramas de actividad describen el flujo de tareas entre los diferentes componentes del sistema. Diagramas de implementación. Los diagramas de implementación muestran los componentes del sistema y sus interconexiones, tanto en el nivel de los componentes de software como en el de hardware. Aquí no se pretende ofrecer un tratamiento detallado de las diferentes partes del UML, en vez de eso, se ilustraran algunas características de la parte de UML que se relaciona con el modelado de datos mediante ejemplos. Los conjuntos de relaciones binarias se representan en UML dibujando simplemente una línea que conecte los conjuntos de entidades. El nombre del conjunto de relaciones se escribe junto a la línea. También se puede especificar el rol que desempeña cada conjunto de entidades en un conjunto de relaciones escribiendo el nombre del rol sobre la línea, junto al conjunto de entidades. De manera alternativa, se puede escribir el nombre del conjunto de relaciones, y conectar el recuadro con una línea discontinua a la línea que describe el conjunto de relaciones. Este recuadro puede tratar entonces como un conjunto de entidades, de la misma forma que la agregación en los diagramas ER, y puede participar en relaciones con otros conjuntos de entidades. La generalización y la especialización se representan en UML conectando conjuntos de entidades mediante una línea con un triángulo al final correspondiente al conjunto de entidades más general. Por ejemplo, el conjunto de entidades persona es una generalización de cliente y de empleado. Los diagramas UML también pueden representar explícitamente las restricciones de la condición de disyunción y de solapamiento de las generalizaciones.