Sie sind auf Seite 1von 12

INTRODUCCIN

Al momento de desarrollar un sistema cualquiera que sea, en el que se debe


utilizar almacenamiento (Bases de Datos), el programador debe tener un
conocimiento amplio de las diferentes herramientas que pueden utilizar, las
cuales harn ms fcil y sencillo el desarrollo de dicha aplicacin.
Actualmente la programacin orientada a objetos ha ganado terreno debido
que permite resolver el problema desde un enfoque conceptual hasta llevarlo a
un modelo en el que los elementos que lo integran son fragmentados y
clasificados de acuerdo a ciertas caractersticas similares, permitiendo as una
mejor administracin del sistema.
Es por eso que ahora surgen como un concepto las bases de datos orientadas
a objetos, con lo que se pretende facilitar la administracin de las mismas,
haciendo ms fcil la vida y los procesos a los programadores y a quienes
utilicen las mismas.

BASES DE DATOS ORIENTADAS A OBJETOS


Se propusieron con la idea de satisfacer las necesidades de las aplicaciones
ms complejas. El enfoque orientado a objetos ofrece la flexibilidad para
cumplir con algunos de estos requerimientos sin estar limitado por los tipos de
datos y los lenguajes de consulta disponibles en los sistemas de bases de
datos tradicionales.
Como cualquier Bases de Datos programable, una Base de Datos Orientada a
Objetos (BDOO) proporciona un ambiente para el desarrollo de aplicaciones y
un depsito persistente listo para su explotacin. Una BDOO almacena y
manipula informacin que puede ser digitalizada (presentada) como objetos,
adems proporciona un acceso gil y permite una gran capacidad de
manipulacin.
Los principales conceptos que se utilizan en las Bases de Datos Orientada a
Objetos (BDOO) son las siguientes:

Identidad de objetos
Constructores de tipos
Encapsulamiento
Compatibilidad con los lenguajes de programacin
Jerarquas de tipos y herencia
Manejo de objetos complejos
Polimorfismo y sobrecarga de operadores y
Creacin de versiones.

Bases De Datos Orientadas A Objetos


Este modelo, bastante reciente, y propio de los modelos informticos
orientados a objetos, trata de almacenar en la base de datos los objetos
completos (estado y comportamiento).
Una base de datos orientada a objetos es una base de datos que incorpora
todos los conceptos importantes del paradigma de objetos:
Encapsulacin: Propiedad que permite ocultar la informacin al resto de los
objetos, impidiendo as accesos incorrectos o conflictos.
Herencia: Propiedad a travs de la cual los objetos heredan comportamiento
dentro de una jerarqua de clases.
Polimorfismo: Propiedad de una operacin mediante la cual puede ser aplicada
a distintos tipos de objetos.

En bases de datos orientadas a objetos, los usuarios pueden definir


operaciones sobre los datos como parte de la definicin de la base de datos.
Una operacin (llamada funcin) se especifica en dos partes. La interfaz (o
signatura) de una operacin incluye el nombre de la operacin y los tipos de
datos de sus argumentos (o parmetros). La implementacin (o mtodo) de la
operacin se especifica separadamente y puede modificarse sin afectar la
interfaz. Los programas de aplicacin de los usuarios pueden operar sobre los
datos invocando a dichas operaciones a travs de sus nombres y argumentos,
sea cual sea la forma en la que se han implementado. Esto podra
denominarse independencia entre programas y operaciones.

Estructura de una BD OO
El paradigma orientado a objetos se basa en el encapsulamiento de datos y
del cdigo relacionado con cada objeto en una sola unidad. Conceptualmente,
todas las interacciones entre cada objeto y el resto del sistema se realizan
mediante mensajes. Por lo tanto, la interfaz entre cada objeto y el resto del
sistema se define mediante un conjunto de mensajes permitidos.
En general, cada objeto est asociado con:
Un conjunto de variables que contiene los datos del objeto; las variables
corresponden con los atributos del modelo E-R.
Un conjunto de mensajes a los que responde; cada mensaje puede o no tener
parmetros o tener uno o varios.
Un conjunto de mtodos, cada uno de los cuales es el cdigo que implementa
un mensaje; el mtodo devuelve un valor como respuesta al mensaje.
Mensaje en entorno OO no implica uso de mensajes fsicos en redes
informticas. Por el contrario, hace referencia al intercambio de solicitudes
entre los objetos, independientemente de los detalles correctos de su
implementacin. Se utiliza a veces la expresin invocar un mtodo para
detonar al hecho de enviar un mensaje a un objeto y la ejecucin del mtodo
correspondiente.
1. IDENTIDAD DE OBJETOS
Un sistema de BDOO provee una identidad nica a cada objeto
independiente almacenado en la base de datos. Esta identidad nica suele
implementarse con un identificador de objeto nico, generado por el sistema,
u OID. El valor de un OID no es visible para el usuario externo, sino que el
sistema lo utiliza a nivel interno para identificar cada objeto de manera nica
y para crear y manejar las referencias entre objetos.

