Professional Documents
Culture Documents
LOS AUTORES
RESUMEN
INDICE
Agradecimientos.............................................................................................. 0
Resumen.......................................................................................................... 1
Introduccin..................................................................................................... 5
Capitulo 1: conceptos bsicos de orientacin a objetos...................................6
1.1.
Objetos................................................................................................ 7
1.2.
Clases:................................................................................................. 8
1.3.
Metodos:............................................................................................. 9
1.4.
Herencia............................................................................................ 10
1.5.
Encapsulamiento............................................................................... 11
1.6.
Polimorfismo...................................................................................... 12
Ventajas de un SGBDOO....................................................................22
4.2.
INDICE DE FIGURAS
2
INTRODUCCIN
Las 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 clsicos de datos existen problemas para
representar cierta informacin, puesto que aunque permite representar gran
cantidad de datos, las operaciones que se puede realizar con ellos son bastante
simples.
Las clases utilizadas en un determinado lenguaje de programacin orientado a
objetos son las mismas clases que sern utilizadas en una BDOO; de tal manera,
que no es necesaria una transformacin 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 informacin, aprovechar las ventajas del
POO en el campo de base de datos y para evitar transformaciones entre modelos
de datos (usar el mismo modelo de objetos).
El desarrollo del POO brinda un gran cambio en la forma en la que vemos los
datos y los procedimientos que actan sobre ellos. Tradicionalmente tanto datos
como procedimientos se han almacenado separados sin embargo el POO
combina los procedimientos de una entidad con sus datos. sea el
comportamiento es parte de la entidad en s.
El modelo orientado a objetos tambin soporta relaciones muchos a muchos, por
otra parte las BDOO son navegacionales, el acceso a los datos es a travs de las
relaciones que se almacenan con los mismos datos. Las BDOO no son apropiadas
normalmente para realizar consultas ad hoc, al contrario que las base de datos
relacionales aunque normalmente las soportan. Los objetos han entrado en el
mundo de las bases de datos de forma:
1.1. OBJETOS
Es un elemento auto contenido utilizado por el programa. Los valores que
almacena un objeto son llamados normalmente atributos pero tambin pueden
ser llamados como variables o propiedades. Estos objetos a su vez pueden
realizar acciones los cuales se les denomina mtodos.
Los objetos tienen un gran sentido de la privacidad por lo que solo brindan
informacin de s mismos a travs de mtodos que poseen para compartir su
informacin. Los usuarios y los programas de aplicacin no pueden ver lo que
hay dentro de los mtodos, slo pueden ver los resultados de ejecutarlos. A
esto se le conoce como ENCAPSULAMIENTO. Que es una de las
caractersticas principales de POO.
1.2. CLASES:
Es un patrn o plantilla en la que se basan objetos que son similares cuando
un programa crea un objeto de una clase, brinda datos para sus variables y el
objeto puede entonces utilizar 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. 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.
1.2.1.
TIPOS DE CLASES:
Clase entidad: Son las que se utilizan para crear objetos de que manejan
datos.
1.3. METODOS:
Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecucin se
desencadena tras la recepcin de un mensaje. Desde el punto de vista del
comportamiento, es lo que el objeto puede hacer. Un mtodo puede producir un
7
TIPOS DE MTODOS:
Dentro de los tipos de mtodos existen 4 que son comunes a la mayora de las
clases:
1.3.2.SOBRECARGA DE MTODOS:
1.4. HERENCIA
Este concepto es especfica de la POO, donde una clase nueva se crea a partir
de una clase existente, esta nueva clase contiene los atributos y mtodos de
su clase padre. La principal ventaja de la herencia es la capacidad de definir
atributos y mtodos nuevos para la subclase.
Adems existe lo que es la HERENCIA MULTIPLE este tipo de herencia no es
soportada por todos los lenguajes orientados a objetos, C++ permite la
herencia mltiple, lo que significa que una clase puede heredar de los atributos
de otras dos superclases. Este mtodo puede utilizarse para agrupar atributos
y mtodos desde varias clases dentro de una sola.
10
1.5.
ENCAPSULAMIENTO:
Privado: El acceso a los datos est restringido a los mtodos de esa clase
en partculas, Este es el nivel ms alto de proteccin de datos.
Figura 8: Encapsulamiento
11
1.6.
POLIMORFISMO:
Proviene del griego que significa Que posee varias formas diferentes. Este es
uno de los conceptos esenciales de la POO. As como la herencia est
relacionada con las clases y su jerarqua, el polimorfismo se relaciona con los
mtodos, existen 3 tipos de polimorfismos:
Polimorfismos de sobrecarga
Polimorfismos paramtrico
Polimorfismos de inclusin
1.6.1.Polimorfismo de sobrecarga:
12
1.6.2.Polimorfismo paramtrico:
13
1.6.3.
Polimorfismo subtipado:
La habilidad para redefinir un mtodo en clases que se hereda de una clase base
se llama especializacin. Por lo tanto, se puede llamar un mtodo de objeto sin
tener que conocer su tipo intrnseco: esto es polimorfismo subtipado. Permite no
tomar en cuenta detalles de las clases especializadas de una familia de objetos,
enmascarndolos con una interfaz comn (siendo esta la clase bsica).
Imagine un juego de ajedrez con los objetos rey, reina, alfil, caballo, torre y pen,
cada uno heredando el objeto pieza. El mtodo movimiento podra, usando
polimorfismo subtipado, hacer el movimiento correspondiente de acuerdo a la
clase objeto que se llama. Esto permite al programa realizar movimiento sin tener
que verse conectado con cada tipo de pieza en particular.
14
objeto es un atributo interno que tiene cada objeto. Ni los usuarios ni los
programadores pueden ver o manipular estos identificadores, estos son
asignados por el SGBD y es l el nico que los utiliza. Puede soportar la
relacin 1 a muchos, muchos a muchos y ya que el paradigma orientado a
objetos soporta la herencia, una base de datos orientada a objetos tambin
puede utilizar la relacin es un entre objetos. En teora una BDOO debe
soportar 2 tipos de herencia: la relacin es un y la relacin extiende. La
relacin es un, que tambin se conoce como generalizacin-especializacin,
crea una jerarqua donde las subclases son tipos especficos de las
superclases. Con la relacin extiende, sin embargo, una clase expande su
superclase en lugar de estrecharla en un tipo ms especfico.
2.2. Integridad
de relaciones:
Para que las relaciones funcionen en una BDOO pura, los identificadores de los
objetos deben corresponderse en ambos extremos de la relacin. Por ejemplo, si
los aparejadores de una empresa de control de calidad se deben relacionar con
las obras de construccin que supervisan, debe haber algn modo de garantizar
que, cuando un identificador de un objeto Obra se incluye en un objeto
Aparejador, el identificador de este mismo objeto Aparejador se debe incluir en el
objeto Obra anterior. Este tipo de integridad de relaciones, que es de algn modo
anlogo a la integridad referencial en las bases de datos relacionales, se gestiona
especificando relaciones inversas.
La clase Aparejador tiene un atributo de tipo conjunto llamado supervisa. Del
mismo modo la clase Obra tiene un atributo llamado es_supervisada. Para
garantizar la integridad de esta relacin, un SGBDOO puro deber permitir que el
diseador de la base de datos pueda especificar donde debe aparecer el
identificador del objeto inverso, como se muestra en las siguientes figuras:
En la clase Aparejador
16
Y en la clase Obra
2.3. UML
Existen distintas notaciones o modelos para disear esquemas conceptuales de
BDOO, como las siguientes notaciones:
Notacin de Coad/Yourdon
Notacin de Shlaer/Mellor
OMT
Booch
17
Cada modelo presenta distintas deficiencias, por lo que algunos de sus autores
han desarrollado conjuntamente un lenguaje, denominado UML (lenguaje
unificado de modelado), que las evita.
18
19
4.1.Ventajas de un SGBDOO:
4.2.
21
semntica de los objetos de una base de datos. Su ltima versin, ODMG 3.0,
apareci en enero de 2000. Los principales componentes de la arquitectura
ODMG para un SGBD orientado a objetos son los siguientes:
Modelo de objetos.
Los componentes bsicos de una base de datos orientada a objetos son los
objetos y los literales. Un objeto es una instancia auto contenida de una
entidad de inters del mundo real. Los objetos tienen algn tipo de
identificador nico. Un literal es un valor especfico, como Amparo o 36.
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.
Lo que un objeto sabe hacer son sus operaciones. Cada operacin puede
requerir datos de entrada (parmetros de entrada) y puede devolver algn
valor de un tipo conocido.
Los objetos tienen 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.
24
Estos tipos tienen la misma definicin que los tipos con el mismo nombre del
estndar de SLQ.
Los objetos se crean utilizando el mtodo new() . Adems, todos heredan la
interface que se muestra a continuacin:
25
Cada objeto tiene un identificador de objeto nico generado por el SGBD, que no
cambia y que no se reutiliza cuando el objeto se borra. Cada SGBD genera los
identificadores siguiendo sus propios criterios.
Los objetos pueden ser transitorios o persistentes. Los objetos transitorios existen
mientras vive el programa de aplicacin que los ha creado. Estos objetos se usan
tanto como almacenamiento temporal como para dar apoyo al programa de
aplicacin que se est ejecutando. Los objetos persistentes son aquellos que se
almacenan en la base de datos.
5.1.2. Literales:
Los tipos literales se descomponen en atmicos, colecciones, estructurados o
nulos. Los literales no tienen identificadores y no pueden aparecer solos como
objetos, sino que estn embebidos en objetos y no pueden referenciarse de modo
individual. Los literales atmicos son los siguientes:
literal. Los tipos estructurados son: date, time, timestamp, interval y struct. Y los
tipos coleccin son:
set<tipo>
bag<tipo>
list<tipo>
array<tipo>
dictionary<clave,valor>
5.1.3. TIPOS:
Una de las caractersticas ms importantes del paradigma orientado a objetos es
la distincin entre la interface pblica de una clase y sus elementos privados
(encapsulacin).
El estndar propuesto hace esta distincin hablando de la especificacin externa
de un tipo y de sus implementaciones.
Una interface es una especificacin del comportamiento abstracto de un tipo de
objeto y contiene las signaturas de las operaciones. Aunque una interface puede
tener propiedades (atributos y relaciones) como parte de su especificacin, estas
no pueden ser heredadas desde la interface. Adems, una 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).
Una clase es una especificacin del comportamiento abstracto y del estado
abstracto de un tipo de objeto. Las clases son 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 propuesto 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
27
28
Una clase puede extender, como mximo, a otra clase. Sin embargo, 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.
El modelo permite al diseador que declare una extensin (extent) para cada tipo
de objeto definido como una clase. 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). Una clave es un
identificador nico. Cuando una clave est formada por una sola propiedad, es
una clave simple; si est formada por varias propiedades, es una clave
compuesta. A diferencia del modelo relacional, las claves nicas no son un
requisito.
Una implementacin de un tipo consta de dos partes: la representacin y los
mtodos.
La representacin es una 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). Esto
quiere decir que la representacin interna de un tipo ser diferente dependiendo
del lenguaje de programacin que se utilice y que un mismo tipo puede tener ms
de una representacin.
Los detalles de las operaciones de un tipo se especifican mediante un conjunto de
mtodos. En la especificacin externa de cada operacin debe haber al menos un
mtodo. Sin embargo, un tipo puede incluir mtodos que nunca se ven desde
fuera del tipo. Estos mtodos son los que realizan algunas funciones necesarias
para otros mtodos del tipo.
Los mtodos se escribirn en el mismo lenguaje de programacin utilizado para
expresar la representacin del tipo. Si una base de datos soporta aplicaciones
programadas en C++, Java y Smalltalk, entonces ser necesario tener tres
29
implementaciones para cada tipo, una para cada lenguaje, aunque cada programa
de aplicacin utilizara solo la implementacin que le corresponda.
5.1.4. PROPIEDADES:
El modelo de objetos ODMG define dos tipos de propiedades: atributos y
relaciones. Un atributo se define del tipo de un objeto. Un atributo no es un objeto
de primera clase, por lo tanto no tiene identificador, pero toma como valor un
literal o el identificador de un objeto.
Las relaciones se definen entre tipos. El modelo actual solo soporta relaciones
binarias con cardinalidad 1:1, 1:n y n:m. Una relacin no tiene nombre y tampoco
es un objeto de primera clase, pero define caminos transversales en la interface
de cada direccin. En el lado del muchos de la relacin, los objetos pueden estar
desordenados (set o bag) u ordenados (list). La integridad de las relaciones la
mantiene automticamente el SGBD y se genera una excepcin cuando se intenta
atravesar una relacin en la que uno de los objetos participantes se ha borrado. El
modelo aporta operaciones para formar (form) y eliminar (drop) miembros de una
relacin.
5.1.5. TRANSACCIONES:
El modelo estndar soporta el concepto de transacciones, que son unidades
lgicas 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 estndar
de lectura/escritura con un protocolo pesimista de control de concurrencia. Todos
los accesos, creacin, modificacin y borrado de objetos persistentes se deben
realizar dentro de una transaccin. El modelo especifica operaciones para iniciar,
terminar (commit) y abortar transacciones, as como la operacin de checkpoint.
Esta ltima operacin hace permanentes los cambios realizados por la transaccin
en curso sin liberar ninguno de los bloqueos adquiridos.
30
31
32
33
34
35
36
SELECT p.categoria
FROM p in departamentoinf.tiene profesores;
SELECT DISTINCT p.categoria
FROM p in departamentoinf.tiene profesores;
En general, una
consulta OQL puede devolver un resultado con una estructura compleja
especificada en la misma consulta utilizando struct. La siguiente expresion:
departamentoinf.director.tutoriza; devuelve un objeto de tipo set<EstudianteGrad>:
una coleccin que contiene los estudiantes graduados que son tutorizados por el
director del departamento de informtica. Si lo que se necesita son los nombres y
apellidos de estos estudiantes y los ttulos que tiene cada uno, se puede escribir la
siguiente consulta:
Uso de group by
CAPTULO 6: CONCLUSIONES
38
BIBLIOGRAFIA:
39
40