SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
DISEÑO DE UN SISTEMA MANEJADOR DE BASES DE DATOS
                    ORIENTADO A OBJETOS

       NELSON JAVIER CELIS CRUZ                                YELIXE MENDOZA USCATEGUI
                Ingeniero del software                                  Ingeniería del software
      Universidad Francisco de Paula Santander                Universidad Francisco de Paula Santander
              nelsonjcelisc@yahoo.com                                 Yelixemendoza@yahoo.com
                     COLOMBIA                                                COLOMBIA

RESUMEN
El propósito de este artículo es difundir las conclusiones establecidas por los autores en el proyecto: “Diseño de
un sistema manejador de base de datos orientado a objetos”. Los sistemas manejadores de bases de datos
orientados a objetos aprovechan la expresividad del paradigma de la orientación a objetos para elaborar
esquemas de bases de datos más robustos y completos que facilitan la construcción de software más complejo
como: Aplicaciones CAD, CAM, GIS, y software de lógica descriptiva. Actualmente existen estándares y
herramientas que pueden ser utilizados en la elaboración de un sistema manejador de bases de datos orientado a
objetos para solucionar problemas como la persistencia de los objetos y la comunicación entre el cliente y el
servidor, centrándose en el problema de diseñar e implementar un lenguaje de manipulación y definición de
datos, y la transformación semántica entre el objeto y sus relaciones con otros objetos.


PALABRAS RELEVANTES                                         y transformen a las bases de datos relacionales
??   SMBDOO                                                 en aparentes objetos perdiendo tiempo en
??   IDL                                                    dichos procesos. La promesa que hacen los
??   OQL                                                    SGBDOO es eliminar este desfase y
??   Persistencia                                           proporcionar un SGBD que sea accesible
                                                            desde múltiples lenguajes de alto nivel.
??   Orientación a objetos
                                                            ODMG [8], Object Data Management Group,
1    INTRODUCCIÓN                                           representa el primer intento de estandarización
Los sistemas de gestión de bases de datos                   de las bases de datos orientadas a objetos.
orientados a objetos (SGBDOO) heredan las                   Este grupo está integrado por los principales
funcionalidades propuestas para los sistemas                fabricantes de SGBDOO existentes en el
de gestión de bases de datos (SGBD) más la                  mercado. En el año de 1990 la ODMG propone
funcionalidad de un modelo de datos orientado               tres principios básicos para los SGBD de
a objetos (MDOO) [7] como se ilustra en la                  tercera generación (3G).
figura 1.
                                                            Se enmarcan los siguientes principios:
         SGBDOO = SGBD + MDOO
      Figura 1. Composición de un SGBDOO                    Principio 1: “Además de los servicios
                                                            tradicionales de gestión de datos, los SGBD 3G
De     esta    forma,   un     SGBDOO       tiene           proporcionarán gestión de objetos”
características que pertenecen a los s  istemas
de gestión de base de datos como:                           Principio 2: “Los SGBD 3G deben subsumir los
persistencia, concurrencia, procesamiento de                SGBD de segunda generación (ó relacionales)”
consultas ad-hoc, y características que
pertenecen al modelo de datos orientado a                   Principio 3: “Los SGBD 3G deben ser abiertos
objetos como: manejo de objetos complejos,                  a otros subsistemas”
identidad del objeto, encapsulamiento, tipos o
clases, herencia, polimorfismo y sobrecarga.                El estándar ODMG versión 3.0 [3][8] establece
                                                            una serie de características básicas sobre la
Al utilizar un modelo de datos orientado a                  base de datos, el modelo de datos, el lenguaje
objetos se hace más fácil modelar o abstraer                de especificación de objetos y el lenguaje de
sistemas del mundo real. En la actualidad los               consulta.
ingenieros de software y desarrolladores que
utilizan metodologías que se apoyan en UML                  En la actualidad existen distintos manejadores
ocupan parte del proceso de diseño e                        de bases de datos orientados a objetos, desde
implementación en elaborar clases que oculten               algunos bastante primitivos que simplemente
proporcionan persistencia y el manejo de           2    ARQUITECTURA                 CORBA      DE
algunos tipos de relaciones entre objetos hasta         OMG
otros     muy      completos   que     soportan    Una aplicación es un conjunto de clases e
características      como:    capacidad      de    instancias que interactúan a través del corredor
concurrencia, almacenamiento de métodos en         de requerimientos de objetos, que es un bus de
la base de datos, lenguajes de consulta,           software que permite que los objetos hagan y
manejo de herencia simple, tecnología cliente /    reciban peticiones y respuestas (figura 3).
servidor, entre otras [3].                         Cada aplicación o servicio se modela como un
                                                   objeto.
La arquitectura de un sistema es la estructura     OS: Es la colección de objetos de servicio que
conceptual que permite definirlo y especificarlo   proveen las funciones básicas para crear y
por medio de la identificación del conjunto de     mantener objetos de cualquier categoría.
piezas que lo componen y cómo estas se             FC: Es la colección de clases y objetos que
relacionan entre sí.                               proveen capacidades de propósito g     eneral que
                                                   son útiles en cualquier aplicación.
En      mayo     de    1985     el   consorcio     OA: Son los objetos específicos de cualquier
ANSI/X3/SPARC presenta un modelo de                aplicación de usuario final.
referencia para el desarrollo de las bases de
datos el cual es utilizado como marco de
referencia para el estudio, descripción y                 OA                        FC
análisis de los sistemas manejadores de bases                       Corredor de
de datos.                                                    requerimientos de objetos

El modelo de referencia ANSI/X3/SPARC está
conformado por tres niveles o componentes                              OS
que conforman un sistema manejador de base
de datos (figura 2).                                     Figura 3. Arquitectura básica CORBA

    HGD
                                                   3    CONCEPTOS BÁSICOS
              LD           LDi                     Un objeto modela cualquier entidad identificada
                                                   unívocamente, que persiste a lo largo del
                   SCTD          SO                periodo de vida del objeto y que es
                                                   independiente   de     las   propiedades      y
                                                   comportamientos del objeto.

          Figura 2. Modelo ANSI/X3/SPARC           Las operaciones se aplican a los objetos. Las
                                                   operaciones     asociadas     con   un    objeto
El modelo de referencia (MR), se conforma de       caracterizan su comportamiento. Los objetos se
las siguientes piezas: El sistema de control de    crean como instancias de los tipos. Un tipo
transformación de datos (SCTD), que funciona       caracteriza    el   comportamiento     de   sus
cómo núcleo (corazón) del sistema de manejo        instancias por medio del conjunto de
de bases de datos, y proporciona los               operaciones asociadas con el tipo. Las
operadores para la descripción y manipulación      interrelaciones entre los tipos son supertipo y
de datos; La interfaz de lenguaje de datos         subtipo.
interno (LDi) por medio del cual el SCTD,
establece la conexión con los servicios            El estado de un objeto es el conjunto de
proporcionados por el sistema operativo (SO);      valores e interrelaciones de dicho objeto. Cada
La interfaz de lenguaje de datos (LD), lenguaje    objeto tiene una identidad única distinta e
que permite a los usuarios del sistema realizar    independiente de cualquier otra característica.
peticiones de recuperación de datos al SCTD;       La identidad es constante (inmutable). Cada
Y finalmente las herramientas de gestión de        objeto tiene un identificador que denota o
datos (HGD), que son los programas de              refiere a dicho objeto (OId).
aplicación que permiten a los usuarios             El conjunto de los OIds se denota como Obj.
interactuar con el SCTD y realizar la correcta     Los objetos no cambian de tipo.
administración de las bases de datos.              Cada operación tiene una firma que consiste de
                                                   un nombre, un conjunto de parámetros y un
                                                   conjunto de resultados.
                                                   El conjunto de todas las firmas de un tipo es la
                                                   interfaz del tipo y ella incluye las que son
                                                   heredadas de sus supertipos.
Cada instancia de un tipo satisface la interfaz    ?? El número y tipo de los parámetros es el
de dicho tipo.                                        mismo
El conjunto de todas las instancias de un tipo     ?? El número y tipo de los resultados es el
es la extensión del tipo.                             mismo
Los tipos se organizan en jerarquía formando
un digrafo acíclico.                               Los tipos abstractos no tienen instancias y
La raíz de la jerarquía es el tipo Objeto.         sirven para definir estructura y comportamiento
Los nuevos tipos creados por las aplicaciones      común para los subtipos. Cuando una
son subtipos del tipo Objeto.                      operación es pedida, se selecciona una
El conjunto de todos los tipos de objetos se       implementación de la misma para ser
denomina OTipos.                                   ejecutada.   Este     proceso     se  denomina
                                                   despachar.
