Unidad II

2.1 El Proceso de Diseño

"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. Sin embargo, se ha progresado mucho en el diseño de bases de datos y éste se considera ahora una disciplina estable, con métodos y técnicas propios. Debido a la creciente aceptación de las bases de datos por parte de la industria y el gobierno en el plano comercial, y a una variedad de aplicaciones científicas y técnicas, el diseño de bases de datos desempeña un papel central en el empleo de los recursos de información en la mayoría de las organizaciones. El diseño de bases de datos ha pasado a constituir parte de la formación general de los informáticos, en el mismo nivel que la capacidad de construir algoritmos usando un lenguaje de programación convencional."
Si usa un proceso de diseño de base de datos establecido, puede crear de forma rápida y efectiva una base de datos bien diseñada que le proporciona acceso conveniente a la información que desea. Con un diseño sólido tardará menos tiempo en construir la base de datos y obtendrá resultados más rápidos y precisos.
Nota   Los términos "base de datos" y "tabla" no son sinónimos. El término base de datos se refiere a una base de datos relacional que almacena información sobre una o más tablas.
La clave para obtener un diseño de base de datos eficaz radica en comprender exactamente qué información se desea almacenar y la forma en que un sistema de administración de bases de datos relacionales, almacena los datos. Para ofrecer información de forma eficiente y precisa, debe tener almacenados los datos sobre distintos temas en tablas separadas. Por ejemplo, puede haber una tabla donde sólo se almacenen datos sobre empleados y otra tabla que sólo contenga datos de ventas.
Al organizar los datos de forma apropiada, proporciona flexibilidad a la base de datos y tiene la posibilidad de combinar y presentar información de muchas formas diferentes.
Al diseñar una base de datos, en primer lugar debe dividir la información que desea almacenar como temas distintos y después indicar cómo se relacionan estos temas para que pueda recuperar la información correcta cuando sea necesario. Si mantiene la información en tablas separadas facilitará la organización y el mantenimiento de los datos y conseguirá aplicaciones de alto rendimiento.
El proceso de diseño consta de los pasos siguientes (pueden variar según la fuente de información):
  • Determinar la finalidad de la base de datos    
Esto le ayudará a estar preparado para los demás pasos.
  • Buscar y organizar la información necesaria    
Reúna todos los tipos de información que desee registrar en la base de datos, como los nombres de productos o los números de pedidos.


  • Dividir la información en tablas    
Divida los elementos de información en entidades o temas principales, como Productos o Pedidos. Cada tema pasará a ser una tabla.
  • Convertir los elementos de información en columnas    
Decida qué información desea almacenar en cada tabla. Cada elemento se convertirá en un campo y se mostrará como una columna en la tabla. Por ejemplo, una tabla Empleados podría incluir campos como Apellido y Fecha de contratación.

No incluir datos calculados.

Almacene la información en sus partes lógicas mas pequeñas

  • Especificar claves principales    
Elija la clave principal de cada tabla. La clave principal es una columna que se utiliza para identificar inequívocamente cada fila, como Id. de producto o Id. de pedido.
  • Definir relaciones entre las tablas    
Examine cada tabla y decida cómo se relacionan los datos de una tabla con las demás tablas. Agregue campos a las tablas o cree nuevas tablas para clarificar las relaciones según sea necesario.
  • Ajustar el diseño    
Analice el diseño para detectar errores. Cree las tablas y agregue algunos registros con datos de ejemplo. Compruebe si puede obtener los resultados previstos de las tablas. Realice los ajustes necesarios en el diseño.
  • Aplicar las reglas de normalización    
Aplique reglas de normalización de los datos para comprobar si las tablas están estructuradas correctamente. Realice los ajustes necesarios en las tablas.

2.2 Modelo Entidad - Relación

1.Un modelo de datos es una colección de herramientas conceptuales para la descripción de datos, relaciones entre datos, semántica de los datos y restricciones de consistencia. Podemos citar dos modelos de datos —el modelo entidad-relación y el modelo relacional.

El modelo entidad-relación (E-R) es un modelo de datos de alto nivel. Está basado en una percepción de un mundo real que consiste en una colección de objetos básicos, denominados entidades, y de relaciones entre estos objetos.

