martes, 20 de septiembre de 2011

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

  Las aplicaciones de las bases de datos en áreas como el diseño asistido por computadora, la ingeniería de software y el procesamiento de documentos no se ajustan al conjunto de suposiciones que se hacen para aplicaciones del estilo de procesamiento de datos. El modelo de datos orientado a objetos se ha propuesto para tratar algunos de estos nuevos tipos de aplicaciones.
    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. El conjunto de clases está estructurado en sub y superclases basado en una extensión del concepto ISA del modelo Entidad - Relación. 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. El interfaz entre un objeto y el resto del sistema se define mediante un conjunto de mensajes.
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.
    El término mensaje en un contexto orientado a objetos, no implica el uso de un mensaje físico en una red de computadoras, si no que se refiere al paso de solicitudes entre objetos sin tener en cuenta detalles específicos de implementación.
    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.

Constructores de tipo
Constructores de conjunto
Son cruciales porque son una forma natural de representar las colecciones del mundo real y se utilizan para definir atributos multi-elevados, solo se puede aplicar a tuplas.

Constructores de tuplas
Son importantes porque proporcionan un medio natural para representar los componentes o propiedades de entidad, solo puede ser aplicado a valores atómicos.

Constructores de átomos
Los átomos son como las constantes y los identificadores de un lenguaje imperativo: incluye los números, las cadenas, los nombre, las funciones y unos cuantos constructores.



Encapsulamiento
Cada objeto contiene y define procedimientos (métodos) y la interfaz  mediante la cual se puede acceder a él y otros objetos pueden manipularlo. La mayoría de los SGBDOO permite el acceso directo a los atributos incluyendo operaciones definidas por el propio SGBDOO las cuales leen y modifican los atributos para evitar que el usuario tenga que implementar una cantidad considerable de métodos cuyo único propósito sea el de leer y escribir los atributos de un objeto. Generalmente, los SGBDOO permiten al usuario especificar qué atributos y métodos son visibles en la interfaz del objeto y pueden invocarse desde afuera.

Métodos
Los métodos son funciones o procedimientos que se pueden declarar en la definición de
un tipo de objeto para implementar el comportamiento que se desea para dicho tipo de Objetos en Oracle 
objeto. Las aplicaciones llaman a los métodos para invocar su comportamiento. Para ello
se utiliza también la notación punto: objeto.metodo(lista param). Aunque un método no
tenga parámetros, Oracle obliga a utilizar los paréntesis en las llamadas objeto.metodo().
Los métodos escritos en PL/SQL o en Java, se almacenan en la base de datos. Los métodos
escritos en otros lenguajes se almacenan externamente.
Hay dos clases de métodos: miembros y estáticos. Hay otro tercer tipo, los métodos
constructores, que el propio sistema define para cada tipo de objeto.
Los métodos miembro son los que se utilizan para ganar acceso a los datos de una
instancia de un objeto. Se debe definir un método para cada operación que se desea que
haga el tipo de objeto. Estos métodos tienen un parámetro denominado SELF que denota
a la instancia del objeto sobre la que se está invocando el método. Los métodos miembro
pueden hacer referencia a los atributos y a los métodos de SELF sin necesidad de utilizar el
cualificador.
CREATE TYPE racional AS OBJECT
(
num INTEGER,
den INTEGER,
MEMBER PROCEDURE normaliza,
...
);
CREATE TYPE BODY racional AS
MEMBER PROCEDURE normaliza IS
g INTEGER;
BEGIN
g := gcd(SELF.num, SELF.den);
g := gcd(num, den); -- equivale a la l¶³nea anterior
num := num / g;
den := den / g;
END normaliza;
...
END;


Persistencia
La 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 por el SGBD tradicional, se refiere únicamente a la conservación de los
datos, mientras que la 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ó.

No hay comentarios:

Publicar un comentario