Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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
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>
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
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
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
Es tudianteGrad titulos : s et<Titulos > as ignar_tutor(apellido1 : String, apellido2 : String) as ignar_m iem bro(apellido1 : String, apellido2 : String)
Iteradores