El modelo relacional es un modelo de menor nivel. Usa una colección de tablas para representar tanto los datos como las relaciones entre los datos. Su simplicidad conceptual ha conducido a su adopción general; actualmente, una vasta mayoría de productos de bases de datos se basan en el modelo relacional. Los diseñadores formulan generalmente el diseño del esquema de la base de datos modelando primero los datos en alto nivel, usando el modelo E-R, y después traduciéndolo al modelo relacional.

Otro modelo de datos es el orientado a objetos, por ejemplo, extiende la representación de entidades añadiendo nociones de encapsulación, métodos (funciones) e identidad de objeto. El modelo de datos relacional orientado a objetos combina características del modelo de datos orientado a objetos y del modelo de datos relacional.

Se desarrolló para facilitar el diseño de bases de datos permitiendo la especificación de un esquema de la empresa que representa la estructura lógica completa de una base de datos. El modelo de datos E-R es uno de los diferentes modelos de datos semánticos; el aspecto semántico del modelo yace en la representación del significado de los datos. El modelo E-R es extremadamente útil para hacer corresponder los significados e interacciones de las empresas del mundo real con un esquema conceptual. Debido a esta utilidad, muchas herramientas de diseño de bases de datos se basan en los conceptos del modelo E-R.

Hay tres nociones básicas que emplea el modelo de datos E-R: conjuntos de entidades, conjuntos de relaciones y atributos.

Una entidad es una «cosa» u «objeto» en el mundo real que es distinguible de todos los demás objetos. Por ejemplo, cada persona en un desarrollo es una entidad. Una entidad tiene un conjunto de propiedades, y los valores para algún conjunto de propiedades pueden identificar una entidad de forma unívoca. Por ejemplo, el D.N.I. 67.789.901 identifica unívocamente una persona particular en la empresa. Análogamente, se puede pensar en los préstamos bancarios como entidades, y un número de préstamo P-15 en la sucursal de Castellana identifica unívocamente una entidad de réstamo. Una entidad puede ser concreta, como una persona o un libro, o puede ser abstracta, como un préstamo, unas vacaciones o un concepto.

Un conjunto de entidades es un conjunto de entidades del mismo tipo que comparten las mismas propiedades, o atributos.

El conjunto de todas las personas que son clientes en un banco dado, por ejemplo, se pueden definir como el conjunto de entidades cliente.

Las entidades individuales que constituyen un conjunto se llaman la extensión del conjunto de entidades. Así, todos los clientes de un banco son la extensión del conjunto de entidades cliente.

Una entidad se representa mediante un conjunto de atributos. Los atributos describen propiedades que posee cada miembro de un conjunto de entidades. La designación de un atributo para un conjunto de entidades expresa que la base de datos almacena información similar concerniente a cada entidad del conjunto de entidades; sin embargo, cada entidad puede tener su propio valor para cada atributo. Posibles atributos del conjunto de entidades cliente son id-cliente, nombre-cliente, calle-cliente y ciudad-cliente. En la vida real, habría más atributos, tales como el número de la calle, el número del portal, la provincia, el código postal, y la comunidad autónoma, pero no se incluyen en el ejemplo simple. Posibles atributos del conjunto de entidades préstamo son número-préstamo e importe.

Para cada atributo hay un conjunto de valores permitidos, llamados el dominio, o el conjunto de valores, de ese atributo. El dominio del atributo nombrecliente podría ser el conjunto de todas las cadenas de texto de una cierta longitud. Análogamente, el dominio del atributo número-préstamo podría ser el conjunto de todas las cadenas de la forma «P-n», donde n es un entero positivo.

Ejemplo:
Entidad: Empleado
Nombre de atributo: Código
• Descripción: Código único por empleado
asignado por la empresa
• Función: Identificación (+Definición)
• Dominio: Números positivos de dos cifras