Valores que no son objetos se denominan no-
objetos. El conjunto de los objetos y los no-      La operación Omega: omega:(X1: sigma1, X :      2
objetos    conforman    todos   los    valores     sigma2, ..., Xn: sigman)=> (Y 1: ro1, Y2: ro2,...,
denotables, DVal.                                  Ym : rom )
El conjunto de los no-objetos se denomina          cuando es invocada r1 ,..., rm <= omega(E 1, E2,
NObj.                                              ..., En)
El conjunto de los tipos de los no-objetos se      donde omega es el nombre de Omega, Ei son
denomina NTipos.                                   los argumentos de entrada y r los resultados.
                                                                                   i
                DVal=Obj/NObj                     Una petición es válida si los Ei se pueden
                                                   evaluar en alfai o en sus tipos inmediatos alfai
Cada no-objeto debe pertenecer a un tipo           menor o igual que sigmai.
NTipo. Estos no forman parte de la jerarquía de
objetos.                                           La firma garantiza que la petición regrese un
No se especifican operaciones para los objetos     conjunto de resultados betai del tipo o de su
y los no-objetos, ya que sus tipos son             tipo inmediato betai menor o igual que roi.
diferentes.                                        La semántica del pase de argumentos es por
Una operación describe una acción que se           valor.
puede aplicar a los parámetros.                    Una clase define una especificación y una
La invocación de una operación es un evento        implementación del tipo.
que puede producir:                                Un objeto es una instancia de una clase.
                                                   Los      tipos      pueden       tener      varias
?? Un conjunto de resultados inmediatos            implementaciones, por lo cual sus instancias
   (Observador)                                    pueden pertenecer a varias clases.
?? Efectos colaterales expresados en un
   cambio de estado (Transformador)                4     DISEÑO   DE  UN   SISTEMA
?? Excepciones (Errores y advertencias)                  MANEJADOR DE BASES DE
                                                         DATOS     ORIENTADO     A
Cada tipo T que pertenece a OTipos tiene un
conjunto de operaciones Ops(T) = {Omega1 ,
                                              T          OBJETOS.
         T                                         La realización del SMBDOO enmarca las
Omega2 ,..}
Especialización y generalización son relaciones    siguientes actividades:
entre los tipos que están basadas en sus
interfaces. Ellas definen las reglas por las       ?? Elaboración de un modelo de datos
cuales unos objetos de un tipo son aceptados          orientado a objetos.
en el contexto de otro tipo.                       ?? Definición   de     la  estructura  y   el
Herencia es un mecanismo para re-usar                 almacenamiento físico de los datos.
estructura y comportamiento, lo cual permite       ?? Definición del mecanismo de comunicación
que un tipo sea definido en términos de otro.         entre el sistema de base de datos y los
Un objeto es una instancia directa de un tipo si      usuarios.
ella es una instancia de ese tipo y no de los      ?? Definición de un modelo para acceder a la
subtipos del tipo.                                    base de datos orientada a objetos.
Si S es un subtipo de T (T es un supertipo de      4.1   ELABORACIÓN DE UN MODELO
S), entonces para cada operación Omegak T                DE DATOS ORIENTADO A
que pertenece a Ops(T) existe una operación
correspondiente OmegajS que pertenece a
                                                         OBJETOS.
Ops(S) tal que :                                   El modelo de datos indica al SMBD y al usuario
                                                   el modo de abstraer los sistemas analizados
                                                   que hacen parte del mundo real, de aquí surge
?? Tienen el mismo nombre
la importancia de establecer el modelo de          4.1.2     Agregación y composición
datos.                                             La agregación y la composición describen
                                                   objetos compuestos de otros objetos, los
Elisa Bertino menciona sobre el modelo de          conceptos de agregación y composición
datos: “No hay un modelo común a utilizar          difieren en que la composición permite a los
como punto de referencia, ningún fundamento        objetos parte, existir al eliminar el objeto
formal,tampoco ningún estándar para los            compuesto, en cambio la agregación elimina
modelos orientados a objetos, como si lo hay       los objetos parte        junto con el objeto
en el caso del modelo relacional” [5]. Por lo      compuesto. La agregación es representada por
tanto, el modelo de datos debe ser el primer       un rombo sin rellenar, la composición también
resultado del diseño pues es el punto de           es representada por un rombo pero relleno.
partida para realizar el diseño del SMBD.          4.1.3     Herencia
                                                   La herencia se representa con una flecha que
Para la realización del modelo de datos se         apunta al padre. Además el modelo de datos
utiliza el estándar UML [10] (lenguaje unificado   exige que si una clase hija es persistente
de modelado, por sus siglas en ingles) como        entonces su padre debe ser persistente y
herramienta para representar simbólicamente        pertenecer a la misma base de datos para que
el conjunto de datos persistentes relacionados     de este modo el SMBD pueda proporcionar
entre sí, es decir, los esquemas de bases de       integridad referencial. En la figura 5 se muestra
datos.                                             un ejemplo de la representación de herencia
                                                   entre una persona (clase padre) y un empleado
Las características distintivas incluidas en el    (clase hija) para un esquema de base de datos.
modelo de datos orientado a objetos son:
4.1.1     Clases                                                     persona
Las clases representan la forma de modelar                       <<persistente>>
entidades del mundo real que presentan                         - id
                                                               - nombre
atributos     y   métodos     comunes.      Una                - dirección
característica típica de los objetos en un                     + agregar ()
SMBDOO es su persistencia. Los objetos o                       + eliminar ()
instancias de clases son persistentes cuando
pueden almacenarse en memoria secundaria
(una base de datos o un archivo) y recuperarse
                                                                      empleado
posteriormente, en lugar de existir solo en                        <<persistente>>
memoria principal. El modelo de datos adiciona                - sueldo
la característica de persistencia al representar              - jefe
clases que abstraen objetos persistentes,                     + calcular_sueldo()
clases persistentes. Para diferenciar una clase               +establecer_sueldo()
como persistente se adiciona junto al nombre
de la clase la etiqueta “<<persistente>>” como             Figura 5. Representación de herencia
se muestra en la figura 4
                                                   4.1.4     Representación de una base de
                      Nombre                                 datos
                   <<persistente>>                 Si el analista y/o diseñador del sistema
                                                   considera conveniente separar las clases
                 Atributos                         persistentes para concebirlas como una base
                                                   de datos puede hacerlo utilizando un paquete
                 Métodos                           de base de datos. Además si el sistema maneja
                                                   mas de una base de datos, es ventajoso indicar
        Figura 4. Representación de una clase      la base de datos a la que pertenece.
                     persistente.
                                                   Un paquete en UML es un elemento que
El modelo de datos introduce las etiquetas de      agrupa a s vez otros elementos dentro de él.
                                                               u
persistencia para que el ingeniero de software     El paquete de base de datos es un paquete
logre incluir las clases persistentes y no         que agrupa clases persistentes y sus
persistentes en un solo diagrama de clases;        relaciones, es decir, un paquete de base de
facilitando   de    esta     forma un    mejor     datos contiene el diagrama de clases
entendimiento del sistema analizado y las          persistentes.
relaciones entre las clases.
                                                   Un paquete se simboliza por una carpeta con
                                                   nombre y los elementos que contiene. Para
representar un paquete de base de datos se          almacenados y el valor es el contenido del
adiciona junto al nombre que identifica el          atributo, llamaremos a estos archivos físicos:
paquete, la etiqueta “<<base de datos>>” como       pila de instancias de la clase n, donde n es el
se ilustra en la figura 6.                          nombre de la clase.

           Nomina                                   Cada objeto del esquema de base de datos
      <<base de datos>>                             tendrá su propia pila de instancias sin importar
                                                    si    presenta    relaciones     de    herencia,
           persona                                  composición, agregación y asociación, los
       <<persistente>>
                          *                         objetos relacionados se almacenan en la lista
      - id
      - nombre                                      de propiedades del objeto, en donde en el
      - departamento                     1          campo valor contendrá el ido del objeto
      + agregar ()               departamento       referenciado.
      + eliminar ()            <<persistente>>
      + consultar ()          - id
                              - nombre
                                                    Se dice entonces que el conjunto de
                              + agregar()           propiedades almacenadas para un objeto en la
                              +eliminar()           pila de instancias representa una instancia de
                                                    una clase.
                                                    4.2.3   Diccionario de datos.
