Mostrando entradas con la etiqueta generalización. Mostrar todas las entradas
Mostrando entradas con la etiqueta generalización. Mostrar todas las entradas

martes, 20 de septiembre de 2011

Modelado de datos con especialización y generalización

Las subclases y superclases se corresponden con entidades y por tanto se representarán con rectángulos en el diagrama ERE. Ahora veremos con más detalle las propiedades de especialización y generalización.

Restricciones de especialización y generalización.

En los siguientes párrafos veremos las restricciones aplicables a una especialización o a una generalización; sin embargo, por abreviar, nuestra visión se referirá solamente a la especialización en vez de a ambas técnicas.
En general podremos tener varias especializaciones definidas sobre la misma entidad o superclase. En tal caso las ocurrencias de entidad pueden pertenecer a cada una de las especializaciones. Sin embargo, una especialización puede consistir en solo una subclase, tal como JEFE ; en tal caso no utilizaremos la notación círculo.
En algunas especializaciones podremos determinar exactamente que ocurrencias de entidad se convertirán en ocurrencias de cada subclase, mediante la utilización de una condición en algún atributo de la superclase. Tales subclases se llaman subclases definidas por predicado (o definidas por condición). Por ejemplo, si la entidad EMPLEADO tiene el atributo tipotrabajo, como se ve en la figura 3, podremos especificar una condición de pertenencia a la subclase SECRETARIA mediante el predicado tipotrabajo = "Secretaria"), al cual llamaremos predicado de definición de la subclase. Esta condición es una restricción especificando que los miembros de la subclase SECRETARIA deben satisfacer el predicado y que todas las ocurrencias de la entidad EMPLEADO en las que el valor del atributo tipotrabajo sea "Secretaria" deben pertenecer a la esta subclase.


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

Agregación: 
Para modelar objetos complejos, n bastan los tipos de datos básicos que proveen los lenguajes: enteros, reales y secuencias de caracteres. Cuando se requiere componer objetos que son instancias de clases definidas por el desarrollador de la aplicación, tenemos dos posibilidades:
    • Por Valor: Es un tipo de relación estática, en donde el tiempo de vida del objeto incluido esta condicionado por el tiempo de vida del que lo incluye. Este tipo de relación es comunmente llamadaComposición (el Objeto base se contruye a partir del objeto incluido, es decir, es "parte/todo").
    • Por Referencia: Es un tipo de relación dinámica, en donde el tiempo de vida del objeto incluido es independiente del que lo incluye. Este tipo de relación es comunmente llamada Agregación (el objeto base utiliza al incluido para su funcionamiento).
Un Ejemplo es el siguiente:

En donde se destaca que:
    • Un Almacen posee Clientes y Cuentas (los rombos van en el objeto que posee las referencias).
    • Cuando se destruye el Objeto Almacen también son destruidos los objetos Cuenta asociados, en cambio no son afectados los objetos Cliente asociados.
    • La composición (por Valor) se destaca por un rombo relleno.
    • La agregación (por Referencia) se destaca por un rombo transparente.