Atributos monovalorados y multivalorados. Los atributos que se han especificado en los ejemplos tienen todos un valor sólo para una entidad concreta. Por ejemplo, el atributo número-préstamo para una entidad préstamo específico, referencia a un único número de préstamo. Tales atributos se llaman monovalorados. Puede haber ocasiones en las que un atributo tiene un conjunto de valores para una entidad específica. Considérese un conjunto de entidades empleado con el atributo número-teléfono. Cualquier empleado particular puede tener cero, uno o más números de teléfono. Este tipo de atributo se llama multivalorado. En ellos, se pueden colocar apropiadamente límites inferior y superior en el número de valores en el atributo multivalorado.

Como otro ejemplo, un atributo nombresubordinado del conjunto de entidades empleado sería multivalorado, ya que un empleado en concreto podría tener cero, uno o más subordinados.

Cuando sea apropiado se pueden establecer límites superior e inferior en el número de valores de un atributo multivalorado. Por ejemplo, un banco puede limitar el número de números de teléfono
almacenados para un único cliente a dos. Colocando límites en este caso, se expresa que el atributo número-teléfono del conjunto de entidades cliente puede tener entre cero y dos valores.

Considérese que el conjunto de entidades empleado tiene un atributo edad, que indica la edad del cliente. Si el conjunto de entidades cliente tiene también un atributo fechade-nacimiento, se puede calcular edad a partir de fecha-de-nacimiento y de la fecha actual. Así, edad es un atributo derivado.

Un atributo toma un valor nulo cuando una entidad no tiene un valor para un atributo. El valor nulo también puede indicar «no aplicable», es decir, que el valor no existe para la entidad. Por ejemplo, una persona puede no tener segundo nombre de pila. Nulo puede también designar que el valor de un atributo es desconocido. Un valor desconocido puede ser, bien perdido (el valor existe pero no se tiene esa información) o desconocido (no se conoce si el valor existe realmente o no).

Por ejemplo, si el valor nombre para un cliente particular es nulo, se asume que el valor es perdido, ya que cada cliente debe tener un nombre. Un valor nulo para el atributo piso podría significar que la dirección no incluye un piso (no aplicable), que existe piso pero no se conoce cuál es (perdido), o que no se sabe si el piso forma parte o no de la dirección del cliente (desconocido).

Una relación es una asociación entre diferentes entidades. Por ejemplo, se puede definir una relación que asocie al cliente López con el préstamo P-15. Esta relación especifica que López es un cliente con el préstamo número P-15. Un conjunto de relaciones es un conjunto de relaciones del mismo tipo. Formalmente es una relación matemática con n > = 2 de conjuntos de entidades (posiblemente no distintos). Si E1, E2,…,En son conjuntos de entidades, entonces un conjunto de relaciones R es un subconjunto de:

{(e1, e2,…,en) | e1 ∈ E1, e2 ∈ E2,…,en ∈ En}
donde (e1,e2,…en) es una relación.

Considérense las dos entidades cliente y préstamo. Se define el conjunto de relaciones prestatario para denotar la asociación entre clientes y préstamos bancarios que los clientes tengan. Esta asociación se describe en la siguiente figura:



La función que desempeña una entidad en una relación se llama papel de la entidad. Debido a que los conjuntos de entidades que participan en un conjunto de relaciones son generalmente distintos, los papeles están implícitos y no se especifican normalmente. Sin embargo, son útiles cuando el significado de una relación necesita aclaración. Tal es el caso cuando los conjuntos de entidades de una relación no son distintos; es decir, el mismo conjunto de entidades participa en una relación más de una vez con diferentes papeles. En este tipo de conjunto de relaciones, que se llama algunas veces conjunto de relaciones recursivo, es necesario hacer explícitos los papeles para especificar cómo participa una entidad en un ejemplar de relación. Por ejemplo, considérese una conjunto de entidades empleado que almacena información acerca de todos los empleados del banco. Se puede tener un conjunto de relaciones trabaja-para que se modela mediante pares ordenados de entidades empleado. El primer empleado de un par toma el papel de trabajador, mientras el segundo toma el papel de jefe. De esta manera, todas las relaciones
trabaja-para son pares (trabajador, jefe); los pares (jefe, trabajador) están excluidos.


El número de conjuntos de entidades que participan en un conjunto de relaciones es también el grado del conjunto de relaciones. Un conjunto de relaciones binario tiene grado 2; un conjunto de relaciones ternario tiene grado 3.