Figura 6. Representación de un paquete de Base      El diccionario de datos se describe como la
                   de datos
                                                    base de datos que utiliza el SMBD para ejercer
                                                    control sobre la integridad de los datos, el
4.2     DEFINICIÓN DE LA                            diccionario de datos almacena la descripción
        ESTRUCTURA Y EL                             de las clases y sus relaciones (agregación,
        ALMACENAMIENTO FÍSIC O DE                   composición, herencia, asociación).
        LOS DATOS.
                                                    El diccionario de datos contiene un grafo
4.2.1     Identificadores de objetos (IDO)
                                                    dirigido para cada uno de los tipos de
Una clase es la abstracción de un conjunto de
                                                    relaciones: un grafo que representa las
objetos. Cada objeto es identificado con un IDO
                                                    relaciones     de     agregación   (grafo   de
[1] [5] que es asignado por el sistema, trayendo
                                                    agregación), un grafo que representa las
como ventaja que el programador no tiene que
                                                    relaciones     de    composición    (grafo  de
preocuparse por asignar una clave que
                                                    composición), un grafo que representa las
identifique al objeto; cada IDO es único en la
                                                    relaciones de asociación (grafo de asociación)
base de datos.
                                                    y un grafo que representa las relaciones de
                                                    herencia (grafo de herencia) que tiene la
El concepto de IDO introduce 2 nociones de
                                                    particularidad de ser acíclico. Entiéndase por
igualdad entre objetos:
                                                    clases los vértices del grafo.
?? Identidad por igualdad: consiste en que 2
                                                    El conjunto de vértices representa cada una de
   objetos son idénticos si tienen el mismo         las clases del esquema de base de datos y el
   IDO.
                                                    conjunto de aristas representa las relaciones
?? Igualdad por valor: consiste en que 2            entre las clases.
   objetos son iguales si los valores de sus
   atributos son iguales.                           El SMBD no almacena los métodos en la base
                                                    de datos, posteriormente se aclarara en donde
La identidad subsume la igualdad, es decir, 2       se almacenan los métodos de las clases.
objetos pueden ser iguales pero no idénticos y
si 2 objetos son idénticos necesariamente son       Para la realización de consultas sobre la base
iguales.                                            de datos los grafos tienen la propiedad de crear
                                                    subgrafos con los vértices solicitados en la
Los dos proporcionan un soporte importante          consulta incluyendo sus aristas. Este aspecto
para establecer mecanismos que controlen la         es de especial cuidado pues se tiene que
integridad y persistencia de los objetos.           prever que vértices adicionales deben ser
4.2.2     Almacenamiento de los objetos.            incluidos en el subgrafo de consulta.
Los objetos son almacenados en archivos
físicos con la siguiente estructura: <IDO,          Para un subgrafo de consulta de herencia se
atributo, tamaño, valor> para cada atributo del     trae toda la jerarquía de herencia de los
objeto; donde el IDO es el identificador único      vértices solicitados ya que es posible que el
del objeto, el atributo es el nombre del atributo   usuario solicite un atributo de una clase padre.
del objeto, el tamaño es el número de bytes
Para un subgrafo de consulta de agregación se       se indique el numero de atributos, valor,
traen las clases referenciadas a la clase           nombre del atributo y tipo de dato, para que el
solicitada. Para un subgrafo de composición se      resultado de consulta pueda proveer al usuario
traen las clases anexadas a la clase solicitada.    un procedimiento que facilite el acceso a los
Además al traer clases adicionales a las            atributos de las instancias por medio de sus
solicitadas se debe tener en cuenta que éstas a     nombres.
su vez deben cumplir las condiciones
anteriormente mencionadas.                          El segundo método para realizar operaciones
4.3   DEFINICIÓN DEL MECANISMO                      sobre los datos es a través de un conjunto de
      DE COMUNICACIÓN ENTRE EL                      atributos proporcionados por la propia clase,
                                                    con la limitación de que solo será posible hacer
      SISTEMA DE BASE DE DATOS                      consultas exclusivamente a la clase.
      Y LOS USUARIOS.
Esta actividad       define   el  lenguaje   de     Las operaciones de inserción, eliminación y
manipulación y definición de los datos que          actualización de instancias se llevarán a cabo
utiliza el usuario. Desafortunadamente hasta la     exclusivamente desde la clase.
fecha no se ha profundizado mucho en el
estudio de este tópico y solo se han elaborado      Como es necesario que toda clase que
unas conclusiones tempranas al respecto.            pertenezca a la base de datos proporcione
Estas son:                                          mecanismos      de     inserción,   eliminación,
                                                    actualización y persistencia, se exige que las
El lenguaje de definición de datos es la interfaz   clases hereden de una clase base que
que presenta el SMBD al usuario para poder          proporcione los mecanismos anteriormente
implementar el esquema de base de datos, el         mencionados.
SMBD diseñado utilizara el lenguaje IDL
                                                    4.4   DEFINICIÓN DE UN MODELO
propuesto en el estándar CORBA para definir
las clases persistentes y sus relaciones                  PARA ACCEDER A LA BASE DE
(agregación,        herencia,       composición,          DATOS ORIENTADA A
asociación).    El     SMBD     presentará     un         OBJETOS.
componente que interprete las declaraciones         En esta etapa se definen los métodos de
de clases realizadas por el usuario y con este      comunicación entre el cliente y el servidor,
genere el archivo físico que contendrá la pila de   pues se tiene como requisito del sistema
instancias y la actualización del diccionario de    soportar la arquitectura Cliente/Servidor. Con
datos, es decir, la vinculación de la clase a       métodos de comunicación se quiere decir todo
cada uno de los grafos de relaciones.               lo necesario para que el sistema funcione en
                                                    redes siendo la comunicación entre el cliente y
El lenguaje de manipulación de datos permite        el servidor transparente para el usuario.
al usuario crear instancias de una clase,
modificar sus atributos, eliminar instancias y      Sin duda alguna la creación de un protocolo de
consultar los datos.                                alto nivel que soporte la comunicación de los
                                                    objetos a través de la red requiere una cantidad
El SMBD diseñado contempla dos maneras de           de tiempo considerable e innecesaria ya que
realizar operaciones sobre los datos:               actualmente existen estándares que facilitan
                                                    estos servicios; teniendo en cuenta el principio
El primero, un lenguaje de consultas tipo SQL       de la ODMG que dice: “Los SGBD 3G deben
llamado lenguaje de consulta a objetos (OQL,        ser abiertos a otros subsistemas” se elige el
por sus siglas en ingles), que funcionaría de la    estándar abierto para la comunicación entre
siguiente manera: en vez de enviar de manera        objetos CORBA propuesto por el grupo OMG
directa la consulta al SMBD, éste proporcionará     (grupo de administración de objetos, por sus
una clase que gestione las consultas, y será a      siglas en ingles)(ver figura 7).
través de ésta clase que el usuario realizará
sus consultas, una vez procesada la consulta                                 SMBD
en el SMBD se retornará al usuario una clase
llamada     “resultado_de_consulta”   que     se
compone de un conjunto de instancias que son
el resultado de una consulta OQL (figura 7). A
bajo nivel el “resultado_de_consulta” manejará                   Consulta        Resultado
una lista doblemente encadenada en donde                                         consuta
                                                                            USUARIO
cada nodo contendrá una instancia; se le
deberá          enviar        además           al     Figura 7. Esquema de comunicación básico.
“resultado_de_consulta” una cabecera donde
“La Arquitectura Común de Mediador de                      Este diseño se apoya en la arquitectura
Peticiones (CORBA The Common Object                        CORBA, como se menciono anteriormente,
Request Broker) del Grupo de Administración                para los procesos de comunicación con el
de Objetos (OMG) suministra una arquitectura               cliente. El SMBDOO esta compuesto por tres
independiente de la plataforma e independiente             piezas básicas:
del lenguaje de programación para la escritura
de aplicaciones distribuidas orientadas a                  Pila     de   instancias:   encargada      del
objeto.” [6].                                              almacenamiento físico de los atributos de los
                                                           objetos en estructuras de almacenamiento
En la sección 2.2.3 de este articulo se                    <IDO, atributo, tamaño, valor>. La pila de
mencionó      que     el   SMBD    almacenaría             instancias administra estos atributos en
únicamente los atributos y relaciones de las               archivos separados, uno para cada clase.
clases y no se aclaró en que lugar ó quien era             Además se encarga de administrar las distintas
el responsable de contener los procedimientos              bases de datos separándolas en paquetes.
de las clases. El encargado de ejecutar y                  Estos paquetes podrían representarse en disco
almacenar los procedimientos de las clases es              como un árbol de directorios, al igual que en
un mediador de peticiones de objetos (ORB,                 Java.
por sus siglas en ingles).
                                                           Diccionario de datos: el cual contiene toda la