La principal propiedad que debe tener un OID es la de ser inmutable; es


decir, el valor del OID para un objeto en particular nunca debe cambiar. Esto
preserva la identidad del objeto del mundo real que se est presentando.
Tambin es preferible que cada OID se utilice slo una vez; esto es aunque
un objeto se elimine de la Base de datos, su OID no se deber asignar a otro
objeto. Estas dos propiedades implican que el OID no debe depender del
valor de ningn atributo del objeto, pues estos valores pueden cambiar.
Tambin suele considerarse inapropiado basar el OID en la direccin fsica
del objeto en el almacenamiento, ya que una reorganizacin de los objetos
de la base de datos podra cambiar los OID. Sin embargo, algunos sistemas
s usan la direccin fsica como OID para aumentar la eficiencia de la
obtencin de los objetos. Si la direccin fsica cambia, puede colocarse un
apuntador indirecto en la direccin anterior, dando la nueva ubicacin fsica
del objeto. Un sistema de BDOO debe contar con algn mecanismo para
generar los OID con la propiedad de inmutabilidad.
Algunos modelos de datos OO requieren que todo se represente como un
objeto, ya sea un valor simple o un objeto complejo; as, todo valor bsico,
como un entero, una cadena o un valor booleano, tiene un OID. Con ello dos
valores bsicos pueden tener diferentes OID, lo cual es muy til en algunos
casos. Por ejemplo, en algunas ocasiones se podra usar el valor entero 50
para representar un peso en Kilogramos, y en otras para referirse a la edad
de una persona. As podran crearse dos objetos bsicos con diferentes OID,
y ambos tendran el mismo valor bsico de 50. Aunque resulta til como
modelo terico, esto no es muy prctico porque puede obligar a generar
demasiados OID. Por ello tambin, la mayor parte de los sistemas de BDOO
permiten representar tanto objetos como valores. Todo objeto debe tener un
OID inmutable, pero los valores no tienen OID y se representan as mismo.
Los objetos tienen identidades nicas, independientes de los valores de sus
atributos.
La estructura orientad a objetos automticamente impone las restricciones
relacionales, generalmente ms aplicables: dominio, llave integridad de
entidad e integridad referencial.
2. CONSTRUCTORES DE TIPOS
En las BDOO, los valores (o estados) de los objetos complejos se pueden
construir a partir de otros objetos mediante ciertos constructores de tipos.
Una forma de representar tales objetos es considerar a cada objeto como
tripleta (i, c, v), donde i es un identificador de objeto nico (el OID), c es un
constructor (esto es, una indicacin de cmo se construye el valor del objeto)
y v es el valor (o estado) del objeto. Puede haber varios constructores,
segn el modelo de datos y el sistema OO.
Los tres constructores bsicos son:

constructores de tomos.
constructores de tuplas.
constructores de conjuntos.
Otros constructores de uso ms comn son los de listas y de arreglos.
Tambin existe un dominio D que contiene todos los valores atmicos
bsicos que estn disponibles directamente en el sistema. Por lo regular
estos incluyen los enteros, los nmeros reales, las cadenas de caracteres,
los tipos bolanos, las fechas y cualesquiera otros tipos de datos que el
sistema maneje directamente.
3. ENCAPSULAMIENTO:
Tanto la estructura de los objetos como las operaciones que se pueden
aplicar a ellos se incluyen en las definiciones de clases de los objetos.
4. COMPATIBILIDAD CON LENGUAJES DE PROGRAMACION
Si se sigue el enfoque cuando se utilizan los diagramas de Entidad-Relacin
para modelar los datos y luego se convierten de manera manual en un
conjunto de relaciones; por lo tanto los conceptos de la Programacin
Orientada a Objetos se utilizan simplemente como herramientas de diseo y
se codifican, utilizndose para trabajar con una base de datos.
Hay varios lenguajes posibles en los que se pueden integrar estos
conceptos:
Una opcin es extender un lenguaje para el tratamiento de datos como el
SQL aadiendo tipos complejos y la programacin orientada a objetos. Los
sistemas proporcionan extensiones orientadas a objetos a los sistemas
relacionales se denominan sistemas relacionales orientados a objetos.
Otra opcin es tomar un lenguaje de programacin orientado a objetos ya
existente y extenderlo para que trabaje con las bases de datos. Estos
lenguajes se denominan lenguajes de programacin persistentes. Estos
lenguajes permiten a los programadores trabajar directamente con los datos,
desde el lenguaje de programacin; sin tener que pasar por un lenguaje para
el tratamiento de datos como SQL. Se denominan persistentes porque los
datos siguen existiendo una vez que el programa que los cre ha concluido.
A la hora de decidir que opcin utilizar se debe tener en cuenta que los
Lenguajes Persistentes suelen ser potentes y resulta relativamente sencillo
cometer errores de programacin que daen las bases de datos. La
complejidad de los lenguajes hace la optimizacin automtica de alto nivel,
como la reduccin de E/S de disco, resulte difcil. En muchas aplicaciones, la
posibilidad de las consultas declarativas es de gran importancia, pero los
lenguajes persistentes no permiten actualmente las consultas declarativas
sin que aparezcan problemas de algn tipo.