Otro ejemplo:

Una relación tiene sentido al expresar las entidades que relaciona. En el ejemplo anterior, un huesped(entidad), se aloja(relación) en una habitacion(entidad).

Dados los conjuntos de entidades "Habitación" y "Huésped", todas las relaciones de la forma habitación-huésped, permiten obtener la información de los huéspedes y sus respectivas habitaciones.

La dependencia o asociación entre los conjuntos de entidades es llamada participación. En el ejemplo anterior los conjuntos de entidades "Habitación" y "Huésped" participan en el conjunto de relaciones habitación-huésped.


2.3 Restricciones

Una restricción es una condición que obliga el cumplimiento de ciertas condiciones en la base de datos. Algunas no son determinadas por los usuarios, sino que son inherentemente definidas por el simple hecho de que la base de datos sea relacional. Algunas otras restricciones las puede definir el usuario, por ejemplo, usar un campo con valores enteros entre 1 y 10.

Las restricciones proveen un método de implementar reglas en la base de datos. Las restricciones restringen los datos que pueden ser almacenados en las tablas. Usualmente se definen usando expresiones que dan como resultado un valor booleano, indicando si los datos satisfacen la restricción o no.

Las restricciones no son parte formal del modelo relacional, pero son incluidas porque juegan el rol de organizar mejor los datos.

Un esquema de desarrollo E-R puede definir ciertas restricciones a las que los contenidos de la base de datos se deben adaptar.

Examinemos la correspondencia de cardinalidades y las restricciones de participación, que son dos de los tipos más importantes de restricciones.

La correspondencia de cardinalidades, o razón de cardinalidad, expresa el número de entidades a las que otra entidad puede estar asociada vía un conjunto de relaciones.

Uno a uno. Una entidad en A se asocia con a lo sumo una entidad en B, y una entidad en B se asocia con a lo sumo una entidad en A.


Ej. Una persona tiene un coche y un coche es de una sola persona.

Uno a varios. Una entidad en A se asocia con cualquier número de entidades en B (ninguna o varias). Una entidad en B, sin embargo, se puede asociar con a lo sumo una entidad en A

Ej. Una persona tiene varios coches y un coche es de una sola persona.

Varios a uno. Una entidad en A se asocia con a lo sumo una entidad en B. Una entidad en B, sin embargo, se puede asociar con cualquier número de entidades (ninguna o varias) en A

 Ej. Una persona tiene un coche y un coche es de varias personas. 

Varios a varios. Una entidad en A se asocia con cualquier número de entidades (ninguna o varias) en B, y una entidad en B se asocia con cualquier número de entidades (ninguna o varias) en A.

Ej. Una persona tiene varios coches y un coche es de varias personas. 

Como ilustración considérese el conjunto de relaciones prestatario. Si en un banco particular un préstamo puede pertenecer únicamente a un cliente y un cliente puede tener varios préstamos, entonces el conjunto de relaciones de cliente a préstamo es uno a varios. Si un préstamo puede pertenecer a varios clientes (como préstamos que se toman en conjunto por varios socios de un negocio) el conjunto de relaciones es varios a varios.

Restricciones Parciales

La participación de un conjunto de entidades E en un conjunto de relaciones R se dice que es total si cada entidad en E participa al menos en una relación en R. Si sólo algunas entidades en E participan en relaciones en R, la participación del conjunto de entidades E en la relación R se llama parcial. Por ejemplo, se puede esperar que cada entidad préstamo esté relacionada con al primamenos un cliente mediante la relación prestatario. Por lo tanto, la participación de préstamo en el conjunto de relaciones prestatario es total. En cambio, un individuo puede ser cliente de un banco tenga o no tenga un préstamo en el banco. Así, es posible que sólo algunas de las entidades cliente estén relacionadas con el conjunto de entidades préstamo mediante la relación prestatario, y la participación de cliente en el conjunto de relaciones prestatario es por lo tanto parcial.

Tiempo de TAREA, ups!!!!!!!, revisar el partado de tareas y elaborar la nùmero 3.


2.4 Diagramas E-R
2.5 Diseño con Diagramas E-R

