You are on page 1of 21

INTRODUCCIN

Los modelos de bases de datos tradicionales (relacional, red y jerrquico) han sido
capaces de satisfacer con xito las necesidades, en cuanto a bases de datos, de las
aplicaciones de gestin tradicionales. Sin embargo, presentan algunas deficiencias cuando
se trata de aplicaciones ms complejas o sofisticadas como, por ejemplo, el diseo y
fabricacin en ingeniera (CAD/CAM, CIM), los experimentos cientficos, los sistemas de
informacin geogrfica o los sistemas multimedia. Los requerimientos y las caractersticas
de estas nuevas aplicaciones difieren en gran medida de las tpicas aplicaciones de
gestin: la estructura de los objetos es ms compleja, las transacciones son de larga
duracin, se necesitan nuevos tipos de datos para almacenar imgenes y textos, y hace
falta definir operaciones no estndar, especficas para cada aplicacin. Las bases de datos
orientadas a objetos se crearon para tratar de satisfacer las necesidades de estas nuevas
aplicaciones. La orientacin a objetos ofrece flexibilidad para manejar algunos de estos
requisitos y no est limitada por los tipos de datos y los lenguajes de consulta de los
sistemas de bases de datos tradicionales. Una caracterstica clave de las bases de datos
orientadas a objetos es la potencia que proporcionan al diseador al permitirle especificar
tanto la estructura de objetos complejos, como las operaciones que se pueden aplicar
sobre dichos objetos. Otro motivo para la creacin de las bases de datos orientadas a
objetos es el creciente uso de los lenguajes orientados a objetos para desarrollar
aplicaciones.
Las bases de datos se han convertido en piezas fundamentales de muchos sistemas de
informacin y las bases de datos tradicionales son difciles de utilizar cuando las
aplicaciones que acceden a ellas estn escritas en un lenguaje de programacin orientado
a objetos como C++, Smalltalk o Java. Las bases de datos orientadas a objetos se han
diseado para que se puedan integrar directamente con aplicaciones desarrolladas con
lenguajes orientados a objetos, habiendo adoptado muchos de los conceptos de estos
lenguajes. Los fabricantes de los SGBD relacionales tambin se han dado cuenta de las
nuevas necesidades en el modelado de datos, por lo que las nuevas versiones de sus
sistemas incorporan muchos de los rasgos propuestos para las bases de datos orientadas
a objetos, como ha ocurrido con Informix y Oracle.
Esto ha dado lugar al modelo relacional extendido y a los sistemas que lo implementan se
les denomina sistemas objetorelacionales. La nueva versin de SQL, SQL: 1991, incluye
algunas de las caractersticas de la orientacin a objetos. Durante los ltimos aos se han
creado muchos prototipos experimentales de sistemas de bases de datos orientadas a
objetos y tambin muchos sistemas comerciales.

Conforme a estos fueron apareciendo, surgi la necesidad de establecer un modelo


estndar y un lenguaje. Para ello, los fabricantes de los SGBD orientadas a objetos
formaron un grupo denominado ODMG (Object Database Management Group), que
propuso el estndar ODMG93 y que ha ido evolucionando hasta el ODMG 3.0, su ultima
versin. El uso de estndares proporciona portabilidad, permitiendo que una aplicacin se
pueda ejecutar sobre sistemas distintos con mnimas modificaciones. Los estndares
tambin proporcionan interoperabilidad, permitiendo que una aplicacin pueda acceder a
varios sistemas diferentes. Y una tercera ventaja de los estndares es que permiten que
los usuarios puedan comparar entre distintos sistemas comerciales, dependiendo de qu
partes del estndar proporcionan.

Conceptos de orientacin a objetos