Además de almacenar y ejecutar los                         información necesaria para controlar la
procedimientos de las clases el ORB tiene las              integridad de los datos, en éste se almacena la
siguientes responsabilidades:                              descripción de las clases y sus relaciones
                                                           (agregación,       composición,        herencia,
?? Retornar      los     objetos     de     tipo           asociación), estas relaciones se almacenan
   “resultado_de_consulta”.                                como un grafo dirigido, en realidad un grafo
?? Recibir y enviar al SMBD las peticiones del             para cada una de las relaciones como se
   usuario ya sea de definición de datos (idl) o           mencionó en la sección 2.2.3.
   manipulación de datos (oql ó los
   procedimientos     de    las   clases    que            ORB: el ORB CORBA proporciona la
   pertenecen a la base de datos).                         comunicación entre el SMDB y el cliente y
?? Retornar al usuario mensajes, de error ó                ejecuta los procedimientos de las clases. A su
   información, que lance el SMBD.                         vez el ORB contiene un repositorio de clases
                                                           en el cual se almacenan todas las clases de las
5   CONCLUSIONES.                                          distintas bases de datos. Para diferenciar las
El SMBD diseñado posee                    la   siguiente   distintas bases de datos (paquetes de bases de
arquitectura (ver figura 8):                               datos) se representaran en disco como un árbol
                                                           de directorios al igual que la pila de instancias,
                                                           nótese que la pila de instancias y el repositorio
                                                           de clases podrían o no compartir el mismo
                 SMBDOO                                    espacio físico en disco, pero con el propósito
                Pila de instancias
                                                           de crear un modelo flexible se conciben como
                                                           artefactos    almacenados      en     ubicaciones
                   Diccionario de datos                    distintas. Además el hecho que ORB se
                                                           encuentre dentro de el SMBDOO no quiere
                                                           decir que en la practica se encuentre en la
                                                           misma computadora el ORB y el SMBDOO.

                                                           El SMBDOO se encarga de:
                       ORB
             Repositorio de clases                         ?? Recibir y procesar las peticiones           de
                                                              manipulación y definición de datos.
                                                           ?? Enviar mensajes.
                                                           ?? Enviar instancias.

                                                           Cliente: el cliente se comunica de manera
                      Cliente                              bidireccional con el ORB.

     Figura 8. Esquema básico de SMBDOO                    ?? Envía peticiones de creación de clases con
                   propuesto                                  el lenguaje idl.
?? Envía consultas a varias clases por medio        [6]    Common        Objects    Request    Broker
   de las clases de gestión de consultas que        Architecture. http://www.jguru.com.
   contienen la sentencia oql del usuario.          [7] Todd R. Manion. Objects Objects
?? Envía por medio de los procedimientos de         Everywhere.        http://www.acm.org/crossroads/
   las clases que pertenecen a la base de           xrds7-3/objects.html. ACM Crossroads Student
   datos peticiones para insertar, actualizar,      Magazine.
   eliminar y filtrar valores de las clases.        [8] Ramakanth S. Devorakonda. Sistemas de
?? Recibe mensajes del SMBD.                        bases de datos relacionado a objetos.
?? Recibe            objetos         de      tipo   http://www.acm.org/crossroads/xrds7-
   “resultado_de_consulta”.                         3/ordbms.html. ACM Crossroads Student
?? Recibe objetos de la base de datos.              Magazine.               Estándar          ODMG.
                                                    http://www.odmg.org.
6    REFERENCIAS                                    [9] Peter Kueng. Comparison of ten OODBMS.
                                                    Institute of computer science.
[1] Johnson, James L. Database: models,
                                                    [10] Rational Software Corporation. The Unified
languages, design. Oxford University Press.
                                                    Modelling Language: Notation and Semantics
1997.
                                                    Gudes. http://www.rational.com
[2] C.J. Date. Introducción a los sistemas de
                                                    [11] Isabel Besembel. Modelo de objetos OMG.
bases de datos. Volumen I. Quinta Edición.
                                                    http://www.pgcomp.ula.ve/DISTANCI
Addison Wesley. 1998.
                                                    A/BDA/omg.html.
[3] Ana Belén Martínez Prieto. Un Sistema de
                                                    [12] Won Kim. Modern Database Systems: The
Gestión de Bases de Datos Orientadas a
                                                    Object Model Interoperability, and Beyond.
Objetos    sobre     una    Máquina    Abstracta
                                                    ACM Press.
Persistente. Universidad de Oviedo. 2001.
                                                    [13] Esperanza Marcos Martínez. Bases de
[4] Dany Leonardo Martínez Murcia. Davinci:
                                                    Datos          Orientadas        a       Objetos.
Prototipo de un Sistema Manejador de Bases
                                                    http://kybele.escjet.urjc.es/documentos/bd/tema
de Datos Orientado por Objetos. Universidad
                                                    2.pdf. Universidad Rey Juan Carlos. Grupo de
Francisco de Paula Santander. 2000.
                                                    investigación Kybele.
[5] Elisa Bertino. Sistemas de Bases de Datos
Orientados a Objetos. Addison Wesley. 1995.

Más contenido relacionado

La actualidad más candente

Unidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualUnidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualSergio Sanchez
 
Motor de persistencia nhibernate
Motor de persistencia nhibernateMotor de persistencia nhibernate
Motor de persistencia nhibernateDamian Palacios
 
Comunidad emagister 63082_63082-convertido
Comunidad emagister 63082_63082-convertidoComunidad emagister 63082_63082-convertido
Comunidad emagister 63082_63082-convertidoJamil Cajamarca
 
Fundamentos del análisis orientado a objetos
Fundamentos del análisis orientado a objetosFundamentos del análisis orientado a objetos
Fundamentos del análisis orientado a objetosEduardo Galindo
 
Analisis y diseño orientado a odjetos
Analisis y diseño orientado a odjetosAnalisis y diseño orientado a odjetos
Analisis y diseño orientado a odjetosLex Marin
 
12 Clase Analisis Orientado A Objetos
12 Clase Analisis Orientado A Objetos12 Clase Analisis Orientado A Objetos
12 Clase Analisis Orientado A ObjetosJulio Pari
 
Diseño Orientado a Objetos
Diseño Orientado a ObjetosDiseño Orientado a Objetos
Diseño Orientado a ObjetosMegaMono
 
Analisis y Diseño de Sistemas II Orientado a objetos
Analisis y Diseño de Sistemas II Orientado a objetosAnalisis y Diseño de Sistemas II Orientado a objetos
Analisis y Diseño de Sistemas II Orientado a objetosGloria Gonzales
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetosjose_rob
 
Base de datos Objeto-Relacional.
Base de datos Objeto-Relacional.Base de datos Objeto-Relacional.
Base de datos Objeto-Relacional.Juan Raul Vergara
 
Trabajo de diseño de sistemas orientados a objetos
Trabajo de diseño de sistemas orientados a objetosTrabajo de diseño de sistemas orientados a objetos
Trabajo de diseño de sistemas orientados a objetosdouglimar89
 
Análisis y diseño orientado a objetos
Análisis y diseño orientado a objetosAnálisis y diseño orientado a objetos
Análisis y diseño orientado a objetosChristian Leon
 

La actualidad más candente (20)

Base de Datos Orientada a Objetos
Base de Datos Orientada a ObjetosBase de Datos Orientada a Objetos
Base de Datos Orientada a Objetos
 
Unidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualUnidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos Conceptual
 
Motor de persistencia nhibernate
Motor de persistencia nhibernateMotor de persistencia nhibernate
Motor de persistencia nhibernate
 
Comunidad emagister 63082_63082-convertido
Comunidad emagister 63082_63082-convertidoComunidad emagister 63082_63082-convertido
Comunidad emagister 63082_63082-convertido
 
Fundamentos del análisis orientado a objetos
Fundamentos del análisis orientado a objetosFundamentos del análisis orientado a objetos
Fundamentos del análisis orientado a objetos
 
Analisis y diseño orientado a odjetos
Analisis y diseño orientado a odjetosAnalisis y diseño orientado a odjetos
Analisis y diseño orientado a odjetos
 
12 Clase Analisis Orientado A Objetos
12 Clase Analisis Orientado A Objetos12 Clase Analisis Orientado A Objetos
12 Clase Analisis Orientado A Objetos
 