La estructura lógica de una Base de Datos se puede representar graficamente a través de un diagrama, el cual llamaremos Diagrama E-R. Estos diagramas se apoyan de diferentes símbolos los cuales tienen un significado particular. Los diagramas se usan para que la información se presente de forma clara y sencilla. Los componentes principales son:

Breve recordatorio:

Entidad: Representa un objeto que tiene vida propia en el sistema que se está modelando, tanto tangible como intangibles. Ejemplo: cliente, producto, estudiante, vacación.

Conjunto de entidades: Grupo (conjunto) de entidades del mismo tipo. Ejemplo: Todos los estudiantes de un curso, representan el conjunto de entidades estudiante.

Relación: Asociación o vinculación entre dos o más entidades. Ejemplo: La relación comprar entre las entidades cliente y producto. Generalmente representa acciones entre las entidades.

Conjunto de relaciones: Son relaciones del mismo tipo.

Atributos: Características o propiedades asociadas al conjunto de entidades o relaciones y que toman valor en una entidad en particular. Ejemplo: nombre, cédula, teléfono. Los posibles valores puede tomar un atributo para un conjunto de entidades se denomina dominio.

Los atributos se pueden clasificar en:
- Simples o atómicos: Son aquellos que no contienen otros atributos
- Compuestos: Son los que incluyen otros atributos simples.. Ejemplo: dirección (Se puede dividir en calle, número, ciudad).
- Monovalorados o Univalorados: Atributo que toma un solo valor, para una entidad en particular.
- Multivalorados: Atributo que para una misma entidad puede tomar muchos valores.
- Derivados o calculados: Son aquellos atributos cuyos valores se pueden conseguir con operaciones sobre valores de otros atributos.
- Nulos: Son aquellos atributos para los cuales en algún momento no existe o no se conoce su valor. 

Diagrama Entidad - Relación.

Es la representación gráfica del Modelo Entidad-Relación y permite ilustrar la estructura de la base de datos del negocio modelado.
 
Escribe Johnson "los diagramas ER constituyen una notación para documentar un diseño tentativo de bases de datos. Los analistas los utilizan para facilitar el proceso de diseño" [Joh00].

Está compuesto por los siguientes elementos.
• Rectángulos: representan conjuntos de entidades.
• Elipses: representan atributos.
• Rombos: representan relaciones.
• Líneas: unen atributos a conjuntos de entidades y conjuntos de entidades a conjuntos de relaciones.
• Elipses dobles: representan atributos multivalorados.
• Elipses discontinuas: que denotan atributos derivados.
• Líneas dobles: indican participación total de una entidad en un conjunto de relaciones.
• Rectángulos dobles: representan conjuntos de entidades débiles.
Tomaremos el ejemplo del Libro, Fundamentos de Bases de Datos

Considérese el diagrama entidad-relación de la siguiente figura, que consta de dos conjuntos de entidades, cliente y préstamo, relacionadas a través de un conjunto de relaciones binarias prestatario. Los atributos asociados con cliente son id-cliente, nombre-cliente, calle-cliente, y ciudad-cliente. Los atributos asociados con préstamo son número-préstamo e importe. Como se muestra en la figura, los atributos de un conjunto de entidades que son miembros de la clave primaria están subrayados. El conjunto de relaciones prestatario puede ser varios a varios, uno a varios, varios a uno o uno a uno. Para distinguir entre estos tipos, se dibuja o una línea dirigida (→) o una línea no dirigida (—) entre el conjunto de relaciones y el conjunto de entidades en cuestión.



 • Una línea dirigida desde el conjunto de relaciones prestatario al conjunto de entidades préstamo especifica que prestatario es un conjunto de relaciones uno a uno, o bien varios a uno, desde cliente a préstamo; prestatario no puede ser un conjunto de relaciones varios a varios ni uno a varios, desde cliente a préstamo.

• Una línea no dirigida desde el conjunto de relaciones prestatario al conjunto de relaciones préstamo especifica que prestatario es o bien un conjunto de relaciones varios a varios, o bien uno a
varios, desde cliente a préstamo. Volviendo al diagrama E-R de la figura anterior, se ve que el conjunto de relaciones prestatario es varios a varios.