El desarrollo del paradigma orientado a objetos aporta un gran cambio en el modo en que
vemos los datos y los procedimientos que actan sobre ellos. Tradicionalmente, los datos y
los procedimientos se han almacenado separadamente: los datos y sus relaciones en la
base de datos y los procedimientos en los programas de aplicacin. La orientacin a
objetos, sin embargo, combina los procedimientos de una entidad con sus datos. Esta
combinacin se considera como un paso adelante en la gestin de datos. Las entidades
son unidades auto contenidas que se pueden reutilizar con relativa facilidad. En lugar de
ligar el comportamiento de una entidad a un programa de aplicacin, el comportamiento es
parte de la entidad en s, por lo en cualquier lugar en el que se utilice la entidad, se
comporta de un modo predecible y conocido.
El modelo orientado a objetos tambin soporta relaciones de muchos a muchos, siendo el
primer modelo que lo permite. An as se debe ser muy cuidadoso cuando se disean
estas relaciones para evitar prdidas de informacin. Por otra parte, las bases de datos
orientadas a objetos son navegacionales: el acceso a los datos es a travs de las
relaciones, que se almacenan con los mismos datos. Esto se considera un paso atrs. Las
bases de datos orientadas a objetos no son apropiadas para realizar consultas ad hoc, al
contrario que las bases de datos relacionales, aunque normalmente las soportan. La
naturaleza navegacional de las bases de datos orientadas a objetos implica que las
consultas deben seguir relaciones predefinidas y que no pueden insertarse nuevas
relaciones al vuelo.
Los objetos han entrado en el mundo de las bases de datos de formas:
1-SGBD orientados a objetos puros: son SGBD basados completamente en el modelo
orientado a objetos.
2-SGBD hbridos u objetorelacionales: son SGBD relacionales que permiten almacenar
objetos en sus relaciones (tablas).
A continuacin se definen los conceptos del paradigma orientado a objetos en
programacin, ya que el modelo de datos orientado a objetos es una extensin del mismo.
Objeto: Es un elemento auto contenido utilizado por el programa. Los valores que
almacena un objeto se denominan atributos, variables o propiedades. Los objetos pueden
realizar acciones, que se denominan mtodos, servicios, funciones, procedimientos u
operaciones. Los objetos tienen un gran sentido de la privacidad, por lo que slo dan
informacin sobre s mismos a travs de los mtodos que poseen para compartir su
informacin.
3

Tambin ocultan la implementacin de sus procedimientos, aunque es muy sencillo


pedirles que los ejecuten. Los usuarios y los programas de aplicacin no pueden
ver qu hay dentro de los mtodos, slo pueden ver los resultados de ejecutarlos. A esto
es a lo que se denomina ocultacin de informacin o encapsulamiento de datos. Cada
objeto presenta una interface pblica al resto de objetos que pueden utilizarlo. Una de las
mayores ventajas del encapsulamiento es que mientras que la interface pblica sea la
misma, se puede cambiar la implementacin de los mtodos sin que sea necesario
informar al resto de objetos que los utilizan. Para pedir datos a un objeto o que este realice
una accin se le debe enviar un mensaje. Un programa orientado a objetos es un conjunto
de objetos que tienen atributos y mtodos. Los objetos interactan envindose mensajes.
La clave, por supuesto, es averiguar qu objetos necesita el programa y cules deben ser
sus atributos y sus mtodos.

Clase: Es un patrn o plantilla en la que se basan objetos que son similares. Cuando un
programa crea un objeto de una clase, proporciona datos para sus variables y el objeto
puede entonces utilizar los mtodos que se han escrito para la clase. Todos los objetos
creados a partir de la misma clase comparten los mismos procedimientos para sus
mtodos, tambin tienen los mismos tipos para sus datos, pero los valores pueden diferir.
Una clase tambin es un tipo de datos. De hecho una clase es una implementacin de lo
que se conoce como un tipo abstracto de datos. El que una clase sea tambin un tipo de
datos significa que una clase se puede utilizar como tipo de datos de un atributo.

Tipos de clases.
En los programas orientados a objetos hay tres tipos de clases: clases de control, clases
entidad y clases interface.

Las clases de control gestionan el flujo de operacin de un programa (por ejemplo, el


programa que se ejecuta es un objeto de esta clase).
Las clases entidad son las que se utilizan para crear objetos que manejan datos (por
ejemplo, clases para personas, objetos tangibles o eventos).
Las clases interface son las que manejan la entrada y la salida de informacin (por
ejemplo, las ventanas grficas y los mens utilizados por un programa).

En los programas orientados a objetos, las clases entidad no hacen su propia entrada/
salida. El teclado es manejado por objetos interface que recogen los datos y los envan a
los objetos entidad para que los almacenen y los procesen.
La salida impresa y por pantalla la formatea un objeto interface para obtener los datos a
visualizar de los objetos entidad. Cuando los objetos entidad forman parte de la base de
datos, es el SGBD el que
se encarga de la entrada/salida a ficheros. El resto de la entrada/salida la manejan los
programas de aplicacin o las utilidades del SGBD.

