Está en la página 1de 26

El modelo estndar

ODMG

ODMG
ODMG Object Database Management Group Ao 2000 aparece ODMG 3.0
Modelo de objetos Lenguaje de definicin de objetos ODL Lenguaje de consulta de objetos OQL Conexin con los lenguajes C++, Smaltalk y Java

Modelo de objetos
ODMG permite que tanto los diseos como las implementaciones sean portables Primitivas de modelado
Objetos
Instancia autocontenida de una entidad de inters del mundo real. Tienen un identificador nico

Literales
Valor especifico. Amparo, 36 No tienen identificador No tienen porque ser un solo valor, puede ser una estructura o un conjunto de valores relacionados

Modelo de objetos
Objetos y literales se categorizan en tipos
Los tipos pueden tener comportamiento Clase

Los objetos saben realizar sus operaciones


Pueden requerir:
Parmetros de entrada Devolver algn valor de tipo conocido

Los objetos tienen propiedades


Atributos Relaciones con otros objetos

Una BD es un conjunto de objetos almacenados que se gestionan de modo que puedan ser accedidos por mltiples usuarios y aplicaciones

Objetos
Tipos de objetos
Atmicos Tipos estructurados
date: fecha del calendario (da, mes, ao) time: hora (hora, minutos y segundos) timestamp: hora de una fecha (con precisin de microsegundos) interval: periodo de tiempo

Colecciones <interface Collection>


set<tipo>
Grupo desordenado de objetos. No permite duplicados

bag<tipo>
Grupo desordenado de objetos. Permite duplicados

list<tipo>
Grupo ordenado de objetos. Permite duplicados

array<tipo>
Grupo ordenado de objetos que se pueden acceder por su posicin. Tamao dinmico. Inserciones y borrados en cualquier posicin

dictionary<clave,valor>
Es como un ndice. Claves ordenadas, cada una de ellas emparejada con un solo valor

Objetos
Mtodo new() para crear objetos Heredan de la inteface Object

Identificador nico de objeto que no cambia ni se reutiliza cuando se borra Objetos transitorios y persistentes

Literales
No tienen identificadores No pueden aparecer como objetos, estn embebidos en ellos No se pueden referenciar de modo individual Tipos de literales
Atmicos
boolean : un valor que es verdadero o falso short : un entero con signo, normalmente de 8 o 16 bits long : un entero con signo, normalmente de 32 o 64 bits unsigned short : un entero sin signo, normalmente de 8 o 16 bits unsigned long : un entero sin signo, normalmente de 32 o 64 bits float : un valor real en coma flotante de simple precisin double : un valor real en coma flotante de doble precisin octet : un almacn de 8 bits. char : un carcter ASCII o UNICODE. string : una cadena de caracteres. enum : un tipo enumerado donde los valores se especifican explcitamente cuando se declara el tipo

Literales
Colecciones set<tipo> bag<tipo> list<tipo> array<tipo> dictionary<clave,valor> Estructurados
Nmero fijo de elementos heterogneos de la forma <nombre, valor>

date time timestamp interval

struct

Nulos

Tipos
Interface
Especificacin del comportamiento abstracto de un tipo de objeto y contiene las signaturas de las operaciones Puede tener propiedades (atributos y relaciones) como parte de su especificacin, stas no pueden ser heredadas desde la interface No es instanciable por lo que no se pueden crear objetos a partir de ella (es el equivalente de una clase abstracta en la mayora de los lenguajes de programacin)

Clase
Especificacin del comportamiento abstracto y del estado abstracto de un tipo de objeto Instanciables, por lo que a partir de ellas se pueden crear instancias de objetos individuales (es el equivalente a una clase concreta en los lenguajes de programacin) El estndar soporta la herencia simple y la herencia mltiple mediante las interfaces.
Ya que las interfaces no son instanciables, se suelen utilizar para especificar operaciones abstractas que pueden ser heredadas por clases o por otras interfaces. A esto se le denomina herencia de comportamiento y se especifica mediante el smbolo : La herencia de comportamiento requiere que el supertipo sea una interface, mientras que el subtipo puede ser una clase o una interface.

Tipos
La herencia es una relacin es un

La interface o clase ms baja de la jerarqua es el tipo ms especfico Se puede hacer referencia a los subtipos como a los supertipos
Esto hace que sea ms sencillo tratar los subtipos como un grupo cuando sea necesario.

Los subtipos se pueden especializar aadindoles comportamientos que se heredar por subtipos de este

Tipos
La relacin extiende (extends) indica la herencia de estado y de comportamiento
El subtipo y el supertipo deben ser clases
Las clases que extienden a otra clase ganan acceso a todos los estados y comportamientos del supertipo, incluyendo cualquier cosa que el supertipo haya adquirido a travs de la herencia de otras interfaces