Si el conjunto de relaciones prestatario fuera uno a varios, desde cliente a préstamo, entonces la línea desde prestatario a cliente sería dirigida, con una flecha apuntando al conjunto de entidades cliente.


 Si el conjunto de relaciones prestatario fuera varios a uno desde cliente a préstamo, entonces la línea desde prestatario a préstamo tendría una flecha apuntando al conjunto de entidades préstamo.


 Si el conjunto de relaciones prestatario fuera uno a uno, entonces ambas líneas desde prestatario tendrían flechas: una apuntando al conjunto de entidades préstamo y otra apuntando al conjunto de entidades cliente

 
 Diagrama E-R con un atributo unido a un conjunto de relaciones.

   Diagrama E-R con atributos compuestos, multivalorados y derivados.


 Diagrama E-R con indicadores de papeles.

 Los conjuntos de relaciones no binarias se pueden especificar fácilmente en un diagrama E-R. La siguiente figura consta de tres conjuntos de entidades cliente, trabajo y sucursal, relacionados a través del conjunto de relaciones trabaja-en. Se pueden especificar algunos tipos de relaciones varios a uno en el caso de conjuntos de relaciones no binarias. Supóngase un empleado que tenga a lo sumo un trabajo en cada sucursal (por ejemplo, Santos no puede ser director y auditor en la misma sucursal). Esta restricción se puede especificar con una flecha apuntando a trabajo en el borde de trabaja-en.


 Límites de cardinalidad en conjuntos de relaciones.


Veamos otra forma de poder representar las relaciones:




2.6 Conjunto de entidades débiles

Las entidades que hemos considerado hasta ahora tienen un conjunto de atributos que forman su claves primarias y que permiten identificarlas completamente. Estas entidades se denominan, de forma más específica, entidades fuertes. En este subapartado consideraremos otro tipo de entidades que denominaremos entidades débiles.

Una entidad débil es una entidad cuyos atributos no la identifican completamente, sino que sólo la identifican de forma parcial. Esta entidad debe participar en una interrelación que ayuda a identificarla.

Una entidad débil se representa con un rectángulo doble, y la interrelación que ayuda a identificarla se representa con una doble línea.
 
Para que un conjunto de entidades débiles tenga sentido, debe estar asociada con otro conjunto de entidades, denominado el conjunto de entidades identificadoras o propietarias. Cada entidad débil debe estar asociada con una entidad identificadora; es decir, se dice que el conjunto de entidades débiles depende existencialmente del conjunto de entidades identificadoras. Se dice que el conjunto de entidades identificadoras es propietaria del conjunto de entidades débiles que identifica. 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.

Ejemplo: Consideremos las entidades edificio y despacho de la figura siguiente. Supongamos que puede haber despachos con el mismo número en edificios diferentes. Entonces, su número no identifica completamente un despacho. Para identificar completamente un despacho, es necesario tener en cuenta en qué edificio está situado. De hecho, podemos identificar un despacho mediante la interrelación situación, que lo asocia a un único edificio. El nombre del edificio donde está situado junto con el número de despacho lo identifican completamente.


La interrelación situación nos ha permitido completar la identificación de los despachos. Para toda entidad débil, siempre debe haber una única interrelación que permita completar su identificación. Esta interrelación debe ser binaria con conectividad 1:N, y la entidad débil debe estar en el lado N. De este modo, una ocurrencia de la entidad débil está asociada con una sola ocurrencia de la entidad del lado 1, y será posible completar su identificación de forma única. Además, la entidad del lado 1 debe ser obligatoria en la interrelación porque, si no fuese así, alguna ocurrencia de la entidad débil podría no estar interrelacionada con ninguna de sus ocurrencias y no se podría identificar completamente. 

Veamos y anilicemos el siguiente ejemplo:

El discriminante de un conjunto de entidades débiles es un conjunto de atributos que permite que sea distinguido. Por ejemplo, el discriminante del conjunto de entidades débiles pago es el atributo número-pago, 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. 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. En el caso del conjunto de entidades pago, su clave primaria es {número-préstamo, número-pago}, donde número-préstamo es la clave primaria del conjunto de entidades identificadoras, es decir, préstamo, y número-pago distingue las entidades pago dentro del mismo préstamo.