Tipos de mtodos.
Hay varios tipos de mtodos que son comunes a la mayora de las clases:
Constructores: Un constructor es un mtodo que tiene el mismo nombre que la clase.
Se ejecuta cuando se crea un objeto de una clase. Por lo tanto, un constructor contiene
instrucciones para inicializar las variables de un objeto.
Destructores: Un destructor es un mtodo que se utiliza para destruir un objeto.
No todos los lenguajes orientados a objetos poseen destructores.
Accesores: Un accesor es un mtodo que devuelve el valor de un atributo privado de otro
objeto. As es cmo los objetos externos pueden acceder a los datos encapsulados.
Mutadores: Un mutador es un mtodo que almacena un nuevo valor en un atributo.
De este modo es cmo objetos externos pueden modificar los datos encapsulados.
Mtodos de comparacin: Estos mtodos son utilizados para que se pueda comparar los
objetos de un cierto tipo. Esta accin se lleva a cabo indicando cul es el criterio de
comparacin. Para poder hacer posible la realizacin de una comparacin es necesario
escoger entre un mtodo MAP o un mtodo ORDER: - Un mtodo de MAP es utilizado
para indicar cul de los atributos del tipo se va a utilizar para ordenar los objetos del tipo. Un mtodo ORDER utiliza los atributos del objeto sobre el que se ejecuta para realizar un
clculo y compararlo con otro objeto del mismo tipo que toma como argumento de entrada.
Este mtodo debe devolver un valor negativo si el primero es mayor que el segundo, un
valor positivo si ocurre lo contrario y un cero si ambos son iguales.

Nombres de clases, atributos y mtodos.


En el mundo de la orientacin a objetos hay cierta uniformidad en el modo de dar nombres
a clases, atributos y mtodos.
Los nombres de las clases empiezan por una letra mayscula seguida de minsculas.
Si el nombre tiene ms de una palabra, se puede usar el carcter subrayado para separar
palabras o bien empezar cada una con una letra mayscula (Materia prima o
MateriaPrima).
Los nombres de los atributos y de los mtodos empiezan por minscula y si tienen ms
de una palabra, utilizan el subrayado o la mayscula (num empleado o numEmpleado).
Los mtodos accesores empiezan por la palabra get seguida del nombre del atributo al
que acceden (getNumEmpleado).
Los mtodos mutadores empiezan por la palabra set seguida del nombre del atributo
cuyo valor modifican (setNumEmpleado).
Herencia de atributos: En ocasiones se necesita trabajar con clases que son similares
pero no idnticas. Para ello es muy til una de las caractersticas del paradigma orientado
a objetos: la herencia. Una clase puede tener varias subclases que representan
ocurrencias ms especficas de la superclase. Por ejemplo, podemos tener la clase
(superclase) Animal con sus atributos (nombre comn, nombre cientfico, fecha de
nacimiento y gnero) y las subclases Mamfero, Reptil y Pez, cada una con unos atributos
especficos (Mamfero: peso, altura del hombro, raza y color; Reptil: longitud actual y
longitud mxima; Pez: color). Por el hecho de ser subclases de Animal, heredan sus
atributos.
La relacin que mantienen las subclases con la superclase es del tipo es un: un
mamfero es un animal, un reptil es un animal y un pez es un animal. No todas las clases
de una jerarqua se utilizan para crear objetos. Por ejemplo, nunca se crean objetos de la
clase Animal, sino que se crean objetos de las clases Mamfero, Reptil o Pez.
La clase Animal slo se utiliza para recoger los atributos y mtodos que son comunes a las
tres subclases. Se dice que estas clases son abstractas o virtuales. Las clases que se
utilizan para crear objetos se denominan clases concretas.
Herencia mltiple: Cuando una clase hereda de ms de una superclase se tiene herencia
mltiple.
Interfaces: Algunos lenguajes orientados a objetos no soportan la herencia mltiple.

