Este Modelo estándar ODMG, especifica los
elementos que se definirán, y en qué manera se hará, para la consecución de
persistencia en las Bases de datos orientadas a objetos que soporten el
estándar. Consta de un lenguaje de definición de objetos, ODL, que especifica
los elementos de este modelo. Un grupo
de representantes de la industria de las bases de datos formaron el ODMG (Object Database Management Group) con el
propósito de definir estándares para los SGBD orientados a objetos. Este grupo
propuso un modelo estándar para la semántica de los objetos de una base de
datos. Su última versión, ODMG 3.0, apareció en enero de 2000.
El estándar ODMG es un producto de consorcio
internacional OMG, el cual principalmente proporciona técnicas orientadas a objetos para la ingeniería de software. Sus estándares pueden ser
aceptados por empresas certificadas como ISO. El estándar OSMG es el modelo para la semántica de los objetos de una base de datos. Permite portar tanto los
diseños como las implementaciones en diversos sistemas compatibles.
ODMG está
compuesto por:
Modelo de
Objeto
El modelo de objetos ODMG permite que tanto los
diseños, como las implementaciones, sean portables entre los sistemas que lo
soportan. Dispone de las siguientes primitivas de modelado:
Los componentes básicos
de una base de datos
orientada a objetos
son los objetos
y los literales. Un objeto
es una instancia autocontenida de una entidad de interés del mundo real. Los
objetos tienen algún tipo de identificador único. Un literal es un valor
específico, como “Amparo” o 36. Los literales no tienen identificadores. Un
literal no tiene que ser necesariamente un solo valor, puede ser una estructura o un conjunto
de valores relacionados que se guardan
bajo un solo nombre. Los objetos y los literales se categorizan en tipos.
Cada tipo tiene un dominio específico compartido por todos los objetos y
literales de ese tipo. Los tipos también pueden tener comportamientos. Cuando
un tipo tiene comportamientos, todos los objetos de ese tipo comparten los
mismos comportamientos. En el
sentido práctico, un tipo puede ser una clase de la que se crea un objeto, una interface o un tipo de datos para un
literal (por ejemplo, integer). Un objeto se puede pensar como una instancia de
un tipo. Lo que un objeto sabe hacer son sus operaciones. Cada operación puede
requerir datos de entrada (parámetros de entrada) y puede devolver algún valor
de un tipo conocido. Los objetos tienen propiedades, que incluyen sus atributos
y las relaciones que tienen con otros objetos. El estado actual de un objeto viene dado por los valores
actuales de sus propiedades. Una base de datos
es un conjunto de objetos almacenados que se gestionan de modo que puedan ser
accedidos por múltiples usuarios y aplicaciones. La definición de una base de
datos está contenida en un esquema que se ha creado mediante
el lenguaje de definición de objetos ODL (Object Definition Language) que es el
lenguaje de manejo de datos que se ha definido como parte del estándar
propuesto para las bases de datos orientadas a
objetos.
Lenguaje
de definición de objeto ODL.
ODL es un lenguaje de especificación para
definir tipos de objetos para sistemas compatibles con ODMG. ODL es el
equivalente del DDL (lenguaje de definición de datos) de los SGBD
tradicionales. Define los atributos
y las relaciones entre tipos,
y especifica la signatura de las operaciones. La sintaxis de ODL
extiende el lenguaje de definición de interfaces (IDL)de la arquitectura CORBA
(Common Object Request Broker Architecture).
Lenguaje
de Consulta de objetos OQL.
OQL es un lenguaje declarativo del tipo de SQL
que permite realizar consultas de modo eficiente sobre bases de datos
orientadas a objetos, incluyendo primitivas de alto nivel para conjuntos de
objetos y estructuras. Está basado en SQL-92, proporcionando un súperconjunto
de la sintaxis de la sentencia SELECT.OQL no posee primitivas para modificar el
estado de los objetos ya que las modificaciones se pueden realizar
mediante los métodos
que ́éstos poseen.
La sintaxis básica de OQL es una estructura
SELECT...FROM...WHERE..., como en SQL.
0 comentarios:
Publicar un comentario