viernes, 23 de septiembre de 2011

El uso de los objetos complejos estructurados, los no estructurados y la extensibilidad de tipos

Manejo de Objetos Complejos:


Los objetos se consideran complejos porque requieren un área de almacenamiento sustancial y no forman parte de los tipos de datos estándar que suelen ofrecer los SGBD. Puesto que el tamaño de los objetos es considerable, un SGBD podría obtener una porción del objeto y proporcionarla al programa de aplicación antes de obtener todo el objeto. El SGBD podría también usar técnicas de almacenamiento intermedio y caché para obtener por anticipado porciones del objeto, antes de que el programa de aplicación necesite tener acceso a ellas.
En un SGBOO, esto puede lograrse definiendo un nuevo tipo de datos abstracto para los objetos no interpretados y suministrados los métodos para seleccionar, comprar y exhibir tales objetos.
Como un SGBOO permite a los usuarios crear nuevos tipos, y como un tipo incluye tanto estructura como operaciones, podemos considerar que un SGBOO tiene un sistema de tipos extensibles. Podemos crear bibliotecas  de nuevos tipos definiendo su estructura y operaciones, incluso con tipos complejos.
Muchos SGBDOO pueden almacenar y obtener objetos no estructurados extensos en forma de cadenas y caracteres o de bits, que se pueden pasar “tal cual” al programa de aplicación para que las interprete.
Es posible almacenar y manipular objetos complejos tanto estructurados como no estructurados.

Objeto Estructurado: Permiten la estructuración completa, representando sus atributos de manera directa compuestos por los diagramas ER. Tiene los métodos bien definidos sobre él. Se definen aplicando los constructores.

Objeto No Estructurado: El objeto no esta completamente diseñado, tiene sus atributos y métodos, pueden pasar ¨tal cual¨ al programa de aplicación para que lo ejecute.

 La extensibilidad de tipos:

En una base de datos orientada a objetos, la extensibilidad de tipos es aquel que proporciona los tipos de datos como: Caracter, booleano, String, int, float, etc. Que permiten con ello, saber el tipo de datos con el cual se va a trabajar en la base de datos. La extensibilidad de tipos permite la definición de los datos para su posterior uso adecuado.


BIBLIOGRAFIA:

jueves, 22 de septiembre de 2011

El diseño de bases de datos OO por transformación EER-OO


Para el diseño de base de dato orientado a objetos por medio de la transformación entidad relación extensa orientada a objetos se puede resumir en los siguientes pasos:

Primero: 
Para cada clase Entidad Relación Extendido, se crea una clase OO. El tipo de la clase OO debe incluir todos los atributos de la clase EER. Si los valores del atributo multivaluado deben estar ordenados se usa el contructor de lista, si están permitidos los duplicados, el constructor de bolsa y si los atributos son compuestos, con el constrcutor de tuplas.

Segundo: Se debe añadir atributos de referencia para cada vínculo binario. Los atributos pueden estar en una dirección como también en ambas. Serán monovaluados para los vínculos 1:1 o N:1 y con valor de conjunto o con valor de lista con 1:N o M:N.

Tercero: Se debe incluir métodos apropiados para cada clase, los cuales no esta disponibles en el esquema EER. Por ellos se debe agregar al diseño de la base de datos.

Cuarto: Una subclase heredará el tipo y los métodos de sus superclases.

Quinto: Las entidades débiles que no están incluidos en otros vínculos se pueden transformar como si atributos multivaluados compuestos del tipo de entidades propietario.

Sexto: Los objetos que tienen mas de 2 vínculos se transforman a un tipo de objetos aparte con las respectivas referencias alos objetos participantes.

SGBDOO (Sistema Gestor de Base de Datos Orientada a Objetos)

¿Qué es un SGBDOO?


