jueves, 22 de septiembre de 2011

Bases de datos orientadas a Objetos

Estructuras de objetos:
Los valores o estados de los objetos complejos se pueden cosntruir partiendo de otros objetos, para ellos se usa algunos constructores de tipos. Un objeto tiene un Identificador de Objeto Único (OID)(i), el cual es unico y es generado por el sistema para cada objeto; tiene un constructor (c) que le indica como se construye el valor del objeto; y, por ultimo, el valor o estado del objeto (v). Una forma de representar los objetos es a través de una tripleta que incluyen (i,c,v) explcicados anteriormente.

Constructores de tipos:
Son las operaciones de estructuración para definir la estructura y las operaciones básicas de un objetos,Existen varios tipos de constructores de tipos, los más básicos son los de átomos, tuplas y conjuntos.También existe un dominio que contiene todos los valores atómicos básicos que están disponibles en el sistema.
El valor de un objeto (v) se interpreta a través del constructor (c). Si c es del tipo átomo, el valor (v) es un valor atómico del dominio. Si c es del tipo conjunto, el valor es un conjunto de identificadores de objetos. Si c es del tipo tupla, el valor es una tupla de forma "a:i". Donde "a" es una atributo e "i" es en OID del objeto.
Otros tipos de tipos de constructores son las listas, arreglos y bolsaz. Para distinguirlos de los tipos básicos se los llama tipos de colección o tipos masivos. Si el constructor (c) es una lista, el valor v es una lista ordenada de identificadores de objetos (IOD). Si c es un arreglo, se valor es una arreglo o matriz de identificadores de objetos. Una lista es parecida a un conjunto, pero en una lista los objetos están ordenados lo cual nos permite referirnos al primero, segundo, tercero o al enésimo. Una bolsa también se parece a un conjunto, pero esta si permite valores repetidos.
Un tipo de colección puede tener como valor una colección de objetos sin alguna estructura, como son las bolsas o conjuntos, o al contrario tener una estructura, somo con las listas y arreglos.

Encapsulamiento de operaciones:
El encapsulamiento es para definir el comportamiento de un tipo de objeto. Para ello la estructura interna del objeto que da oculta y solo se puede acceder a ella mediante operaciones definidas. Algunas de estas operaciones pueden ser para crear o destruir objetos, otras pueden ser actualizar el valor o estado del objeto, asi como también para obtener partes del valor del objeto o aplicar cálculos con estos. Cada operación tienen un nombre y argumentos, conocidos también como parámetros. La implementacion de cada operación tambien oculta. La parte de interfaz de cada operacion se llama signatura y la implementacion, metodo.
A veces es conveniente no encapsular todos los objetos, para ello se puede dividir la estrucutra de un objeto en atributos visibles y ocultos.
Hay diferentes tipos de objetos, los objetos transitorios son objetos que no están destinados a almacenarse permanente en la base da datos, estos desaparecem ima vez que terminen.
Los objetos persistentes se almacenan en la base de datos y se quedan una vez que hayan terminado. Cuando un objeto es persistente, el objeto tiene un nombre persistente unico mediante el cual los programas pueden acceder hacia el objeto.

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 algun 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 sera una clase transitorio. Al contrario, si la clase contiene objetos persistentes, esta es una clase pesistente.



SGBDOO (Sistema Gestor de Base de Datos Orientada a Objetos):
•O2 technology:
El esquema del O2 define los tipos y las clases de objetos del sistema. Un tipo de objetos se define haciendo uso de los tipos atómicos y los constructores que el O2 tiene. Los tipos atómicos son boolenado, enteros, reales, cadena y de bit. Por otro lado, los constructores de tipos son las tuplas, listas y conjuntos. En O2, en la definición de los tipos no se incluye los métodos, se incluye en la definición de clase. Esta consta principalmente de dos partes. Una es el tipo de objetos que pueden incluirse en la clase y la otra parte son los métodos que se pueden aplicar a dichos objetos.
En O2 se diferencia los valores y objetos. Un valor es un tipo y se representa por sí solo. En cambio, un objeto pertenece a una clase y su comportamiento esat regido por los métodos de la clase a la uqe pertenece. Además un objeto tiene una identidad unica, en cambio un valor no lo tiene.
El o2 tiene un lenguaje O2C, el cual sirve para definir clases, métodos y tipos, y para crear objetos y valores. Para declarar una subclase se usa el enunciado "inherit". El o2 permite cambiar el nombre de los atributos o métodos heredados.
Para redefinir un método se cmabia el nombre y se incluye una nueva deficnición del método con el nombre qe se le desea poner. O2 permite la opción de herencia múltiple en la cual una clase hereda el tipo y los métodos de varias clases. Existen dos maneras de crear aplicaciones de O2. Una de ellas es usar lenguajes de consulta y programación propios del O2. Estos son O2, O2SQQL y O2C. Y la otra alternatica es usar O2 como un sistema en el cual se almacenen objetos para otro lenguaje, por ejemplo C++.




•ObjectStore:
Ese sistema se usa con el lenguae C++, por ello ObjectStore puede usar las declaraciones de clase de C++. Los apuntadores a los objetos tienen la misma sintaxis en objetos persistentes y transitorios. Para heredar una clase, en la definición de la clase hijo, despues del nombre de la clase, se escribe dos puntos (:) seguidos de las palabras "public" o"private" y el nombre de la clase padre. ObjectStore contiene un recurso de vínculos que permiten especificar atributos inversos que representan un vínculo binario. para ello se escribe 2inverse_member" a un atributo, al cual le sigue la lista de sus atributos inversos en la otra clase. Una función muy util es la función constructora de una clase, esta puede tener el mismo nombre que la clase, nos permite crear nuevos objetos de esa clase. ObjectStore a parte de usar lenguaje C++, cuenta con una herramietno de interfaz gráfica para facilitar la creación de aplicaciones. También se puede aplciar algunas funciones extras: insert sirve para insertar un elemento en una colección, remove para quitar un elemento de la colección y create para crear una nueva colección.


Diseño de bases de datos OO por transformación EER-OO:
•Primero: Para cada clase ERR, 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 esatr ordenados se usa el contructor de lista, si están permitidos los duplciados, el cosntructor 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 ne una dirección como también en ambas. Serán monovaluados para los vícnulos 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 sbuclase 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.

No hay comentarios:

Publicar un comentario