Documente Academic
Documente Profesional
Documente Cultură
Director:
Doctorando:
En este trabajo, una vez introducidos los conceptos fundamentales de los modelos orientados a objetos, as como el concepto de esquema externo, se presenta el estado del arte y una clasificacin de las metodologas de definicin de esquemas externos en bases de datos orientadas a objetos. Uno de los pasos ms importantes de estas metodologas es la definicin de clases derivadas; por tanto, tambin se presenta una clasificacin las distintas metodologas de definicin de clases derivadas. Por ltimo, presentamos las lneas generales de una nueva metodologa de definicin de esquemas externos que resuelve algunos de los problemas de las metodologas anteriores.
Contenido
1. Introduccin .................................................. 4 1.1. Modelos Orientados a Objetos........................... 5 2. Esquemas Externos ............................................. 7 2.1. Arquitectura General de la Base de Datos............... 7 2.2. Esquemas Externos y Vistas............................. 8 2.3. Propiedades de los Esquemas Externos................... 8 3. Metodologas de Definicin de Esquemas Externos ............... 9 3.1. Esquema Externo Subesquema del Esquema Conceptual.................................................. 9 3.2. Esquema Externo NO Subesquema del Esquema Conceptual.................................................. 10 3.3. Esquema Externo como Clase del Esquema Conceptual.................................................. 11 4. Definicin de Clases Derivadas ................................ 12 4.1. Objetos de las Clases Derivadas........................ 12 4.2. Integracin de una Clase Derivada en un Esquema........ 13 5. Nueva Metodologa de Definicin de Esquemas Externos .......... 17 5.1. Caractersticas de las Metodologas Presentadas........ 18 5.2. Definicin de la Metodologa........................... 20 5.3. Relaciones de Derivacin............................... 23 5.4. Obtencin del Esquema Externo a Partir del Esquema Global.............................................. 24 5.5. Caractersticas de la Nueva Metodologa................ 27 6. Conclusiones .................................................. 28 Bibliografa ..................................................... 30
1. Introduccin
Las bases de datos orientadas a objetos (BDOO) son una extensin de las bases de datos puramente estructurales, p.e. bases de datos relacionales (BDR), en las que se ha sacado como factor comn e introducido en la base de datos (BD) elementos que anteriormente estaban en las aplicaciones que las utilizaban. Las BDOO contienen datos y adems modelan el comportamiento de stos; el diseador del esquema de la BD ha de considerar aspectos estructurales y de comportamiento del dominio a modelar. Por regla general, no basta con disponer de una sola visin de los datos, es decir, no basta con disponer de un solo esquema de BD; las BD requieren frecuentemente la coexistencia de mltiples abstracciones sobre los mismos datos. Puede haber aplicaciones que necesiten ver los datos de la BD de acuerdo con una estructura y comportamiento diferentes de los definidos en el esquema original, o bien tan slo necesiten una parte de la BD. El mecanismo que permite la posibilidad de trabajar con varios esquemas sobre una misma BD es el de definicin de esquemas externos. En las BDOO, respecto a las BD puramente estructurales, se acenta la necesidad de disponer de un mecanismo de definicin de esquemas externos. La razn principal es que la BD contiene ms informacin en el caso de las BDOO, ya que adems de contener datos, la BD modela el comportamiento de stos. As, los esquemas externos ayudan a gestionar la complejidad que supone interaccionar con los datos, ocultando los detalles no necesarios, presentando la informacin en el formato ms apropiado para cada usuario y adaptando la interpretacin que se hace de los datos a las necesidades especficas del usuario. Adems pueden proporcionar un nivel de seguridad donde slo la informacin permitida para algunos usuarios est presente en los esquemas externos que usan. Es decir, los esquemas externos permiten tener relativismo semntico [SaGa93] en la BD. En el caso de las BDR, los esquemas externos son de uso bastante limitado, pues slo se pueden realizar modificaciones en los datos mediante esquemas externos bajo condiciones muy estrictas. Este problema se puede subsanar en parte en las BDOO gracias a los mecanismos que ofrecen (especialmente la identidad y el encapsulamiento), flexibilizndose as las condiciones en las que es posible realizar modificaciones sobre los datos base. Dada la importancia de disponer de un mecanismo de definicin de esquemas externos, en este trabajo se proponen las lneas generales de una metodologa de definicin de esquemas externos para BDOO. En primer lugar, en el resto de este apartado, se presentan los conceptos generales comunes a gran parte de los modelos orientados a objetos. En el apartado segundo se describe la arquitectura de la BD, se presentan los distintos niveles de esquemas de la BD para situar convenientemente los esquemas externos dentro de esta arquitectura. El apartado tercero est dedicado a realizar una clasificacin de las metodologas de definicin de esquemas externos para BDOO. Una fase de las metodologas consideradas es la definicin de clases derivadas; por su importancia, esta fase se estudia con ms nivel de detalle en el apartado cuarto. En el apartado quinto se presentan las lneas generales de la nueva metodologa propuesta, mostrndose cmo soluciona algunos de los problemas de las metodologas anteriores. Por ltimo, se sealan una serie de conclusiones en el apartado sexto.
a. Objetos
Un objeto representa un concepto abstracto o concreto del mundo de la aplicacin. Corresponde al concepto de entidad en los modelos semnticos. Cada objeto tiene un estado y una identidad, adems presenta un comportamiento determinado. El estado son los valores que toman los distintos atributos del objeto. La identidad es un identificador nico en la BD, definido globalmente por el sistema e independiente del estado del objeto, se le asigna a cada objeto en el momento de su creacin y es propio del objeto. No se puede acceder directamente a los componentes de un objeto, sino que se aplica el principio de encapsulamiento y slo pueden ser manipulados mediante la interfaz asociada al objeto; la implementacin de las operaciones definidas en la interfaz define el comportamiento del objeto, en el sentido de cmo reacciona a dichas operaciones en trminos de cambios de estado e interaccin con otros objetos.
b. Clases
Una clase est formada por un conjunto de objetos "similares" del dominio de aplicacin que forma su extensin. La similitud entre los objetos pertenecientes a una clase consiste en que todos ellos son del mismo tipo (en el sentido de tipo abstracto de datos, que define la estructura y el comportamiento de los objetos). La nocin de clase tiene una doble vertiente: Por una parte es una descripcin genrica de todos los objetos que pertenecen a ella, se define el tipo de los objetos; por otro lado, la clase contiene el conjunto de objetos que forman parte de ella, siendo todos ellos del mismo tipo. As, al hablar de clase nos referimos a la vez al conjunto de objetos que forman parte de la clase y a la definicin del tipo comn de todos ellos asociado a la clase. Una clase tiene asociado un nico tipo, sin embargo, varias clases pueden tener asociado el mismo tipo para sus objetos. Un objeto puede pertenecer a varias clases al mismo tiempo, incluso teniendo stas asociados tipos distintos, por tanto, un objeto puede ser de varios tipos distintos al mismo tiempo. La relacin existente entre una clase y los objetos que contiene es una abstraccin semntica correspondiente a la dimensin de clasificacin/instanciacin: Los objetos son instancias de las clases a las que pertenecen.
c. Esquema de la BD
Un esquema de una BD est formado por un conjunto de clases relacionadas entre si. Entre las distintas clases de un esquema
OBJETOS
PERSONAS
...
DIRECCIONES
... Poblacin()
Domiclio()
EMPLEADOS CLIENTES
... Categora() Sueldo()
Figura 1. Ejemplo de esquema de BDOO. Agregacin Los objetos no son necesariamente entidades simples, sino que pueden estar formados a su vez por otros objetos. Las relaciones de agregacin asocian un objeto con los distintos objetos que lo componen, estas relaciones se definen entre las clases que contienen dichos objetos. En la figura (1) tenemos un ejemplo de este tipo de relacin, se asocia la clase PERSONAS con la clase DIRECCIONES mediante una relacin de agregacin, considerando que el domicilio forma parte de los datos personales. Las relaciones de correspondiente a una clase con las los objetos de la Herencia En el ejemplo de la figura (1) existe una relacin de herencia entre las clases CLIENTES y PERSONAS. La clase CLIENTES es una subclase de la clase PERSONAS. A partir de esta definicin inicial, se pueden realizar modificaciones en la definicin de la clase CLIENTES, pero siempre han de cumplirse los requerimientos enunciados a continuacin. Por la doble vertiente del concepto de clase, como tipo y como conjunto de objetos, el que una clase sea subclase de otra significa que entre sus tipos existe una relacin de subtipo, y entre sus conjuntos de objetos respectivos una relacin de subconjunto. Por tanto, si CLIENTES es una subclase de PERSONAS, dado un objeto de la clase CLIENTES, ste pertenecer tambin a la clase PERSONAS, y dicho objeto podr ser usado indistintamente, segn las necesidades, como un objeto de una u otra clase. La relacin de herencia cumple la propiedad transitiva. Todas las clases de un esquema son subclases (directa o indirectamente) de la clase predefinida OBJETOS. En caso de permitir herencia mltiple, una clase puede ser directamente subclase de varias agregacin son una abstraccin semntica la dimensin de agregacin/descomposicin: Se asocia clases que contienen objetos que son componentes de primera y viceversa.
clases al mismo tiempo. As, en lugar de una jerarqua, por tener herencia mltiple las clases se organizan en un semi-retculo cuya raz es la clase predefinida OBJETOS. La relacin de herencia entre las clases es una abstraccin semntica correspondiente a la dimensin de generalizacin/especializacin: En el ejemplo considerado, la clase CLIENTES sera una especializacin de la clase PERSONAS a partir de la que se define, por tanto, tambin de todas las superclases de PERSONAS; por otro lado, la clase PERSONAS sera una generalizacin de la clase CLIENTES, as como de todas las posibles subclases de CLIENTES.
Esquema Externo 1
Esquema Externo 2
Esquema Externo n
Esquema Conceptual
Esquema Interno
BD
Figura 2. Arquitectura de tres niveles de ANSI/X3/SPARC. El esquema interno especifica la organizacin fsica de la BD. El esquema conceptual describe la estructura lgica de todos los componentes de la BD. El esquema interno lo asla de los aspectos fsicos de la BD. En el esquema conceptual estn representados todos los elementos de inters para los distintos usuarios de la BD. Los esquemas externos definen las vistas particulares del esquema conceptual asociadas a diferentes grupos de usuarios. Cada esquema externo contiene la parte de la BD que es de especial relevancia para el grupo de usuarios correspondiente. El esquema conceptual puede considerarse como un caso especial de esquema externo, sera el esquema externo ms completo posible, ya que contiene todos los datos de la BD. El esquema interno proporciona independencia fsica de datos al esquema conceptual, mientras que el esquema conceptual proporciona independencia lgica a los distintos esquemas externos. La distincin entre esquema conceptual y esquemas externos se ha considerado de forma bastante generalizada en las BDR. Sin embargo, es frecuente que en BDOO no se considere la posibilidad de definir esquemas externos. En BDOO, slo en algunos pocos casos se ha tratado la definicin de esquemas externos, refirindose explcitamente a la
arquitectura ANSI/X3/SPARC [BaKe93, SoAD94, KiKe951], o bien implcitamente [TaYI88, AbBo91, Rund92a, GeSD93, TrSc93] identificndolos con la definicin de vistas.
Clausura de la definicin: Un esquema externo ha de ser un esquema segn el modelo orientado a objetos, con las mismas caractersticas que el esquema conceptual. Clausura del esquema [TaYI88]: Un esquema es cerrado si y slo si todas las clases pertenecientes al mismo son cerradas. Clausura de una clase en un esquema: Una clase en un esquema es cerrada si y slo si todos sus objetos estn relacionados con otros objetos igualmente pertenecientes a clases del esquema.
Al inicio de [KiKe95] se marcan como objetivo estudiar la definicin del nivel de esquemas externos en OODB; en principio, identifican este nivel con el concepto de vista. Sin embargo, slo estudian el concepto de vista entendida como clase derivada. Organizan las clases derivadas en un esquema aparte mediante relaciones de herencia; este esquema de clases derivadas no implementa el concepto de esquema externo, sino que slo se usa para reutilizar las definiciones realizadas con anterioridad, como mecanismo de definicin de clases. Las clases derivadas (en su esquema independiente) se relacionan con las clases base mediante una nueva relacin: "derived_from", que asocia una clase derivada con las clases base (u otras clases derivadas) sobre las que est definida. Indican que el concepto de vista correspondera al concepto de esquema, haciendo referencia al tratamiento que se hace de ste en [AbBo91], ms que al concepto de clase tal como ellos en realidad lo consideran.
2
Los esquemas externos han de proporcionar independencia lgica de datos [Rund92a, BaKe93], es decir, la modificacin de la definicin de un esquema externo, o la definicin de un nuevo esquema externo, no debe afectar al resto de esquemas externos definidos (a no ser que estn definidos sobre el esquema considerado). Transmisin de modificaciones: Para que sean correctas las modificaciones realizadas sobre los datos, usando esquemas externos, stas han de cumplir la regla de materializacin [KiKe95] o de preservacin de la equivalencia [BaKe93]. Es decir, una modificacin realizada en los datos incluidos en el esquema externo debe tener un efecto sobre el conjunto de los datos base (del esquema conceptual) de manera que esta modificacin quede reflejada correctamente en el esquema externo.
La clase de definicin del esquema externo se incluye en el esquema conceptual; sin embargo, las clases del esquema externo simuladas mediante esta clase no pertenecen necesariamente al esquema conceptual. Es por esta razn que se ha decidido tratar como un caso aparte. En [Rund92a] se presenta el algoritmo para obtener automticamente el esquema externo cerrado a partir del conjunto de clases seleccionadas.
4
definicin de vistas5 Multi View de [Rund92a], igualmente considerados en [GeSD93, TrSc93]: 1. Adaptacin del esquema conceptual. 1.1. Definicin de las clases derivadas que se consideren necesarias. 1.2. Integracin de las clases derivadas en el esquema conceptual. 2. Definicin del esquema externo. 2.1. Seleccin de las clases (base o derivadas) del esquema conceptual que compondrn el esquema externo. 2.2. Generacin del esquema externo. Si para definir un esquema externo se necesita incluir alguna clase no definida en el esquema conceptual, dicha clase ha de ser definida e integrada previamente en el esquema conceptual. El esquema conceptual acta de repositorio comn de definicin de clases derivadas para todos los esquemas externos, por lo que las nuevas clases que se definen pueden ser reutilizadas con facilidad en la definicin de nuevos esquemas externos.
10
Los pasos para definir el esquema externo son: 1. Definicin del esquema externo inicial. 1.1. Definir las clases derivadas del esquema externo. 1.2. Definir las relaciones de herencia entre las clases derivadas. 2. Modificacin el esquema externo inicial. 2.1. Definir subesquemas a partir del esquema conceptual u otro esquema externo (mediante eliminacin de subrboles). 2.2. Integrar de estos subesquemas con el esquema externo inicial definido. En ambos casos, el esquema conceptual no se complica por la definicin de esquemas externos sobre l. Por otro lado, los distintos esquemas externos se definen de forma independiente, y no se dispone de ningn repositorio comn de definicin de clases derivadas (papel que jugaba anteriormente el esquema conceptual), por tanto resulta ms difcil la reutilizacin de definiciones.
11
2. Creacin de una instancia de la clase definida: Crea el esquema externo propiamente dicho y puede ser utilizado mediante el objeto creado. En este caso, la naturaleza de los esquemas externos cambia respecto a la del esquema conceptual: Un esquema externo no es un esquema propiamente dicho, sino que es slo una clase dentro del esquema conceptual. Una consecuencia inmediata de esta situacin es que ha de cambiar la forma de trabajar de los usuarios segn trabajen con el esquema conceptual o con alguno de los esquemas externos definidos.
12
problemas adicionales, sobre todo en lo referente a la generacin de nuevos identificadores y transmisin de modificaciones.
13
tanto, la nueva clase definida no sera ni subclase ni superclase de la clase original. Se producira la misma situacin si en lugar de restringir el conjunto de objetos que pertenecen a la nueva clase hubiramos ampliado el tipo de sta aadiendo una nueva funcin (adems de haberlo simplificado por otra parte), p.e. b) definimos la clase EMPLEADOS' a partir de EMPLEADOS con la funcin Poblacin() que devuelve la poblacin en la que vive el empleado6, funcin ya definida previamente en la clase DIRECCIONES, adems de eliminar la funcin Sueldo(). Esto hara que el tipo de la nueva clase no fuera ni subtipo ni supertipo del tipo de la clase original; por tanto, la nueva clase definida no sera ni subclase ni superclase de la clase EMPLEADOS, aunque contenga el mismo conjunto de objetos, adems tendra una funcin en comn con la clase DIRECCIONES.
Herencia Agregacin
OBJETOS
PERSONAS
...
DIRECCIONES
... Poblacin()
Domiclio()
EMPLEADOS CLIENTES
... Categora()
EMPLEADOS
Sueldo()
EMPLEADOS
Herencia Agregacin
OBJETOS
CON_POBLACION
Poblacin()
PERSONAS
...
Domiclio()
DIRECCIONES
...
EMPLEADOS CLIENTES
... Categora()
EMPLEADOS
Sueldo()
EMPLEADOS
b. EMPLEADOS' el mismo conjunto de objetos y ni super ni subtipo de EMPLEADOS. EMPLEADOS' con la funcin Poblacin() en comn con DIRECCIONES.
14
Figura 3. Integracin automtica segn la relacin de herencia. Este tipo de problemas se solucionan en [Rund92a, Rund92b] definiendo de forma automtica, mediante el algoritmo que propone7, un conjunto de clases intermedias que permiten que la clase derivada se pueda integrar directamente en el esquema. En el ejemplo considerado, en ambos casos se definira automticamente una nueva clase EMPLEADOS'' que sera superclase8 tanto de EMPLEADOS como de EMPLEADOS', evitando as los conflictos de herencia mencionados. En la figura (3.a) se muestra la integracin realizada para el primer ejemplo, donde el conjunto de objetos de la clase EMPLEADOS' definida es un subconjunto de conjunto original, y el nuevo tipo es subtipo del tipo original9. As, el tipo de la clase EMPLEADOS'' sera el mismo que el de EMPLEADOS', adems contendra todos los objetos de la clase EMPLEADOS. En la figura (3.b) vemos cmo se repite el proceso descrito en la figura anterior para cada una de las clases que tenga algo en comn con la nueva clase definida, generndose de esta forma la clase que hemos llamado CON_POBLACION, como factor comn entre EMPLEADOS' y DIRECCIONES10. El mismo planteamiento para tratar el problema de la clasificacin de una clase derivada se hace en [AbBo91, ScSc91, AlAr93, TrSc93], pero no se trata tan a fondo como en [Rund92b]. En [ScSc91, TrSc93] se considera igualmente la dualidad de clases como tipos y conjuntos de objetos; para cada operacin elemental de definicin de clases derivadas se define dnde se colocara el resultado respecto a las clases base. Definen la posicin de la nueva clase considerando las operaciones elementales por separado, pero no si la nueva clase se define usando varias operaciones elementales juntas. En [AbBo91, AlAr93] se presentan las reglas de colocacin de las nuevas clases derivadas en relacin con las clases base a partir de las que se definen, pero en casos similares al ejemplo presentado se acabara aadiendo la clase derivada directamente bajo la clase OBJETOS, ya que
7 Tal como se menciona en [Rund92a]: En general, el problema de la clasificacin no es decidible para el modelo orientado a objetos ya que puede requerir la comparacin de funciones y predicados arbitrarios. Por tanto, se usa un algoritmo incompleto [TrSc93]. En [Rund92a] se simplifica considerando que las funciones tienen asociado un identificador nico; as, para comparar funciones basta con comparar los identificadores respectivos. Esta misma consideracin se hace en el presente trabajo. 8 "Lowest common superclass" (superclase comn ms baja) segn terminologa de [Rund92b].
Las clases rellenas de gris son las clases derivadas; las clases adems sombreadas son las que se definen originalmente, las no sombreadas son las aadidas automticamente, slo para realizar la integracin.
10 En el modelo utilizado en [Rund92a, Rund92b] si dos clases del mismo esquema tienen alguna funcin en comn, si no son subclase una de otra, debe de existir una tercera clase en el esquema de la que ambas sean subclases, y que refleje este hecho; esta es la "lowest common superclass" de ambas clases. Tal como se menciona literalmente en [Rund92b]: En nuestro modelo, como en otros, una propiedad se define solamente una vez y, si se usa en algn otro sitio, ha de ser heredada de la clase en la que fue definida originalmente.
15
no consideran la posibilidad de definir nuevas clases intermedias (a no ser que sea manualmente).
a.2. Posicionamiento Directamente Bajo la Clase OBJETOS La solucin que se propone en [Kim89] es situar de forma sistemtica las clases derivadas que se definen como subclases inmediatas de la clase OBJETOS; adems, los objetos de las clases derivadas son siempre nuevos objetos. En este caso el problema de la integracin se soluciona directamente, sin embargo, esta solucin implica que las clases derivadas no pueden compartir propiedades o instancias con las clases base a partir de las que se definen. Por tanto, la colocacin inadecuada de las clases derivadas produce duplicacin del contenido de estas clases, tal como tambin se seala en [AlAr93]. El principal problema de esta solucin consiste en que se est dejando de representar en el esquema una relacin de herencia entre clases que existe realmente. a.3. Determinacin de la Posicin Manualmente Es la solucin adoptada en [KiKS92]. Cuando se define una clase derivada, se especifica su tipo y las relaciones de herencia con el resto de clases del esquema. Si la nueva clase derivada a integrar es subclase directa de alguna clase existente previamente la definicin manual de la posicin es sencilla; pero, si no es as, habra que aadir manualmente las clases que se generan de forma automtica en [Rund92b] o bien situarla directamente bajo la clase OBJETOS.
11 12
"Puede_ser". "Es".
16
En el ejemplo considerado, la clase EMPLEADOS' estara relacionada directamente con la clase EMPLEADOS mediante la relacin May_be, sin necesidad de aadir al esquema ninguna clase adicional: EMPLEADOS' May_be EMPLEADOS, de la misma forma que si fuera directamente subclase se habra indicado EMPLEADOS' Is_a EMPLEADOS. b.2. Relacin de Derivacin Para introducir clases derivadas en el esquema, en lugar de usar la relacin de herencia, se introduce un nuevo tipo de relacin entre las clases derivadas y las clases base, la relacin de derivacin "Derived_from" [Bert92, KiKe95] que no forma parte del paradigma orientado a objetos. Una clase derivada est relacionada mediante una relacin de derivacin con cada una de las clases base a partir de las que est definida. Por tanto, el esquema se extiende introduciendo una nueva dimensin: Derivacin. Una clase derivada puede definirse por derivacin igualmente a partir de otras clases derivadas. Adems, para poder reutilizar las definiciones realizadas en una clase derivada, se pueden definir nuevas clases derivadas mediante herencia a partir de otras clases derivadas; tenemos as una estructura separada para las clases derivadas relacionadas entre si mediante herencia [Bert92, KiKe95], estando algunas de las clases de esta estructura relacionadas con las clases base mediante relaciones de derivacin. b.3. "Clusters" En [HeSa91], para solucionar el problema de la integracin de una clase derivada en un esquema proponen la utilizacin de un nuevo concepto, el concepto de "cluster" o grupo de clases. Tal como se define en [HeSa91]: Un cluster consiste en al menos una clase base y varias clases derivadas teniendo todas ellas el mismo "conjunto posible de objetos" que la correspondiente clase base. Es decir, cada clase (base y derivada) tiene su tipo y conjunto de objetos propio asociado. Si definimos una clase derivada a partir de otra clase, con semntica de conservacin de objetos, ambas clases compartirn el mismo conjunto posible de objetos; por tanto, la forma de relacionar dichas clases es incluirlas en el mismo cluster. Dentro de cada cluster, las clases se organizan considerando por separado los tipos y los conjuntos de objetos de cada una de ellas: Dentro de cada cluster se tiene un retculo de tipos y otro de conjuntos de objetos, sabiendo que el conjunto total de objetos es el conjunto de la clase original que dio lugar al cluster. Si definimos una nueva clase que contenga nuevos objetos (en lugar de conservar los objetos existentes), o bien est definida sobre clases de clusters distintos, esta clase formar un nuevo cluster.
17
OBJETOS
PERSONAS
...
DIRECCIONES
... Poblacin()
Domiclio()
EMPLEADOS CLIENTES
... Categora()
EMPLEADOS
EMPLEADOS
Sueldo()
Figura 4. Seleccin de las clases del esquema externo. En la figura (4), continuando con el ejemplo anterior de la figura (3.a), se realiza la seleccin de las clases que compondrn el esquema externo13. Se ha aadido automticamente una nueva clase EMPLEADOS''
13 Las clases inicialmente seleccionadas para componer el esquema externo son las agrupadas en la zona ms oscura. Partiendo de este conjunto de clases se obtendr el esquemas externo correspondiente.
18
slo para que fuera posible integrar la nueva clase definida que nos interesa, sin embargo la clase adicional no se necesita en el esquema externo definido, ni tampoco la clase original a partir de la que se define. Esta situacin es lgica, ya que en el ejemplo considerado uno de los objetivos de la definicin de la nueva clase era evitar que se accediera a la funcin Sueldo(). Si la clase original EMPLEADOS se incluye en el esquema externo se tendr acceso igualmente a dicha funcin, por tanto, para conseguir el objetivo marcado, la nueva clase habra de sustituir a la clase base. Es decir, se est realizando un esfuerzo de integracin de la nueva clase definida en el esquema conceptual y, sin embargo, no se va a usar la clase base y la clase derivada conjuntamente en el mismo esquema externo. Por tanto, si la nica razn para definir una nueva clase y aadirla al esquema conceptual es que se necesita para definir un esquema externo, en muchos casos, el resultado ser que semnticamente esta clase (junto con las clases aadidas automticamente para poder integrarla) no aportar nada al esquema conceptual, slo lo har ms complejo. El resultado del proceso de definicin de esquemas externos ser un esquema conceptual complejo con clases no significativas semnticamente para el usuario.
19
Por tanto, el esquema conceptual no se correspondera con el base schema de [Rund92a], sera el global schema que tambin puede contener clases derivadas. Las clases derivadas pertenecientes al esquema conceptual estaran integradas mediante las relaciones de herencia y agregacin. Esto ocurre especialmente cuando hay que aadir nuevas clases intermedias para realizar la integracin de la nueva clase derivada.
16
15
20
clases de una forma ms directa, utilizando un tipo de relacin que no implique aadir nuevas clases que no se necesiten directamente en la definicin de los esquemas externos. La relacin que se considera ms adecuada para esta finalidad es la relacin de derivacin [Bert92, KiKe95], que asocia una clase derivada con las clases base a partir de las que se define. Por tanto, los pasos de la metodologa para definir un esquema externo, seran los siguientes: 1. Adaptacin del esquema global. 1.1. Definicin de las clases derivadas que se consideren necesarias. 1.2. Integracin de las clases derivadas en el esquema global (directamente usando la relacin de derivacin). 2. Definicin del esquema externo. 2.1. Seleccin de las clases (base o derivadas) del esquema global que compondrn el esquema externo. 2.2. Generacin del esquema externo. Bsicamente son los mismos pasos de la metodologa de [Rund92a], pero cambia su contenido. En el primer paso se procedera a la adaptacin del esquema global, definiendo las clases que se necesiten en el esquema externo y an no estn definidas. Las nuevas clases se integraran directamente usando la relacin de derivacin, que las relaciona con las clases base a partir de las que se definen, sin necesidad de aadir clases intermedias, al contrario de lo que ocurra en los ejemplos de la figura (3).
Herencia Agregacin Derivacin
OBJETOS
PERSONAS
...
DIRECCIONES
... Poblacin()
Domiclio()
EMPLEADOS CLIENTES
... Categora() Sueldo()
EMPLEADOS
... Categora()
Figura 5. Definicin del esquema externo segn la nueva metodologa. Esquema global y clases seleccionadas para el esquema externo. Una vez tenemos todas las clases necesarias se procedera a la seleccin del conjunto de clases que forman el esquema externo y a la generacin del esquema externo propiamente dicho. El esquema externo ha de cumplir los principios del paradigma de orientacin a objetos, es decir, las nicas relaciones entre sus clases son las de herencia y agregacin. Por tanto, partiendo del conjunto de clases seleccionadas y las relaciones existentes entre ellas en el esquema global (agregacin, herencia y derivacin - tanto directa o indirectamente) hemos de obtener un esquema cerrado que contenga las clases seleccionadas relacionadas exclusivamente mediante las relaciones de
21
herencia y agregacin: En este momento es cuando las nuevas clases definidas se integran realmente segn el paradigma orientado a objetos en el esquema externo, derivando las relaciones de herencia con las clases seleccionadas a partir de las relaciones de derivacin representadas en el momento de la definicin y las relaciones de herencia existentes previamente. En particular, puede darse el caso que haya que aadir nuevas clases (de una forma similar a como se haca en [Rund92a]) para que se cumpla en principio de herencia completa [Kim89]. Tal como podemos ver en la figura (5), para el ejemplo presentado anteriormente en la figura (4), en este caso no ha sido necesario aadir ninguna clase adicional (aparte de la definida por el usuario). La nueva clase derivada se integra directamente en el esquema global mediante la relacin de derivacin. El esquema externo correspondiente se obtendra de forma directa, bastara con aadir al conjunto de clases seleccionadas una relacin de herencia entre las clases PERSONAS y EMPLEADOS', derivada de las relaciones de herencia y derivacin entre estas dos clases y la clase EMPLEADOS. No sera necesario aadir ninguna clase adicional al esquema externo ya que las clases seleccionadas se pueden integrar directamente mediante herencia. En caso de necesitar aadir alguna clase adicional durante el proceso de obtencin del esquema externo, esta clase se aadir en lo que llamamos el Esquema Total, que estara formado por el esquema global ms las clases y relaciones de herencia definidas automticamente en las sucesivas ejecuciones del algoritmo de obtencin del esquema externo. Diferenciamos entre el esquema global y el esquema total ya que el usuario del sistema de definicin de esquemas externos (el administrador de datos) trabajar con el esquema global, que contiene exclusivamente las clases que l ha definido explcitamente. Por otra parte, el esquema total lo usar el algoritmo de obtencin de esquemas externos para reutilizar los resultados obtenidos en ejecuciones previas. Los esquemas global y total slo son considerados en tiempo de definicin de esquemas externos, es decir, no se ha modificado la arquitectura ANSI/X3/SPARC. Se puede considerar que los esquemas externos estn definidos directamente sobre el esquema conceptual. Podemos considerar que tampoco ha habido que realizar ninguna ampliacin del paradigma de orientacin a objetos aunque se haya definido la nueva relacin de derivacin, ya que esta relacin no interviene en los esquemas con los que trabajan las aplicaciones o el usuario final, slo aparece en los esquemas de soporte, especializados en la definicin de esquemas externos. En esta nueva metodologa se reduce considerablemente el nmero de clases derivadas definidas de forma automtica respecto a la metodologa de [Rund92a]. Esta reduccin se debe al hecho de que las clases derivadas se integran segn el paradigma de orientacin a objetos (mediante la relacin de herencia) exclusivamente en los esquemas externos de los que forman parte, mientras que en el esquema global se integran directamente mediante la relacin de derivacin. La metodologa de [Rund92a] integra mediante la relacin de herencia todas las clases definidas en el esquema conceptual. Dentro de la clasificacin de metodologas realizada anteriormente, esta metodologa se encuadrara en el apartado titulado "Esquema Externo NO Subesquema del Esquema Conceptual". El esquema externo sera subesquema del esquema total, pero incluira clases no necesariamente incluidas en el esquema conceptual.
22
23
Las relaciones de derivacin, adems de a nivel clase tal como se ha definido, tambin se definen a nivel instancia [Bert92]. Para cada objeto de la clase derivada que se define tendremos definidas relaciones de derivacin de los tipos indicados que lo relacionan con objetos de las clases base a partir de los que est definido, permitiendo acceder a ellos directamente (de esta forma se facilita la posibilidad de transmitir modificaciones a nivel instancia mediante clases derivadas).
OBJETOS
CON_POBLACION
Poblacin()
PERSONAS
...
DIRECCIONES
... Poblacin()
EMPLEADOS
... Categora()
CLIENTES
EMPLEADOS CLIENTES
Sueldo()
EMPLEADOS
Figura 6. Ejemplo de definicin de un esquema externo integrando las clases derivadas mediante herencia. Consideremos por ejemplo, que se desea tener un esquema externo partiendo del esquema de la figura (1), en el cual tanto para los clientes como para los empleados no se tenga el domicilio, sino que tan solo se disponga de la poblacin donde viven y que adems no est disponible el sueldo de los empleados. La representacin grfica del esquema y de las clases derivadas necesarias, usando la integracin de las clases derivadas mediante herencia, segn la metodologa de [Rund92a], la podemos ver en la figura (6). En este ejemplo, se han definido las clases CLIENTES' y EMPLEADOS' segn las necesidades descritas, y se han integrado usando varias clases derivadas generadas automticamente. En particular, se han generado las distintas combinaciones de la relacin existente entre personas, clientes y empleados (con domicilio - las clases originales; con poblacin PERSONAS', CLIENTES', EMPLEADOS'; y el factor comn de estas, sin
24
ninguno de ellos - PERSONAS'', CLIENTES'', EMPLEADOS''). Posteriormente se han seleccionado exclusivamente las clases necesarias. En el caso de usar la nueva metodologa propuesta, definiramos igualmente las clases derivadas segn las especificaciones; stas se integraran en el esquema global usando la relacin de derivacin, como se muestra en la figura (7). Tambin en la figura (7) se especifican las clases que, en principio, formarn parte del esquema externo a definir. Partiendo de estas clases y de las relaciones de derivacin y herencia (directas o indirectas) entre ellas obtendremos el esquema externo correspondiente. Es en este paso de obtencin del esquema externo donde se realiza la integracin de las clases derivadas mediante la herencia, ya que los esquemas externos no pueden tener otro tipo de relaciones entre sus clases que las de herencia y agregacin.
Herencia Agregacin Derivacin
OBJETOS
PERSONAS
...
DIRECCIONES
... Poblacin()
Domiclio()
EMPLEADOS CLIENTES
... Categora() Sueldo()
CLIENTES
... Poblacin()
EMPLEADOS
... Categora() Poblacin()
Figura 7. Esquema global segn la nueva metodologa. Se seleccionan las clases para obtener el esquema externo. Si se incluyen todas las clases seleccionadas en la figura (7), se habrn de generar e incluir las clases marcadas en el esquema total correspondiente de la figura (8).
Herencia Agregacin Derivacin
Poblacin()
PERSONAS
...
DIRECCIONES
...
Domiclio()
CLIENTES
EMPLEADOS
25
Como se puede observar en dicha figura, tratar de incluir directamente la clase PERSONAS nos hace generar nuevas clases para poder integrar mediante herencia las clases derivadas requeridas; adems hemos de incluir la clase DIRECCIONES para que el esquema externo sea cerrado. Las relaciones de derivacin de CLIENTES' y EMPLEADOS' son derivaciones con conservacin de objetos, por tanto, habra que estudiar las relaciones de herencia entre estas clases y la clase PERSONAS como superclase de sus clases base respectivas. De aqu se deducira la necesidad de definir la clase PERSONAS'' que se aadira automticamente en el lugar indicado y dichas clases derivadas seran subclases directas de la nueva clase, al igual que la clase PERSONAS original. Una vez aadidas todas las clases, en un repaso posterior se puede sacar factor comn un tipo ms especfico entre las clases derivadas, aadindose automticamente tambin la clase PERSONAS'. En este caso el nmero de clases derivadas a aadir es menor que en la figura (6), pues slo se consideran las clases sealadas como pertenecientes al esquema externo y las clases que se van generando. De todas formas, ste no es el resultado deseado, ya que resulta un esquema externo demasiado complejo, incluyendo clases que no se necesitaban originalmente. Para solucionar este problema existen distintas alternativas, una posibilidad sera realizar un nuevo proceso de seleccin de clases dentro del esquema obtenido; otra alternativa sera definir todas las clases derivadas necesarias a incluir en el esquema externo, de manera que no hiciera falta generar ninguna clase adicional, esto implicara haber de definir tambin la clase derivada PERSONAS' en el ejemplo anterior. Otra alternativa a este problema consiste en definir distintas categoras en el momento de seleccionar las clases que formarn parte del esquema externo. En particular se distinguira entre clases transformables y clases no transformables. Las clases no transformables han de aadirse directamente en el esquema externo para el cual se seleccionan (hasta ahora todas las clases eran no transformables). Las clases transformables no han de ser necesariamente incluidas directamente en el esquema externo, sino que pueden ser sustituidas por clases derivadas a partir de ellas segn las necesidades de cada caso.
OBJETOS
PERSONAS
...
DIRECCIONES
... Poblacin()
Domiclio()
PERSONAS
...
Poblacin()
EMPLEADOS CLIENTES
... Categora() Sueldo()
CLIENTES
EMPLEADOS
... Categora()
Figura 9. Esquema total y esquema externo resultado, seleccionando la clase PERSONAS como clase transformable.
26
El resultado obtenido en la figura (8) correspondera a la situacin en la que todas las clases sealadas en la figura (7) se califican como no transformables. Sin embargo, sealando la clase PERSONAS como transformable obtendramos el esquema de la figura (9). Internamente se han seguido los mismos pasos descritos antes para obtener el esquema externo pero, por ser la clase PERSONAS transformable, dicha clase es sustituida por la clase derivada PERSONAS' que ha sido obtenida automticamente. En la figura (10) vemos un ejemplo donde se ha definido la clase derivada PERSONAS' como nica clase no transformable, y tambin se ha definido la clase EMPLEADOS' adaptndola a las necesidades especficas (ocultando el sueldo), en este caso como clase transformable. El resultado en este caso es que tanto la clase CLIENTES como EMPLEADOS' se adaptaran automticamente a la nueva definicin de PERSONAS', obtenindose directamente el esquema externo deseado, con las nuevas clases definidas de forma automtica a partir de las clases transformables.
Herencia Agregacin Derivacin
OBJETOS
PERSONAS
...
DIRECCIONES
... Poblacin()
Domiclio()
PERSONAS
Poblacin()
EMPLEADOS
... Categora() Sueldo()
CLIENTES
EMPLEADOS
Figura 10. Esquema global donde sealando la clase PERSONAS' como nica clase no transformable, obtendramos igualmente el esquema externo deseado.
27
complejos, con clases no significativas semnticamente para el usuario. Se han incluido los conceptos de clase transformable y no transformable, que simplifican el proceso de definicin de esquemas externos, pues basta con definir las clases adecuadas como no transformables y el resto de clases se configuraran de forma automtica para tener un esquema externo correcto respecto a la relacin de herencia. Es decir, estos conceptos hacen que el usuario tenga que definir menos clases para obtener idnticos resultados. Aunque en los ejemplos no se han presentado clases en las cuales se use la semntica de generacin de objetos, estos casos estaran igualmente contemplados dentro de la metodologa. Se han presentado distintos tipos de relaciones de derivacin entre clases, considerando la generacin de nuevos objetos. Se respeta la arquitectura ANSI/X3/SPARC. Los esquemas externos se pueden considerar definidos directamente sobre el esquema conceptual, aunque para ello se basen en el repositorio de definicin de esquemas externos, formado por los esquemas global y total. No se realiza una ampliacin del paradigma orientado a objetos, ya que los esquemas sobre los que pueden trabajar las aplicaciones (esquema conceptual y esquemas externos) siguen totalmente dichos principios. La relacin de derivacin se usa exclusivamente en la definicin de los esquemas externos, pero no es accesible a las aplicaciones o usuarios finales que trabajan sobre dichos esquemas, pues se transforma en relaciones de herencia19. El esquema conceptual contiene slo las clases que se han considerado necesarias para modelar el sistema; puede contener clases derivadas expresamente seleccionadas porque sean necesarias, pero no slo porque se usen en la definicin de esquemas externos. El disponer de un repositorio de definicin de esquemas externos estructurado en forma de los esquemas global y total facilita la reutilizacin de las sucesivas definiciones de clases derivadas y esquemas externos realizadas. Permite distinguir entre las clases derivadas definidas explcitamente y las aadidas de forma automtica.
6. Conclusiones
Dada la utilidad de disponer de un mecanismo de definicin de esquemas externos en BDOO, en este trabajo se ha profundizado sobre dicho tema. Para ello se ha presentado el estado del arte de los distintos mtodos de definicin de esquemas externos, realizando una clasificacin de los mismos no realizada con anterioridad. Uno de los pasos en la definicin de esquemas externos es la definicin de las clases derivadas que se necesiten para el esquema a definir. Por tanto, presentamos el estado del arte sobre la definicin de clases derivadas, clasificando los distintos enfoques que se realizan sobre el tema. Tampoco exista una clasificacin de este tipo anteriormente.
19 Los autores que anteriormente utilizaban la relacin de derivacin en sus esquemas lo hacan con otra finalidad distinta, realizaban una ampliacin del paradigma orientado a objetos como medio de definicin de clases derivadas en los esquemas.
28
Por ltimo y ms importante, se ha presentado una nueva metodologa de definicin de esquemas externos, en la cual, los elementos y conceptos que se utilizan en gran parte no son nuevos, lo que resulta nuevo es la combinacin que de ellos se hace. Esta metodologa resuelve algunos de los problemas de las metodologas anteriores, en particular facilita la reutilizacin de definiciones previas, y adems los esquemas intermedios de definicin no se complican con clases que no se usan directamente en los esquemas definidos. La metodologa definida no se ha particularizado para ningn modelo orientado a objetos concreto, utiliza conceptos comunes a gran parte de los modelos orientados a objetos existentes. Sobre este ltimo punto, sera interesante ampliar la metodologa definida adaptndola para usar conceptos de modelos orientados a objetos ms ricos, como por ejemplo el modelo BLOOM [CaSG92], que permite definir distintos tipos de restricciones en el esquema. En [RaRu95] se presenta un mtodo de transmisin de modificaciones realizadas en los esquemas externos sobre el esquema conceptual, usando el mtodo de definicin de esquemas externos de [Rund92a]; la transmisin de modificaciones sobre el esquema conceptual se simplificara en gran medida usando esta nueva metodologa propuesta.
29
Bibliografa
[AbBo91] S. Abiteboul, A. Bonner "Objects and Views" Proc. ACM SIGMOD (May 1991) R. Alhajj, M.E. Arkun "An Object Algebra for Object-Oriented Database Systems" Database, Vol.24, No.3 (August 1993) ANSI/X3/SPARC Study Group on Database Management Systems Interim report ACM SIGMOD Bulletin 7, n.2, 1975 P.J. Barclay, J.B. Kennedy "Viewing Objects" en [WoGr93] E. Bertino "A View Mechanism for Object-Oriented Databases" en [PiDG92] M. Castellanos, F. Saltor, M. Garca "A Canonical Model for the Interoperatibility among Object Oriented and Relational Models" en [OzDV92] A. Geppert, S. Scherrer, K.R. Dittrich "Derived Types and Subschemas: Towards Better Support for Logical Data Independence in Object-Oriented Data Models" Technical Report 93.27, Institut fr Informatik, Universitt Zrich (June 1, 1993) S. Heuer, P. Sander "The LIVING IN A LATTICE Rule Language" Data & Knowledge Engineering, Vol.9, No.3 (North-Holland 1992/93) W. Kim, W. Kelley "On View Support in Object-Oriented Database Systems" en [Kim95] M. Kifer, W. Kim, Y. Sagiv "Querying Object-Oriented Databases" ACM SIGMOD Record, Vol.21, Iss.2 (June 1992) W. Kim "A Model of Queries for Object-Oriented Databases" VLDB'89 Proc. 15th Inter. Conf. on VLDB (Amsterdam, 1989) W. Kim (Ed) Modern Database Systems: the Object Model, Interoperability, and beyond ACM Press (1995) M.T. zsu, U. Dayal, P. Valduriez (Eds.) Proc. Int. Wor. on Distributed Object Management (Edmonton, Canada, August 1992)
[AlAr93]
[ANSI75]
[BaKe93]
[Bert92]
[CaSG92]
[GeSD93]
[HeSa91]
[KiKe95]
[KiKS92]
[Kim89]
[Kim95]
[OzDV92]
30
[PiDG92]
A. Pirotte, C. Delobel, G. Gottlob (Eds.) Proc. 3rd Int. Conf. on Extending Database Technology (Vienna, Austria, March 1992) Springer-Verlag (1992) Y.-G. Ra, E.A. Rundensteiner "A Transparent Object-Oriented Schema Change Approach Using View Evolution" en [YuCh95] E.A. Rundensteiner "MultiView: A Methodology for Supporting Multiple Views in Object-Oriented Databases" en [Yuan92] E.A. Rundensteiner "A Class Integration Algorithm and Its Application for Supporting Consistent Object Views" Univ. of Cal., Irvine, Tech. Rep #92-50 (May 1992) F. Saltor, M. Garca-Solaco "Diversity with Cooperation in Database Schemata: Semantic Relativism" Proc. of the 14th Int. Conf. on Information Systems (ICIS'93, Orlando 1993) M.H. Scholl, H.-J. Schek "Supporting Views in Object-Oriented Databases" IEEE Data Engineering, Vol.14, No.2 (June 1991) C. Souza, S. Abiteboul, C. Delobel "Virtual Schemas and Bases" Information Systems Vol.19, No.1 (1994) K. Tanaka, M. Yoshikawa, K. Ishihara "Schema Virtualization in Object-Oriented Databases" Proc. 4th Inter. Conf. on Data Engineering IEEE Computer Society Press (Feb. 1988) M. Tresch, M.H. Scholl "Schema Transformation without Database Reorganization" SIGMOD RECORD, Vol.22, No.1 (March 1993) M. Worboys, A.F. Grundy (Eds.) Advances in Databases 11th British National Conference on Databases BNCOD-11 (Keele, UK, July 1993) Springer-Verlag (1993) L.-Y. Yuan (Ed.) VLDB'92 Proc. 18th Inter. Conf. on VLDB Vancouver (Canada), August 1992 P.S. Yu, A.L.P. Chen (Eds.) Proc. 11th Int. Conf. on Data Engineering (Taipei, Taiwan, March 1995)
[RaRu95]
[Rund92a]
[Rund92b]
[SaGa93]
[ScSc91]
[SoAD94]
[TaYI88]
[TrSc93]
[WoGr93]
[Yuan92]
[YuCh95]
31