En lugar de eso permiten que una clase se derive de una sola clase pero permiten que la
clase implemente mltiples interfaces. Una interface es una especificacin para una clase
sin instrucciones en los mtodos. Cada clase que implemente la interface proporcionar las
instrucciones para cada mtodo de la misma. Una interface puede contener atributos y
mtodos, o bien slo atributos, o bien slo mtodos.
Polimorfismo: En general, las subclases heredan los mtodos de sus superclases y los
utilizan como si fueran suyos. Sin embargo, en algunas ocasiones no es posible escribir un
mtodo genrico que pueda ser usado por todas las subclases.
La clase ObjetoGeometrico posee un mtodo tarea que deber tener distinta
implementacin para sus subclases Circulo, Rectngulo y Triangulo.
La superclase contendr un prototipo para el mtodo que calcula el rea, indicando slo su
interface pblica. Cada subclase redefine el mtodo, aadiendo las instrucciones
necesarias para calcular su rea. Ntese que polimorfismo no es lo mismo que sobrecarga:
la sobrecarga se aplica a mtodos de la misma clase que tienen el mismo nombre y
distintas signaturas, mientras que el polimorfismo se aplica a varias subclases de la misma
superclase que tienen mtodos con la misma signatura y con distintas implementaciones.

Base de Datos Orientada a Objetos


Una base de datos orientada a objetos es una base de datos donde los elementos son
objetos. Estos pueden ser bases de datos multimedia (videos, imgenes y sonidos), donde
la herencia nos permita una mejor representacin de la informacin, estas bases de datos
tienen una identidad de ser un Todo, y no solo una parte de una gran base, por ejemplo
una base de secuencias de ADN.
El objetivo de una base de datos orientada a objetos son los mismos que los de las bases
de datos tradicionales, pero con la ventaja de representar las modelos de datos con un
marco mucho ms eficiente, manteniendo la integridad y relacin entre ellos.
La utilizacin de una BDOO simplifica la conceptualizacin ya que la utilizacin de objetos
permite representar de una manera ms natural la informacin que se quiere guardar.
Para modelar la estructura o vista lgica de la BD, se utiliza el Diagrama de clases que
permite presentar las clases con sus respectivas relaciones estructurales y de herencia,
adems del Diagrama de Objetos cuando no est muy claro y preciso cmo seran las
instancias de las clases o para especificar ms el Diagrama de Clases.
Para modelar la parte dinmica, la interaccin y comportamiento entre los objetos, se
empleara el Diagrama de Secuencia para presentar las interacciones entre los objetos
organizados en una secuencia temporal y describir como estos objetos colaboran; as
7

como tambin, el Diagrama de Estado para mostrar los posibles estados en que puede
encontrarse un objeto y las transacciones que pueden causar un cambio de estado, luego
que ocurre un evento.
Tablas de objetos: Tras definir los tipos de objetos, stos pueden utilizarse para definir
otros tipos, tablas que almacenen objetos de esos tipos, o para definir el tipo de los
atributos de una tabla. Por ejemplo podemos definir una tabla que utiliza un tipo de datos
complejo para una de sus columnas. Una tabla de objetos es una clase especial de tabla
que almacena un objeto en cada fila.
Referencias entre objetos: Los identificadores nicos, permiten que puedan ser
referenciados desde los atributos de otros objetos o desde las columnas de tablas. El tipo
de datos proporcionado por Oracle para soportar esta facilidad se denomina REF. Un
atributo de tipo REF almacena una referencia a un objeto del tipo definido, e implementa
una relacin de asociacin entre los dos tipos de objetos.
Tipos para colecciones: Los tipos para colecciones se definen para poder implementar
relaciones 1:N. Un dato de tipo coleccin est formado por un nmero indefinido de
elementos, todos del mismo tipo. As es posible almacenar un conjunto de tuplas en un
nico atributo, en forma de array o de tabla anidada. Los tipos para colecciones tambin
tienen por defecto unas funciones constructoras de colecciones cuyo nombre coincide con
el del tipo. Los argumentos de entrada de estas funciones son el conjunto de elementos
que forman la coleccin separados por parntesis.
El tipo VARRAY: Un array es un conjunto ordenado de elementos del mismo tipo. Cada
elemento tiene asociado un ndice que indica su posicin dentro del array. Un tipo VARRAY
se puede utilizar para:
- Definir el tipo de datos de una columna de una tabla relacional.
- Definir el tipo de datos de un atributo de un tipo de objetos.
- Para definir una variable PL/SQL, un parmetro, o el tipo que devuelve una funcin.
No se produce ninguna reserva de espacio al declarar un tipo VARRAY. Se almacenar con
el resto de columnas de su tabla, si el espacio que requiere lo permite. En caso contrario,
se almacenar aparte de la tabla como un BLOB. Es imposible poner condiciones sobre los
elementos almacenados dentro de un VARRAY, en las consultas. Esta es la principal
limitacin que tiene este tipo de dato.
Tablas anidadas: Una tabla anidada es un conjunto de elementos del mismo tipo en el
que no existe un orden predefinido. Estas tablas solamente pueden tener una columna que
puede ser de un tipo de datos bsico, o de un tipo de objetos definido por el usuario.

