Estructuras 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 devulve 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, sino 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 orientada a objetos.
Constructores de Tipos:
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 considerando cada objeto como triplta (i, c,v) donde i es un identificador de objeto único (OID), c es un constructor y v es el valor o estado del objeto. Puede haber varios constructores, según el modelo de datos y el Sistema Operativo.
Los tres constructores básicos son:
*Constructores de Atomos: los átomos son como las constantes y los identificadores de un lenguaje imperativo: incluye los números, las cadenas, los nombres, las funciones y unos cuantos constructores.
*Constructores de Tuplas: son importantes porque proporcionan un medio natural para representar los componentes o propiedades de entidad, sólo puede ser aplicado a valores atómicos.
*Constructores de Conjuntos: son cruciales porque son una forma natural de representar las colecciones del mundo real y se utilizan para definir atributos multi-elevados, sólo se puede aplicar a tuplas.
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 booleanos, las fechas y cualesquiera otros tipos de datos que el sistema maneja 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 la base 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.
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 solo 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 OPP, 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.
Persistencia:
Es la resistencia de un objeto a variar en el tiempo, la idea de estas bases de datos es que puedan recuperar los objetos creados o guardados.
2. Explique las jerarquías de tipos, de clases y herencia:
Jerarquía de tipos y herencia
Los esquemas BDOO suelen necesitar un gran número de clases. Sin embargo, varías clases son parecidas entre si.
Para permitir la representación 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; la cual específica 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.
Herencia
Un tipo de objeto de alto nivel puede especializarse en tipos de objeto de bajo nivel. Un tipo de objeto puede tener subtipos. Por ejemplo, el tipo de objeto Persona puede tener subtipos estudiante y empleado. A su vez, el tipo de objeto estudiante puede tener como subtipo estudiante de pregrado y estudiante de postgrado, mientras que empleado puede tener como subtipo a académico y administrativo. Existe de este modo una jerarquía de tipos, subtipos, subsubtipos, etc.
Una clase implanta el tipo de objeto. Una subclase hereda propiedades de su clase padre; una subsubclase hereda propiedades de las subclases; etc. Una subclase puede heredar la estructura de datos y los métodos, o algunos de los métodos, de su superclase. También tiene sus métodos e incluso tipos de datos propios.
Jerarquía de Clases