5. JERARQUIA DE TIPOS Y HERENCIA


Los esquemas de BDOO suelen necesitar un gran nmero de clases. Sin
embargo, varias clases son parecidas entre s.
Para permitir la representacin directa de parecidos entre las clases, hay
que ubicarlas en una jerarqua de especializaciones. El concepto de
jerarqua de clases es parecido al de especializacin del modelo E-R. Las
especializaciones de las clases son denominadas subclases; lo cual
especifica atributos y mtodos adicionales para una clase existente. Los
objetos creados por medio de unas subclases heredan todos los atributos y
mtodos de la clase padre. Algunas de estas caractersticas heredadas
pueden ellas mismas haber sido heredadas de clases ms altas en la
jerarqua.
6. MANEJO DE OBJETOS COMPLEJOS
Los objetos se consideran complejos porque requieren un rea de
almacenamiento sustancial y no forman parte de los tipos de datos estndar
que suelen ofrecer los SGBD. Puesto que el tamao de los objetos es
considerable, un SGBD podra obtener una porcin del objeto y
proporcionarla al programa de aplicacin antes de obtener todo el objeto. El
SGBD podra tambin usar tcnicas de almacenamiento intermedio y cach
para obtener por anticipado porciones del objeto, antes de que el programa
de aplicacin necesite tener acceso a ellas.
En un SGBOO, esto puede lograrse definiendo un nuevo tipo de datos
abstracto para los objetos no interpretados y suministrados los mtodos para
seleccionar, comprar y exhibir tales objetos.
Como un SGBOO permite a los usuarios crear nuevos tipos, y como un tipo
incluye tanto estructura como operaciones, podemos considerar que un
SGBOO tiene un sistema de tipos extensibles. Podemos crear bibliotecas
de nuevos tipos definiendo su estructura y operaciones, incluso con tipos
complejos.
Muchos SGBDOO pueden almacenar y obtener objeto no estructurado
extenso en forma de cadenas y caracteres o de bits, que se pueden pasar
tal cual al programa de aplicacin para que las interprete.
Es posible almacenar y manipular objetos complejos tanto estructurados
como no estructurados.

7. POLIMORFISMO

El polimorfismo se refiere al uso de la misma firma de mensaje para dirigir


diferentes mtodos en diferentes clases. Cuando el diseador enva una
seal a un objeto, el mtodo de la clase de objeto, posiblemente heredado,
procesa la seal.
Un mtodo puede tener acceso directamente a atributos de un objeto
destino por no nombre, al incluir cualesquiera atributos heredados de clases
padres, pero debe tener acceso a atributos de otros objetos con seales
secundarias.
En sntesis este concepto permite enlazar el mismo nombre o smbolo de
operador a dos o ms implementaciones diferentes del operador,
dependiendo del tipo de objetos a los que ste se aplique.
8. CREACION DE VERSIONES
Muchas aplicaciones de bases de datos que usan sistemas OO requieren la
existencia de varias versiones del mismo objeto.
Por lo regular, se aplican actividades de mantenimiento a un sistema de
software conforme sus requerimientos evolucionan. Por lo regular, el
mantenimiento implica modificar algunos de los mdulos de diseo y de
implementacin. Si el sistema ya est en operacin, y si es preciso
modificar uno o ms mdulos, el diseador deber crear una nueva versin
de cada uno de ellos para efectuar cambios.
Cabe sealar que puede haber ms de dos versiones de un objeto.
En caso que se requieran dos versiones, adems del mdulo original. Se
puede actualizar concurrentemente las propias versiones del mismo mdulo
del software. Esto se llama ingeniera concurrente. Sin embargo, siempre
llega el momento en que es preciso combinar (fusionar) estas dos versiones
para que la versin hibrida incluya los cambios realizados. Es necesario de
que sus cambios sean compatibles.
Un objeto complejo, como un sistema de software, puede constar de
muchos mdulos. Cuando se permite la creacin de mltiples versiones, es
posible que cada una de esos mdulos tenga varias versiones distintas y un
grafo de versiones.
Como se deduce del anlisis anterior, un SGBDOO debe ser capaz
almacenar y controlar mltiples versiones del mismo objeto.

