viernes, 20 de enero de 2012


Para trasformar un esquema FuzzyEER con grados de pertenencia de un atributo con respecto a una entidad, el analista puede asignar cardinalidades mínimas 0 a todos aquellos atributos cuyo grado de pertenencia sea menor a 1. Esto es análogo a admitir valores nulos en dichos atributos. Otro criterio puede ser simplemente eliminar del diseño aquellos atributos que posean un grado de pertenencia menor a un umbral definido por el analista (por ejemplo > 0,5). En este caso, la ventaja de tener además del modelo entidad relación el modelo FuzzyEER, es que éste último provee de información adicional, y no se restringe a las limitaciones impuestas por las herramientas de implementación.

Para la transformación de EER-OO se usan los lenguajes:
  • Lenguaje ODL
  • Lenguaje OML
  • Lenguaje OQL


Uso de los objetos complejos estructurados, los no estructurados y la extensibilidad de tipos


Objetos complejos estructurados, no estructurados


Un sistema de BDOO debe poder dar cabida a diferentes tipos de datos, desde los más sencillos a objetos más complejos, todos ellos de pueden resumir en estos ocho:
  • Tipo abstracto para construir otros tipos. Permite construir nuevos tipos a partir de caracteres, float, enteros. Por ejemplo: punteros, números complejos, cadenas de bits…
  • Array. Son matrices de elementos de datos, como los que podemos encontrar en innumerables aplicaciones científicas.
  • Secuencia de tipo: Insertar elementos en una matriz en cualquier posición.
  • Tuplas: Forma natural de representar las propiedades de una entidad.
  • Conjunto: Forma natural de representar los grupos del mundo real.
  • Funciones: Para crear, modificar y borrar otros objetos
  • Uniones: Elementos de datos que pueden tomar diferentes valores de los diferentes tipos, es decir, matrices heterogéneas.
  • Composición recursiva del resto de tipos, se utiliza para representar objetos complejos, tales como documentos.
Extensibilidad de tipos
El conjunto de tipos predefinidos que aporta el sistema de base de datos debe ser extensible mediante algún mecanismo que permita definir tipos nuevos. No debe haber distinción en cuanto al uso de los tipos definidos por el sistema y los extendidos.

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

1)
2)

las jerarquías de tipos, de clases y herencia.


Jerarquías de tipos y herencia

Un requisito importante en las bases de datos orientadas a objetos es la jerarquía de tipos. Esta es la posibilidad de definir nuevos tipos basándose en otros tipos predefinidos. Para poder definir un tipo, se le asigna un nombre de tipo y sus respectivas funciones, estas incluyen atributos y métodos. Hay casos en el que las funciones de algún tipo están incluidas en las de otro. Es estos casos es conveniente que sea un subtipo, esto quiere decir que hereda las variables del otro tipo, el cual se denomina supertipo. En otras palabras, el subtipo tiene todas las funciones del supertipo y algunas funciones propias adicionales. Los vínculos que se generan al crear estos tipos se llaman vínculos supertipo/subtipo

Jerarquía de clases

Una clase es una colección de objetos que tienen el mismo tipo. Generalmente, se define por un nombre y por la colección de objetos que incluyen. En las clases también es conveniente definir subclases y superclases. Algunos sistemas orientados a objetos tienen una clase predefinida.
La clasificación de las clases es mediante la especialización de objetos, se analizan los objetos y se buscan las semejanzas entre sus atributos. De este modo se logra la jerarquía de clases.
Anteriormente vimos que hay dos tipos de objetos: persistentes y transitorios. Si en una clase tienen objetos transitorios, esta será una clase transitorio. Al contrario, si la clase contiene objetos persistentes, esta es una clase persistente.

Estructuras de objetos, constructores de tipos, encapsulamiento de operaciones, métodos y persistencia.


Base de datos orientados a objetos.

 El modelo de bases de datos orientado a objetos es una adaptación a los sistemas de bases de datos. Se basa en el concepto de encapsulamiento de datos y código que opera sobre estos en un objeto. Los objetos estructurados se agrupan en clases. Puesto que el valor de un dato en un objeto también es un objeto, es posible representar el contenido del objeto dando como resultado un objeto compuesto.

Estructura de objetos.

El modelo orientado a objetos se basa en encapsular código y datos en una única unidad, llamada objeto.

Un objeto tiene asociado: 

·  Un conjunto de variables que contienen los datos del objeto. El valor de cada variable es un objeto.
·  Un conjunto de mensajes a los que el objeto responde.
·  Un método, que es un trozo de código para implementar cada mensaje. Un método devuelve un valor como respuesta al mensaje.