Caractersticas de Base de Datos Orientada a Objetos


Mandatorias: son las que el Sistema debe satisfacer a orden de tener un sistema de
BDOO y estos son: Objetos complejos, Identidad de Objetos, Encapsulacin, Tipos o
clases, Sobre paso con unin retardada, Extensibilidad, Completacin Computacional,
Persistencia y Manejador de almacenamiento secundario, Concurrencia, Recuperacin y
Facilidad de Query.
Opcional: Son las que pueden ser aadidas para hacer el sistema mejor pero que no son
Mandatorias, estas son de: herencia mltiple, chequeo de tipos e inferencia d
e distribucin y diseo de transacciones y versiones.
Abiertas: Son los puntos donde el diseador puede hacer un nmero de opciones y estas
son el paradigma de la programacin, la representacin del sistema el tipo de sistema y
su uniformidad. Hemos tomado una posicin no muy a la expectativa para tener una
palabra final ms bien para proveer un punto de orientacin para un debate futuro.

Ventajas - Desventajas - Aspectos Tecnolgicos


La clave que posee la BDOO es el poder que confieren al diseador para especificar tanto
la estructura de objetos complejos como las operaciones que se pueden aplicar a esos
objetos.
Est su flexibilidad, y soporte para el manejo de tipos de datos complejos. Ya que puedo
tener clases y subclases creadas por ejemplo una base de clientes puede tener una
subclase de la referencia de este cliente y esta heredara todos sus atributos y
caracterstica de la clase original.
La segunda ventaja de una BDOO, es que manipula datos complejos en forma rpida y
gilmente. La estructura de la base de datos est dada por referencias (o apuntadores
lgicos) entre objetos.

Posibles Desventajas De Una BDO


Al considerar la adopcin de la tecnologa orientada a objetos, la inmadurez del mercado
de BDOO constituye una posible fuente de problemas. Hay muy pocos manejadores de
base de datos en el mercado que soporten este tipo de arquitectura.

Algunos de los pocos OODBMS que existen son:


Db4o
Informix
Bdoviedo3

Quiz esta sea una de las causas por las cuales las OODB an no tengan ese crecimiento
que en algn momento tantas expectativas generaron.
El segundo problema es la falta de estndares en la industria orientadas a objetos

Aspectos De La Tecnologa
Las Bases de Datos Orientadas a Objetos permiten que mltiples usuarios compartan
objetos complejos y los manipulen en un ambiente seguro y estructurado. Las bases de
datos convencionales fueron diseadas para manejar tipos de datos alfanumricos y por
esto difcilmente pueden manipular objetos y mtodos (los mtodos son los
comportamientos definidos de los objetos).

Rendimiento
Las BDOO permiten que los objetos hagan referencia directamente a otro mediante
apuntadores suaves. Esto hace que las BDOO pasen ms rpido del objeto A al objeto B
que las BDR, las cuales deben utilizar comandos JOIN para lograr esto. Incluso el JOIN
optimizado es ms lento que un recorrido de los objetos. As, incluso sin alguna afinacin
especial, una BDOO es en general ms rpida en esta mecnica de caza-apuntadores.
Las BDOO hacen que el agrupamiento sea ms eficiente. La mayora de los sistemas de
bases de datos permiten que el operador coloque cerca las estructuras relacionadas entre
s, en el espacio de almacenamiento en disco. Esto reduce en forma radical el tiempo de
recuperacin de los datos relacionados, puesto que todos los datos se leen con una lectura
de disco en vez de varias.

