Dmaso Lpez Aragn Introduccin En la actualidad, la orientacin a objetos es una nueva forma de comprender los problemas y modelar el negocio de una empresa, documentar, disear programas y base de datos.
El enfoque orientado a objetos ofrece la oportunidad de cumplir con los requerimientos del negocio sin estar limitado a los tipos de datos y los lenguajes de consulta disponibles en los gestores de datos tradicionales. Las Bases de datos orientados a objetos se proponen para satisfacer las necesidades de aplicaciones ms complejas.
En esta exposicin, presentaremos los aspectos ms importantes de las bases de datos orientado a objetos. Agenda 1. Base de Datos Orientado a Objetos i. Surgimiento de la base de datos Orientado a Objetos ii. Definicin 2. Conceptos bsicos Orientado a Objetos 3. Modelo de Objetos 4. Sistema de Gestin de Base de Datos Orientado a Objetos Surgimiento 1. Problemas para representar y modelar la informacin del "mundo real", el modelo clsico representa la informacin a travs de una gran cantidad de datos. 2. Necesidad de los lenguaje de programacin orientado a objetos 3. Las bases de datos orientadas a objetos surgen con la finalidad de superar estas deficiencias de los modelos anteriores y proporcionar eficiencia y sencillez a las aplicaciones. Definicin Una Base de Datos Orientada a Objetos es una base de datos donde las entidades son las clases, los elementos de datos son objetos y las relaciones se mantienen por medio inclusin lgica.
Teniendo en cuenta este concepto, las base de datos orientada a objetos estn diseadas para el manejo de datos de un sistema que ha sido modelada, diseada e implementada como un conjunto de objetos relacionados entre s. Agenda 1. Base de Datos Orientado a Objetos 2. Conceptos bsicos Orientado a Objetos i. Clase ii. Objeto, Identidad de objeto iii. Encapsulamiento iv. Jerarquas de tipos y herencia v. Polimorfismo vi. Manejo de objetos complejos vii. Compatibilidad con los lenguajes de programacin viii.Creacin de versiones. 3. Modelo de Objetos 4. Sistema de Gestin de Base de Datos Orientado a Objetos Conceptos Bsicos Orientado a Objetos El paradigma orientado a objetos se define como un conjunto de principios para realizar el modelado, diseo, desarrollo e implementacin basado de estructuras conceptuales conocidas como objetos.
Las bases de datos orientadas a objetos estn diseadas trabajar con aplicaciones desarrollados orientada a los negocios, que son un conjunto de objetos que interactan entre s. Conceptos Bsicos Orientado a Objetos Entre los conceptos que utilizamos en las Bases de Datos Orientada a Objetos son las siguientes: 1. Clase 2. Objeto, Identidad de objeto 3. Encapsulamiento 4. Jerarquas de tipos y herencia 5. Polimorfismo 6. Manejo de objetos complejos 7. Compatibilidad con los lenguajes de programacin 8. Creacin de versiones. 1. Clase Una clase se le define como un modelo que agrupa a un conjunto de objetos de caractersticas comunes.
Tambin es definida como una plantilla que contiene la definicin de los datos y mtodos para los objetos instanciados por la clase. 2. Identidad de Objetos Un objeto es cualquier cosa sea real o abstracta a travs del cual almacenamos datos y definimos mtodos para controlar estos datos.
La identidad es una propiedad de todo objeto que permite diferenciar a los dems objetos.
Todo objeto se identifica por un identificador de objeto, el cual es nico, y a travs de ste se puede invocar un objeto para realizar una operacin. Objetos: Empleado Juan Ros DI: 08723133 Pedro Lamas DI: 10032122 Ins Rojas DI: 09723133 3. Encapsulamiento Hay muchos datos que no tienen que ser expuestos cuando se utiliza un objeto, ya que solamente funcionan de manera interna, esto es encapsulamiento; hacer que los atributos no interacten con el usuario y solo son llamadas por funciones dentro del objeto.
Proporciona una lgica independiente de los datos, porque se puede cambiar la implementacin de un comportamiento sin cambiar el programa que uso dicho comportamiento. 4. Jerarqua de Tipos y Herencia En los modelos de datos de una base de datos orientada a objetos, se necesitan un nmero limitado de clases; pero algunas de estas clases se parecen entre s.
Para representar estas clases, se defina una especializacin.
Las especializaciones de una clase (clase base) son definidas como subclases (clases heredadas), las cuales heredan las caractersticas y los mtodos de la clase base. 5. Polimorfismo El polimorfismo se refiere a definir diferentes comportamientos a los mtodos que tienen la misma firma en diferentes clases.
Esto quiere decir, sobreescribir los mtodos de las clases heredadas, los cuales estos mtodos se encuentran definidos en las clases base. 6. Manejo de objetos complejos Hay dos tipos de objetos complejos a. Objetos no Estructurados: necesita de una gran espacio de almacenamiento: tipo de dato imagen (mapa de bits) o cadena texto extenso (documento) b. Objetos Estructurados: constituidos por componentes, se define en diversos niveles. 7. Compatibilidad con lenguajes de programacin Los lenguajes de programacin que utiliza una base de datos orientada a objetos utilizan herramientas de diseo para el modelado de objetos y codificacin. En la actualidad, existen varios lenguajes de programacin: C++, Java, Smalltalk, LISP.
a. Extender el lenguaje a travs de las llamadas expresiones de consulta, que son parecidas a las sentencias SQL y pueden ser usadas para extraer y procesar convenientemente bases de datos relacionales. b. Un lenguaje de programacin orientado a objetos que trabaje en forma directa con la base de datos a travs de un Modelo de Datos persistente. 8. Creacin de versiones La determinacin de versin permite rastrear los cambios de un objeto. Las aplicaciones de base de datos orientadas a objetos requieren de varias versiones del mismo objeto.
Si el sistema est operativo, y se requiere actualizar algunos de los mdulos, se deber crear una nueva versin para cada uno de ellos para realizar los cambios o mejoras respectivas Agenda 1. Base de Datos Orientado a Objetos 2. Conceptos bsicos Orientado a Objetos 3. Modelo de Objetos i. Concepto ii. Caractersticas iii. Relaciones 4. Sistema de Gestin de Base de Datos Orientado a Objetos Modelo de Objetos El modelo de datos orientado a objetos es una extensin del paradigma de programacin orientado a objetos.
Los objetos entidad que se utilizan en los programas orientados a objetos son anlogos a las entidades que se utilizan en las bases de datos orientadas a objetos: los objetos del programa desaparecen cuando el programa termina su ejecucin, mientras que los objetos de la base de datos permanecen. A esto se le denomina persistencia. Caractersticas 1. Soporta diversos tipos de datos: abstractos: cliente, empleado, producto, etc. complejos: estructura de datos, colecciones, objetos grandes.
2. Soporta un lenguaje de definicin de objetos (ODL), define la interfaz de los tipos de objetos, no la implementacin.
3. Soporta un lenguaje de manipulacin de objetos (OML), se emplea para realizar operaciones de creacin, actualizacin y eliminacin de objetos .
3. Soporta un lenguaje de consultas de objetos (OQL), aunque est basado en el lenguaje SQL, su semntica no es la misma. Las consultas se especifican mediante objetos y sus atributos. Del mismo modo, las consultas devuelven conjuntos de objetos. Caractersticas Uso del Lenguaje de Definicin de Objetos: C# public class Trabajador { private int id; private String Nombre; private String ApePat; private String ApeMat; private DateTime Fecing; }
public class Empleado : Trabajador { private int cargo; private int area; private int sueldo; } Caractersticas Uso del Lenguaje de Consulta de Objetos C# y LINQ //listar los worker var lista = from w in capa.Worker select w;
//listar los employees cuyo ao de FechaIngreso sea 2012 var listaq = from w in capa.Worker join p in capa.Employee on w.Id equals p.Id where w.Fecing.Year==2012 select p; Relaciones La principal propiedad para cualquier modelo de datos, es la representacin de las relaciones que encontramos entre los componentes del modelo.
Las relaciones en un modelo de datos orientado a objetos pueden ser de dos tipos: a. Relacin interobjetos: Vnculo Atributo Clase b. Relacin de herencia de jerarqua de clases
Relacin InterObjetos: Vnculo Atributo Clase Una relacin atributo-clase o relacin interobjeto, se crea cuando el atributo de un determinado objeto hace referencia hacia otro objeto que puede ser de la misma clase (recursividad) u otro objeto de clase diferente.
Existen dos tipos de relaciones interobjeto que vamos a estudiar a continuacin: a. Relaciones 1:M b. Relaciones M:N
Relaciones 1:M Para representar una relacin 1:M a. En la clase muchos defina un atributo para almacenar el identificador del objeto (clave primaria) de la clase uno. b. En la clase uno defina un atributo para almacenar el conjunto de valores, que representa los identificadores de los muchos objetos que est relacionado. Empleado IdEmp Nombre Apellido FechaNac
1 Area Area idArea Nombre
M Empleado Esta relacin est basada en la regla: en un rea trabaja uno a muchos empleados Relaciones M:N La relacin M:N es la relacin definida como parte de un todo. En esta relacin, una clase (clase A)est compuesta de muchos identificadores de otra clase (clase B). Y de la misma forma, cada clase (clase B) est compuesta de muchos identificadores de otra clase (clase A). Articulo IdArt Descripcion Medida PreUni
M Proveedor Proveedor idProv Nombre Direccion
M Articulo Esta relacin est basada en la regla: un proveedor produce uno a muchos artculos, un artculo es producido por uno a muchos proveedores Relaciones M:N Para transformar el planteamiento realizado en la regla de negocio anterior, se tendr que definir una clase que conecte tanto a Articulo como a Proveedor y guardar los atributos asociados. Articulo IdArt Descripcion Medida PreUni
M Art_Provee Proveedor idProv Nombre Direccion
M Art_Provee Art_Provee Uni_Medida Precio
1 Articulo 1 Proveedor Relacin de herencia de jerarqua de clases Describe la relacin entre las clases y su jerarqua. Tenemos: a. Relacin is a: las subclases son tipos especficos a sus clases base. Son llamadas tambin herencia de comportamiento. b. Relacin extends: las subclases hereda una clase base. Se utiliza para heredar el estado y mtodos entre clases Agenda 1. Base de Datos Orientado a Objetos i. Surgimiento de la base de datos Orientado a Objetos ii. Definicin 2. Conceptos bsicos Orientado a Objetos 3. Modelo de Objetos 4. Sistema de Gestin de Base de Datos Orientado a Objetos i. Introduccin ii. Funcionalidades iii. Mapeo objetos iv. Ventajas y Desventajas
Sistema de gestin de base de datos OO La informacin que administra una base de datos orientadas a objetos se representa a travs de objetos a mediante objetos como los presentes en la programacin orientada a objetos.
Cuando se integra las caractersticas de una base de datos con las de un lenguaje de programacin orientado a objetos, el resultado es un sistema gestor de base de datos orientada a objetos (ODBMS, OBJECT DATABASE MANAGEMENT SYSTEM). Sistema de gestin de base de datos OO Los diversos Sistemas de Gestin de Base de Datos Orientadas a Objetos utilizan diversos lenguajes de programacin: SGBDOO Lenguaje de Programacin ORION LISP GemStone Extensin de SmallTalk O2 C Vbase/Ontos C++ Versant C++ Object Store C++ Funcionalidades: Persistencia Es la capacidad de manipular los datos, los cuales se encuentran almacenados en una base de datos, directamente utilizando un lenguaje de programacin orientado a objetos.
A travs de la persistencia, la manipulacin de objetos se realiza directamente por el lenguaje de programacin, de la misma manera que en la memoria, sin persistencia de objetos. Esto se logra mediante el almacenamiento en el cach de la memoria. Motor Persistencia Objetos Programa Base de Datos Registros En C# se utiliza un motor que ya est programado: NHibernate Funcionalidades: Concurrencia Permite a los usuarios acceder al SMBDOO en una aplicacin.
Los mecanismos de control de concurrencia incluye mecanismos de recuperacin durante fallos. Modos de control de concurrencia son:
Pesimista: Obliga a una transaccin a esperar a que se resuelva el conflicto para actualizar los datos. Optimista: Deja correr la transaccin y resuelve ste al final del commit, emplea usando TimeStamp y copias de la transaccin. Mixto: Combina diferentes controles de concurrencia a diferentes objetos y tipos de datas en una misma transaccin. Funcionalidades: Recuperacin Es el proceso de aplicar consistencia a los datos despus de que una transaccin ha abortado por fallas de hardware o de comunicacin.
En bases de datos orientadas a objetos, los usuarios pueden definir operaciones sobre los datos como parte de la definicin de la base de datos. Una operacin se especifica en dos partes: a. La interfaz que define la operacin incluye el nombre de la operacin y los tipos de datos de sus argumentos (o parmetros). b. La implementacin (o mtodo) de la operacin. Aplicacin Aplicacin Administrador de Transacciones Administrador de Recuperaciones Transaccion notificaciones resultados operaciones Funcionalidades: Facilidad de consultas ad-hoc Es una tcnica para consultar los objetos en una base de datos orientado a objetos utilizando el propio lenguaje de programacin orientado a objetos.
Este lenguaje de consulta de objetos soporte notacin de consultas basada en valores, consultas basada en relaciones (navegabilidad) y en valores (ejecutar una operacin). Mapeo de Objetos Es un mtodo que une los conceptos de objetos, de lenguaje de consultas (SQL) y base de datos, creando una base de datos de objetos virtuales.
Mapeando los objetos, hace que el software sea ms robusto ya que reduce las lneas de cdigo programado, por lo que reduce la carga de trabajo de los programadores y asegura que los errores en el desarrollo sea mnimo. Ventajas de un SGBDOO 1. Definir la informacin como objetos, mejora la comunicacin entre usuarios, diseadores y analistas. 2. Uso de un lenguaje para definir los datos y los mtodos facilita el desarrollo de las aplicaciones. 3. Define nuevos tipos de datos a partir de los existentes. 4. El modelo soporta el acceso a la navegabilidad (un registro a la vez) como permite recorrer los objetos, a travs de colecciones. 5. Se cuenta con un estndar SQL-99 que abre el camino de integrar las versiones orientadas a objetos dentro de las bases de datos relacionales. Desventajas de un SGBDOO 1. No se cuenta con un modelo Universal aceptado para manipular los objetos, lo que obliga a que cada ejecucin cree su propia versin. 2. Diferentes proveedores desarrollan diferentes versiones de OQL y esto limita su verdadera interoperabilidad. 3. Es ms complejo el diseo y actualizarlos. 4. No se cuenta con restricciones declarativas por que depende de los mtodos definidos en los objetos. 5. Restricciones a las Vistas (View) por comprometer a la encapsulacin. 6. No se pueden definir procedimiento almacenados. Dmaso Lpez Aragn Email: pdlopez@cibertec.edu.pe damaso.lopez.aragon@cibertec.edu.pe