Tecnología Orientada a Objetos
Tecnología Orientada a ObjetosTecnología Orientada a Objetos
Tecnología Orientada a Objetos
 
Diseño Orientado a Objetos
Diseño Orientado a ObjetosDiseño Orientado a Objetos
Diseño Orientado a Objetos
 
Diseno creacion-bases-datos-completo
Diseno creacion-bases-datos-completoDiseno creacion-bases-datos-completo
Diseno creacion-bases-datos-completo
 
Compu 1
Compu 1Compu 1
Compu 1
 
Analisis y Diseño de Sistemas II Orientado a objetos
Analisis y Diseño de Sistemas II Orientado a objetosAnalisis y Diseño de Sistemas II Orientado a objetos
Analisis y Diseño de Sistemas II Orientado a objetos
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetos
 
Desarrollo Orientado a Objetos
Desarrollo Orientado a ObjetosDesarrollo Orientado a Objetos
Desarrollo Orientado a Objetos
 
Base de datos Objeto-Relacional.
Base de datos Objeto-Relacional.Base de datos Objeto-Relacional.
Base de datos Objeto-Relacional.
 
Bd orientados al objeto
Bd orientados al objetoBd orientados al objeto
Bd orientados al objeto
 
Tecnologia orientado a objetos
Tecnologia orientado a objetosTecnologia orientado a objetos
Tecnologia orientado a objetos
 
Trabajo de diseño de sistemas orientados a objetos
Trabajo de diseño de sistemas orientados a objetosTrabajo de diseño de sistemas orientados a objetos
Trabajo de diseño de sistemas orientados a objetos
 
Tc2 301403 21
Tc2 301403 21Tc2 301403 21
Tc2 301403 21
 
Análisis y diseño orientado a objetos
Análisis y diseño orientado a objetosAnálisis y diseño orientado a objetos
Análisis y diseño orientado a objetos
 

Similar a Smbdoo

Unidad 2. Tópicos de base de datos
Unidad 2. Tópicos de base de datosUnidad 2. Tópicos de base de datos
Unidad 2. Tópicos de base de datosJasmine Gtz
 
Diseño del Software y el Diseño Orientado a Objetos
Diseño del Software y el Diseño Orientado aObjetosDiseño del Software y el Diseño Orientado aObjetos
Diseño del Software y el Diseño Orientado a ObjetosAlexander J Sanchez A
 
Bases De Datos Orientadas A Objetos2
Bases De Datos Orientadas A Objetos2Bases De Datos Orientadas A Objetos2
Bases De Datos Orientadas A Objetos2Cristina Huerta
 
Desarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDesarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDat@center S.A
 
Introducción a los modelos de datos
Introducción a los modelos de datosIntroducción a los modelos de datos
Introducción a los modelos de datosGalo Anzules
 
Actividad 1.2 Cuestiones sobre conceptos básicos de SGBD.
Actividad 1.2 Cuestiones sobre conceptos básicos de SGBD.Actividad 1.2 Cuestiones sobre conceptos básicos de SGBD.
Actividad 1.2 Cuestiones sobre conceptos básicos de SGBD.nyabyte
 
Unidad 3 paradigmas de la ingeniería del software
Unidad 3 paradigmas de la ingeniería del softwareUnidad 3 paradigmas de la ingeniería del software
Unidad 3 paradigmas de la ingeniería del softwareAndhy H Palma
 
Android de la A a la Z" -- Unidad 7
Android de la A a la Z" -- Unidad 7Android de la A a la Z" -- Unidad 7
Android de la A a la Z" -- Unidad 7Android UNAM
 
Resumen Primera Semana Topicos
Resumen Primera Semana TopicosResumen Primera Semana Topicos
Resumen Primera Semana Topicosricardotabd
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a Objetosmenavi
 
Sistemas de base de datos
Sistemas de base de datosSistemas de base de datos
Sistemas de base de datosDeborah Roa
 
BASE DE DATOS ORIENTADA A OBJETOS
BASE DE DATOS ORIENTADA A OBJETOSBASE DE DATOS ORIENTADA A OBJETOS
BASE DE DATOS ORIENTADA A OBJETOSguestf9c5f7
 

Similar a Smbdoo (20)

Unidad 2. Tópicos de base de datos
Unidad 2. Tópicos de base de datosUnidad 2. Tópicos de base de datos
Unidad 2. Tópicos de base de datos
 
Trabajo bdoo
Trabajo bdooTrabajo bdoo
Trabajo bdoo
 
Diseño del Software y el Diseño Orientado a Objetos
Diseño del Software y el Diseño Orientado aObjetosDiseño del Software y el Diseño Orientado aObjetos
Diseño del Software y el Diseño Orientado a Objetos
 
Bases De Datos Orientadas A Objetos2
Bases De Datos Orientadas A Objetos2Bases De Datos Orientadas A Objetos2
Bases De Datos Orientadas A Objetos2
 
Desarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDesarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a Objetos
 
Introducción a los modelos de datos
Introducción a los modelos de datosIntroducción a los modelos de datos
Introducción a los modelos de datos
 
Introduccion BD - 02
Introduccion BD - 02Introduccion BD - 02
Introduccion BD - 02
 
Actividad 1.2 Cuestiones sobre conceptos básicos de SGBD.
Actividad 1.2 Cuestiones sobre conceptos básicos de SGBD.Actividad 1.2 Cuestiones sobre conceptos básicos de SGBD.
Actividad 1.2 Cuestiones sobre conceptos básicos de SGBD.
 
Sgbdoo
SgbdooSgbdoo
Sgbdoo
 
Gestor de base de datos
Gestor de base de datosGestor de base de datos
Gestor de base de datos
 
Unidad 3 paradigmas de la ingeniería del software
Unidad 3 paradigmas de la ingeniería del softwareUnidad 3 paradigmas de la ingeniería del software
Unidad 3 paradigmas de la ingeniería del software
 
Android de la A a la Z" -- Unidad 7
Android de la A a la Z" -- Unidad 7Android de la A a la Z" -- Unidad 7
Android de la A a la Z" -- Unidad 7
 
Basededatos.pdf
Basededatos.pdfBasededatos.pdf
Basededatos.pdf
 
Resumen Primera Semana Topicos
Resumen Primera Semana TopicosResumen Primera Semana Topicos
Resumen Primera Semana Topicos
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a Objetos
 
Sistemas de base de datos
Sistemas de base de datosSistemas de base de datos
Sistemas de base de datos
 
Gestor de Base de Datos
Gestor de Base de DatosGestor de Base de Datos
Gestor de Base de Datos
 
Deber analisis
Deber analisisDeber analisis
Deber analisis
 
Gbd tarea1
Gbd tarea1Gbd tarea1
Gbd tarea1
 
BASE DE DATOS ORIENTADA A OBJETOS
BASE DE DATOS ORIENTADA A OBJETOSBASE DE DATOS ORIENTADA A OBJETOS
BASE DE DATOS ORIENTADA A OBJETOS
 