10

ANEXOS

Figura 1: Base de Datos Orientada a

Figura 2:
SGDBOO.

Caractersticas

Figura 3: Ejemplo de Una Base de Datos Orientada a Objeto

11

Objetos.

bsicas

de

los

12

ODL: ODL es un lenguaje de especificacin para definir tipos de objetos para sistemas
complejos compatibles con ODMG. Es el equivalente de DDL (Data Definition Languaje o
lenguaje de definicin de datos) de los DBMS tradicionales. Define los atributos y las
relaciones entre tipos y especifica la signatura de las operaciones.
La sintaxis de ODL extiende el lenguaje de definicin de interfaces (IDL) de la arquitectura
CORBA (Common Object Request Broker Architecture).
Las declaraciones de atributos son sintcticamente idnticas las declaraciones de
miembros de C++.
Ejemplo:
class Persona (extent personas key dni) {
/* Definicin de atributos */
attribute struct Nom_Persona {string nombre pila, string apellido1,
string apellido2} nombre;
attribute string dni; attribute date fecha nacim; attribute
enum GenerofF,Mg sexo;
attribute struct Direccion {string calle, string cp, string ciudad}
direccion;
/* Definicin de operaciones */
float edad();
} class Profesor extends Persona
(extent profesores)
{
/* Definicin de atributos
*/ attribute string categoria;
attribute float salario;
attribute string despacho;
attributo string telefono;

13

/* Definicin de relaciones */
relationship Departamento trabaja en
inverse Departamento::tiene profesores;
relationship Set tutoriza
inverse EstudianteGrad::tutor;
relationship Set en comite
inverse EstudianteGrad::comite;
/* Definicin de operaciones */
void aumentar salario(in float aumento);
void promocionar(in string nueva categoria);
}
class Estudiante extends Persona
(extent estudiantes)
{
/* Definicin de atributos */
attribute string titulacion;
/* Definicin de relaciones */
relationship set ediciones
cursadas inverse Calificacion::estudiante;
relationship set matriculado
inverse EdicionActual::estudiantes matriculados;
/* Definicin de operaciones */
float nota media();
void matricularse(in short num edic) raises(edicion no valida,
edicion llena);

14

void calificar(in short num edic; in float nota)


raises(edicion no valida, nota no valida);
};
class Calificacion (extent calificaciones) {
/* Definicin de atributos */
attribute float nota;
/* Definicin de relaciones */
relationship Edicion edicion inverse
Edicion::estudiantes;
relationship Estudiante estudiante
inverse Estudiante::ediciones cursadas;
};
class EstudianteGrad extends Estudiante
(extent estudiantes graduados)
{
* /Definicin de atributos /*
/ attribute set titulos;
/* Definicin de relaciones */
relationship Profesor tutor
inverse Profesor::tutoriza;
relationship set comite inverse
Profesor::en comite;
/* Definicin de operaciones */
void asignar tutor(in string apellido1; in string apellido2)
raises(profesor no valido);

15

void asignar miembro comite(in string apellido1; in string apellido2)


raises(profesor no valido);
};
class Titulo {
/* Definicin de atributos */
attribute string escuela;
attribute string titulo;
attribute string a~no;
};
class Departamento
(extent departamentos key nombre)
{
/* Definicin de atributos */
attribute string nombre;
attribute string telefono;
attribute string despacho;
attribute string escuela;
attribute Profesor director;
/* Definicin de relaciones */
relationship set
tiene profesores inverse
Profesor::trabaja en;
relationship set oferta
inverse Curso::ofertado por;
};
class Curso

16

(extent cursos key num curso)


/* Definicin de atributos */
attribute string nombre;
attribute string num curso;
attribute string descripcion;
/* Definicin de relaciones */
relationship set tiene ediciones
inverse Edicion::de curso;
relationship Departamento ofertado por inverse Departamento::oferta;
};
class Edicion
(extent ediciones) {
/* Definicin de atributos */
attribute short num edic attribute string a~no;
attribute enum SemestrefPrimero,Segundog semestre;
/* Definicin de relaciones */
relationship set estudiantes
inverse Calificacion::edicion;
relationship Curso de curso
inverse Curso::tiene ediciones;
};
class EdicionActual extends Edicion
(extent ediciones actuales)
{

17

/* Definicin de relaciones */
relationship set estudiantes matriculados
inverse Estudiante::matriculado;
/* Definicin de operaciones */
void matricular estudiante(in string dni)
raises(estudiante no valido,edicion llena);
};

