You are on page 1of 31

Cristina Huerta Aguilar Departamento Informática ASI 2008/2009 2º curso C6.

Sistemas gestores de bases de datos

Se utilizan en aplicaciones más complejas donde no llegan las bases de datos tradicionales  Son adecuados cuando se necesita un buen rendimiento en la manipulación de datos complejos  La información se representa mediante objetos como los utilizados en la programación orientada a objetos  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

Base de datos: datos(tuplas) y relaciones que forman una interfaz de usuario que se define por si sola  Los datos son representados mediante objetos, las entidades de aplicación son clases y las relaciones mediante inclusión lógica

.

Mensaje: Intercambio de solicitudes entre objetos independientemente de su implementación  Variable: Estado del objeto  Método: Implementación del mensaje  .

Las variables corresponden a los atributos del modelo E-R  Conjunto de mensajes a los que responde. un mensaje puede o no tener parámetros o tener uno o varios  Conjunto de métodos.Cada objeto está asociado con:  Conjunto de variables que contienen los datos de un objeto. cada uno de los cuales es el código que implementa un mensaje. El método devuelve un valor  .

date fecha de alta. }. int antigüedad(). string obtenerDireccion (). . string dirección.CLASES DE OBJETOS   class empleado { / / Variables string nombre. int definirDireccion (string nueva-dir). int sueldo. string obtenerNombre (). / / Mensajes int sueldo-anual ().

Net  Al crear un sistema de BD Orientado a Objetos se deben tener en cuenta unas características que están divididas en tres grupos:   Mandatorias  Opcionales  Abiertas .Las bases de datos orientadas a objetos (BDOO) se diseñan para trabajar con lenguajes de programación como Java. C++ y Visual basic. C#.

Tipos o clases. Concurrencia. Completación Computacional. Recuperación y Facilidad de Query  .Son aquellas obligatorias  Son las que debe cumplir el sistema al tener un sistema de BDOO  Objetos complejos. Persistencia y Manejador de almacenamiento secundario. Identidad de objetos. Encapsulación. Extensibilidad. Sobrepaso con unión retardada.

 Criterios que debe satisfacer un sistema de BDOO:  Debe tener un BDMS  Debe ser un sistema OO  El primer punto consiste en:  Persistencia  Manejador de almacenamiento secundario  Concurrencia  Recuperación  Facilidad de Query .

 El segundo punto consiste en:  Objetos Complejos  Identidad del Objeto  Encapsulación  Tipos ó Clases  Sobrepaso con combinación retrasada  Extensibilidad  Completación Computacional .

Extensibilidad: proporciona tipos de datos básicos  Concurrencia: permite que más de 1 usuario tenga acceso a la BD a la vez  Recuperación: vuelta al estado anterior al realizar una transacción que no se ha finalizado  .

chequeo de tipos e inferencia de distribución y diseño de transacciones y versiones  Herencia múltiple: obtiene características de padres diferentes y proporciona mecanismos de que opción conviene más  .No son obligatorias y se ponen para hacer que el sistema sea mejor  Herencia múltiple.

Representación o tipo del sistema y su uniformidad  .Son aquellas en las que el diseñador puede poner de su parte y que están relacionadas con la programación  Paradigma de la programación.

 .Identidad de objetos  Constructores de tipos  Encapsulamiento  Compatibilidad con los lenguajes de programación  Jerarquías de tipos y herencia  Manejo de objetos complejos  Polimorfismo y sobrecarga de operadores  Creación de versiones.

Un sistema de BDOO provee una identidad única a cada objeto independiente almacenado en la base de datos  La estructura orientada a objetos impone automáticamente las restricciones relacionales: dominio. identidad referencial Propiedades OID  Es generado por el sistema  . llave de integridad de identidad.

Propiedades OID (continuación)  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  Es inmutable así preserva la identidad  Es preferible que solo se use una vez. aunque se elimine el objeto de la BD  La inmutabilidad y el preservar la identidad implican que el OID no dependa de atributo alguno del objeto .

En las BDOO los estados de objetos complejos se pueden construir a partir de otros objetos mediante constructores  Estos objetos se representan mediante un identificador. un constructor y un estado o valor Constructores básicos  Constructores de átomos  Constructores de tuplas  Constructores de conjuntos  .

 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 .

Los lenguajes de POO se utilizan para trabajar con la base de datos Hay lenguajes en los que se puedan integrar estos conceptos:  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  .

se llaman lenguajes de programación persistentes  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.Coger un lenguaje de programación orientado a objetos extendiéndolo para que trabaje con BD. La optimización de alto nivel y la reducción de E/S de disco es difícil  .

Hay clases generales (superclases) que definen las características comunes a un determinado grupo  Las clases específicas (subclases) especifican cualidades características de un determinado grupo  Las subclases heredan los métodos y atributos de las superclases. de miembros mas altos de la jerarquía  .

 Ejemplo: Class persona { string nombre. int sueldo. }. . }. Class empleado persona{ date fecha de alta. Class cliente persona { int interés-prestamo. }. string dirección.

Los objetos son complejos ya que necesitan un espacio sustancial para almacenarse a parte de no tener los valores típicos de un SGBD Soluciones:  Utilizar técnicas de almacenamiento intermedio para obtener porciones del objeto antes que el programa de aplicación necesite tener acceso a ellas  Crear bibliotecas de tipos de datos y operaciones  .

Altura TRIANGULO subtype_of OBJETO_GEOMETRICO (Forma= ´triángulo’): Lado1. PuntoCentral RECTANGULO subtype_of OBJETO_GEOMETRICO (Forma= ´rectángulo’): Ancho.Un objeto se puede comportar de formas diferentes según a que subclase pertenezca  Ejemplo:   OBJETO_GEOMETRICO: Forma. Area. Angulo   CIRCULO subtype_of OBJETO_GEOMETRICO(Forma=´círculo’): Radio . Lado2.

Hay aplicaciones de BD que necesitan varias versiones del mismo objeto  Generalmente hay que modificar módulos de diseño e implementación  Si el sistema está operativo habrá que crear otro modulo igual al que queremos modificar y modificar la réplica  Se crea un grafo de versiones con todas las réplicas del módulo en la que hemos hecho cambios  Un SGBDOO debe controlar y almacenar las versiones del objeto  .

lo que reduce el tiempo de recuperación de datos de disco ya que solo necesita una  .El diseñador puede especificar la estructura de objetos y determinar sus operaciones  Flexibilidad y manejo de tipos complejos  Manipula datos complejos de forma rápida  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  El agrupamiento es más eficiente.

lo que supone un riesgo para los usuarios a parte de un coste alto y necesidad de un tiempo de pruebas considerable  No hay agrupamiento físico de objetos  .Inmadurez en el mercado  Falta de estándares en la programación OO.

 Fundamentos de Bases de Datos Henry Korth/Abraham Silverschatz/Sudargham. Modelos.  . Diseños James L.  Sistemas de Bases de Datos Elmasri /Nawathe. Lenguajes.Bases de Datos. Johnson.

Cuáles son las principales características de una BDOO?  Que creéis que saldrá mas rentable una BDOO o una relacional?  Que ventajas les encontráis a las BDOO?Y a las relacionales?  Que características encontráis que superan a las de las BD relacionales?  Para que casos reales creéis que son mejores las BDOO?  .

Cuando diseñáis una base de datos en que cosas os fijáis antes de diseñarla?  Que BD creéis que es más fácil de mantener para 1 aplicación de la vida cotidiana?  .

S S S S S S S S VWZ`VSVVW[TW`[_ [Z_`^aU`[^W_VW`\[_ ZUS\_aSWZ`[ [\S`TVSVU[Z[_WZYaSW_VW\^[Y^SSU Z W^S^]a S_VW`\[_ W^WZUS SZW[VW[TW`[_U[\W[_ [[^X_[ _[T^WUS^YSVW[\W^SV[^W_ ^WSU ZVWbW^_[ZW_ .

Z__`WSVW.

.

\^[bWWaZSVWZ`VSV ZUSS USVS[TW`[ZVW\WZVWZ`WSSUWZSV[WZSTS_W VWVS`[_ S SW_`^aU`a^S[^WZ`SVSS[TW`[_\[ZW Sa`[ `USWZ`WS_^W_`^UU[ZW_^WSU[ZSW_ V[Z[SbWVWZ`WY^VSVVWVWZ`VSVVWZ`VSV ^WXW^WZUS ^[\WVSVW_.

 S _YWZW^SV[\[^W__`WS S .

^[\WVSVW_.

U[Z`ZaSU Z S abS[^Z[W_b_TW\S^SWa_aS^[W `W^Z[_Z[ a_SV[\[^W__`WS\S^SVWZ`XUS^W[TW`[  U^WS^ SZWS^S_^WXW^WZUS_WZ`^W[TW`[_ S _Za`STWS_ \^W_W^bSSVWZ`VSV S _\^WXW^TW]aW_[[_Wa_WaZSbW SaZ]aW_W WZWW[TW`[VWS S SZa`STVSV W\^W_W^bS^SVWZ`VSV\USZ ]aWW.

Z[VW\WZVSVWS`^Ta`[SYaZ[VW[TW`[ .

ZS_.

.

[_W_`SV[_VW[TW`[_U[\W[__W \aWVWZU[Z_`^a^S\S^`^VW[`^[_[TW`[_WVSZ`W U[Z_`^aU`[^W_ S _`[_[TW`[__W^W\^W_WZ`SZWVSZ`WaZ VWZ`XUSV[^aZU[Z_`^aU`[^ aZW_`SV[[bS[^ [Z_`^aU`[^W_T _U[_ S [Z_`^aU`[^W_VW `[[_ S [Z_`^aU`[^W_VW`a\S_ S [Z_`^aU`[^W_VWU[ZaZ`[_ S .

S SZ`[SW_`^aU`a^SVW[_[TW`[_U[[S_ [\W^SU[ZW_]aW_W\aWVWZS\US^SW[__W ZUa WZWZS_VWXZU[ZW_VWUS_W_VW[_[TW`[_ .