La capacidad de modificar la definición de un objeto sin afectar al resto del sistema está considerada como una de las mayores ventajas del modelo de programación orientado a objetos.

Tipos de datos

En el modelo se propone un sistema de tipos consistente en un conjunto de tipos básicos (atómicos) y un conjunto de constructores de tipos.
Tipos básicos (
n2,...nm
Constructores de tipos (
tipos estructurados):
Colecciones:
- array <T,I>
- set <T>
- bag <T>
- list <T>
- dictionary <K,T>
Estructuras:
- struct S {C1 T1, C2 T2, ...Cn Tn}: tupla de estructura {C1 T1, C2 T2, ...Cn Tn}

Encapsulamiento

El encapsulamiento consiste en unir en la Clase las características y comportamientos, esto es, las variables y métodos.
 Es tener todo esto es una sola entidad. En los lenguajes estructurados esto era imposible. Es evidente que el encapsulamiento se logra gracias a la abstracción y el ocultamiento que veremos a continuación. 
La utilidad del encapsulamiento va por la facilidad para manejar la complejidad, ya que tendremos a las Clases como cajas negras donde sólo se conoce el comportamiento pero no los detalles internos, y esto es conveniente porque nos interesará será conocer qué hace la Clase pero no será necesario saber cómo lo hace.

MODELO DE PERSISTENCIA

Un modelo es un conjunto de reglas, conceptos y convenciones que nos permiten describir “algo”. Independientemente del medio de persistencia seleccionado para almacenar los objetos persistentes, se deben realizar un grupo de pasos que permiten completar la semántica de los objetos en aspectos que son importantes.
Los pasos que propone el modelo de persistencia para el diseño de la BD son:
1. Definir las clases persistentes.
La persistencia es la capacidad de un objeto de mantener su valor en el espacio y en el tiempo. Es responsabilidad del diseñador definir cuáles clases son las que deben ser persistentes.
2. Refinar las clases.
El objetivo de este paso es la obtención de la jerarquía de clases y la definición de nuevas clases. No es obligatorio que aparezcan nuevas clases, se recomienda revisar si existe algún comportamiento de interés que no haya sido tomado en cuenta y sea trascendental en la solución del problema, para incluirlo.
3. Clasificar las clases y los atributos.
Clasificar las clases en dependencia de los atributos que la integran y los atributos teniendo en cuenta si son o no afectados por los eventos.
4. Realizar el diagrama de clases.
5. Realizar el diagrama de transición de estado.
6. Obtener las restricciones estáticas y las fórmulas dinámicas.
Especificando textualmente o derivando a partir de los diagramas de clases y transición de estado.
7. Convertir las clases al medio de almacenamiento.
Es en este paso en el que se tiene en cuenta hacía qué lugar se guardarán los objetos.
: secuencia de pares (clave, valor): lista finita de elementos de tipo T: bolsa (multiconjunto) finito de elementos de tipo T: conjunto finito de elementos de tipo T: vector unidimensional de I elementos de tipo T
tipos atómicos): char, string, float, double, boolean, enum N {n1,}, …

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


En el caso que una subclase tenga mas de una superclase se la llama categoría. Esta es la representación de una clase que es la unión de todas las entidades que se necesita representar.
Una categoría tiene dos o más superclases que representan diferentes tipos de entidades, una entidad que sea miembro de una categoría debe estar por lo menos en algunas de las superclases, pero no necesariamente en todas.

Ej: En una BD que registre vehículos (considerando como tal únicamente coches y camiones), un propietario puede ser una persona, un banco o una compañía. Se define una categoría PROPIETARIOS como una subclase de la UNION de PERSONAS, BANCOS y COMPAÑIAS. VEHÍCULOS REGISTRADOS es una subclase de la UNION de COCHES y CAMIONES.

Modelado de datos con especialización y generalización


Generalización.
La generalización consiste en identificar todos aquellos atributos iguales de un conjunto de entidades para formar una entidad(es) global(es) con dichos atributos semejantes, dicha entidad(es) global(es) quedara a un nivel más alto al de las entidades origen. Es decir que trata de eliminar la redundancia (repetición) de atributos, al englobar los atributos semejantes. La entidad(es) de bajo nivel cuentan (heredan) todos los atributos correspondientes.
Especialización
En un diagrama E-R tanto la generalización como la especialización se representan a través de un triángulo ES-UN (ISA). La generalización se distingue de la especialización mediante arcos dobles entre el triángulo y los subtipos de entidades.