OQL: Permite realizar consultas de modo eficiente sobre bases de datos orientadas a
objetos. Basado en SQL-92. La sintaxis bsica de OQL es una estructura SELECT
FROM WHERE como en SQL:
SELECT d.nombre
FROM d in departamentos
WHERE d.escuela=Ingeniera;
En las consultas se necesita un punto de entrada que es la extensin de una clase.
Adems es necesario utilizar una variable iteradora que vaya tomando valores en los
objetos de la coleccin. Estas se puede especificar de estas formas:
D in departamentos
Departamentos d
Departamentos as d
Una consulta no debe seguir la estructura SELECT obligatoriamente, el nombre de
cualquier objeto persistente es una consulta de por s:
Departamentos;
Si se da nombre a un objeto concreto. Por ejemplo: departamentoinf; al departamento de
informatica, es devuelve una referencia a ese objeto individual. Entonces cuando se
establece un punto de entrada se pueden utilizar expresiones de caminos para especificar
un camino a atributos y objetos relacionados. Empieza con un nombre de objeto
persistente o una variable iterador, seguida de ninguno o varios nombres de ralciones o de
atributos conectados mediante un punto:

18

Departamentoinf.director;
departamentoinf.director.categoria:
departamentoinf.tiene_profesores;
Una consulta OQL puede devolver un resultado con una estructura compleja especificada
en la misma consulta utilizando struct.
Ejemplo que muestra los nombres y apellidos de los estudiantes y lo ttulos que tiene cada
uno:
Select struct(nombre:struct(ape1: e.nombre.apellido1,
ape2 e.nombre.apellido2,
nom: e.nombre.nombre_pila),
titulos:(Select struct(tit: t.titulo,
ao: t.ao,
esc: t.escuela)
From t in e.titulos)
From e in departamentoinf.director.tutoriza;
OQL es ortogonal respecto a la especificacin de expresiones de caminos: atributos,
relaciones y operaciones pueden ser utilizados en estas expresiones, siempre que el
sistema de tipos de OQL no se vea comprometido OQL tiene adems otras caractersticas:
- Especificacin de vistas dando nombres a consultas. - Obtencin como resultado de un
solo elemento. - Uso de operadores de colecciones: funciones agregados y
cuantificadores. - Uso de group by.

19

Conclusin
La Base de Datos Orientada a Objetos pueden ser bases de multimedia como por ejemplo:
imgenes, videos y sonidos, la Base de Datos son los mismos datos tradicionales estas
bases tienen las caractersticas de todo lo que es orientado a objetos que son Herencia,
polimorfismo, abstraccin y encapsulamiento, si recordamos uno de los objetos como ser
Herencia es heredar el comportamiento de otro objeto, el polimorfismo puede adaptarse a
diferentes maneras de una solicitud de accin tenemos otro elemento para modelar como
ser la estructura o vista lgica de la Base de Datos donde utiliza el diafragma de clases
que permite presentar sus respectivas relaciones estructurales y de herencia y cuando no
est muy claro y preciso como seran las instancias de las clases.
Como opinin general cada objeto est asociado con un conjunto variable que contiene
datos del objeto, las variables corresponden a los atributos del modelo E-R; un conjunto de
mensajes a los que responde, cada mensaje puede o no tener parmetros y por ultimo un
conjunto de mtodos es el cdigo que implementa un mensaje.
En cuanto al aspecto de la tecnologa son las bases de datos orientados a objetos
permiten que mltiples usuarios compartan objetos complejos y los manipulen en un
ambiente seguro y estructurado.

20

Bibliografa

1) http://www3.uji.es/~mmarques/e16/teoria/cap2.pdf
2) http://basededatos2010.wikispaces.com/file/view/BD+O-O+ventajas+y+desventajas.pdf
3) https://iessanvicente.com/colaboraciones/bdOO.pdf
4)http://m.monografias.com/trabajos87/base-datos-orientada-objetos/base-datos-orientadaobjetos.shtml

21