Persistencia en BDOO - BDOR Flashcards
(23 cards)
¿Qué son las bases de datos objeto-orientadas (BDOO) y por qué surgieron?
Son bases de datos que gestionan objetos complejos (como imágenes, documentos) y estructuras avanzadas que las bases relacionales tradicionales no manejan bien. Surgieron para evitar la barrera entre el desarrollo con lenguajes OO y la gestión de datos complejos.
¿Qué es una base de datos objeto-relacional (BDOR)?
Es un sistema que combina el modelo relacional tradicional con características orientadas a objetos, permitiendo objetos con atributos y métodos dentro de un entorno relacional.
¿Qué funcionalidades clave debe soportar un Sistema Gestor de Base de Datos Objeto-Orientado (SGBD-OO)?
Debe soportar: manejo de objetos complejos, identidad única, encapsulación, herencia, polimorfismo (ligadura dinámica), persistencia, control de concurrencia, recuperación ante fallos, y consultas eficientes.
¿Qué es el estándar ODMG y qué lenguajes define?
Es un estándar para bases de datos objeto-orientadas que define:
- ODL (Object Definition Language) para definir el esquema,
- OML (Object Manipulation Language) para manipular objetos,
- OQL (Object Query Language) para consultas, similar a SQL.
¿Qué es un OID en bases de datos objeto-orientadas?
Es un identificador único para cada objeto, que permite diferenciar objetos aunque tengan los mismos valores en sus atributos.
¿Qué es Matisse y qué características tiene?
Es un SGBD-OO libre y multiplataforma que implementa ODMG. Permite definir clases, interfaces, relaciones, métodos y trabajar con Java a través de su API.
¿Cómo se definen interfaces y relaciones en ODL para un SGBD-OO como Matisse?
Se usan interfaces con atributos y relaciones bidireccionales usando la palabra clave relationship y el inverso con inverse. Por ejemplo:
interface Album {
attribute string titulo;
relationship Set<Autor> creado_por inverse Autor::crea;
}</Autor>
¿Qué ventajas tiene usar un SGBD-OO frente a uno relacional tradicional?
Mejor manejo de datos complejos, soporte natural para herencia y polimorfismo, integración directa con lenguajes OO, y mayor extensibilidad para nuevos tipos y operaciones.
¿Qué es la persistencia en bases de datos objeto-orientadas?
Es el almacenamiento de objetos para mantener su estado y datos más allá de la ejecución del programa, permitiendo recuperar y manipular objetos después.
¿Por qué es importante la encapsulación en bases de datos orientadas a objetos?
Porque oculta los detalles internos del objeto y controla el acceso a sus datos y métodos, garantizando integridad y seguridad de la información.
¿Qué es la herencia en bases de datos objeto-orientadas?
Es el mecanismo mediante el cual una clase puede heredar atributos y métodos de otra clase, facilitando la reutilización y extensión de modelos.
¿Qué papel juega el polimorfismo en bases de datos orientadas a objetos?
Permite que un objeto pueda ser tratado como instancia de su clase base o derivada, y que el método ejecutado dependa del tipo real del objeto en tiempo de ejecución.
¿Qué es OQL y para qué se utiliza?
OQL (Object Query Language) es un lenguaje de consulta para bases de datos objeto-orientadas, similar a SQL pero adaptado para consultar objetos y sus relaciones.
¿Cómo se integran las bases de datos objeto-orientadas con lenguajes como Java?
Mediante APIs y métodos que permiten crear, almacenar, modificar y consultar objetos directamente desde el código, facilitando la manipulación y persistencia.
¿Qué son las cardinalidades en bases de datos objeto-orientadas?
Son las multiplicidades que indican cuántos objetos de una clase pueden estar relacionados con objetos de otra clase (ej. 1 a 1, 1 a muchos, muchos a muchos).
¿Cuáles son algunas ventajas de los sistemas de gestión de bases de datos objeto-orientadas?
Manejo natural de datos complejos, soporte directo a objetos, mejor modelado para aplicaciones orientadas a objetos, y soporte para relaciones complejas.
¿Qué desafíos enfrentan las bases de datos objeto-orientadas?
Complejidad de implementación, menor rendimiento en ciertas consultas comparado con bases relacionales, y menor estandarización en comparación con SQL.
¿Qué son las clases y objetos en bases de datos objeto-orientadas?
Son las unidades básicas de almacenamiento, donde los objetos contienen atributos y métodos, representando entidades con comportamiento, no solo datos.
¿Qué es la persistencia transparente en bases de datos orientadas a objetos?
Es la capacidad de almacenar y recuperar objetos sin que el programador tenga que escribir código explícito para gestionar su almacenamiento, facilitando su uso.
¿Cómo se realizan las consultas en bases de datos objeto-orientadas?
Se usan lenguajes como OQL, que permiten navegar por objetos y sus relaciones, invocar métodos y acceder a atributos de forma directa.
¿Qué tipos de datos complejos pueden manejar las bases de datos orientadas a objetos?
Pueden almacenar colecciones, herencia múltiple, objetos anidados y estructuras complejas propias de la programación orientada a objetos.
¿Cómo optimizan el rendimiento las bases de datos objeto-orientadas?
Usan índices específicos, referencias directas entre objetos y técnicas de navegación para acceder rápidamente a datos relacionados.
¿En qué se diferencian las bases de datos objeto-orientadas de las relacionales?
Las OO almacenan objetos con atributos y métodos, soportan herencia y relaciones complejas, mientras que las relacionales usan tablas, filas y columnas sin comportamiento asociado.