Una clase puede extender, como mximo, a otra clase.


Si se construye una jerarqua de extensiones, las clases de ms abajo en la jerarqua heredan todo lo que sus supertipos heredan de las clases que tienen por encima

La extensin de un tipo tiene un nombre e incluye todas las instancias de objetos persistentes creadas a partir de dicho tipo
Declarar una extensin denominada empleados para el tipo de objeto Empleado es similar a crear un objeto de tipo Set<Empleado> denominado empleados

Una extensin se puede indexar para que el acceso a su contenido sea ms rpido Una clase con una extensin puede tener una o ms claves (key)
A diferencia del modelo relacional, las claves nicas no son un requisito

Tipos
Implementacin de un tipo consta de dos partes
Representacin
Estructura de datos dependiente de un lenguaje de programacin que contiene las propiedades del tipo Las especificaciones de la implementacin vienen de una conexin con un lenguaje (language binding)

Mtodos
Detalles de las operaciones de un tipo En la especificacin externa de cada operacin debe haber al menos un mtodo Un tipo puede incluir mtodos que nunca se ven desde fuera del tipo que realizan funciones para otros mtodos del tipo Se escribirn en el mismo lenguaje de programacin utilizado para expresar la representacin del tipo
Si una BD soporta aplicaciones programadas en C++, Java y Smalltalk, es necesario tener 3 implementaciones para cada tipo

Propiedades
Atributos
Se define del tipo de un objeto No tiene identificador Valores: literal o OID

Relaciones
Se definen entre tipos Solo relaciones binarias 1:1, 1:n, n:m No tiene nombre Define caminos transversales en la interface en cada direccin (set, bag o list en el lado de m) Integridad mantenida por SGBD form aade miembros a una relacin drop elimina miembros a una relacin

Transacciones
Unidades lgicas de trabajo que dejan la BD en estado consistente Secuencia lineal que se ejecutan de modo controlado Concurrencia
Bloqueos lectura/escritura

Todas las operaciones sobre objetos persistentes se realizan dentro de una transaccin Control de transacciones
commit para iniciar/terminar transacciones rollback para abortar transacciones checkpoint para hacer permanentes los cambios de la transaccin actual sin liberar los bloqueos

Lenguajes de definicin de objetos: ODL


Es el equivalente a DDL de los SGBDR Define
Atributos Relaciones entre tipos Signatura de operaciones

Extiende de la definicin de interfaces IDL de CORBA

Lenguajes de definicin de objetos: ODL

Lenguajes de definicin de objetos: ODL


Pers ona nom _Pers ona : s truct dni : String fecha_Nac : Date genero : enum direccion : s truct edad() : FLOAT Es tudiante <<exten d>> titulacion : String nota_m edia() : FLOAT m atriculars e(num _edic : Integer) cal ificar(num _edic : Integer, nota : FLOAT) 1 ediciones_cursadas 0..* Edic ionActual m atricular_es tudiante() <<extend>>

Profes or c ategoria : S tring s al ario : FLOAT des pac ho : Stri ng telefono : S tring aum entar_s alar io(aumento : FLOAT) prom ocionar( nueva_c ategoria : Stri ng) 0..* 0..* Departam ento nom bre : String telefono : String des pacho : String es cuela : String director : Profes or 1 oferta 0..* Curs o nom bre : String num _curs o : String des cripcion : String 1

1..* Califi cacion nota : FLOAT 0..* tutoriz a <<extend>>

1 Edicion num _edic : Integer ao : Integer s em es tre : enum

en_com ite 0..* 0..*

1..* Titulo es cuela : String titulo : String ao : String

Es tudianteGrad titulos : s et<Titulos > as ignar_tutor(apellido1 : String, apellido2 : String) as ignar_m iem bro(apellido1 : String, apellido2 : String)

Lenguajes de definicin de objetos: ODL

Lenguajes de definicin de objetos: ODL

Lenguajes de definicin de objetos: ODL

Lenguajes de definicin de objetos: ODL

Lenguajes de definicin de objetos: ODL

Lenguajes de definicin de objetos: ODL

Lenguaje de consulta de objetos: OQL


Lenguaje declarativo similar a SQL Basado en SQL-92
Superconjunto de SELECT

No modifica estado de los objetos


Se hace mediante los mtodos

SELECT FROM WHERE

Lenguaje de consulta de objetos: OQL

El resultado es de tipo bag<Tipo> Si se utiliza DISTINCT el resultado es set<Tipo> Especificacin de iteradores


d in departamentos departamentos d departamentos as d

Lenguaje de consulta de objetos: OQL


El resultado de una consulta puede ser de cualquier tipo soportado por ODMG Una consulta no tiene porque ser un SELECT
Ej: departamentos;

Iteradores

También podría gustarte