Las bases de datos de objetos están diseñadas para simplificar la programación orientada a objetos. Almacenan los objetos directamente en la base de datos, y emplean las mismas estructuras y relaciones que los lenguajes de programación orientados a objetos.
Un SGBDOO es un sistema de objetos y un sistema de bases de datos. Se puede entonces decir que un SGBDOO es un SGBD que almacena objetos, permitiendo concurrencia, recuperación.
Para los usuarios tradicionales de bases de datos, esto quiere decir que pueden tratar directamente con objetos, no teniendo que hacer la traducción a tablas o registros.
Para los programadores de aplicaciones, esto quiere decir que sus objetos se conservan, pueden ser gestionados aunque su tamaño sea muy grande, pueden ser compartidos entre múltiples usuarios, y se mantienen tanto su integridad como sus relaciones.  Las bases de datos tradicionales almacenan sólo datos, mientras que las bases de datos orientadas a objetos almacenan objetos, con una estructura arbitraria y un comportamiento. Una simple metáfora (Esther Dyson) ayuda a ilustrar la diferencia entre ambos modelos.

Característica de una SGBDOO:


Algunos SGBDOO:

  • Suse Linux
  • MySQL
  • Microsoft SQL Server 
  • Sistema de Red – Samba
  • Servidor Web- Apache
  • Oracle


ORACLE

Oracle es un sistema de gestión de base de datos objeto-relacional (o ORDBMS por el acrónimo en inglés de Object-Relational Data Base Management System), desarrollado por Oracle Corporation.
Se considera a Oracle como uno de los sistemas de bases de datos más completos, destacando:
  • soporte de transacciones,
  • estabilidad,
  • escalabilidad y
  • Soporte multiplataforma.
Su dominio en el mercado de servidores empresariales ha sido casi total hasta hace poco, recientemente sufre la competencia del Microsoft SQL Serverde Microsoft y de la oferta de otros RDBMS con licencia libre como PostgreSQL, MySql o Firebird. Las últimas versiones de Oracle han sido certificadas para poder trabajar bajo GNU/Linux.

Microsoft SQL Server:


Microsoft SQL Server es un sistema para la gestión de bases de datos producido por Micrsoft basado en el modelo relacional. Sus lenguajes para consultas son T-SQL y ANSI SQL. 


Características:

  • Soporte de transacciones.
  • Escalabilidad, estabilidad y seguridad.
  • Soporta procedimientos almacenados.
  • Incluye también un potente entorno gráfico de administración, que permite el uso de comandos DDL y DML gráficamente.
  • Permite trabajar en modo cliente-servidor, donde la información y datos se alojan en el servidor y los terminales o clientes de la red sólo acceden a la información.
  • Además permite administrar información de otros servidores de datos.
Este sistema incluye una versión reducida, llamada MSDE con el mismo motor de base de datos pero orientado a proyectos más pequeños, que en sus versiónes 2005 y 2008 pasa a ser el SQL Express Edition, que se distribuye en forma gratuita.
Es común desarrollar completos proyectos complementando Microsoft SQL Server y Microsoft Access a través de los llamados ADP (Access Data Project). De esta forma se completa la base de datos (Microsoft SQL Server), con el entorno de desarrollo (VBA Access), a través de la implementación de aplicaciones de dos capas mediante el uso de formularios Windows.
En el manejo de SQL mediante líneas de comando se utiliza el SQLCMD
Para el desarrollo de aplicaciones más complejas (tres o más capas), Microsoft SQL Server incluye interfaces de acceso para varias plataformas de desarrollo, entre ellas .NET, pero el servidor sólo está disponible para Sistemas Operativos Windows.

Las jerarquías de tipos, de clases y herencia


Jerarquía de clases

En una base de datos existen objetos que responden a los mismos mensajes, utilizan los mismos métodos y tienen variables del mismo nombre y tipo. Sería inútil definir cada uno de estos objetos por separado por lo tanto se agrupan los objetos similares para que formen una clase, a cada uno de estos objetos se le llama instancia de su clase. Todos los objetos de su clase comparten una definición común, aunque difieran en los valores asignados a las variables.
Así que básicamente las bases de datos orientados a objetos tienen la finalidad de agrupar aquellos elementos que sean semejantes en las entidades para formar un clase, dejando por separado aquellas que no lo son en otra clase.

Por ejemplo: Retomemos la relación alumno-cursa-materia agregándole la entidad maestro; donde los atributos considerados para cada uno son alumno: Nombre, Dirección, Teléfono, Especialidad, Semestre, Grupo; Maestro: Nombre, Dirección, Teléfono, Número económico, Plaza, RFC; Materia: Nombre, Créditos, Clave.
   
