Beruflich Dokumente
Kultur Dokumente
Funcionalidad 1
Virginia Arcos Muoz ngel Escribano Santamara Silvia Lpez Utrilla Roco Pea Gallego Sergio Susn Martnez Francisco Antonio Utrilla Requena
ndice
Introduccin ..................................................................................................................................3 Bases de Datos Orientadas a Objetos .............................................................................................3 Modelo de Objetos ....................................................................................................................3 Estndares de bases de datos de objetos ...................................................................................7 Ejemplo......................................................................................................................................8 Bases de Datos Objetos - Relacionales .........................................................................................10 Modelo Objeto - Relacional ......................................................................................................10 Ejemplo....................................................................................................................................14 Comparativa entre modelos .........................................................................................................15 Bibliografa...................................................................................................................................16
Tabla de Ilustraciones
Ilustracin 1.- Diagrama de Ejemplo. ..............................................................................................9 Ilustracin 2.- Ejemplo Tipos Distintos. .........................................................................................11 Ilustracin 3.- Ejemplo Tipos Estructurados. .................................................................................12 Ilustracin 4.- Ejemplos Tipos ROW y ARRAY. ...............................................................................13 Ilustracin 5.- Ejemplo de Herencia. .............................................................................................14
Introduccin
A finales de los aos 80 y a principios de los 90, los expertos en base de datos enfrentaron requerimientos de datos cada vez ms complejos que eran difciles de manejar con la tecnologa que exista en esos momentos. La composicin cambiante de los datos modelados la base de datos podra incluir grficos, vdeo, audio, diagramas, huellas digitales y sonido, as como nmeros y texto- motiv a reorganizar los sistemas de bases de datos existentes. Este esfuerzo de reorganizacin condujo a una nueva oleada de tecnologas basadas en conceptos de programacin orientados a objetos, y a la adicin de nuevas caractersticas a las bases de datos relacionales que permitieron manejar mejor los datos complejos. Dentro de estas nuevas tecnologas que aparecieron, este trabajo se centra en las bases de datos objeto-relacionales y orientadas a objetos.
Modelo de Objetos
Para las OODB no ha existido un nico modelo de datos, anlogo al modelo relacional difundido por Dr. Codd, sino que cada autor ha adoptado un modelo diferente. El modelo orientado a objetos (OODM) que aqu se presenta tiene mucho en comn con los modelos de datos relacionales o E-R, tambin tiene algunas diferencias fundamentales. El resumen siguiente est diseado para ofrecer algunas comparaciones detalladas que aclaran las caractersticas de OODM que se presenta en este apartado.
sea ms natural que el modelado E-R y relacional. De hecho, los modelos E-R y relacionales a menudo obligan al diseador a crear entidades nuevas artificiales para representar entidades reales.
Atributos
Los objetos son descritos por sus atributos, conocidos como variables de instancia en un ambiente OO. Cada atributo tiene un nombre nico y un tipo de datos asociado a l. Los atributos tambin tienen un dominio. El dominio agrupa y describe lgicamente el conjunto de todos los valores posibles que un atributo puede tener. Es importante puntualizar que, al igual que en el modelo E-R, el atributo de un objeto puede tener un valor nico o valores mltiples. Adems, los atributos de objeto pueden hacer referencia a uno o ms objetos. A nivel de ejecucin, el OID del objeto al que se referencia se utiliza para vincular ambos objetos, lo que permite la ejecucin de relaciones entre dos o ms objetos. Esto es distinto al modelo relacional en el que el atributo de una tabla puede contener slo un valor que puede ser utilizado para unir filas (JOIN) en tablas diferentes.
Encapsulado y herencia
Estas dos caractersticas no son soportadas por los modelos de datos relacionales o E-R.
El encapsulado es la capacidad de ocultar los detalles internos del objeto (atributos y mtodos). Esta capacidad deriva de que la estructura interna de un objeto no puede ser accedida directamente por otro objeto, garantizando la integridad del estado del objeto. La herencia es la capacidad de un objeto dentro de una jerarqua de heredar la estructura de datos y el comportamiento (mtodos) de las clases sobre ella.
Relaciones
La principal propiedad de cualquier modelo de datos se encuentra en su representacin de relaciones entre los componentes de datos. Las relaciones en un OODM pueden ser de dos tipos: relacin interobjeto o herencia de jerarqua de clases. Relaciones interobjeto: vnculos atributo-clase Una relacin atributo-clase o relacin interobjeto, se crea cuando el atributo de un objeto hace referencia a otro objeto de la misma o diferente clase. Existen dos tipos de relaciones interobjeto: relaciones 1:M y M:N. Relaciones 1:M En contraste con el modelo relacional, el OODM soporta atributos multivaluados, agregaciones conocidas como conjuntos o bolsas. Esta capacidad es esencial para representar cualquier tipo de relaciones a muchos. Para representar una relacin 1:M se define un atributo en la clase muchos de la relacin para almacenar el identificador del objeto de la clase uno. En la clase uno se define un atributo para almacenar un conjunto de valores, que sern los identificadores de los muchos objetos con los que est relacionado. Es importante tener en cuenta que aunque la relacin es definida por los atributos en la clase, en la propia base de datos las relaciones son entre objetos, es decir, las relaciones clave primaria-clave ajena son entre filas especficas y no entre tablas completas. Relaciones M:N Debido a que una base de dato OO permite a los objetos tener atributos multivaluados, las relaciones M:N pueden ser directamente representadas sin necesidad de crear entidades compuestas. Para representar la relacin M:N cada clase que participa en la relacin define un atributo que contendr un conjunto de valores de las otras clases con las que est relacionada. En principio, la capacidad de representar directamente relaciones M:N puede parecer una gran ventaja de las bases de datos OO. Sin embargo, hay que tener mucho cuidado al usarlas debido a que se produce prdida de informacin.
Un tipo especial de relacin M:N es la relacin parte de un todo. En esta relacin, un producto puede estar compuesto de muchas partes y subpartes. Y, de la misma forma, la misma parte o subparte puede ser usada en diferentes productos. La forma de implementar esta relacin en una base de datos es la misma que se ha comentado anteriormente, usando conjuntos de identificadores de objetos en las dos clases que estn relacionadas.
Relaciones de herencia de jerarqua de clases Las relaciones de herencia de jerarqua de clases se utilizan para describir la relacin entre las clases de la jerarqua. Existen dos tipos de relaciones de herencia: la relacin is a y extends. Relaciones is a La relacin is a, tambin conocida como relacin de generalizacin-especializacin, crea una jerarqua de herencia donde las subclases son tipos especficos de sus superclases. Este tipo de herencia se denomina herencia de comportamiento, es decir, herencia de las operaciones de la superclase a la subclase. Para implementar esta relacin se requiere que la superclase sea una interfaz y la subclase puede ser una clase u otra interfaz. Relaciones extends En la relacin extends, una subclase extiende a su superclase ms que restringirla a un tipo ms especfico. Este tipo de herencia se utilizada para heredar el estado y el comportamiento estrictamente entre clases.
Acceso
Los modelos E-R y relacionales dependen del uso de SQL para recuperar datos de la base de datos. SQL es un lenguaje de consultas orientado a los conjuntos, que est basado en un modelo matemtico formalmente definido. Dada su herencia orientada a conjuntos, SQL utiliza mtodos de acceso asociativos para recuperar informacin relacionada de una base de datos, con base en el valor de alguno de sus atributos. A consecuencia del contenido de ms semntica en su modelo de datos, el OODM produce un esquema en el cual las relaciones forman parte de la estructura de la base de datos. El OODM soporta tanto el acceso navegacional (registro a la vez) como el acceso orientado a conjuntos. El acceso navegacional consiste en navegar a travs de la estructura espacial del objeto desarrollado por el diseador utilizando las identidades de objeto. El acceso orientado a conjuntos asociativo en el OODM debe ser provisto por mtodos explcitamente definidos, por consiguiente el diseador debe ejecutar operaciones para manipular
las instancias de objeto en el esquema de objeto. La ejecucin de esas operaciones afectar el desempeo y la capacidad de la base de datos de manejar los datos. Aqu es donde aparece el problema principal del modelo de objetos: la carencia de un modelo matemtico subyacente universalmente aceptado para la manipulacin de los datos. Esto obliga a que cada ejecucin cree su propia versin de un lenguaje de consulta orientado a objetos (OQL).
Comparacin de los componentes de los modelos OO y E-R. Modelo de Datos Orientado a Objetos
Tipo Objeto Clase Variable de Instancia Sin Correspondencia OID Mtodo Jerarqua de Clases
Modelo E - R
Definicin de Entidad Entidad Conjunto de Entidades Atributo Clave Principal Sin Correspondencia Sin Correspondencia Diagrama E R
completo aunque es un lenguaje de definicin independiente para la especificacin de objetos. La sintaxis del ODL extiende el lenguaje de definicin de interfaces (IDL) desarrollado por OMG. OIF es otro lenguaje de especificacin que fue introducido en la versin 2.0 del estndar y que se puede usar para intercambiar objetos entre bases de datos, proporcionar documentacin de bases de datos o guiar un conjunto de pruebas de bases de datos.
Lenguaje de consulta de objetos (OQL): es un lenguaje declarativo para consultar bases de datos. Tambin proporciona algunos constructores para actualizar los objetos de la misma. Aunque est basado en el lenguaje SQL, su semntica no es la misma. OQL soporta capacidades ms potentes con respecto al resultado de la consulta, permitiendo obtener el mismo resultado en tipos coleccin diferentes. Sin embargo, el resultado de una consulta SQL siempre es una tabla. Vinculacin con lenguajes de programacin: la actual versin del estndar tiene vinculacin con los lenguajes de programacin C++, JAVA y Smalltalk. Estas vinculaciones definen la correspondencia entre el ODL y los lenguajes de programacin correspondientes.
Ejemplo
En la ilustracin 1 se muestra un ejemplo que muestra un esquema de bases de datos orientada a objetos, con una simbologa semejante a UML. En la ilustracin 1, cada nodo representa una clase, y se compone de 3 niveles: nombre de la clase, atributos y mtodos. Los atributos que tienen el smbolo * son atributos multivaluados. Los nodos se pueden conectar por dos tipos de arcos: Un arco normal (lnea delgada) indica que la clase del destino de la flecha es el dominio de un atributo de la clase origen o el resultado de un mtodo de la clase origen. Esto se puede ver, por ejemplo, en el atributo documento de la clase Proyecto, cuyo dominio es la clase Documento.
Un arco grueso indica que la clase origen de la flecha es una subclase de la clase destino (herencia). Esta relacin se puede apreciar entre las clases Informe Tcnico o la clase Artculo y Documento, siendo sta ltima la superclase de las dos anteriores.
En este ejemplo, adems, se pueden contemplar relaciones interobjeto 1:M, como por ejemplo entre Proyecto.documento y Documento.
Debido a la imposicin de la primera forma normal en el modelo relacional la representacin de los objetos es bastante pobre. A esto se une la falta de relaciones anidadas. Como consecuencia de esto surge la necesidad de la utilizacin de muchas tablas para dar soporte a estructuras complejas, como por ejemplo el uso de tablas intermedias para resolver las relaciones de cardinalidad uno a muchos. Al tratar estructuras recursivas o anidadas y en colecciones de datos que correspondiendo al mismo tipo de entidad, el modelo no ofrece una respuesta adecuada.
Con objeto de solucionar estas limitaciones, surge el modelo orientado a objetos puro, y como una transicin entre ambos aparece el modelo objeto-relacional, que vamos a tratar a continuacin.
Lobs
Es un tipo de dato que permite almacenar gran cantidad de informacin ( del orden de Gigabytes). Existen dos tipos:
10
BLOB (Binary Large OBject): Se utiliza para guardar datos de tipo binario (fotografa, audio, vdeo, etc.). CLOB (Character Large OBject): Se usan para el almacenamiento de texto (Libros, XML, etc.). Dependiendo del SGBD y del tamao de los LOBS, stos se almacenan directamente en la base de datos o una referencia hacia un fichero externo.
Tipos estructurados Se pueden usar en cualquier sitio donde se pueda usar un tipo de datos predefinido. Estn formados por una agrupacin de tipos predefinidos. Se podran considerar como un struct en lenguaje C.
11
Se pueden utilizar de dos formas diferentes: Como tipo de una columna. Se utiliza un tipo compuesto como un atributo ms de una tabla. Como tipo de una fila de una tabla (tabla tipada). Se utiliza el tipo compuesto para definir de forma implcita la estructura de una tabla, es decir se crear una tabla con la estructura necesaria para almacenar este tipo de datos, pudindose utilizar como objetos. El SGBD se encarga de crear un atributo REF (Object IDentification) que identificar de forma unvoca a una tupla, podramos ver este hecho como una abstraccin del uso de primary key.
Tipos referencia
Podramos entender los tipos referencia como la evolucin de las foreign key. En la definicin de una tabla o de un tipo definido por el usuario, se podr incluir una atributo de tipo referencia, el cual almacenar el valor del OID del la fila de la tabla tipada referenciada. Pueden ser usados en cualquier sitio donde pueda usarse otro tipo de datos. Aunque como se ha apuntado podra verse como la evolucin de las foreign key hay que tener en cuenta que no tiene la misma semntica, La clave ajena implica integridad referencial y el tipo referencia no, pudiendo tener referencia que no llevan a ninguna parte (dangling references).
Tipos coleccin
Una coleccin es un grupo de elementos homogneos, primitivos o definidos por el usuario. A grandes rasgos estos tipos permiten poder evitar las restricciones impuestas por la primera forma normal en el modelo relacional, es decir se pueden utilizar como el tipo de datos de una columna de una tabla. Podemos encontrar dos tipos de colecciones:
Array: Conjunto de elementos homogneos e indexados (similar a un vector en un lenguaje de programacin de alto nivel) vase Ilustracin 3.
12
Multiset: Conjunto de elementos homogneos sin orden y permitindose elementos repetidos, adems se permiten colecciones anidadas.
Tipos ROW
Tipo de datos que agrupa atributos. Si una fila de una tabla es una instancia de un tipo ROW, cada fila de la tabla tiene el mismo tipo. Con esto se consigue que un tipo de datos pueda representar las filas de una tabla para ser almacenadas en variables, pasadas como argumentos a rutinas y que sean devueltas por funciones. Estas caractersticas son las que diferencian los tipos ROW de los tipos definidos por el usuario utilizados como descriptores de filas. Vemos un ejemplo en la ilustracin 4.
Personas
Nombre
Pepe Mariano
Direccin
Calle N piso CP Mata 59 5 13000 623987455 926547326 Paloma 2 3 13003 925786320 null
Ilustracin 4.- Ejemplos Tipos ROW y ARRAY.
Telfono
Herencia
La herencia de tipos indica que el subtipo hereda la estructura y el comportamiento del supertipo, pudiendo adems incluir caractersticas propias. La herencia de tablas hace referencia a la parte extensional de un jerarqua, es decir , al principio de clasificacin por el que toda instancia del subtipo es tambin una instancia del supertipo; para definir una jerarqua de tablas tanto la subtabla como la supertabla deben ser tipadas. Las subtablas heredan los atributos, restricciones, disparadores, etc. De la supertabla. La herencia de tipos como de tablas se especifica mediante la clusula UNDER, y adems un tipo puede declarase como FINAL (si no puede tener subtipos) o como NOT FINAL (en caso contrario):
En tipos: CREATE TYPE tipoFinca UNDER tipoPropiedad As () NOT FINAL; En tablas: CREATE TABLE Finca OF tipoFinca UNDER Propiedad;
Sustitutabilidad Se asegura que cualquier dato de un supertipo puede ser sustituido por un dato de cualquiera de sus subtipos.
13
Vinculacin dinmica La herencia de tipos puede dar lugar a la sobrecarga o polimorfismo de mtodos, es decir, se puede redefinir la implementacin de un mtodo heredado al definir un subtipo.
Mtodos
Los mtodos son funciones SQL ligadas a un tipo estructurado que representan el comportamiento de dicho tipo. La signatura del mtodo se especifica junto a la definicin del tipo de datos al que va ligado. La especificacin de su cuerpo se define separada. Los mtodos pueden ser llamados utilizando la notacin punto.
Consultas
Una de las principales ventajas del modelo objeto-relacional es que permite la realizacin de consultas navegacionales, permitiendo aumentar los tiempos de respuesta de las consultas relacionales, al eliminarse la necesidad de hacer combinaciones.
Ejemplo
Utilizando la ilustracin 1, en la que veamos un diagrama que representa una estructura de clases, vamos a ver cmo, utilizando el modelo objeto-relacional podramos implementar en una base de datos algunas de las caractersticas reflejadas en el mismo. Podemos encontrar un ejemplo claro de un posible uso de tipos distintos en los atributos cdigo y ttulo de la clase Documento. Ambos son de tipo STRING pero sus usos y posibles estructuras estn claramente diferenciados, y comparaciones entre ambos podran suponer errores semnticos. La clase Documento la podramos modelar como una tabla tipada (procedente de un tipo estructurado) de la cual heredaran Informe Tcnico y Artculo. Adems podramos enriquecer el diagrama con la inclusin de un atributo de tipo CLOB en la tabla tipada Documento, el cual podra servir para almacenar el texto del mismo. Si vemos la clase Proyecto observaremos que puede tener asociados uno o ms documentos, luego podramos implementar esta particularidad mediante el uso de un tipo MULTISET de tipos REFERENCIA, siendo estas ltimas referencias a documentos (filas de la tabla tipada Documento).
14
Haciendo una ligera modificacin en el diseo podramos incluir el uso de un tipo ROW en Investigador, podramos agrupar los atributos salario bonificacin y salario promedio bajo una denominacin comn, por ejemplo SalarioInv. Ejemplos claros de uso de mtodos los encontramos en diferentes ocasiones como para el caso de la clase Investigador donde aparece el mtodo salario mensual() as como en la clase Proyectos encontramos mtodos como participantes() y balance().
Caracterstica
Contenido Semntico
Orientado a Objetos
Incrementado mediante el uso de objetos (atributos y mtodos).
Objeto - Relacional
Incrementado mediante el tipo de datos estructurado (atributos y mtodos). Se extiende mediante el uso de nuevos tipos de datos (referencia, coleccin y row) y definidos por el usuario. Tipos Estructurados Complejos. 1:M, M:N y extends. Mediante Herencia de Tipos Estructurados y Tablas Tipadas. Igual que en la Programacin Orientada a Objetos. SQL 2003. Sin Fundamento Terico. Moderada. Slo con Claves Ajenas. Ms aceptado que el OO. Igual que en el Modelo Relacional. Consultas eficientes gracias al uso de referencias entre tipos de datos estructurados. Semejante al Modelo Relacional.
Se extienden mediante el uso los tipos de datos abstractos. Objetos Complejos. 1:M, M:N, is a y extends Mediante Herencia de Objetos. Igual que en la Programacin Orientada a Objetos. Baja. Estndares poco aceptados. Sin Fundamento Terico. Elevada. Si, Referencias Cruzadas. Mercado Inmaduro. Navegacional y Orientado a Conjuntos. Consultas eficientes gracias al uso de referencias entre objetos. Optimiza el Acceso a Disco (Agrupa los Datos Relacionados, Objetos).
Tipos de Datos Complejos Relaciones Reutilizacin Encapsulado Portabilidad Modelo de Datos Curva de Aprendizaje Integridad Referencial Comercializacin Acceso
Rendimiento
Eficiencia
15
Bibliografa
Bertino, E., Martino, L. Sistemas de bases de datos orientadas a objetos. Concepto y arquitecturas.. Addison-Wesley/ Diaz de Santos 1995. USA. Connolly, T. M., Begg, C. E. Sistemas de bases de datos. Un enfoque prctico para diseo, implementacin y gestin. 4 edicin. Addison-Wesley 2005. Date, C. J. Introduccin a los sistemas de bases de datos. 2001. Mxico. Harrington, J. L. Object-Oriented Database Design. Clearly explained. Kaufmann 2000. USA. Piattini, M., Marcos, E., Calero, C., Vela, B. Tecnologa y diseo de bases de datos. RaMa 2006. Espaa. Rob, P., Coronel, C. Sistemas de bases de datos. Diseo, implementacin y administracin. Thomson 2004. Mxico. Morgan
16