Upload
kariina-roman
View
212
Download
0
Embed Size (px)
Citation preview
Instituto Tecnológico Superior
Zacatecas Occidente
Tópicos de Bases de datos
Unidad II “Sistema de BDOO”
Practica 1
Reporte de Investigación (Exposición)
** 2.3 Estandar ODMG **
Elaborado por:
Karina Román Barrios
ISC Teresa Helguera Ríos
Fecha de entrega
6 de Marzo del 2014
ÍNDICE
INTRODUCCIÓN...........................................................................................................................................3
COMPETECIA DE DESARROLLAR.................................................................................................................4
ESTANDAR ODMG (Object Data Management Group)..............................................................................4
LAS PRIMITIVAS BÁSICAS DE UN SISTEMA GESTOR DE BASE DE DATOS ORIENTADA A OBJETOS.................................................................................................................4
Un objeto....................................................................................................................................4
Un literal.....................................................................................................................................4
COMPOSICIÓN DEL ESTÁNDAR ODMG.......................................................................................5
1. Modelo de objetos..................................................................................................................5
2. Lenguaje de definición de objetos (ODL).........................................................................5
3. Lenguaje de consulta de objetos (OQL)............................................................................5
4. Conexion con los lenguajes C++, Smalltalk y Java........................................................6
LAS DOS PRINCIPALES VENTAJAS DEL ESTÁNDAR ODMG................................................6
Facilidad de uso:.......................................................................................................................6
La portabilidad:..........................................................................................................................6
ANEXOS.......................................................................................................................................................7
SMALLTALK..........................................................................................................................................7
EIFFEL...................................................................................................................................................7
C++.........................................................................................................................................................9
CONCLUSIONES.........................................................................................................................................10
BILIOGRAFÍA..............................................................................................................................................10
INTRODUCCIÓNLas bases de datos orientadas a objetos (BDOO) son aquellas cuyo modelo de datos
está orientado a objetos y almacenan y recuperan objetos en los que se almacena
estado y comportamiento. Su origen se debe a que en los modelos clásicos de datos
existen problemas para representar cierta información, puesto que aunque permiten
representar gran cantidad de datos, las operaciones que se pueden realizar con ellos
son bastante simples.
Las clases utilizadas en un determinado lenguaje de programación orientado a objetos
son las mismas clases que serán utilizadas en una BDOO; de tal manera, que no es
necesaria una transformación del modelo de objetos para ser utilizado por un
SGBDOO. De forma contraria, el modelo relacional requiere abstraerse lo suficiente
como para adaptar los objetos del mundo real a tablas.
Las bases de datos orientadas a objetos surgen para evitar los problemas que surgen
al tratar de representar cierta información, aprovechar las ventajas del paradigma
orientado a objetos en el campo de las bases de datos y para evitar transformaciones
entre modelos de datos (usar el mismo modelo de objetos).
COMPETECIA DE DESARROLLARConocer y analizar el estándar ODMG para SGBDOO para su diseño, implementación
y automatización de las BD para el tratamiento de la información.
ESTANDAR ODMG (Object Data Management Group)
Fue desarrollado en1991 con el objetivo de definir estándares paro los SGBDOO.
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.
Es el acrónimo de Object Data Base Management Group. Se usa tanto para definir el
grupo de personas y empresas encargadas de desarrollar el modelo de objetos para
persistencia, así como para la definición de dicho estándar.
Este modelo 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.
El modelo de datos del estándar ODMG dispone de unas primitivas de modelado. Estas
primitivas subyacen en la totalidad de los lenguajes orientados a objetos puros (Eifflel,
Smalltalk, etc.) y en mayor o menor medida en los híbridos (Java, C++, etc.):
LAS PRIMITIVAS BÁSICAS DE UN SISTEMA GESTOR DE BASE DE DATOS ORIENTADA A OBJETOS
Un objeto es una instancia de una entidad de interés del mundo real. Los objetos
necesitan de un identificador único (OID- Identificador de Objeto).
o Set<tipo>: es un grupo desordenado de objetos del mismo tipo. No se
permiten duplicados.
o Bag<tipo>: es un grupo desordenado de objetos del mismo tipo. Se
permiten duplicados.
o List<tipo>: es un grupo ordenado de objetos del mismo tipo. Se permiten
duplicados.
o Array<tipo>: es un grupo ordenado de objetos del mismo tipo que se
pueden acceder por su posición. Su tamaño es dinámico y los elementos
se pueden insertar y borrar de cualquier posición.
o Dictionary<clave,valor>: es como un índice. Está formado por claves
ordenadas, cada una de ellas emparejada con un solo valor.
Un literal es un valor específico. 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 (por
ejemplo, enumeraciones).
o boolean : un valor que es verdadero o falso.
o short : un entero con signo, normalmente de 8 o 16 bits.
o long : un entero con signo, normalmente de 32 o 64 bits.
o unsigned short : un entero sin signo, normalmente de 8 o 16 bits
o unsigned long : un entero sin signo, normalmente de 32 o 64 bits.
o float : un valor real en coma flotante de simple precisión.
o double : un valor real en coma flotante de doble precisión.
o octet : un almacén de 8 bits.
o char : un carácter ASCII o UNICODE.
o string : una cadena de caracteres.
o enum : un tipo enumerado donde los valores se especifican
explícitamente cuando se declara el tipo.
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.
Tipos cada tipo tiene un dominio especifico 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.
Transacciones son unidades lógicas de trabajo que llevan a la base de datos de
un estado consistente a otro estado consistente. El modelo asume una
secuencia lineal de transacciones que se ejecutan de modo controlado. La
concurrencia se basa en bloqueos estándar de lectura/escritura con un protocolo
pesimista de control de concurrencia. Todos los accesos, creación, modificacion
y borrado de objetos persistentes se deben realizar dentro de una transacción.
El modelo especifica operaciones para iniciar, terminar (commit) y abortar
transacciones, así como la operación de checkpoint. Esta ultima operación hace
permanentes los cambios realizados por la transacción en curso sin liberar
ninguno de los bloqueos adquiridos
COMPOSICIÓN DEL ESTÁNDAR ODMG
La última versión del estándar fue la 3.0 propone los siguientes componentes
principales de la arquitectura ODMG para SGBDOO:
1. Modelo de objetos
El modelo de objetos ODMG permite que tanto los diseños como las
implementaciones, sean portables entre los sistemas que lo soportan.
2. Lenguaje de definición de objetos (ODL)
ODL es un lenguaje para definir la especificación de los tipos de objetos para
sistemas compatibles con ODMG. ODL es el equivalente de DDL (Data
Definition Language o 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. Su principal objetivo es el de facilitar la
portabilidad de los esquemas entre sistemas compatibles al mismo tiempo que
proporciona interoperabilidad entre distintos SGBD. La sintaxis de ODL extiende
el lenguaje de definición de interfaces (IDL) de la arquitectura CORBA (Common
Object Request Broker Architecture).
3. Lenguaje de consulta de objetos (OQL)
OQL es un lenguaje declarativo del tipo de SQL que permite realizar consultas
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 superconjunto de la sentencia SELECT. OQL no posee
primitivas para modificar el estado de los objetos, ya que éstas se deben realizar
a través de los métodos que dichos objetos poseen. La sintaxis básica de OQL
es una estructura SELECT...FROM...WHERE..., como en SQL.
4. Conexión con los lenguajes C++, Smalltalk y Java
Incluye una correspondencia del lenguaje de manipulación de objetos (OML,
Object Manipulation Language) para cada uno de los LP, para escribir código
portable que permita manipular los objetos persistentes usando uno de esos
lenguajes.
LAS DOS PRINCIPALES VENTAJAS DEL ESTÁNDAR ODMG
Facilidad de uso: Utilizando una especificación de almacenamiento común
minimiza la necesidad de formación, ya que los enlaces son extensiones ODMG
lengua materna a los actuales lenguajes de programación orientada a objetos.
La portabilidad: reduce el riesgo de desarrollo de software mediante la
eliminación de una única fuente, además de facilitar la reutilización a través de
plataformas compatibles diferentes. Al proporcionar almacenamiento de objetos
transparentes a través de una variedad de plataformas, ODMG permite al
usuario elegir el servidor de almacenamiento que cumpla con los requisitos
técnicos y de negocio.
ANEXOSSMALLTALK
Fue el primer lenguaje de programación orientado a objetos. Desarrollado en el Xerox
PARC, en sus primeras implementaciones no ofrece solamente un intérprete, sino que
es mucho más ambicioso, integrando intérprete on-line y otros aspectos que le
convierten en un <<pseudo>> sistema operativo. Es el primero en aportar la
arquitectura de Modelo/Visor/Controlador. El interface de usuario se divide en una
definición sobre la que se aplican determinado número de vistas gestionadas por un
controlador. El MVC permite al desarrollador concentrarse en la parte esencial de la
aplicación (el modelo) y añadir interfaces de usuarios (las vistas y controles) de forma
independiente.
Ventajas
Smalltalk es un lenguaje puro orientado a objetos
La implementación a través de un intérprete facilita la labor de desarrollo de
programas. Las clases son añadidas, corregidas y depuradas de forma interactiva.
Tiene una sintaxis simple, donde las variables y los atributos no necesitan tener un
tipo asociado. Todo está definido en principio como objeto, incluyendo las propias
clases.
Inconvenientes
Es un lenguaje interpretado, lo que reduce su rendimiento y dificulta
su comercialización.
Al proporcionar su propio entorno operativo, interactúa mal con otro tipo de software
o hardware
EIFFEL
Es un lenguaje de programación escrito por Bertrand Meyer. Al contrario que Smalltalk,
incluye un preprocesador que permite la traducción de código Eiffel a Lenguaje C. Es
ideal para la ingeniería de software, que permite la encapsulación, control de acceso y
ámbito de las modificaciones. Como lenguaje orientado a objetos <<puro>>, es
presumiblemente el mejor por sus capacidades técnicas.
Los programas consisten en la declaración de colecciones de clases que
incluyen métodos. El punto primordial de un programa Eiffel es la declaración de
clases, que asocia atributos. Ambos, clases y atributos, son accesibles a partir de la
implementación de un concepto llamado característica. Una característica es, por tanto,
una agrupación de datos y unas formas típicas de tratarlos.
En Eiffel una declaración de clases puede incluir:
Una lista de características exportables.
Una lista de las clases antecesora: clases de la que ésta es una derivación
Una lista de declaraciones de características.
Ventajas
Es un lenguaje orientado a objetos <<puro>>
Eiffel es un lenguaje de programación orientado hacia el diseño de grandes
aplicaciones. Las propiedades anteriores le hacen ideal para el diseño de
aplicaciones en grupos de trabajo.
El paso intermedio a código C se puede considerar como una ventaja y no como un
inconveniente, ya que aquellas secciones que sean difíciles de tratar con Eiffel
pueden elaborarse a partir de código C. Su compatibilidad con C asegura también
su portabilidad hacia otros sistemas operativos
Desventajas
El manejo de la memoria , un punto delicado en todos los lenguajes orientados a
objetos no es transparente como en el caso de Smalltalk.
Las librerías de clases son reducidas
El rendimiento es mayor que el de Smalltalk, pero al tener que incluir un módulo
Run-time dentro del ejecutable, su tamaño crece y su rendimiento baja.
C++
Es un lenguaje de uso general que deriva del C.
Añade a su predecesor una serie de características que le convierten en un lenguaje
orientado a objetos. Dentro de estas características debemos resaltar:
La abstracción de datos
La programación orientada a objetos, ya que permite asociar a los datos las
funciones que los manipulan
C++ conserva todas las capacidades de su predecesor C. De hecho, el código C puede
tratarse con compiladores C++ y ejecutarse sin ningún problema. En un principio C++
era traducido a código C a través de una utilidad llamada precompilador.
También es cierto que se pueden utilizar algunas de las ventajas de C++ (como C
mejorado) para escribir código no orientado a objetos.
Enumeramos los aspectos más importantes que hacen del C++ un lenguaje orientado a
objetos:
La mayor contribución que realiza C++ al C es la introducción del tipo clase. Las
clases permiten definir conjunto de datos y las funciones que los manipulan.
La ocultación de datos es el mecanismo para implementar la abstracción de datos.
La abstracción de datos permite al programador <<olvidar>> el funcionamiento
interno de una clase, ya que sabe que su funcionamiento no va a alterar
anómalamente el funcionamiento de otras clases. Una vez definida la clase es
transparente para el desarrollador y permite operar con ella como si fuera un tipo
básico.
La herencia extiende el concepto de abstracción de datos al permitir la construcción
de clases a partir de otras (sus antecesores)
Los operadores definidos por el usuario permiten un tratamiento homogéneo entre
los tipos predefinidos por el lenguaje y los desarrollados por el programado.
CONCLUSIONESEn definitiva, ODMG-93 intenta definir un SGBDOO que integre las capacidades de las
bases de datos con las capacidades de los lenguajes de programación, de forma que
los objetos de la base de datos aparezcan como objetos del lenguaje de programación,
intentando de esta manera eliminar la falta de correspondencia existente entre los
sistemas de tipos de ambos lenguajes.
BILIOGRAFÍA Sistemas de bases de datos orientadas a objetos: Conceptos y arquitecturas. Editorial: Addison-
Wesley / Diaz de Santos. Autores: Elisa Bertino, Lorenzo Martino.
Sistemas de bases de datos: Un enfoque práctico para diseño, implementación y gestión. 4ª
Edición. Editorial: Pearson Addison- Wesley. Autores: Thomas M. Connolly, Carolyn E. Begg.
Fundamentos de Bases de datos. 5ª Edición. Editorial: McGraw Hill. Autores: Silberschatz, Korth,
Sudarshan
Bases de Datos Orientadas a Objeto y el estándar ODMG. Autores: Clara Martín Sastre y Enrique
Medarde Caballero
http://www.sociedadelainformacion.com/38/ODMG1.pdf
http://gusmc.wikispaces.com/1.1.3+El+est%C3%A1ndar+ODMG