Smbdoo

  • 1. DISEÑO DE UN SISTEMA MANEJADOR DE BASES DE DATOS ORIENTADO A OBJETOS NELSON JAVIER CELIS CRUZ YELIXE MENDOZA USCATEGUI Ingeniero del software Ingeniería del software Universidad Francisco de Paula Santander Universidad Francisco de Paula Santander nelsonjcelisc@yahoo.com Yelixemendoza@yahoo.com COLOMBIA COLOMBIA RESUMEN El propósito de este artículo es difundir las conclusiones establecidas por los autores en el proyecto: “Diseño de un sistema manejador de base de datos orientado a objetos”. Los sistemas manejadores de bases de datos orientados a objetos aprovechan la expresividad del paradigma de la orientación a objetos para elaborar esquemas de bases de datos más robustos y completos que facilitan la construcción de software más complejo como: Aplicaciones CAD, CAM, GIS, y software de lógica descriptiva. Actualmente existen estándares y herramientas que pueden ser utilizados en la elaboración de un sistema manejador de bases de datos orientado a objetos para solucionar problemas como la persistencia de los objetos y la comunicación entre el cliente y el servidor, centrándose en el problema de diseñar e implementar un lenguaje de manipulación y definición de datos, y la transformación semántica entre el objeto y sus relaciones con otros objetos. PALABRAS RELEVANTES y transformen a las bases de datos relacionales ?? SMBDOO en aparentes objetos perdiendo tiempo en ?? IDL dichos procesos. La promesa que hacen los ?? OQL SGBDOO es eliminar este desfase y ?? Persistencia proporcionar un SGBD que sea accesible desde múltiples lenguajes de alto nivel. ?? Orientación a objetos ODMG [8], Object Data Management Group, 1 INTRODUCCIÓN representa el primer intento de estandarización Los sistemas de gestión de bases de datos de las bases de datos orientadas a objetos. orientados a objetos (SGBDOO) heredan las Este grupo está integrado por los principales funcionalidades propuestas para los sistemas fabricantes de SGBDOO existentes en el de gestión de bases de datos (SGBD) más la mercado. En el año de 1990 la ODMG propone funcionalidad de un modelo de datos orientado tres principios básicos para los SGBD de a objetos (MDOO) [7] como se ilustra en la tercera generación (3G). figura 1. Se enmarcan los siguientes principios: SGBDOO = SGBD + MDOO Figura 1. Composición de un SGBDOO Principio 1: “Además de los servicios tradicionales de gestión de datos, los SGBD 3G De esta forma, un SGBDOO tiene proporcionarán gestión de objetos” características que pertenecen a los s istemas de gestión de base de datos como: Principio 2: “Los SGBD 3G deben subsumir los persistencia, concurrencia, procesamiento de SGBD de segunda generación (ó relacionales)” consultas ad-hoc, y características que pertenecen al modelo de datos orientado a Principio 3: “Los SGBD 3G deben ser abiertos objetos como: manejo de objetos complejos, a otros subsistemas” identidad del objeto, encapsulamiento, tipos o clases, herencia, polimorfismo y sobrecarga. El estándar ODMG versión 3.0 [3][8] establece una serie de características básicas sobre la Al utilizar un modelo de datos orientado a base de datos, el modelo de datos, el lenguaje objetos se hace más fácil modelar o abstraer de especificación de objetos y el lenguaje de sistemas del mundo real. En la actualidad los consulta. ingenieros de software y desarrolladores que utilizan metodologías que se apoyan en UML En la actualidad existen distintos manejadores ocupan parte del proceso de diseño e de bases de datos orientados a objetos, desde implementación en elaborar clases que oculten algunos bastante primitivos que simplemente
  • 2. proporcionan persistencia y el manejo de 2 ARQUITECTURA CORBA DE algunos tipos de relaciones entre objetos hasta OMG otros muy completos que soportan Una aplicación es un conjunto de clases e características como: capacidad de instancias que interactúan a través del corredor concurrencia, almacenamiento de métodos en de requerimientos de objetos, que es un bus de la base de datos, lenguajes de consulta, software que permite que los objetos hagan y manejo de herencia simple, tecnología cliente / reciban peticiones y respuestas (figura 3). servidor, entre otras [3]. Cada aplicación o servicio se modela como un objeto. La arquitectura de un sistema es la estructura OS: Es la colección de objetos de servicio que conceptual que permite definirlo y especificarlo proveen las funciones básicas para crear y por medio de la identificación del conjunto de mantener objetos de cualquier categoría. piezas que lo componen y cómo estas se FC: Es la colección de clases y objetos que relacionan entre sí. proveen capacidades de propósito g eneral que son útiles en cualquier aplicación. En mayo de 1985 el consorcio OA: Son los objetos específicos de cualquier ANSI/X3/SPARC presenta un modelo de aplicación de usuario final. referencia para el desarrollo de las bases de datos el cual es utilizado como marco de referencia para el estudio, descripción y OA FC análisis de los sistemas manejadores de bases Corredor de de datos. requerimientos de objetos El modelo de referencia ANSI/X3/SPARC está conformado por tres niveles o componentes OS que conforman un sistema manejador de base de datos (figura 2). Figura 3. Arquitectura básica CORBA HGD 3 CONCEPTOS BÁSICOS LD LDi Un objeto modela cualquier entidad identificada unívocamente, que persiste a lo largo del SCTD SO periodo de vida del objeto y que es independiente de las propiedades y comportamientos del objeto. Figura 2. Modelo ANSI/X3/SPARC Las operaciones se aplican a los objetos. Las operaciones asociadas con un objeto El modelo de referencia (MR), se conforma de caracterizan su comportamiento. Los objetos se las siguientes piezas: El sistema de control de crean como instancias de los tipos. Un tipo transformación de datos (SCTD), que funciona caracteriza el comportamiento de sus cómo núcleo (corazón) del sistema de manejo instancias por medio del conjunto de de bases de datos, y proporciona los operaciones asociadas con el tipo. Las operadores para la descripción y manipulación interrelaciones entre los tipos son supertipo y de datos; La interfaz de lenguaje de datos subtipo. interno (LDi) por medio del cual el SCTD, establece la conexión con los servicios El estado de un objeto es el conjunto de proporcionados por el sistema operativo (SO); valores e interrelaciones de dicho objeto. Cada La interfaz de lenguaje de datos (LD), lenguaje objeto tiene una identidad única distinta e que permite a los usuarios del sistema realizar independiente de cualquier otra característica. peticiones de recuperación de datos al SCTD; La identidad es constante (inmutable). Cada Y finalmente las herramientas de gestión de objeto tiene un identificador que denota o datos (HGD), que son los programas de refiere a dicho objeto (OId). aplicación que permiten a los usuarios El conjunto de los OIds se denota como Obj. interactuar con el SCTD y realizar la correcta Los objetos no cambian de tipo. administración de las bases de datos. Cada operación tiene una firma que consiste de un nombre, un conjunto de parámetros y un conjunto de resultados. El conjunto de todas las firmas de un tipo es la interfaz del tipo y ella incluye las que son heredadas de sus supertipos.
  • 3. Cada instancia de un tipo satisface la interfaz ?? El número y tipo de los parámetros es el de dicho tipo. mismo El conjunto de todas las instancias de un tipo ?? El número y tipo de los resultados es el es la extensión del tipo. mismo Los tipos se organizan en jerarquía formando un digrafo acíclico. Los tipos abstractos no tienen instancias y La raíz de la jerarquía es el tipo Objeto. sirven para definir estructura y comportamiento Los nuevos tipos creados por las aplicaciones común para los subtipos. Cuando una son subtipos del tipo Objeto. operación es pedida, se selecciona una El conjunto de todos los tipos de objetos se implementación de la misma para ser denomina OTipos. ejecutada. Este proceso se denomina despachar. Valores que no son objetos se denominan no- objetos. El conjunto de los objetos y los no- La operación Omega: omega:(X1: sigma1, X : 2 objetos conforman todos los valores sigma2, ..., Xn: sigman)=> (Y 1: ro1, Y2: ro2,..., denotables, DVal. Ym : rom ) El conjunto de los no-objetos se denomina cuando es invocada r1 ,..., rm <= omega(E 1, E2, NObj. ..., En) El conjunto de los tipos de los no-objetos se donde omega es el nombre de Omega, Ei son denomina NTipos. los argumentos de entrada y r los resultados. i DVal=Obj/NObj Una petición es válida si los Ei se pueden evaluar en alfai o en sus tipos inmediatos alfai Cada no-objeto debe pertenecer a un tipo menor o igual que sigmai. NTipo. Estos no forman parte de la jerarquía de objetos. La firma garantiza que la petición regrese un No se especifican operaciones para los objetos conjunto de resultados betai del tipo o de su y los no-objetos, ya que sus tipos son tipo inmediato betai menor o igual que roi. diferentes. La semántica del pase de argumentos es por Una operación describe una acción que se valor. puede aplicar a los parámetros. Una clase define una especificación y una La invocación de una operación es un evento implementación del tipo. que puede producir: Un objeto es una instancia de una clase. Los tipos pueden tener varias ?? Un conjunto de resultados inmediatos implementaciones, por lo cual sus instancias (Observador) pueden pertenecer a varias clases. ?? Efectos colaterales expresados en un cambio de estado (Transformador) 4 DISEÑO DE UN SISTEMA ?? Excepciones (Errores y advertencias) MANEJADOR DE BASES DE DATOS ORIENTADO A Cada tipo T que pertenece a OTipos tiene un conjunto de operaciones Ops(T) = {Omega1 , T OBJETOS. T La realización del SMBDOO enmarca las Omega2 ,..} Especialización y generalización son relaciones siguientes actividades: entre los tipos que están basadas en sus interfaces. Ellas definen las reglas por las ?? Elaboración de un modelo de datos cuales unos objetos de un tipo son aceptados orientado a objetos. en el contexto de otro tipo. ?? Definición de la estructura y el Herencia es un mecanismo para re-usar almacenamiento físico de los datos. estructura y comportamiento, lo cual permite ?? Definición del mecanismo de comunicación que un tipo sea definido en términos de otro. entre el sistema de base de datos y los Un objeto es una instancia directa de un tipo si usuarios. ella es una instancia de ese tipo y no de los ?? Definición de un modelo para acceder a la subtipos del tipo. base de datos orientada a objetos. Si S es un subtipo de T (T es un supertipo de 4.1 ELABORACIÓN DE UN MODELO S), entonces para cada operación Omegak T DE DATOS ORIENTADO A que pertenece a Ops(T) existe una operación correspondiente OmegajS que pertenece a OBJETOS. Ops(S) tal que : El modelo de datos indica al SMBD y al usuario el modo de abstraer los sistemas analizados que hacen parte del mundo real, de aquí surge ?? Tienen el mismo nombre
  • 4. la importancia de establecer el modelo de 4.1.2 Agregación y composición datos. La agregación y la composición describen objetos compuestos de otros objetos, los Elisa Bertino menciona sobre el modelo de conceptos de agregación y composición datos: “No hay un modelo común a utilizar difieren en que la composición permite a los como punto de referencia, ningún fundamento objetos parte, existir al eliminar el objeto formal,tampoco ningún estándar para los compuesto, en cambio la agregación elimina modelos orientados a objetos, como si lo hay los objetos parte junto con el objeto en el caso del modelo relacional” [5]. Por lo compuesto. La agregación es representada por tanto, el modelo de datos debe ser el primer un rombo sin rellenar, la composición también resultado del diseño pues es el punto de es representada por un rombo pero relleno. partida para realizar el diseño del SMBD. 4.1.3 Herencia La herencia se representa con una flecha que Para la realización del modelo de datos se apunta al padre. Además el modelo de datos utiliza el estándar UML [10] (lenguaje unificado exige que si una clase hija es persistente de modelado, por sus siglas en ingles) como entonces su padre debe ser persistente y herramienta para representar simbólicamente pertenecer a la misma base de datos para que el conjunto de datos persistentes relacionados de este modo el SMBD pueda proporcionar entre sí, es decir, los esquemas de bases de integridad referencial. En la figura 5 se muestra datos. un ejemplo de la representación de herencia entre una persona (clase padre) y un empleado Las características distintivas incluidas en el (clase hija) para un esquema de base de datos. modelo de datos orientado a objetos son: 4.1.1 Clases persona Las clases representan la forma de modelar <<persistente>> entidades del mundo real que presentan - id - nombre atributos y métodos comunes. Una - dirección característica típica de los objetos en un + agregar () SMBDOO es su persistencia. Los objetos o + eliminar () instancias de clases son persistentes cuando pueden almacenarse en memoria secundaria (una base de datos o un archivo) y recuperarse empleado posteriormente, en lugar de existir solo en <<persistente>> memoria principal. El modelo de datos adiciona - sueldo la característica de persistencia al representar - jefe clases que abstraen objetos persistentes, + calcular_sueldo() clases persistentes. Para diferenciar una clase +establecer_sueldo() como persistente se adiciona junto al nombre de la clase la etiqueta “<<persistente>>” como Figura 5. Representación de herencia se muestra en la figura 4 4.1.4 Representación de una base de Nombre datos <<persistente>> Si el analista y/o diseñador del sistema considera conveniente separar las clases Atributos persistentes para concebirlas como una base de datos puede hacerlo utilizando un paquete Métodos de base de datos. Además si el sistema maneja mas de una base de datos, es ventajoso indicar Figura 4. Representación de una clase la base de datos a la que pertenece. persistente. Un paquete en UML es un elemento que El modelo de datos introduce las etiquetas de agrupa a s vez otros elementos dentro de él. u persistencia para que el ingeniero de software El paquete de base de datos es un paquete logre incluir las clases persistentes y no que agrupa clases persistentes y sus persistentes en un solo diagrama de clases; relaciones, es decir, un paquete de base de facilitando de esta forma un mejor datos contiene el diagrama de clases entendimiento del sistema analizado y las persistentes. relaciones entre las clases. Un paquete se simboliza por una carpeta con nombre y los elementos que contiene. Para
  • 5. representar un paquete de base de datos se almacenados y el valor es el contenido del adiciona junto al nombre que identifica el atributo, llamaremos a estos archivos físicos: paquete, la etiqueta “<<base de datos>>” como pila de instancias de la clase n, donde n es el se ilustra en la figura 6. nombre de la clase. Nomina Cada objeto del esquema de base de datos <<base de datos>> tendrá su propia pila de instancias sin importar si presenta relaciones de herencia, persona composición, agregación y asociación, los <<persistente>> * objetos relacionados se almacenan en la lista - id - nombre de propiedades del objeto, en donde en el - departamento 1 campo valor contendrá el ido del objeto + agregar () departamento referenciado. + eliminar () <<persistente>> + consultar () - id - nombre Se dice entonces que el conjunto de + agregar() propiedades almacenadas para un objeto en la +eliminar() pila de instancias representa una instancia de una clase. 4.2.3 Diccionario de datos. Figura 6. Representación de un paquete de Base El diccionario de datos se describe como la de datos base de datos que utiliza el SMBD para ejercer control sobre la integridad de los datos, el 4.2 DEFINICIÓN DE LA diccionario de datos almacena la descripción ESTRUCTURA Y EL de las clases y sus relaciones (agregación, ALMACENAMIENTO FÍSIC O DE composición, herencia, asociación). LOS DATOS. El diccionario de datos contiene un grafo 4.2.1 Identificadores de objetos (IDO) dirigido para cada uno de los tipos de Una clase es la abstracción de un conjunto de relaciones: un grafo que representa las objetos. Cada objeto es identificado con un IDO relaciones de agregación (grafo de [1] [5] que es asignado por el sistema, trayendo agregación), un grafo que representa las como ventaja que el programador no tiene que relaciones de composición (grafo de preocuparse por asignar una clave que composición), un grafo que representa las identifique al objeto; cada IDO es único en la relaciones de asociación (grafo de asociación) base de datos. y un grafo que representa las relaciones de herencia (grafo de herencia) que tiene la El concepto de IDO introduce 2 nociones de particularidad de ser acíclico. Entiéndase por igualdad entre objetos: clases los vértices del grafo. ?? Identidad por igualdad: consiste en que 2 El conjunto de vértices representa cada una de objetos son idénticos si tienen el mismo las clases del esquema de base de datos y el IDO. conjunto de aristas representa las relaciones ?? Igualdad por valor: consiste en que 2 entre las clases. objetos son iguales si los valores de sus atributos son iguales. El SMBD no almacena los métodos en la base de datos, posteriormente se aclarara en donde La identidad subsume la igualdad, es decir, 2 se almacenan los métodos de las clases. objetos pueden ser iguales pero no idénticos y si 2 objetos son idénticos necesariamente son Para la realización de consultas sobre la base iguales. de datos los grafos tienen la propiedad de crear subgrafos con los vértices solicitados en la Los dos proporcionan un soporte importante consulta incluyendo sus aristas. Este aspecto para establecer mecanismos que controlen la es de especial cuidado pues se tiene que integridad y persistencia de los objetos. prever que vértices adicionales deben ser 4.2.2 Almacenamiento de los objetos. incluidos en el subgrafo de consulta. Los objetos son almacenados en archivos físicos con la siguiente estructura: <IDO, Para un subgrafo de consulta de herencia se atributo, tamaño, valor> para cada atributo del trae toda la jerarquía de herencia de los objeto; donde el IDO es el identificador único vértices solicitados ya que es posible que el del objeto, el atributo es el nombre del atributo usuario solicite un atributo de una clase padre. del objeto, el tamaño es el número de bytes
  • 6. Para un subgrafo de consulta de agregación se se indique el numero de atributos, valor, traen las clases referenciadas a la clase nombre del atributo y tipo de dato, para que el solicitada. Para un subgrafo de composición se resultado de consulta pueda proveer al usuario traen las clases anexadas a la clase solicitada. un procedimiento que facilite el acceso a los Además al traer clases adicionales a las atributos de las instancias por medio de sus solicitadas se debe tener en cuenta que éstas a nombres. su vez deben cumplir las condiciones anteriormente mencionadas. El segundo método para realizar operaciones 4.3 DEFINICIÓN DEL MECANISMO sobre los datos es a través de un conjunto de DE COMUNICACIÓN ENTRE EL atributos proporcionados por la propia clase, con la limitación de que solo será posible hacer SISTEMA DE BASE DE DATOS consultas exclusivamente a la clase. Y LOS USUARIOS. Esta actividad define el lenguaje de Las operaciones de inserción, eliminación y manipulación y definición de los datos que actualización de instancias se llevarán a cabo utiliza el usuario. Desafortunadamente hasta la exclusivamente desde la clase. fecha no se ha profundizado mucho en el estudio de este tópico y solo se han elaborado Como es necesario que toda clase que unas conclusiones tempranas al respecto. pertenezca a la base de datos proporcione Estas son: mecanismos de inserción, eliminación, actualización y persistencia, se exige que las El lenguaje de definición de datos es la interfaz clases hereden de una clase base que que presenta el SMBD al usuario para poder proporcione los mecanismos anteriormente implementar el esquema de base de datos, el mencionados. SMBD diseñado utilizara el lenguaje IDL 4.4 DEFINICIÓN DE UN MODELO propuesto en el estándar CORBA para definir las clases persistentes y sus relaciones PARA ACCEDER A LA BASE DE (agregación, herencia, composición, DATOS ORIENTADA A asociación). El SMBD presentará un OBJETOS. componente que interprete las declaraciones En esta etapa se definen los métodos de de clases realizadas por el usuario y con este comunicación entre el cliente y el servidor, genere el archivo físico que contendrá la pila de pues se tiene como requisito del sistema instancias y la actualización del diccionario de soportar la arquitectura Cliente/Servidor. Con datos, es decir, la vinculación de la clase a métodos de comunicación se quiere decir todo cada uno de los grafos de relaciones. lo necesario para que el sistema funcione en redes siendo la comunicación entre el cliente y El lenguaje de manipulación de datos permite el servidor transparente para el usuario. al usuario crear instancias de una clase, modificar sus atributos, eliminar instancias y Sin duda alguna la creación de un protocolo de consultar los datos. alto nivel que soporte la comunicación de los objetos a través de la red requiere una cantidad El SMBD diseñado contempla dos maneras de de tiempo considerable e innecesaria ya que realizar operaciones sobre los datos: actualmente existen estándares que facilitan estos servicios; teniendo en cuenta el principio El primero, un lenguaje de consultas tipo SQL de la ODMG que dice: “Los SGBD 3G deben llamado lenguaje de consulta a objetos (OQL, ser abiertos a otros subsistemas” se elige el por sus siglas en ingles), que funcionaría de la estándar abierto para la comunicación entre siguiente manera: en vez de enviar de manera objetos CORBA propuesto por el grupo OMG directa la consulta al SMBD, éste proporcionará (grupo de administración de objetos, por sus una clase que gestione las consultas, y será a siglas en ingles)(ver figura 7). través de ésta clase que el usuario realizará sus consultas, una vez procesada la consulta SMBD en el SMBD se retornará al usuario una clase llamada “resultado_de_consulta” que se compone de un conjunto de instancias que son el resultado de una consulta OQL (figura 7). A bajo nivel el “resultado_de_consulta” manejará Consulta Resultado una lista doblemente encadenada en donde consuta USUARIO cada nodo contendrá una instancia; se le deberá enviar además al Figura 7. Esquema de comunicación básico. “resultado_de_consulta” una cabecera donde
  • 7. “La Arquitectura Común de Mediador de Este diseño se apoya en la arquitectura Peticiones (CORBA The Common Object CORBA, como se menciono anteriormente, Request Broker) del Grupo de Administración para los procesos de comunicación con el de Objetos (OMG) suministra una arquitectura cliente. El SMBDOO esta compuesto por tres independiente de la plataforma e independiente piezas básicas: del lenguaje de programación para la escritura de aplicaciones distribuidas orientadas a Pila de instancias: encargada del objeto.” [6]. almacenamiento físico de los atributos de los objetos en estructuras de almacenamiento En la sección 2.2.3 de este articulo se <IDO, atributo, tamaño, valor>. La pila de mencionó que el SMBD almacenaría instancias administra estos atributos en únicamente los atributos y relaciones de las archivos separados, uno para cada clase. clases y no se aclaró en que lugar ó quien era Además se encarga de administrar las distintas el responsable de contener los procedimientos bases de datos separándolas en paquetes. de las clases. El encargado de ejecutar y Estos paquetes podrían representarse en disco almacenar los procedimientos de las clases es como un árbol de directorios, al igual que en un mediador de peticiones de objetos (ORB, Java. por sus siglas en ingles). Diccionario de datos: el cual contiene toda la Además de almacenar y ejecutar los información necesaria para controlar la procedimientos de las clases el ORB tiene las integridad de los datos, en éste se almacena la siguientes responsabilidades: descripción de las clases y sus relaciones (agregación, composición, herencia, ?? Retornar los objetos de tipo asociación), estas relaciones se almacenan “resultado_de_consulta”. como un grafo dirigido, en realidad un grafo ?? Recibir y enviar al SMBD las peticiones del para cada una de las relaciones como se usuario ya sea de definición de datos (idl) o mencionó en la sección 2.2.3. manipulación de datos (oql ó los procedimientos de las clases que ORB: el ORB CORBA proporciona la pertenecen a la base de datos). comunicación entre el SMDB y el cliente y ?? Retornar al usuario mensajes, de error ó ejecuta los procedimientos de las clases. A su información, que lance el SMBD. vez el ORB contiene un repositorio de clases en el cual se almacenan todas las clases de las 5 CONCLUSIONES. distintas bases de datos. Para diferenciar las El SMBD diseñado posee la siguiente distintas bases de datos (paquetes de bases de arquitectura (ver figura 8): datos) se representaran en disco como un árbol de directorios al igual que la pila de instancias, nótese que la pila de instancias y el repositorio de clases podrían o no compartir el mismo SMBDOO espacio físico en disco, pero con el propósito Pila de instancias de crear un modelo flexible se conciben como artefactos almacenados en ubicaciones Diccionario de datos distintas. Además el hecho que ORB se encuentre dentro de el SMBDOO no quiere decir que en la practica se encuentre en la misma computadora el ORB y el SMBDOO. El SMBDOO se encarga de: ORB Repositorio de clases ?? Recibir y procesar las peticiones de manipulación y definición de datos. ?? Enviar mensajes. ?? Enviar instancias. Cliente: el cliente se comunica de manera Cliente bidireccional con el ORB. Figura 8. Esquema básico de SMBDOO ?? Envía peticiones de creación de clases con propuesto el lenguaje idl.
  • 8. ?? Envía consultas a varias clases por medio [6] Common Objects Request Broker de las clases de gestión de consultas que Architecture. http://www.jguru.com. contienen la sentencia oql del usuario. [7] Todd R. Manion. Objects Objects ?? Envía por medio de los procedimientos de Everywhere. http://www.acm.org/crossroads/ las clases que pertenecen a la base de xrds7-3/objects.html. ACM Crossroads Student datos peticiones para insertar, actualizar, Magazine. eliminar y filtrar valores de las clases. [8] Ramakanth S. Devorakonda. Sistemas de ?? Recibe mensajes del SMBD. bases de datos relacionado a objetos. ?? Recibe objetos de tipo http://www.acm.org/crossroads/xrds7- “resultado_de_consulta”. 3/ordbms.html. ACM Crossroads Student ?? Recibe objetos de la base de datos. Magazine. Estándar ODMG. http://www.odmg.org. 6 REFERENCIAS [9] Peter Kueng. Comparison of ten OODBMS. Institute of computer science. [1] Johnson, James L. Database: models, [10] Rational Software Corporation. The Unified languages, design. Oxford University Press. Modelling Language: Notation and Semantics 1997. Gudes. http://www.rational.com [2] C.J. Date. Introducción a los sistemas de [11] Isabel Besembel. Modelo de objetos OMG. bases de datos. Volumen I. Quinta Edición. http://www.pgcomp.ula.ve/DISTANCI Addison Wesley. 1998. A/BDA/omg.html. [3] Ana Belén Martínez Prieto. Un Sistema de [12] Won Kim. Modern Database Systems: The Gestión de Bases de Datos Orientadas a Object Model Interoperability, and Beyond. Objetos sobre una Máquina Abstracta ACM Press. Persistente. Universidad de Oviedo. 2001. [13] Esperanza Marcos Martínez. Bases de [4] Dany Leonardo Martínez Murcia. Davinci: Datos Orientadas a Objetos. Prototipo de un Sistema Manejador de Bases http://kybele.escjet.urjc.es/documentos/bd/tema de Datos Orientado por Objetos. Universidad 2.pdf. Universidad Rey Juan Carlos. Grupo de Francisco de Paula Santander. 2000. investigación Kybele. [5] Elisa Bertino. Sistemas de Bases de Datos Orientados a Objetos. Addison Wesley. 1995.