Observe el siguiente modelo E-R y analicelo:
 

2.7 Modelo E-R extendido 

En algunos casos, hay ocurrencias de una entidad que tienen características propias específicas que nos interesa modelizar. Por ejemplo, puede ocurrir que se quiera tener constancia de qué coche de la empresa tienen asignado los empleados que son directivos; también que, de los empleados técnicos, interese tener una interrelación con una entidad proyecto que indique en qué proyectos trabajan y se desee registrar su titulación. Finalmente, que convenga conocer la antigüedad de los empleados administrativos. Asímismo, habrá algunas características comunes a todos los empleados: todos se identifican por un DNI, tienen un nombre, un apellido, una dirección y un número de teléfono.

La generalización/especialización permite reflejar el hecho de que hay una entidad general, que denominamos entidad superclase, que se puede especializar en entidades subclase:

a) La entidad superclase nos permite modelizar las características comunes de la entidad vista de una forma genérica.
 
b) Las entidades subclase nos permiten modelizar las características propias de sus especializaciones.

Es necesario que se cumpla que toda ocurrencia de una entidad subclase sea también una ocurrencia de su entidad superclase.

Denotamos la generalización/especialización con una flecha que parte de las entidades subclase y que se dirige a la entidad superclase.

Ejemplo de entidades superclase y subclase

En la figura siguiente están representadas la entidad superclase, que corresponde al empleado del ejemplo anterior, y las entidades subclase, que corresponden al directivo, al técnico y al administrativo del mismo ejemplo.



En la generalización/especialización, las características (atributos o interrelaciones) de la entidad superclase se propagan hacia las entidades subclase. Es lo que se denomina herencia de propiedades.

En el diseño de una generalización/especialización, se puede seguir uno de los dos procesos siguientes:

1)  Puede ocurrir que el diseñador primero identifique la necesidad de la entidad superclase y, posteriormente, reconozca las características específicas que hacen necesarias las entidades subclase. En estos casos se dice que ha seguido un proceso de especialización.

2)  La alternativa es que el diseñador modelice en primer lugar las entidades subclase y, después, se dé cuenta de sus características comunes e identifique la en- tidad superclase. Entonces se dice que ha seguido un proceso de generalización.

La generalización/especialización puede ser de dos tipos:

a)  Disjunta. En este caso no puede suceder que una misma ocurrencia apa rezca en dos entidades subclase diferentes. Se denota gráficamente con la etiqueta D.

b)  Solapada. En este caso no tiene lugar la restricción anterior. Se denota gráficamente con la etiqueta S.

Además, una generalización/especialización también puede ser:

1)  Total. En este caso, toda ocurrencia de la entidad superclase debe pertenecer a alguna de las entidades subclase. Esto se denota con la etiqueta T.

2)  Parcial. En este caso no es necesario que se cumpla la condición anterior. Se denota con la etiqueta P.



La generalización/especialización de los empleados es total porque suponemos que todo empleado debe ser directivo, técnico o administrativo. Se denota con la etiqueta T.

Notaciones usadas en el Modelo E-R

Notaciones del Modelo E-R alternativas

Tarea: Lectura del tema 2.7 Características del modelo E-R Extendido del libro Fundamentos de Bases de Datos de Abraham Silberschatz

2.8 Otros aspectos del diseño de bases de datos

Lectura del tema 2.8 Diseño de un esquema de Bases de Datos E-R, del libro Fundamentos de Bases de Datos de Abraham Silberschatz. 

Reducción de diagramas E-R a tablas

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.

La transformación de nuestro ejemplo Venta en la que intervienen las entidades de Vendedor con los atributos RFC, nombre, puesto, salario y Artículo con los atributos Clave, descripción, costo.
Cuyo diagrama E-R es el siguiente:





Nótese que en la tabla de relación - Venta -, contiene como atributos a las llaves primarias de las entidades que intervienen en dicha relación, en caso de que exista un atributo en las relaciones, este atributo es anexado como una fila más de la tabla.

Por ejemplo si anexamos el atributo fecha a la relación venta, la tabla que se originaria sería la siguiente:


