Please enable JavaScript.
Coggle requires JavaScript to display documents.
BASES DE DATOS ORIENTADAS A OBJETOS (EL MODELO DE DATOS ORIENTADO A…
BASES DE DATOS ORIENTADAS A OBJETOS
NECESIDADES DE LOS TIPOS DE DATOS COMPLEJOS
Las aplicaciones de bases de datos tradicionales consisten en tareas de procesamiento de datos, tales como la banca y la gestión de nóminas.
En los últimos años, la demanda ha incrementado las formas de abordar los tipos de datos más complejos.
Para los datos complejos una alternativa es permitir tipos de datos estructurados, que admiten un tipo de dato con subpartes
Ejemplos :
-Dirección
-Atributos multivalorados del modelo E/R
EL MODELO DE DATOS ORIENTADO A OBJETOS
Estructura de los objetos 8.2.1
cada objeto está asociado con:
• Un conjunto de variables que contiene los datos del objeto; las variables se corresponden con los atributos del modelo E-R.
• Un conjunto de mensajes a los que responde; cada mensaje puede no tener parámetros, tener uno o varios.
• Un conjunto de métodos, cada uno de los cuales es código que implementa un mensaje; el método devuelve un valor como respuesta al mensaje.
la interfaz entre cada objeto y el resto del sistema se define mediante un conjunto de mensajes permitidos. Mensaje hace referencia al intercambio de solicitudes entre los objetos independientemente de los detalles concretos de su implementación.
Se utiliza a veces la expresión invocar a un método para denotar el hecho de enviar un mensaje a un objeto y la ejecución del método correspondiente.
Los métodos de cada objeto pueden clasificarse como sólo de lectura o de actualización. Los métodos sólo de lectura no afectan al valor de las variables de los objetos, mientras que los métodos de actualización sí pueden modificarlo.
Clases de objetos 8.2.2
Los objetos parecidos se agrupan para formar una clase. Cada uno de estos objetos se denomina ejemplar de su clase
El concepto de clase del modelo orientado a objetos se corresponde con el concepto de entidad del modelo E-R.
Un objeto clase incluye:
• Una variable de tipo conjunto cuyo valor es el conjunto de todos los objetos que son ejemplares de la clase.
• La implementación de un método para el mensaje nuevo, que crea un nuevo ejemplar de la clase.
Herencia 8.2.3
Con frecuencia existen clases parecidas entre si, sería conveniente definir una representación de las variables comunes en un solo lugar. Aquí es donde entra la herencia.
Para permitir la representación directa de los parecidos entre las clases hay que ubicarlas en una jerarquía de especializaciones
Por ejemplo, se puede decir que empleado es una especialización de una persona.
Herencia en los sistemas orientados a objetos es el concepto de posibilidad de sustitución: cualquier método de una clase dada puede ser llamado de igual modo con cualquier objeto perteneciente a cualquier subclase B de A. Esta característica lleva a la reutilización del código, dado que no hace falta volver a escribir los mensajes, métodos y funciones para los objetos de la clase B.
Herencia múltiple 8.2.4
Permite a las clases heredar variables y métodos de múltiples superclases. La relación entre clases y subclases se representa mediante un grafo acíclico dirigido(GAD)
Cuando se utiliza la herencia múltiple aparece una ambigüedad potencial si se puede heredar la misma variable o el mismo método de más de una superclase.
Identidad de los objetos 8.2.5
ejemplos de identidad:
• Valor.Se utiliza un valor de datos como identidad.
• Nombre.Se utiliza como identidad un nombre proporcionado por el usuario. Esta forma de identidad..
• Incorporada.Se incluye el concepto de identidad en el modelo de datos o en el lenguaje de programación y no hace falta que el usuario proporcione ningún identificador.
Las entidades conservan su identidad aunque algunas de sus propiedades cambien con el tiempo. De manera parecida, los objetos conservan su identidad aunque los valores de las variables o las definiciones de los métodos cambien total o parcialmente con el tiempo.
Continentes de objetos 8.2.6
Los objetos que contienen a otros objetos se denominan objetos complejos o compuestos.
Objeto que contiene objetos ejemplo:
Cada diseño de bicicletas contiene las ruedas, el cuadro, los frenos y los cambios. Las ruedas, a su vez, contienen la llanta, un conjunto de radios y el neumático
Puede haber varios niveles de continentes
LENGUAJES ORIENTADOS A OBJETOS
Para poder utilizar los conceptos básicos de la programación orientada a objetos en la práctica en un sistema de bases de datos hay que expresarlos en algún lenguaje. Esta expresión puede realizarse de dos maneras:
Los conceptos de la programación orientada a objetos se utilizan simplemente como herramientas de diseño y se codifican. Se sigue este enfoque cuando se utilizan los diagramas entidad-relación para modelar los datos y luego se convierten de manera manual en un conjunto de relaciones.
Los conceptos de la programación orientada a objetos se incorporan en un lenguaje que se utiliza para trabajar con la base de datos. Con este enfoque hay varios lenguajes posibles en los que se pueden integrar los conceptos:
• Una opción es extender un lenguaje para el tratamiento de datos como SQL añadiendo tipos complejos y la programación orientada a objetos.
• Otra opción es tomar un lenguaje de programación orientado a objetos ya existente y extenderlo para que trabaje con las bases de datos.
LENGUAJES DE PROGRAMACIÓN PERSISTENTE
Los lenguajes de programación persistente son lenguajes de programación extendidos con constructoras para el tratamiento de datos persistentes.
Persistencia de los objetos 8.4.1
• Persistencia por clases. El enfoque más sencillo, pero el menos conveniente, consiste en declarar que una clase es persistente. Todos los objetos de la clase son, por tanto, persistentes de manera predeterminada.
• Persistencia por creación. En este enfoque se introduce una sintaxis nueva para crear los objetos persistentes mediante la extensión de la sintaxis para la creación de los objetos transitorios.
• Persistencia por marcas. Una variante del enfoque "por creación" es marcar los objetos como persistentes después de haberlos creado.
• Persistencia por alcance. Uno o varios objetos se declaran objetos persistentes (objetos raíz) de manera explícita. Todos los demás objetos serán persistentes si (y sólo si) son alcanzables desde el objeto raíz mediante una secuencia de una o más referencias
La identidad de los objetos y los punteros 8.4.2
Grados de permanencia de las identidades
• Dentro de los procedimientos. La identidad sólo persiste durante la ejecución de un único procedimiento.
• Dentro de los programas. La identidad sólo persiste durante la ejecución de un único programa o una única consulta.
• Entre programas. La identidad persiste de una ejecución del programa a otra.
• Persistente. La identidad no sólo persiste entre las ejecuciones del programa sino también entre las reorganizaciones estructurales de los datos.
Un puntero persistente es un tipo de puntero que, a diferencia de los punteros internos de la memoria, sigue siendo válido después del final de la ejecución del programa y después de algunas modalidades de reorganización de los datos.
El almacenamiento y el acceso a los objetos persistentes 8.4.3
Uno de los enfoques para el acceso consiste en dar nombres a los objetos, igual que se hace con los archivos. Este enfoque resulta útil con un número de objetos relativamente pequeño, pero no resulta práctico para millones de objetos.
Un segundo enfoque consiste en exponer los identificadores de los objetos o los punteros persistentes de los objetos, que pueden guardarse de manera externa.
Un tercer enfoque es guardar las colecciones de objetos y permitir que los programas iteren sobre las mismas para hallar los objetos deseados.
SISTEMAS C++ PERSISTENTES
Las extensiones persistentes de C++ y Java han logrado progresos significativos en los últimos años. La integración de la persistencia sin solución de continuidad y de manera ortogonal con las constructoras de lenguajes existentes es importante para su facilidad de uso.
El lenguaje para la definición de objetos C++ de ODMG 8.5.1
lenguaje proporcionado por Object Database Management Group, (ODMG) que permite a los programadores de la misma llevar a cabo las tareas de definición de las estructuras que almacenarán los datos así como de los procedimientos o funciones que permitan consultarlos, sirve para definir estructuras de datos
El lenguaje para la manipulación de objetos C++ de ODMG 8.5.2
Extensiones de clases:
-proporciona un mecanismo para especificar, como parte del esquema de una clase en una base de datos, que una extensión de clase debe mantenerse para la clase.
-Dar nombres a los objetos, igual que se dan nombres a los ficheros en un sistema de ficheros.
Iteradores
-Se puede iterar en una colección de referencias utilizando un iterador.
Modificación de objetos
-Si un objeto va a ser modificado, la norma ODMG requiere que el sistema de bases de datos sea notificado del cambio.
Creación manual de extensión de clases
-Es conveniente guardar el identificador del conjunto en una variable global asociada con la clase Cliente.
Lenguaje de consulta de objetos
-La norma ODMG proporciona el lenguaje de consultas declarativo OQL. OQLpresenta el aspecto de SQL.
SISTEMAS JAVA PERSISTENTES
El modelo ODMG para la persistencia de objetos en programas Java es diferente del modelo para la persistencia que se permite en programas C++.
La mayor diferencia es el uso de la persistencia por alcance en Java. Los objetos no se crean explícitamente en la base de datos. En su lugar, se dan los nombres a los objetos en la base de datos que sirven como raíces para la persistencia. Estos objetos, y algunos objetos alcanzables desde estos objetos, son persistentes.