Professional Documents
Culture Documents
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.
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.
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.
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.
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.
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 2:
SGDBOO.
Caractersticas
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
15
16
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