Estructuras de objetos:
Los componentes básicos en una estructura de objetos, son los objetos y literales. Para esto se define a objeto como la instancia de una entidad del mundo real que nos interesa.
Este tiene un identificador. El literal es un valor específico y no cuenta con identificadores.
Estos objetos pueden organizarse en tipos. Cada uno de estos tipos tiene un dominio, el cual es compartido por todos los objetos y literales.
Un objeto puede requerir datos de entrada y devolver un valor. Las propiedades que posee son sus atributos y las relaciones.
Constructores:
Los diferentes tipos de objetos tienen un método que se encarga de construir nuevos objetos a partir de ese. El nombre del método será igual al nombre del tipo y los parámetros de este (método) serán los atributos del tipo de objetos. Un constructor de utiliza para inicializar y devolver una instancia de el mismo tipo de objeto al cual pertenece.
Encapsulamiento de operaciones:
El método de encapsulamiento se especifica en la implementación que lleva al comportamiento de cierto objeto. Este método se basa en ocultar los secretos de cierto objeto que no favorecen a sus características principales. Existen dos versiones del encapsulamiento: la primera es la del lenguaje de programación y la otra es la adaptación de esta visión para la base de datos. Una base de datos presenta diversas operaciones y datos; sin embargo partiendo de este concepto, no es claro si la parte estructural será parte de la interfaz. En los lenguajes de programación ocurre lo contrario pues la estructura es parte de la implementación y no de la interfaz. Ante esto de resume que el encapsulamiento es una forma lógica de independencia de datos pues se puede modificar la implementación de un tipo sin modificar o cambiar ninguno de los programas que usan ese mismo tipo.
Métodos:
Una vez creado un tipo de objeto, se realiza la especificación de los métodos. Estos de pueden ejecutar sobre objetos de un mismo tipo. Si x es variable que almacena objetos del tipo CLIENTE, entonces N_CLIENTE calcula el nombre del cliente almacenado en la variable x.
Métodos constructores de tipo: Los diversos tipos de objetos tienen, por defecto, asociado un método que se encargará de construir nuevos objetos de este. Justamente este método se refiere a constructores pues el nombre de dicho método será el mismo que el objeto y sus parámetros serán sus atributos.
Métodos de comparación: Como su mismo nombre lo dice, este método se usan para que los diversos objetos de cierto tipo puedan compararse. Se lleva a cabo mediante un criterio de comparación; para este es necesario seleccionar entre un método MAP o un método ORDER:
- El método ORDER usa los atributos del objeto para compararlos con otro objeto del mismo tipo. Devuelve un valor negativo si el primero es mayor que el segundo, positivo si el segundo es mayor y nulo si los dos son iguales. Se habla de cantidades pues este método, además de comparar realiza un cálculo.
- El método MAP es usado para tener conocimiento qué atributo se va a usar para ordenar los objetos del tipo.
Persistencia en objetos:
Existen tres tipos en los que se puede dar la persistencia de algunos datos.
- Persistencia por clases: Este tipo de persistencia es la menos conveniente pues, a pesar de ser el más sencillo, consiste en considerar a una clase entera como persistente. Entonces, todos los objetos pasarían a ser persistentes de manera predeterminada.
- Persistencia por creación: En este enfoque de persistencia se introduce una nueva sintaxis para crear los objetos persistentes. Así los objetos pasarán a ser persistentes en función de la manera en cómo fueron creados.
- Persistencia por marcas: Este enfoque es una variante de la persistencia por creación pues se marcan a los objetos como persistentes. La diferencia es que si un objeto tiene que persistir más allá de la ejecución del programa, se le marca como explícito; además se espera hasta después de la creación del objeto.
- Persistencia por alcance: Como fue mencionado anteriormente, uno o varios objetos se marcan como objetos persistentes de manera explícita. A partir de esto, todos los demás objetos serán persistentes sólo si son alcanzables desde el objeto persistente de manera explícita mediante una secuencia de una o varias referencias.
Explique las jerarquías de tipos, de clases y herencia
Jerarquías de tipos y herencia:
Un requisito importante en las bases de datos orientada 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. En estos casos es conveniente que sea un subtipo, esto quiere decir que hereda las variables del otro tipo, el cual se denomina supertipo. Es decir, 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.
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.
Buscar SGBDOO (Sistema Gestor de Base de Datos Orientada a Objetos)
También llamada SGBDOO, es un conjunto de datos relacionados entre sí y un grupo de programas para tener acceso a estos determinados datos.
Se puede decir que es un Sistema de Gestión de Base de Datos que almacena objetos, permitiendo la concurrencia, recuperación de los objetos. Esto sindica un uso más adecuado, pues ya no se tratarían con tablas ni registros sino directamente con OBJETOS.
Un ejemplo de esto es: Consideremos el problema de mandar a reparar una Computadora. En un sistema de objetos la computadora es un objeto, y el taller es otro objeto, si hay una operación como guardar Computadora en Taller. En un sistema relacional, todos los datos deberían de ser ingresados en tablas, de esta forma la Computadora debería ser desarmada, y todos sus componentes deben ir almacenados en una tabla. El dueño se dispone a recoger la computadora, hay que armar nuevamente la computadora para poder utilizarla. El problema es que si el dueño necesita la computadora, pueden ingresar las partes como de una computadora y salir como unas calculadoras.
Explique el diseño de bases de datos OO por transformación EER-OO
Las entidades del modelo Entidad-Relación pueden expresarse en el modelo Orientado a Objetos como mensajes de sólo lectura. En el modelo Orientado a Objetos, hay que expresar cada atributo de las entidades como una variable, y un par de mensajes del objeto correspondiente. La variable se usa para almacenar el valor del atributo, uno de los mensajes se usa para leer el valor del atributo y otro para actualizar el valor de este mensaje.
Tal que: La variable se utiliza para guardar el valor del atributo, uno de los mensajes se usa para leer el valor del atributo y el otro mensaje para actualizar el valor.
Diseño:
- 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.
Explique el uso de los objetos complejos estructurados, los no estructurados y la extensibilidad de tipos
¿Qué son los objetos complejos estructurados?
Estos objetos son construidos mediante algunos objetos más simples o mediante el uso de constructores a ellos. Los objetos más simples son: Int, Carácter, String de Bytes, Booleanos, Puntos flotantes y otros.
Existen varios constructores de objetos complejos como son: los arreglos y las listas.
Los arreglos y las listas son estructuras importantes pues capturan ordenes las cuales ocurren en el mundo real, así como también, poder hacer cálculos que necesitan las personas como matrices, series de datos, entre otras.
¿Qué son los objetos complejos no estructurados?
Permiten el almacenamiento y uso de objetos de un gran tamaño en bytes, tales como: imágenes, objetos binarios, cadenas de texto.
¿Qué es la Extensibilidad de tipos?
Así como un SGBDOO permite que los usuarios creen nuevos tipos, se puede decir que los SGBDOO tienen un sistema de tipos extensible. Por ejemplo: se pueden crear bibliotecas de nuevos tipos definiendo las estructuras y las operaciones que podrá elaborar.