Los atributos de nombre, dirección y teléfono se repiten en la entidad alumno y maestro, así que podemos agrupar estos elementos para formar la clase Persona con dichos campos. Quedando por separado en alumno: Especialidad, semestre, Grupo. Y en maestro: Número económico, Plaza y RFC; la materia no entra en la agrupación (Clase persona) ya que la clase específica los datos de solo personas, así que queda como clase materia.

JERARQUIA DE TIPOS Y HERENCIA

Los esquemas de BDOO suelen necesitar un gran número de clases. Sin embargo, varias clases son parecidas entre sí.
Para permitir la representación directa de parecidos entre las clases, hay que ubicarlas en una jerarquía de especializaciones. El concepto de jerarquía de clases es parecido al de especialización del modelo E-R. Las especializaciones de las clases son denominadas subclases; lo cual especifica atributos y métodos adicionales para una clase existente. Los objetos creados por medio de una sub clases heredan todos los atributos y  métodos de la clase padre. Algunas de estas características heredadas pueden ellas mismas haber sido heredadas de clases más altas en la jerarquía.  Ejemplo:


Ejemplo: (Grafico)
Class persona {
          string nombre;
          strin  dirección;
};
Class cliente isa persona {
          int interés-prestamo;
};
Class empleado isa persona{
          date fecha de alta;
          int  sueldo;
};
Class  secretaria isa empleado {
           int  velocidad;
           int horas-trabajadas


Herencia:


las clases en un sistema orientado a objetos se representan en forma jerárquica como en el diagrama anterior, así que las propiedades o características del elemento persona las contendrán (heredaran) los elementos alumno y maestro. Decimos que tanto la entidad Alumno y maestro son subclases de la clase persona este concepto es similar al utilizado en la de especialización (la relación ISA) del modelo E-R.
Se pueden crear muchas agrupaciones (clases) para simplificar un modelo así que una jerarquía (en forma gráfica) puede quedar muy extensa, en estos casos tenemos que tener bien delimitados los elementos que intervienen en una clase y aquellos objetos que las heredan.


Clase:


La clase es un modelo o prototipo que define las variables y métodos comunes a todos los objetos de cierta clase. También se puede decir que una clase es una plantilla genérica para un conjunto de objetos de similares características.
Por otro lado, una instancia de una clase es otra forma de llamar a un objeto. En realidad no existe diferencia entre un objeto y una instancia. Sólo que el objeto es un término más general, pero los objetos y las instancias son ambas representación de una clase.



BIBLIOGRAFIA:

BDOO: Estructuras de objetos, Constructores de tipos, Encapsulamiento de operaciones, Métodos y Persistencia

Estructuras de objetos:


El paradigma orientado a objetos se basa en el encapsulamiento de datos y  del código relacionado con cada objeto en una sola unidad. Conceptualmente, todas las interacciones entre cada objeto y el resto del sistema se realizan mediante mensajes. Por lo tanto, la interfaz entre cada objeto y el resto del sistema se define mediante un conjunto de mensajes permitidos.

 En general,  cada objeto esta asociado con:
  •  Un conjunto de variables que contiene los  datos  del  objeto; las variables corresponden con los atributos del  modelo E-R.
  •  Un conjunto de mensajes a los que responde;  cada  mensaje puede o no tener parámetros o tener uno o varios.
  •  Un conjunto de métodos, cada uno de los cuales es el código que implementa un  mensaje;  el  método  devuelve  un  valor como respuesta al mensaje.
Mensaje en entorno OO no implica uso de mensajes físicos en redes informáticas. Por el contrario,  hace referencia al intercambio de solicitudes entre los objetos, independientemente de los detalles correctos de su implementación. Se utiliza a veces la expresión invocar un método para detonar al hecho de enviar un mensaje a un objeto y la ejecución del método correspondiente.


Constructores de tipo:


En las BDOO, los valores (o estados) de los objetos complejos se pueden construir a partir de otros objetos mediante ciertos constructores de tipos. Una forma de representar tales objetos es considerar a cada objeto como tripleta (i, c, v), donde i es un identificador de objeto único (el OID), c es un constructor (esto es, una indicación de cómo se construye el valor del objeto) y v es el valor (o estado) del objeto. Puede haber varios constructores, según el modelo de datos y el sistema OO.

Los tres constructores  básicos son:
Ø      constructores de átomos.
Ø      constructores de tuplas.
Ø      constructores de conjuntos.
 
Otros constructores de uso más común son los de listas y de arreglos. También existe un dominio D que contiene todos los valores atómicos básicos que están disponibles directamente en el sistema. Por lo regular estos incluyen los enteros, los números reales, las cadenas de caracteres, los tipos boléanos, las fechas y cualesquiera otros tipos de datos que el sistema maneje directamente.


Encapsulamiento de operaciones:


El encapsulamiento se centra en la implementación que da lugar al comportamiento observable de un objeto. El encapsulamiento se consigue a menudo mediante la ocultación de información, es decir, se basa en ocultar todos los secretos de un objeto que no contribuyen a sus características esenciales. El encapsulamiento proporciona, por tanto, barreras explícitas entre abstracciones diferentes. Existen dos visiones diferentes del encapsulamiento [ATK89], la primera y original que es la del lenguaje de programación; y la segunda que es la adaptación de esa visión para la base de datos.

Desde el punto de vista de las bases de datos, esto se traduce en el hecho de que un objeto abarca operaciones y datos, pero con una diferencia. En las bases de datos no está claro si la parte estructural es parte de la interfaz (depende del sistema), mientras que en los lenguajes de programación la estructura de datos es claramente parte de la implementación y no de la interfaz. Como se puede observar, el encapsulamiento proporciona una forma lógica de independencia de los datos, ya que se puede cambiar la implementación de un tipo sin cambiar ninguno de los programas que usan ese tipo.


Persistencia:


Es una de las características que los SGBDOO heredan tanto de los SGBD como del modelo de objetos. La diferencia está en que la persistencia proporcionada porel SGBD tradicional, se refiere únicamente a la conservación de los datos, mientras quela persistencia heredada del modelo de objetos hace referencia no sólo a la conservación del estado de un objeto, sino también a la conservación de la clase, que debe trascender a cualquier programa individual, de forma que todos los programas interpreten de la misma manera el estado almacenado.

Se puede distinguir entre:
  • Persistencia en el espacio, que hace referencia al hecho de que los objetos creados en una máquina puedan llevarse a otra, y que incluso puedan tener representaciones diferentes en diferentes máquinas.
  • Persistencia en el tiempo, hace referencia a la cualidad de los objetos de sobrevivir a la ejecución del proceso que los creó
Métodos:

Una operación que realiza acceso a los datos. Podemos definir método como un programa procedimental o procedural escrito en cualquier lenguaje, que está asociado a un objeto determinado y cuya ejecución sólo puede desencadenarse a través de un mensaje recibido por éste o por sus descendientes. 


Son sinónimos de 'método' todos aquellos términos que se han aplicado tradicionalmente a los programas, como procedimiento, función, rutina, etc. Sin embargo, es conveniente utilizar el término 'método' para que se distingan claramente las propiedades especiales que adquiere un programa en el entorno OOP, que afectan fundamentalmente a la forma de invocarlo (únicamente a través de un mensaje) y a su campo de acción, limitado a un objeto y a sus descendientes, aunque posiblemente no a todos. 


Si los métodos son programas, se deduce que podrían tener argumentos, o parámetros. Puesto que los métodos pueden heredarse de unos objetos a otros, un objeto puede disponer de un método de dos maneras diferentes:


-Métodos propios. Están incluídos dentro de la cápsula del objeto.
-Métodos heredados. Estan definidos en un objeto diferente, antepasado de éste (padre,"abuelo", etc.). A veces estos métodos se llaman métodos miembro porque el objeto los posee por el mero hecho de ser miembro de una clase.


BIBLIOGRAFIA:
http://edinunez.wordpress.com/2008/05/07/base-de-datos-orientado-a-objetos/
http://topicosjvdlez.wikispaces.com/file/view/1.1.4+encapsulamiento,+herencia+y+polimorfismo+en+las+BDOO.pdf
http://es.scribd.com/doc/52462564/Base-de-Datos-Profesora-Yelmin-Perez
http://www.monografias.com/trabajos/objetos/objetos.shtml

Uso de las categorías y la categorización.

Categoría:

Subclase que representa una colección de objetos, que son un subconjunto de la UNIÓN de distintos tipos de entidad. Una CATEGORÍA siempre tiene dos o más superclases (que son distintos tipos de entidad). Una Relación superclase/subclase sólo tiene una única superclase.


Una CATEGORÍA es similar a una subclase compartida pero:

  • Una subclase compartida debe pertenecer a TODAS sus superclases y hereda los atributos de TODAS ellas: Es un subconjunto de la INTERSECCIÓN de las superclases.
  • Una CATEGORÍA es un subconjunto de la UNIÓN disjunta de varias superclases: Los miermbros de una Categoría deben pertenecer A UNA de las superclases (no a todas) y heredan sólo los atributos de la superclase a la que pertenezcan.
Ejemplo: Sup. 3 entidades Persona, Banco y Empresa. 

• La categoría Propietario de un vehículo incluirá elementos de esos 3 tipos.
• La categoría Propietario es una subclase de la UNIÓN de los 3 tipos.
• También hemos creado la categoría VehículoRegistrado a la que no tienen porqué pertenecer todos los vehículos (puede haber vehículos no registrados). Eso no ocurriría si se modela siendo {Coche,Camión} una especialización disjunta de Vehículo. Si esa especialización disjunta es PARCIAL indicaría que un Vehículo puede ser de una subclase distinta a {Coche,Camión}. Sin embargo, como Categoría eso no es posible.

Participación de una Categoría:

TOTAL: Si todas las superclases de la Categoría deben ser miembros de la Categoría. Una Categoría TOTAL también puede modelarse como Generalización Disjunta, lo cual es preferible si las entidades tienen muchos atributos/relaciones comunes.
Ej.: Un Edificio o Solar siempre debe ser una Propiedad. 
PARCIAL: Si no todas las superclases deben ser miembros de la Categoría.
Ej.: No toda Persona tiene que ser Propietaria (de un Vehículo Registrado).

Así pues, en una categorización, la subclase o Categoría, debe pertenecer siempre a UNA y SOLO UNA de las superclases, pero las superclases no tienen que pertenecer a la Categoría. Si las superclases deben pertenecer a la categoría entonces tenemos una Categoría TOTAL y se puede representar también como una Generalización disjunta.

BIBLIOGRAFIA:



Modelado de datos con especialización y generalización


Dependiendo de que las ocurrencias de alguna subclase puedan aparecer o no en más de una subclase podemos diferenciar entre: 
• Subclases disjuntas. 
• Subclases solapadas. 

Cuando una ocurrencia de la superclase puede aparecer en más de una subclase decimos que las subclases son solapadas. 
Se representa por la letra o (overlapping) :
Cuando una ocurrencia de la superclase solo aparece en una única subclase decimos que las subclases son disjuntas. 
Se representa por la letra d(disjoint) :  

Atendiendo al nivel de recubrimiento de la población (ejemplares/ocurrencias) de la superclase respecto a la población de las superclases pueden representarse dos tipos de jerarquías: 
• Jerarquía total 
• Jerarquía parcial 

Cuando  toda  ocurrencia de  la  superclase  aparece  al menos  en  una  subclase  se  dice  que  la jearquía 
es total. Se representa por: 

Cuando en la superclase existen ocurrencias que no aparecen en ninguna de las subclases se dice que la jerarquía es parcial.  Se representa por:
Ej. Todas las piezas se compran o fabrican y una pieza puede ser comprada y fabricada


Existen dos razones principales que aconsejan la definición de superclases y subclases: 

• Hay atributos que no pueden ser aplicables a todas las ocurrencias de la entidad. Por ej. sólo nos interesa saber los años de experiencia de los consultores y no de los analistas y programadores. 
• Algunas ocurrencias de la entidad tienen interrelaciones adicionales con otras entidades. Por ej. sólo los analistas dirigen proyectos (sólo los analistas se interrelacionan con los proyectos). 

BIBLIOGRAFIA:

http://www.lsi.us.es/docencia/get.php?id=4564

Página recomendada: http://www.fortunecity.com/lavender/dale/1054/base/extendido.htm



Modelado de la generalización, agregación y asociación

Generalización:

El proceso de especialización expuesto en el punto anterior nos permite lo siguiente: Es el proceso de abstracción inverso a la especialización. Se suprimen las diferencias entre varios tipos de entidades y generalizamos sus características comunes para formar una entidad.
    • Definir un conjunto se subclases a partir de una entidad.
    • Asociar atributos específicos a cada subclase.
    • Establecer relaciones específicas entre cada subclase con otras entidades o subclases.

Podemos pensar en un proceso inverso de abstracción en el cual suprimimos las diferencias entre las distintas entidades, identificando sus características comunes, y generalizando dichas entidades en una sola superclase de la cual las entidades iniciales serían subclases especiales.


Agregación:


La agregación permite combinar varios tipos de entidad, relacionados mediante un tipo de relación, para formar un tipo de entidad agregada de nivel superior. Útil cuando el tipo de entidad agregado debe relacionarse con otros tipos de entidad.



•AGREGACIÓN COMPUESTO / COMPONENTE:
Un todo se obtiene por la unión de diversas partes, que pueden ser objetos distintos y que desempeñan papeles distintos en la agregación.



AGREGACIÓN COLECCIÓN / MIEMBRO :
Un todo se obtiene por la unión de diversas partes  del mismo tipo y que desempeñan el mismo papel en la agregación.Se puede establecer orden entre las partes.


Asociación:
La abstracción de asociación permite asociar o vincular dos entidades independientes. 


Una asociación queda identificada por la identificación de las entidades participantes. Una diferencia entre asociación y agregación es que al eliminar la asociación las entidades participantes siguen existiendo. En la agregación si se elimina la entidad agregada se eliminan además las entidades que la forman. La forma de representar la asociación según los autores [Elmasri/Navathé2004] consiste en crear una nueva entidad TRABAJA que depende en identificación de TECNICO y PROYECTO. 





Autores como Rob P, Coronell C1 proponen la representación de la asociación como un nuevo tipo de entidad denominada entidad compuesta, definiendo un símbolo que combina la representación de una entidad y una interrelación (tiene el comportamiento de ambas).  De este modo, una entidad compuesta puede, a su vez, participar en otras interrelaciones en el modelo.




En adelante y en los ejercicios propuestos en la asignatura se utilizará esta notación para la asociación o entidad compuesta.



BIBLIOGRAFIA:

Modelado de las clases, superclases, la especialización, y de retícula

Clase:

Una clase es un grupo o conjunto de objetos que tienen propiedades similares o atributos en común, relaciones comunes entre objetos. Es un grupo de entidades. A continuación un ejemplo de clases.

[relacion2.JPG]

Superclase y Subclases:

En el modelo ER extendido las jerarquías de generalización / especialización se denominan herencia y permite que una clase pueda incorporar atributos de otra clase, añadiéndolos a los que ya posee. La clase de la cual se hereda se llama superclase y la que hereda sub clase.
Por ejemplo, las entidades que son miembros del tipo de entidad EMPLEADO pueden agruparse en entidades SECRETARIA, INGENIERO,TECNICO, siendo cada una de estas agrupaciones un subconjunto de las entidades que pertenecen al tipo EMPLEADO. En consecuencia toda entidad que sea miembro de una de estas subagrupaciones también será un empleado. Cada una de estas agrupaciones es una subclase del tipo de entidad EMPLEADO, y EMPLEADO es la superclase de cada una de estas clases.
La relación entre un superclase y cualquiera de sus subclases es un vínculo clase/subclase. Decimos entonces que una entidad miembro hereda todos los atributos de la entidad como miembro de la superclase. 



Especialezación:
El proceso por el que se definen las diferentes subclases de una superclase se conoce como especialización. El conjunto de subclases se define basándonos en características diferenciadoras de las ocurrencias de entidad de la superclase. Por ejemplo, el conjunto se subclases {SECRETARIA, INGENIERO, TECNICO} es una especialización de la superclase EMPLEADO mediante la distinción del tipo de trabajo en cada ocurrencia de entidad. Podemos tener varias especializaciones de una misma entidad basándonos en distintos criterios. Por ejemplo, otra especialización de EMPLEADO podría dar lugar a las subclases ASALARIADO y SUBCONTRATADO, dependiendo del tipo de contrato.



Retícula:

También es llamada Retícula de Especialización, es una cualidad que nos dice que un subtipo puede ser parte de varias relaciones tales como superclase o subclase. Además, que una subclase puede tener más de una superclase. En esta imagen podemos observar que un Becario puede ser un Estudiante o un Empleados.




BIBLIOGRAFIA:

Diferencias entre el modelo ER y el modelo ER extendido (EER)

El Modelo Entidad-Relación Extendido, como su nombre lo indica, es una extensión del Modelo Entidad-Relación, esto es porque los diagramas Entidad-Relación no cumplen su propósito con eficacia debido a que tienen limitaciones semánticas. El ERE incorpora los conceptos de Subclases y superclases con los conceptos asociados de Especialización, Generalización y de Categoría. Asociados a estos conceptos está el de Herencia de atributos. A continuación veremos algunos de estos:


Entidades fuertes y débiles:
Cuando una entidad participa en una relación puede adquirir un papel fuerte o débil. Una entidad débil es aquella que no puede existir sin participar en la relación, es decir, aquella que no puede ser unívocamente identificada solamente por sus atributos. Una entidad fuerte (también conocida como entidad regular) es aquella que sí puede ser identificada unívocamente. En los casos en que se requiera, se puede dar que una entidad fuerte "preste" algunos de sus atributos a una entidad débil para que, esta última, se pueda identificar.
Las entidades débiles se representan- mediante un doble rectángulo, es decir, un rectángulo con doble línea.


Cardinalidad de las relaciones:

El tipo de cardinalidad se representa mediante una etiqueta en el exterior de la relación, respectivamente: "1:1", "1:N" y "N:M", aunque la notación depende del lenguaje utilizado, la que más se usa actualmente es el unificado. Otra forma de expresar la cardinalidad es situando un símbolo cerca de la línea que conecta una entidad con una relación:
  • "0" si cada instancia de la entidad no está obligada a participar en la relación.
  • "1" si toda instancia de la entidad está obligada a participar en la relación y, además, solamente participa una vez.
  • "N" , "M", ó "*" si cada instancia de la entidad no está obligada a participar en la relación y puede hacerlo cualquier número de veces.
Ejemplos de relaciones que expresan cardinalidad:
  • Cada esposo (entidad) está casado (relación) con una única esposa (entidad) y viceversa. Es una relación 1:1.
  • Una factura (entidad) se emite (relación) a una persona (entidad) y sólo una, pero una persona puede tener varias facturas emitidas a su nombre. Todas las facturas se emiten a nombre de alguien. Es una relación 1:N.
  • Un cliente (entidad) puede comprar (relación) varios artículos (entidad) y un artículo puede ser comprado por varios clientes distintos. Es una relación N:M.

Atributos en relaciones

Las relaciones también pueden tener atributos asociados. Se representan igual que los atributos de las entidades. Un ejemplo típico son las relaciones de tipo "histórico" donde debe constar una fecha o una hora. Por ejemplo, supongamos que es necesario hacer constar la fecha de emisión de una factura a un cliente, y que es posible emitir duplicados de la factura (con distinta fecha). En tal caso, el atributo "Fecha de emisión" de la factura debería colocarse en la relación "se emite".


Herencia

La herencia es un intento de adaptación de estos diagramas al paradigma orientado a objetos. La herencia es un tipo de relación entre una entidad "padre" y una entidad "hijo". La entidad "hijo" hereda todos los atributos y relaciones de la entidad "padre". Por tanto, no necesitan ser representadas dos veces en el diagrama. La relación de herencia se representa mediante un triángulo interconectado por líneas a las entidades. La entidad conectada por el vértice superior del triángulo es la entidad "padre". Solamente puede existir una entidad "padre" (herencia simple). Las entidades "hijo" se conectan por la base del triángulo.


Agregación

Es una abstracción a través de la cual las relaciones se tratan como entidades de un nivel más alto. Se utiliza para expresar relaciones entre relaciones o entre entidades y relaciones. Se representa englobando la relación abstraída y las entidades que participan en ella en un rectángulo. En la figura se muestra un ejemplo de agregación en el que se representa la situación en la que un profesor, cuando está impartiendo una clase, puede poner una incidencia ocurrida a lo largo de ésta (se fue la luz, falta la configuración de un determinado software, etc.)

BIBLIOGRAFIA
.