de

LENGUAJE ODL

No es un lenguaje de programacin completo, define las propiedades y


los prototipos de las operaciones de los tipos, pero no los mtodos que
implementan esas operaciones.

Intenta definir tipos que puedan implementarse en diversos lenguajes de


programacin.
No esta por tanto ligado a la sintaxis concreta de un lenguaje de
programacin particular.

De esta forma un esquema especificado en ODL, puede ser soportado por


cualquier SMBDOO que sea compatible con ODMG-93.
LENGUAJE OML
El lenguaje de manipulacin es empleado para la elaboracin de programas
que permitan crear, modificar y borrar datos que constituyen en la BD.
ODMG-93 sugiere que este lenguaje sea la extensin de un lenguaje de
programacin, de forma que se pueda realizar entre otras las siguientes
operaciones sobre la base de datos: Creacin, Borrado, Modificacin e
Identificacin de un Objeto.
LENGUAJE OQL

LENGUAJE DE CONSULTA SOBRE UN MODELO DE DATOS EN ODL.


CARACTERSTICAS:
o SINTAXIS SIMILAR A SQL.
o PUEDEN INVOCARSE MTODOS.
o NO PROPORCIONA OPERADORES EXPLCITOS PARA LA
MODIFICACIN, SE BASA EN LAS OPERACIONES QUE PARA
ESE FIN SE HAYAN DEFINIDO SOBRE LOS OBJETOS.
o SE CONSULTA SOBRE EL EXTENT NO LA CLASE.

El estndar ODMG contiene el lenguaje Object Query Language (OQL) que


incluye el lenguaje Object Definition Language (ODL) que define el esquema de
la base de datos orientada por objetos. Este esquema debe seguir las
directrices del modelo de objetos del ODMG, descrito en la sesin que lleva su
nombre.
Las consultas en OQL utilizan una sintaxis similar al SQL del modelo relacional,
trata objetos complejos sin privilegiar al constructor Set y la clusula SELECTFROM-WHERE.

No es computacionalmente completo, pero las consultas pueden invocar


mtodos.

Provee acceso declarativo a los objetos.

Tiene una sintaxis del tipo SQL.

Provee primitivas de alto nivel para manejar conjuntos, estructuras y


listas en forma eficiente.

No tiene operadores de actualizacin pero permite la ejecucin de


operaciones con esa responsabilidad.

Permite las consultas sobre los objetos denotables del modelo indicando
su nombre.

Como lenguaje embebido permite la consulta desde cualquier LPAN.

Una consulta en OQL es una funcin que aplicada a una entrada da


como resultado un objeto cuyo tipo puede ser inferido por el operador
inmerso en la consulta.

Ejemplo: Regresa un literal del tipo Set <Integer>


select distinct x.edad
from x in personas
where x.nombre = Manuel
Ejemplo que regresa un literal del tipo Set<Struct>, donde a y s son los
nombres de las columnas de despliegue que no tiene porque coincidir con los
nombres de los atributos almacenados
select distinct struct( a:e.edad, s:x.sexo )
from x in Personas
where x.nombre = Manuel
CARACTERSTICAS DE BD OO
Se
intenta definir un sistema de BDOO y describe las principales
caractersticas en tres grupos:
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.
CARACTERISTICAS OBLIGATORIAS
Este es un punto que no debe faltar en BD.
Predominancia combinada con enlace retardado: se puede definir que sea
Excel, Autocad, etc. desde la programacin.
Extesibilidad: Proporciona los tipos de datos como: Carcter, booleano, string,
etc.

Concurrencia: permite que varios usuarios tengan acceso a


mismo tiempo.

una BD al

Recuperacin: Cuando se hace una transaccin pero no se puede realizar y se


regresa al mismo estado.
Facilidad de Consultas a Modo. Esto es cuando se tienen diferentes
estndares.
MANIFIESTO MALCOLM ATKINSON

Deben soportarse objetos complejos.

