BASES DE DATOS RELACIONALES Y BASES DE DATOS ORIENTADAS A OBJETOS
1. Diferencias entre Bases de Datos Relacionales y Bases de Datos Orientadas a Objetos
Bases de Datos Relacionales Bases de Datos Orientadas a Objetos Define las tuplas como instancias especficas de una entidad con un identificador nico y las propiedades de esa entidad. Las tuplas del modelo relacional carecen de esa habilidad de trabajar con otras tuplas ya que carecen de comportamiento Se almacenan los objetos que se definen como un objeto est modelando una situacin o entidad del mundo real al tener una identificacin nica, propiedades especficas a s misma, y la habilidad de trabajar en conjunto con objetos tanto de la misma o distinta especificacin Slo trabaja con entidades, por lo tanto, si se quisiera modelar situaciones habra que adaptarlas Es capaz de representar situaciones del mundo real Utiliza el concepto de Clave Primaria para identificar a sus entidades de una manera nica. Esta clave es un valor que puede introducir y cambiar el usuario del sistema gestor con la nica restriccin de que no se repita con ninguna otra clave primaria que contenga la tabla en ese momento Define el OID (Object Identity) que proveer el sistema y le otorgar al objeto su identidad nica. No puede ser cambiado ni introducido por el usuario. Al desaparecer el objeto, el sistema elimina ese OID pero no vuelve a asignrselo nunca a ningn objeto nuevo. Slo se permiten tipos de datos simples ofrecidos por SQL y en ltima instancia por el sistema gestor Proveen sus tipos de datos de un sistema de tipos anlogo al lenguaje de programacin con el que se utiliza. De esta forma permite definir nuevas clases as como utilizar la herencia para extender las ya creadas Los modelos relacionales utilizan el lenguaje estndar de consultas SQL, que es declarativo lo que hace que las consultas no vayan a la forma de encontrar el dato sino que sea el sistema gestor el que realice esta tarea. El modelo objeto difiere en este sentido bastante. Utiliza varios sistemas diferentes dependiendo de la implementacin que se est utilizando. La forma de trabajar con los datos persistentes en el modelo relacional es seleccionando los datos que queremos que persistan en el tiempo y grabndolos de manera explcita mediante consultas de alta/modificacin de SQL, previa transformacin de los datos Los objetos trabajan de otra forma. Dependiendo de la implementacin particular puede ser que haya clases persistentes, cuyos objetos siempre se almacenen en disco, marcar especiales para los objetos que permitan discriminar cules se almacenarn, y otras tcnicas. En el modelo relacional haba que adaptar la semntica a las capacidades del sistema de una manera bastante estricta Cuando trabajamos con objetos podemos aplicar la semntica propia del problema de una manera mucho ms natural, ya que este paradigma se basa en modelar el mundo real. En las bases de datos relaciones, las relaciones de herencia se pueden simular mediante complejos sistemas que obligaban al programador a aplicar una serie de mecanismos que garantizaran la integridad. Y el resto de relaciones, por norma general crean una serie de tablas intermedias que complica las sentencias SQL necesarias para recuperar los datos El acceso a los datos, en la gran mayora de los sistemas gestores de bases de datos orientados a objetos, se realiza de una forma navegacional, al estilo de los modelos jerrquico y red lo cual obliga al usuario a conocer la ruta de acceso a los objetos Las bases de datos relacionales no permiten el almacenamiento de archivos multimedia, hay que Las bases de datos orientadas a objetos permiten el almacenamiento de archivos multimedia ya que simularlo guardando la direccin del archivo, con lo que no se garantiza que el archivo exista, o almacenando en un campo binario de longitud indeterminada el archivo completo sin capturar la propia base de datos de qu tipo de archivo se trata. un objeto puede ser cualquier cosa
2. Diferencias en el diseo Diseo de las BD relacionales El primer paso para crear una base de datos, es planificar el tipo de informacin que se quiere almacenar en la misma, teniendo en cuenta dos aspectos: la informacin disponible y la informacin que necesitamos. La planificacin de la estructura de la base de datos, en particular de las tablas, es vital para la gestin efectiva de la misma. El diseo de la estructura de una tabla consiste en una descripcin de cada uno de los campos que componen el registro y los valores o datos que contendr cada uno de esos campos. Los campos son los distintos tipos de datos que componen la tabla, por ejemplo: nombre, apellido, domicilio. La definicin de un campo requiere: el nombre del campo, el tipo de campo, el ancho del campo, etc. Los registros constituyen la informacin que va contenida en los campos de la tabla, por ejemplo: el nombre del paciente, el apellido del paciente y la direccin de este. Generalmente los diferentes tipos de campos que se pueden almacenar son los siguientes: Texto (caracteres), Numrico (nmeros), Fecha / Hora, Lgico (informaciones lgicas si/no, verdadero/falso, etc.), imgenes. En resumen, el principal aspecto a tener en cuenta durante el diseo de una tabla es determinar claramente los campos necesarios, definirlos en forma adecuada con un nombre especificando su tipo y su longitud.
Diseo de las BD Orientadas a Objetos Las BDOO se desarrollan al describir en primer lugar los tipos de objetos importantes del dominio de aquellos tipos de objetos. Estos tipos de objetos determinan las clases que conformarn la definicin de la BDOO. Por ejemplo: Una base de datos diseada para almacenar la geometra de ciertas partes mecnicas incluira clases como CILINDRO, ESFERA Y CUBO. El comportamiento de CILINDRO podra incluir informacin relativa a sus dimensiones, volumen rea superficial:
Clase de CILINDRO{ ALTURA FLOTANTE (); RADIO FLOTANTE (); VOLUMEN FLOTANTE (); AREA DE SUPERFICIE FLOTANTE (); };
Se puede llegar a definiciones similares para el cubo y la esfera. En la definicin anterior, ALTURA,RADIO y REA representan los mensajes que se pueden enviar a un objeto CILINDRO . La Implantacin se lleva a cabo en el mismo lenguaje, escribiendo funciones correspondientes a las solicitudes OO: CILINDRO::ALTURA () {RETORNA CILINDRO_ALTURA;} CILINDRO::VOLUMEN () {RETORNA PI*RADIO ()*ALTURA ();}
En este caso, la Altura se almacena como un elemento de los datos, mientras que volumen se calcula mediante la frmula apropiada. Observe que la implantacin interna de volumen utiliza solicitudes para obtener altura y radio. Sin embargo, el aspecto ms importante es la sencillez y uniformidad que experimentan los usuarios de CILINDRO. Slo necesitan conocer la forma de enviar una solicitud y las solicitudes disponibles.
3. Diferencias en la implementacin Los modelos relacionales utilizan el lenguaje estndar de consultas SQL, que es declarativo lo que hace que las consultas no vayan a la forma de encontrar el dato sino que sea el sistema gestor el que realice esta tarea. Adems, el hecho de ser estndar permite que las aplicaciones lo utilicen sin importar el lenguaje de programacin en el que estn escritas. Por contra carga mucho el procesamiento y hace que haya que tratar los datos para convertirlos a objetos en el lenguaje de programacin utilizado. El modelo objeto difiere en este sentido bastante. Utiliza varios sistemas diferentes dependiendo de la implementacin que se est utilizando. Hay sistemas, directamente imbuidos en el lenguaje de programacin que hacen esta recuperacin de los datos transparente al programador, trabajando con los objetos persistentes como si fueran objetos de memoria normales. Esta visin es muy eficiente e intuitiva pero al no tener un lenguaje especfico para trabajar con las consultas no controla de forma alguna este acceso siendo vulnerable a errores del programador. Otra forma de implementar las consultas ha sido el estndar OQL (Object Query Language) definido por el Object Data Management Group (ODMG) que busca ser un estndar declarativo para consultas a bases de datos orientadas a objetos. Su uso sera anlogo al de SQL pero, debido a su complejidad an no hay ninguna implementacin completa del estndar, slo se han llegado a realizar subconjuntos como JDOQL y EJB QL. La forma de trabajar con los datos persistentes en el modelo relacional es seleccionando los datos que queremos que persistan en el tiempo y grabndolos de manera explicita mediante consultas de alta/modificacin de SQL, previa transformacin de los datos. Los objetos trabajan de otra forma. Dependiendo de la implementacin particular puede ser que haya clases persistentes, cuyos objetos siempre se almacenen en disco, marcar especiales para los objetos que permitan discriminar cules se almacenarn, y otras tcnicas. Esta es una de las partes ms complejas de implementar de un sistema gestor de bases de datos orientados a objetos ya que se busca que este paso a datos persistentes sea lo ms transparente posible para el programador de aplicaciones orientadas a objetos. Obviamente el modelo objeto es una forma de centrar el desarrollo y explotacin de un sistema en la semntica del dato. En el modelo relacional haba que adaptar la semntica a las capacidades del sistema de una manera bastante estricta. En cambio, cuando trabajamos con objetos podemos aplicar la semntica propia del problema de una manera mucho ms natural, ya que este paradigma se basa en modelar el mundo real. El acceso a los datos, en la gran mayora de los sistemas gestores de bases de datos orientados a objetos, se realiza de una forma navegacional, al estilo de los modelos jerrquico y red lo cual obliga al usuario a conocer la ruta de acceso a los objetos. Las bases de datos orientadas a objetos permiten el almacenamiento de archivos multimedia ya que un objeto puede ser cualquier cosa. Las bases de datos relacionales no permiten esto y hay que simularlo guardando la direccin del archivo, con lo que no se garantiza que el archivo exista, o almacenando en un campo binario de longitud indeterminada el archivo completo sin capturar la propia base de datos de que tipo de archivo se trata. Los sistemas gestores de bases de datos orientados a objetos proporcionan un importante control de versiones sobre los objetos almacenados, caracterstica que junto a la capacidad de almacenar objetos multimedia antes citada.
Bibliografa 1. ROB, Peter. CORONEL, Carlos. Sistemas de Bases de Datos. Diseo, Implementacin y Administracin. Thomson ed 5: Mexico. Enero de 2006, citada en Abril de 2010. Disponible electrnicamente en: http://books.google.es/books?id=B_UVi51RDY4C&lpg=PA562&ots=NezoMJpP7g&dq=uso% 20actual%20OODB&pg=PP1#v=onepage&q&f=false