Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Bases De Datos Orientadas A Objetos2

12,795 views

Published on

Published in: Business
  • Be the first to comment

Bases De Datos Orientadas A Objetos2

  1. 1. Cristina Huerta Aguilar Departamento Informática ASI 2008/2009 2º curso C6.Sistemas gestores de bases de datos
  2. 2. <ul><li>Se utilizan en aplicaciones más complejas donde no llegan las bases de datos tradicionales </li></ul><ul><li>Son adecuados cuando se necesita un buen rendimiento en la manipulación de datos complejos </li></ul><ul><li>La información se representa mediante objetos como los utilizados en la programación orientada a objetos </li></ul><ul><li>Cuando se integran las características de una base de datos con las de un lenguaje de programación orientado a objetos resulta un sistema gestor de base de datos orientada a objetos(OBDMS) </li></ul>
  3. 3. <ul><li>Base de datos : datos(tuplas) y relaciones que forman una interfaz de usuario que se define por si sola </li></ul><ul><li>Los datos son representados mediante objetos, las entidades de aplicación son clases y las relaciones mediante inclusión lógica </li></ul>
  4. 5. <ul><li>Mensaje : Intercambio de solicitudes entre objetos independientemente de su implementación </li></ul><ul><li>Variable : Estado del objeto </li></ul><ul><li>Método : Implementación del mensaje </li></ul>
  5. 6. <ul><li>Cada objeto está asociado con: </li></ul><ul><li>Conjunto de variables que contienen los datos de un objeto. Las variables corresponden a los atributos del modelo E-R </li></ul><ul><li>Conjunto de mensajes a los que responde, un mensaje puede o no tener parámetros o tener uno o varios </li></ul><ul><li>Conjunto de métodos, cada uno de los cuales es el código que implementa un mensaje. El método devuelve un valor como respuesta al mensaje </li></ul>
  6. 7. <ul><li>CLASES DE OBJETOS </li></ul><ul><li>  </li></ul><ul><li>class empleado { </li></ul><ul><li>/ / Variables </li></ul><ul><li>string nombre; </li></ul><ul><li>string dirección; </li></ul><ul><li>date fecha de alta; </li></ul><ul><li>int sueldo; </li></ul><ul><li>/ / Mensajes </li></ul><ul><li>int sueldo-anual (); </li></ul><ul><li>string obtenerNombre (); </li></ul><ul><li>string obtenerDireccion (); </li></ul><ul><li>int definirDireccion (string nueva-dir); </li></ul><ul><li>int antigüedad(); </li></ul><ul><li>}; </li></ul>
  7. 8. <ul><li>Las bases de datos orientadas a objetos (BDOO) se diseñan para trabajar con lenguajes de programación como Java, C#, C++ y Visual basic.Net </li></ul><ul><li>Al crear un sistema de BD Orientado a Objetos se deben tener en cuenta unas características que están divididas en tres grupos: </li></ul><ul><ul><li>Mandatorias </li></ul></ul><ul><ul><li>Opcionales </li></ul></ul><ul><ul><li>Abiertas </li></ul></ul>
  8. 9. <ul><li>Son aquellas obligatorias </li></ul><ul><li>Son las que debe cumplir el sistema al tener un sistema de BDOO </li></ul><ul><li>Objetos complejos, Identidad de objetos, Encapsulación, Tipos o clases, Sobrepaso con unión retardada, Extensibilidad, Completación Computacional, Persistencia y Manejador de almacenamiento secundario, Concurrencia, Recuperación y Facilidad de Query </li></ul>
  9. 10. <ul><li>Criterios que debe satisfacer un sistema de BDOO: </li></ul><ul><ul><li>Debe tener un BDMS </li></ul></ul><ul><ul><li>Debe ser un sistema OO </li></ul></ul><ul><li>El primer punto consiste en: </li></ul><ul><ul><li>Persistencia </li></ul></ul><ul><ul><li>Manejador de almacenamiento secundario </li></ul></ul><ul><ul><li>Concurrencia </li></ul></ul><ul><ul><li>Recuperación </li></ul></ul><ul><ul><li>Facilidad de Query </li></ul></ul>
  10. 11. <ul><li>El segundo punto consiste en: </li></ul><ul><ul><li>Objetos Complejos </li></ul></ul><ul><ul><li>Identidad del Objeto </li></ul></ul><ul><ul><li>Encapsulación </li></ul></ul><ul><ul><li>Tipos ó Clases </li></ul></ul><ul><ul><li>Sobrepaso con combinación retrasada </li></ul></ul><ul><ul><li>Extensibilidad </li></ul></ul><ul><ul><li>Completación Computacional </li></ul></ul>
  11. 12. <ul><li>Extensibilidad: proporciona tipos de datos básicos </li></ul><ul><li>Concurrencia: permite que más de 1 usuario tenga acceso a la BD a la vez </li></ul><ul><li>Recuperación: vuelta al estado anterior al realizar una transacción que no se ha finalizado </li></ul>
  12. 13. <ul><li>No son obligatorias y se ponen para hacer que el sistema sea mejor </li></ul><ul><li>Herencia múltiple, chequeo de tipos e inferencia de distribución y diseño de transacciones y versiones </li></ul><ul><li>Herencia múltiple: obtiene características de padres diferentes y proporciona mecanismos de que opción conviene más </li></ul>
  13. 14. <ul><li>Son aquellas en las que el diseñador puede poner de su parte y que están relacionadas con la programación </li></ul><ul><li>Paradigma de la programación, Representación o tipo del sistema y su uniformidad </li></ul>
  14. 15. <ul><li>Identidad de objetos </li></ul><ul><li>Constructores de tipos </li></ul><ul><li>Encapsulamiento </li></ul><ul><li>Compatibilidad con los lenguajes de programación </li></ul><ul><li>Jerarquías de tipos y herencia </li></ul><ul><li>Manejo de objetos complejos </li></ul><ul><li>Polimorfismo y sobrecarga de operadores </li></ul><ul><li>Creación de versiones. </li></ul>
  15. 16. <ul><li>Un sistema de BDOO provee una identidad única a cada objeto independiente almacenado en la base de datos </li></ul><ul><li>La estructura orientada a objetos impone automáticamente las restricciones relacionales: dominio, llave de integridad de identidad, identidad referencial </li></ul><ul><li>Propiedades OID </li></ul><ul><li>Es generado por el sistema </li></ul>
  16. 17. <ul><li>Propiedades OID (continuación) </li></ul><ul><li>Su valor no es visible para el usuario externo, sino usado por el sistema para identificar el objeto y crear y manejar las referencias entre objetos </li></ul><ul><li>Es inmutable así preserva la identidad </li></ul><ul><li>Es preferible que solo se use una vez, aunque se elimine el objeto de la BD </li></ul><ul><li>La inmutabilidad y el preservar la identidad implican que el OID no dependa de atributo alguno del objeto </li></ul>
  17. 18. <ul><li>En las BDOO los estados de objetos complejos se pueden construir a partir de otros objetos mediante constructores </li></ul><ul><li>Estos objetos se representan mediante un identificador, un constructor y un estado o valor </li></ul><ul><li>Constructores básicos </li></ul><ul><li>Constructores de átomos </li></ul><ul><li>Constructores de tuplas </li></ul><ul><li>Constructores de conjuntos </li></ul>
  18. 19. <ul><li>Tanto la estructura de los objetos como las operaciones que se pueden aplicar a ellos se incluyen en las definiciones de clases de los objetos </li></ul>
  19. 20. <ul><li>Los lenguajes de POO se utilizan para trabajar con la base de datos </li></ul><ul><li>Hay lenguajes en los que se puedan integrar estos conceptos: </li></ul><ul><li>Extender un lenguaje para tratamiento de datos como SQL añadiendo tipos complejos y POO creando sistemas relacionales orientados a objetos, se llaman sistemas relacionales orientados a objetos </li></ul>
  20. 21. <ul><li>Coger un lenguaje de programación orientado a objetos extendiéndolo para que trabaje con BD, se llaman lenguajes de programación persistentes </li></ul><ul><li>A la hora de elegir que opción usar, tener en cuenta que los lenguajes de programación persistentes son muy potentes y es fácil cometer errores que dañen a las BD. La optimización de alto nivel y la reducción de E/S de disco es difícil </li></ul>
  21. 22. <ul><li>Hay clases generales (superclases) que definen las características comunes a un determinado grupo </li></ul><ul><li>Las clases específicas (subclases) especifican cualidades características de un determinado grupo </li></ul><ul><li>Las subclases heredan los métodos y atributos de las superclases, de miembros mas altos de la jerarquía </li></ul>
  22. 23. <ul><li>Ejemplo: </li></ul><ul><li>Class persona { </li></ul><ul><li>string nombre; </li></ul><ul><li>string dirección; </li></ul><ul><li>}; </li></ul><ul><li>Class cliente persona { </li></ul><ul><li>int interés-prestamo; </li></ul><ul><li>}; </li></ul><ul><li>Class empleado persona{ </li></ul><ul><li>date fecha de alta; </li></ul><ul><li>int sueldo; </li></ul><ul><li>}; </li></ul>
  23. 24. <ul><li>Los objetos son complejos ya que necesitan un espacio sustancial para almacenarse a parte de no tener los valores típicos de un SGBD </li></ul><ul><li>Soluciones: </li></ul><ul><li>Utilizar técnicas de almacenamiento intermedio para obtener porciones del objeto antes que el programa de aplicación necesite tener acceso a ellas </li></ul><ul><li>Crear bibliotecas de tipos de datos y operaciones </li></ul>
  24. 25. <ul><li>Un objeto se puede comportar de formas diferentes según a que subclase pertenezca </li></ul><ul><li>Ejemplo:  </li></ul><ul><li>OBJETO_GEOMETRICO: Forma, Area, PuntoCentral </li></ul><ul><li>RECTANGULO subtype_of OBJETO_GEOMETRICO (Forma=´rectángulo’): Ancho, Altura </li></ul><ul><li>TRIANGULO subtype_of OBJETO_GEOMETRICO (Forma=´triángulo’): Lado1, Lado2, Angulo   </li></ul><ul><li>CIRCULO subtype_of OBJETO_GEOMETRICO(Forma=´círculo’): Radio </li></ul>
  25. 26. <ul><li>Hay aplicaciones de BD que necesitan varias versiones del mismo objeto </li></ul><ul><li>Generalmente hay que modificar módulos de diseño e implementación </li></ul><ul><li>Si el sistema está operativo habrá que crear otro modulo igual al que queremos modificar y modificar la réplica </li></ul><ul><li>Se crea un grafo de versiones con todas las réplicas del módulo en la que hemos hecho cambios </li></ul><ul><li>Un SGBDOO debe controlar y almacenar las versiones del objeto </li></ul>
  26. 27. <ul><li>El diseñador puede especificar la estructura de objetos y determinar sus operaciones </li></ul><ul><li>Flexibilidad y manejo de tipos complejos </li></ul><ul><li>Manipula datos complejos de forma rápida </li></ul><ul><li>Tienen más rapidez de pasar de un objeto a otro que las BDR. El JOIN es más lento que los punteros de los objetos </li></ul><ul><li>El agrupamiento es más eficiente, lo que reduce el tiempo de recuperación de datos de disco ya que solo necesita una lectura a disco por la agrupación </li></ul>
  27. 28. <ul><li>Inmadurez en el mercado </li></ul><ul><li>Falta de estándares en la programación OO, lo que supone un riesgo para los usuarios a parte de un coste alto y necesidad de un tiempo de pruebas considerable </li></ul><ul><li>No hay agrupamiento físico de objetos </li></ul>
  28. 29. <ul><li>Bases de Datos. Modelos, Lenguajes, Diseños </li></ul><ul><li>James L. Johnson. </li></ul><ul><li>Sistemas de Bases de Datos </li></ul><ul><li>Elmasri /Nawathe. </li></ul><ul><li>Fundamentos de Bases de Datos </li></ul><ul><li>Henry Korth/Abraham Silverschatz/Sudargham. </li></ul>
  29. 30. <ul><li>Cuáles son las principales características de una BDOO? </li></ul><ul><li>Que creéis que saldrá mas rentable una BDOO o una relacional? </li></ul><ul><li>Que ventajas les encontráis a las BDOO?Y a las relacionales? </li></ul><ul><li>Que características encontráis que superan a las de las BD relacionales? </li></ul><ul><li>Para que casos reales creéis que son mejores las BDOO? </li></ul>
  30. 31. <ul><li>Cuando diseñáis una base de datos en que cosas os fijáis antes de diseñarla? </li></ul><ul><li>Que BD creéis que es más fácil de mantener para 1 aplicación de la vida cotidiana? </li></ul>

×