Deben soportarse mecanismos de identidad de objetos.

Debe soportarse la encapsulacin.

Debe soportarse los tipos y clases.

Los tipos o clases deben ser capaces de heredar de sus ancestros.

Debe soportarse el enlace acadmico.

El DML debe ser computacionalmente complejo.

El conjunto de todos los tipos de datos debe ser ampliable.

Ventajas

Manipula datos complejos de forma rpida

Flexibilidad

Elimina por completo la necesidad de Mapa de relacionamiento de


objetos, con su consecuente mejora en desempeo.

Mayor capacidad de modelado

Ampliabilidad

Lenguaje de consulta ms expresivo

Adecuacin a las aplicaciones avanzadas de bases de datos.

Mayores prestaciones.

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.


Por ejemplo: En una base de datos convencional, si una empresa adquiere

varios clientes por referencia de clientes servicio, pero la base de datos


existente, que mantiene la informacin de clientes y sus compras, no tiene un
campo para registrar quin proporcion la referencia, de qu manera fue dicho
contacto, o si debe compensarse con una comisin, sera necesario
reestructurar la base de datos para aadir este tipo de modificaciones. Por el
contrario, en una BDOO, el usuario puede aadir una subclase de la clase de
clientes para manejar las modificaciones que representan los clientes por
referencia.
La subclase heredar todos los atributos, caractersticas de la definicin
original, adems se especializar en especificar los nuevos campos que se
requieren as como los mtodos para manipular solamente estos campos
Naturalmente se generan los espacios para almacenar la informacin adicional
de los nuevos campos. Esto presenta la ventaja adicional que una BDOO
puede ajustarse a usar siempre el espacio de los campos que son necesarios,
eliminando espacio desperdiciado en registros con campos que nunca usan.
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 BDOO


Al considerar la adopcin de la tecnologa orientada a objetos, la inmadurez
del mercado de BDOO constituye una posible fuente de problemas por lo que
debe analizarse con detalle la presencia en el mercado del proveedor para
adoptar su producto en la lnea de produccin sustantiva. Por eso en este
artculo se propone que se explore esta tecnologa en un proyecto piloto.
El segundo problema es la falta de estndares en la industria orientadas a
objetos. Sin embargo, el Grupo Manejador de Objetos (OMG), es una
Organizacin Internacional de Proveedores de Sistemas de Informacin y
usuarios dedicada a promover estndares para el desarrollo de aplicaciones y
sistemas orientados a objetos en ambiente de cmputos de red. La
implantacin de una nueva tecnologa requiere que los usuarios iniciales
acepten cierto riesgo. Aquellos que esperan resultados a corto plazo y con un
costo reducido quedarn desilusionados. Sin embargo, para aquellos que
planean a un futuro intermedio con una visin tecnolgica avanzada, el uso de
tecnologa avanzada, el uso de tecnologa orientada a objetos, paulatinamente
compensar todos los riesgos.
Mecanismos de consulta muy primitivos, sin un estndar independiente de la
plataforma aceptado.
Imposibilidad de procedimientos almacenados, ya que los objetos solo pueden
ser consultados en el cliente.

Inmadurez en el mercado
No hay agrupamiento fsico de objetos
Su limitacin suele residir en su especializacin, ya que suelen estar diseadas
para un tipo particular de objetos (por ejemplo, una base de datos para un
programa de CAD).
Carencia de un modelo de datos universal

DIFERENCIA ENTRE UN RDBMS Y OODBMS

Tablas
normalizadas
y
restricciones de integridad:
identidad y referencial.

Objetos
complejos:
contienen
colecciones de objetos o referencias a
otros objetos

El
esquema
conceptual
corresponde a base de datos
empresarial y la aplicacin
explota a travs de su esquema
externo.

El objeto persistente tiene la misma


estructura que su versin transiente.

Requiere la definicin de objetos


distinguidos que fungen como puntos
de acceso a partir de los cuales es
posible acceder al resto de los objetos.

Las aplicaciones deben conocer los


puntos de entrada.

Busca
la
equivalencia
entre
la
estructura de los objetos en la base de
datos y los objetos utilizados en las
aplicaciones.

Requiere un API especfico para un


lenguaje orientado a objetos o bien, si
est disponible, OQL

Puede iniciarse una consulta a


partir de cualquier relacin
derivable de las relaciones
representadas por las tablas de
la base de datos.
Busca
una
representacin
independiente
de
las
aplicaciones que explotan la
base de datos.
Ofrece
a
las
diferentes
arquitecturas de aplicaciones
una interfaz comn: SQL.

Das könnte Ihnen auch gefallen