En las bases de datos orientadas a objetos (OODB), los usuarios pueden establecer operaciones en una base de datos en particular, que se compone de objetos que pueden ser de una amplia variedad de tipos y para los cuales se establecen operaciones. Pueden manejar eficientemente información binaria como objetos multimedia. Otro beneficio adicional de OODB es que se puede programar con ligeras diferencias de procedimiento sin afectar todo el sistema.
Requisitos previos para la creación del estándar
La historia de las bases de datos OODB orientadas a objetos comienza a finales del siglo pasado. Fueron creados para satisfacer las necesidades de nuevas aplicaciones. La suposición era que las bases de datos orientadas a objetos revolucionarían los sistemas de software durante la década de 1990. Ahora está claro que este no es el caso. Sin embargo, el resurgimiento de este concepto a través de las comunidades de software libre y la identificación de aplicaciones adecuadas al mismo motiva una revisión de las característicasOODB, que es una alternativa a las ubicuas bases de datos relacionales.
La orientación a objetos brinda la flexibilidad para manejar algunos o todos los requisitos y no se limita a los tipos de datos y lenguajes de consulta de las bases de datos tradicionales. Una característica clave de los OODB es la capacidad que brindan al desarrollador, permitiéndole especificar tanto la estructura de objetos complejos como las operaciones de la aplicación. Otra razón para crear OODB es el creciente uso de lenguajes para el desarrollo de software.
Las bases de datos se han convertido en la base de muchos sistemas de información, pero las bases de datos tradicionales son difíciles de usar cuando las aplicaciones que acceden a ellas están escritas en C++, Smalltalk o Java. Por ejemplo, las bases de datos orientadas a objetos 1C fueron diseñadas de tal manera que pueden integrarse directamente con aplicaciones que utilizan lenguajes orientados a objetos adoptando sus conceptos: Visual Studio. Net, C ++, C, Microsoft SQL Server y otros.
La principal ventaja de OODB es la eliminación completa de la necesidad de RMs1 (impedancia) con mejoras de rendimiento posteriores.
Defectos:
- Mecanismos de consulta muy primitivos, sin plataforma autoestándar aceptada.
- No se pueden almacenar procedimientos porque solo se puede acceder a los objetos en el cliente.
- Inmadurez en el mercado.
- Sin agrupación física de objetos.
Paradigma de objetos
Las bases de datos orientadas a objetos son bases de datos programables que almacenan datos complejos y sus relaciones directamente sin asignar filas ni columnas, lo que las hace más adecuadas para aplicaciones que trabajan con lotes grandes. Los objetos tienen relaciones de muchos a muchos y son accesibles mediante el uso de punteros asociados con ellos para establecer relaciones. Como cualquier programable, OODB proporciona un entorno de desarrollo de aplicaciones y un repositorio persistente listo para su explotación. Almacena y manipula información que se puede digitalizar en forma de objetos, proporciona un acceso rápido y brinda excelentes capacidades de procesamiento.
Conceptos básicos utilizados en una base de datos orientada a objetos:
- identidad del objeto;
- tipo de constructor;
- compatibilidad de idiomas;
- jerarquías de tipos y herencia;
- procesamiento de objetos complejos;
- polimorfismo y sobrecarga de operadores;
- creando versiones.
Para considerar completamente todos los aspectos que caracterizan una base de datos orientada a objetos, es importante tener en cuenta todos los paradigmas de objetos importantes:
- La encapsulación es una propiedad que le permite ocultar información para otros objetos, evitando así accesos incorrectos o conflictos.
- La herencia es una propiedad por la cual los objetos heredan el comportamiento en una jerarquía de clases.
- El polimorfismo es una propiedad de una operación con la que se puede aplicar adiferentes tipos de objetos.
- La interfaz o firma de una operación incluye el nombre y los tipos de datos de sus argumentos o parámetros.
- La implementación o método de una operación se especifica por separado y se puede cambiar sin afectar la interfaz. Las aplicaciones de usuario pueden trabajar con datos llamando a operaciones específicas a través de sus nombres y argumentos, independientemente de cómo se hayan implementado.
Clases y funcionalidad
Al considerar el concepto de clases en OODB, es necesario distinguir entre los términos "clase" y "tipo". Un tipo se utiliza para describir un conjunto de objetos con un comportamiento similar. En este sentido, depende de qué operaciones se pueden llamar sobre el objeto. Una clase es una colección de objetos que comparten la misma estructura interna, por lo que define una implementación, mientras que un tipo describe cómo usarlo.
El término instanciación se refiere al hecho de que la instanciación de una clase se puede utilizar para producir un conjunto de objetos que tienen la misma estructura y comportamiento establecidos por la clase.
Una característica muy importante para la evolución de los objetos es que puede cambiar su clase, incluidos los atributos y las operaciones, manteniendo la identidad. Esto requeriría un mecanismo para manejar la integridad semántica resultante.
Heredar la base de datos orientada a objetos de una organización permite que una clase se defina como una subclase de una superclase ya existente. Heredará todos los atributos y métodos de este último y puede definir opcionalmentepropio. Este concepto es un mecanismo importante para apoyar la reutilización. Las mismas partes de la estructura de dos clases diferentes solo se pueden definir una vez en una superclase común, por lo que se escribirá menos código. Hay algunos sistemas que permiten que una clase sea una subclase de más de una superclase. Esta función se denomina herencia múltiple en lugar de herencia única.
Ejemplo de una base de datos orientada a objetos
A menudo es útil usar el mismo nombre para métodos diferentes pero similares de la superclase de medios de las clases de imagen y video. Muchos archivos pueden ser vistos por diferentes espectadores. A menudo necesitan ver todas las fotos y videos usando el método de "ver", y se debe iniciar el programa apropiado. Cuando se llama a la función y se pasa un enlace al video, se inicia el reproductor multimedia. Para implementar esta función, en primer lugar, es necesario definir la operación de "presentación" en la superclase de medios comunes de las clases de imagen y video. Cada una de las subclases redefine la operación de búsqueda para sus necesidades específicas. Esto da como resultado diferentes métodos que tienen el mismo nombre de operación. En este caso, usar esta función tiene una ventaja importante.
Estructura OODB
El paradigma orientado a objetos se basa en la encapsulación de datos y código relacionados con cada objeto en un solo módulo. Conceptualmente, todas las interacciones entre éste y el resto del sistema se realizan mediante mensajes. De ahí la interfazentre ellos está determinado por el conjunto permitido.
En general, cada objeto está asociado a un conjunto:
- Variables que contienen datos de objetos y corresponden a atributos del modelo ER.
- Mensajes a los que responde. Cada uno puede tener o no parámetros, uno o más.
- Métodos, cada uno de los cuales es un código que implementa mensajes y devuelve un valor en respuesta.
La mensajería en un entorno OO no implica el uso de SMS físicos en redes informáticas. Por el contrario, se refiere al intercambio de solicitudes entre objetos, independientemente de los detalles correctos de su implementación. A veces, una expresión llama a un método para activar el hecho de que se ha enviado un mensaje a un objeto y utiliza la ejecución del método correspondiente.
Identidad del objeto
El sistema de base de datos orientado a objetos proporciona una identificación única para cada objeto independiente almacenado en la base de datos. Por lo general, se implementa utilizando un identificador de objeto único u OID generado por el sistema. El valor de OID es invisible para el usuario externo, pero el sistema lo usa internamente para administrar enlaces entre objetos.
La propiedad principal de un OID es ser inmutable. El valor OID para un objeto en particular nunca debe cambiar. Esto preserva la identidad del mundo real que se representa. También es preferible que cada OID se use una sola vez, aunque se elimine de la base de datos, no se debe asignar su OID a otro. A menudo también se considera inapropiado basarlo en unla dirección del objeto en almacenamiento, ya que reorganizarlos en la base de datos puede cambiar el OID. Sin embargo, algunos sistemas usan la dirección física como OID para aumentar la eficiencia de la recuperación de objetos. Un marco orientado a objetos impone automáticamente restricciones relacionales, generalmente más aplicables: dominio, clave, integridad del objeto e integridad referencial.
Tres constructores principales
En OODB, los valores o estados de objetos complejos se pueden crear a partir de otros utilizando constructores de ciertos tipos. Una forma de representarlos es pensar en cada uno como un triplete (i, c, v), donde i es el identificador único (OID) del objeto, c es el constructor, es decir, un indicador de cómo es el valor del objeto. creado, y v es el valor o estado del objeto. Puede haber varios constructores según el modelo de datos y el sistema OO.
Tres constructores básicos de bases de datos orientados a objetos:
- átomos;
- tuplas;
- conjuntos.
Otros usos más comunes son listas y gráficos. También está el dominio D, que contiene todos los valores atómicos básicos disponibles directamente en el sistema. Por lo general, incluyen números enteros, números reales, cadenas de caracteres, fechas y cualquier otro tipo de datos que el sistema maneje directamente. Tanto la estructura de los objetos como las operaciones están incluidas en las definiciones de clase.
Compatibilidad con lenguajes de programación
Los conceptos básicos de las bases de datos orientadas a objetos se utilizan encomo herramientas de diseño y codificadas para trabajar con la base de datos.
Hay varios lenguajes posibles en los que se pueden integrar estos conceptos:
- Expandir un lenguaje para procesamiento de datos como SQL agregando tipos complejos y programación orientada a objetos. Los sistemas proporcionan extensiones orientadas a objetos a los sistemas relacionales, llamados sistemas relacionales orientados a objetos.
- Utilizar un lenguaje de programación orientado a objetos existente y ampliarlo para que funcione con bases de datos. Se denominan lenguajes de programación persistentes y permiten a los desarrolladores trabajar directamente con datos sin tener que pasar por un lenguaje de procesamiento de datos como SQL. Se denominan persistentes porque los datos siguen existiendo después de que finaliza el programa que los creó.
Al decidir qué opción usar, tenga en cuenta que los lenguajes persistentes tienden a ser poderosos y es relativamente fácil cometer errores de programación que dañan la base de datos. La complejidad de los lenguajes dificulta las optimizaciones automáticas de alto nivel, como la reducción de la E/S del disco. En muchas aplicaciones, la capacidad de realizar consultas declarativas es importante, pero los lenguajes persistentes actualmente no permiten tales consultas sin problemas.
Jerarquía de tipos de herencia
Los esquemas de bases de datos orientados a objetos normalmente requieren una gran cantidad de clases. Sin embargo, varias clases son similares entre sí. Para permitir una representación directa de las similitudes entre ellas, debe poneren una jerarquía de especializaciones. Este concepto es similar a los modelos ER. Las especializaciones de clase se denominan subclases, que definen atributos y métodos adicionales para una clase existente. Los objetos creados con subclases heredan todo del padre. Algunas de estas características heredadas pueden haber sido tomadas prestadas de los que están más arriba en la jerarquía.
Los objetos se consideran complejos porque requieren una gran cantidad de espacio de almacenamiento y no forman parte de los tipos de datos estándar que suele ofrecer la administración de bases de datos orientadas a objetos (OODBS). Debido a que el tamaño de los objetos es importante, SOOBMS puede recibir una parte de un objeto y proporcionarla a una aplicación antes de adquirir el objeto completo. También puede usar métodos de búfer y caché para obtener partes de un objeto con anticipación, antes de que una aplicación pueda acceder a ellas.
OODB permite a los usuarios crear nuevos tipos que incluyen tanto estructura como operaciones, en este caso el sistema de tipo extensible. Puede crear bibliotecas de nuevos tipos definiendo su estructura y operaciones. Muchos de ellos pueden almacenar y recibir un gran objeto estructurado en forma de cadenas y caracteres o bits, que se pasan "tal cual" al programa de aplicación para su interpretación.
El método puede acceder directamente a los atributos del objeto de destino por su nombre, incluidos los heredados de las clases principales, pero debe acceder a los atributos de otros objetos con señales secundarias. El concepto le permite asociar el mismo nombre de operador o símbolo condos o más implementaciones diferentes, según el tipo de objetos a los que se aplique.
Creación de aplicaciones
Muchas aplicaciones de bases de datos que utilizan sistemas OO requieren varias versiones del mismo objeto. Por lo general, las actividades de mantenimiento se aplican a un sistema de software a medida que cambian sus requisitos e implica cambiar algunos de los módulos de desarrollo e implementación. Si el sistema ya se está ejecutando y es necesario cambiar uno o más módulos, el desarrollador debe crear una nueva versión de cada uno de ellos haciendo cambios.
Tenga en cuenta que puede haber más de dos versiones de un objeto, en caso de que se requieran dos además del módulo original. Las versiones propias del mismo módulo de software se pueden actualizar al mismo tiempo. Esto se denomina diseño de base de datos paralelo orientado a objetos. Sin embargo, siempre llega un punto en el que deben fusionarse para que la OODB híbrida incorpore los cambios que se han realizado para que sean compatibles.
Condiciones orientadas a objetos
Todos los sistemas informáticos deben tener propiedades de su arquitectura para ser considerados. Por ejemplo, un sistema debe tener tablas para ser considerado relacional. OODB no es una excepción y contiene algunas propiedades básicas de la arquitectura de objetos. Sin embargo, en el mundo real, muchas de estas propiedades se analizan y algunas, como la herencia múltiple, se consideran mejoras al modelo de base de datos orientada a objetos en lugar decomo parte de la línea base. Por ejemplo, en el lenguaje orientado a objetos Smalltalk, la herencia múltiple no es compatible, aunque se considera parte de la arquitectura de objetos.
Los métodos para una clase definen un conjunto de operaciones que se pueden realizar en un objeto. Por ejemplo, cuando se aplica a un objeto, devuelve un valor o realiza alguna operación para actualizar los valores. A veces los métodos no lo devuelven. Si el método estuviera diseñado para actualizar el número de pasajeros de un vehículo, no se devolvería ningún valor, pero el elemento de datos en el destino lo cambiaría.
Los objetos son un concepto fundamental en OODB. Esencialmente, los objetos son una representación abstracta de las cosas del mundo real que están almacenadas en él. Un objeto es una instancia de una clase en el sentido de que está excluido de su definición.
Puede pensar en un objeto como un paquete autónomo que tiene tres partes:
- Información personal propia, valores de datos.
- Procedimientos privados que manipularán valores a través de la definición de clase.
- Interfaz abierta para que este objeto pueda comunicarse con otros.
Ejemplos OODB
Usar OODB simplifica la conceptualización porque es más natural representar la información que necesita ser almacenada. Para modelar la estructura o lógica de una base de datos, el uso de diagramas de clases permite introducir clases con sus relaciones estructurales y herencia. Para modelar parte de la dinámica, interacción ycomportamiento entre objetos, se utilizará un diagrama de secuencia para representar la interacción entre objetos ubicados en una relación temporal, describiendo los posibles estados para que se puedan encontrar dado el estado cambiado después de que ocurra el evento.
A continuación se muestra un ejemplo de una base de datos orientada a objetos.
Tienen un nombre y una vida, que puede ser temporal o permanente. La clave OODB es la capacidad que brindan al desarrollador para especificar cuántas estructuras y operaciones se les aplicarán. Hay flexibilidad y soporte para manejar tipos de datos complejos. Puede crear clases y subclases, por ejemplo, la base de clientes puede tener una subclase del enlace de este cliente, y heredará todos los atributos y características de la clase original, este enfoque le permite procesar datos complejos de manera rápida y flexible.