Reglas que se deben seguir para poder crear dicho esquema.

Modelo e-r conversión a tablas
  • una tabla por cada conjunto de entidades
    • nombre de tabla = nombre de conjunto de entidades
  • una tabla por cada conjunto de relaciones m-m
    • nombre de tabla = nombre de conjunto de relaciones
  • definición de columnas para cada tabla
    • conjuntos fuertes de entidades
      • columnas = nombre de atributos
    • conjuntos débiles de entidades
      • columnas = llave_primaria (dominante) U atributos(subordinado)
    • conjunto de relaciones R (m-m) entre A, B
      • columnas (R) = llave_primaria (A) U llave_primaria (B) U atributos(R)
    • conjunto de relaciones R (1-1) entre A y B
      • columnas (A) = atribs(A) U llave primaria(B) U atributos(R)
    • conjunto de relaciones R (1-m) entre A y B
      • columnas (B) = atribs(B) U llave primaria(A) U atributos(R)

Lectura del tema 2.9 Reducción de un esquema E-R a Tablas, del libro Fundamentos de Bases de Datos de Abraham Silberschatz.

2.9 La Notación E-R con UML 

Los diagramas entidad-relación ayudan a modelar el componente de representación de datos de un sistema software. La representación de datos, sin embargo, sólo forma parte de un diseño completo de un sistema. Otros componentes son modelos de interacción del usuario con el sistema, especificación de módulos funcionales del sistema y su interacción, etc. El lenguaje de modelado unificado (UML, Unified Modeling Language) es un estándar propuesto para la creación de especificaciones de varios componentes de un sistema software. Algunas de las partes de UML son:
Diagrama de clase. Un diagrama de clase es similar a un diagrama E-R. Más adelante en este apartado se mostrarán algunas características de los diagramas de clase y cómo se corresponden con los diagramas E-R.

Diagrama de caso de uso. Los diagramas de caso de uso muestran la interacción entre los usuarios y el sistema, en particular los pasos de las tareas que realiza el usuario (tales como prestar dinero o matricularse de una asignatura).

Diagrama de actividad. Los diagramas de actividad describen el flujo de tareas entre varios componentes de un sistema.

Diagrama de implementación. Los diagramas de implementación muestran los componentes del sistema y sus interconexiones tanto en el nivel del componente software como el hardware.
La figura siguiente muestra varios constructores de diagramas E-R y sus constructores equivalentes de los diagramas de clase UML. Más abajo se describen estos constructores. UML muestra los conjuntos de entidades como cuadros y, a diferencia de E-R, muestra los atributos dentro del cuadro en lugar de como elipses separadas. UML modela realmente objetos, mientras que E-R modela entidades. Los objetos son como entidades y tienen atributos, pero además proporcionan un conjunto de funciones (denominadas métodos) que se pueden invocar para calcular valores en términos de los atributos de los objetos, o para modificar el propio objeto. Los diagramas de clase pueden describir métodos además de atributos.

Los conjuntos de relaciones binarias se representan en UML dibujando simplemente una línea que conecte los conjuntos de entidades. Se escribe el nombre del conjunto de relaciones adyacente a la línea. También se puede especificar el papel que juega un conjunto de entidades en un conjunto de relaciones escribiendo el nombre del papel en un cuadro, junto con los atributos del conjunto de relaciones, y conectar el cuadro con una línea discontinua a la línea que describe el conjunto de relaciones. Este cuadro se puede tratar entonces como un conjunto de entidades, de la misma forma que una agregación en los diagramas E-R puede participar en relaciones con otros conjuntos de entidades. La relaciones no binarias no se pueden representar directamente en UML se deben convertir en relaciones binarias (vease Apartado 2.4.3). Las restricciones de cardinalidad se especifican en UML de la misma forma que en los diagramas E-R, de la forma i..s, donde i denota el mínimo y s el máximo número de relaciones en que puede participar una entidad. Sin embargo, se debería ser consciente que la ubicación de las restricciones es exactamente el inverso de la ubicación de las restricciones en los diagramas E-R, como muestra la figura. La restricción 0..* en el lado E2 y 0..1 en el lado E1 significa que cada entidad.



4 comentarios: