I UNIDAD: BASE DE DATOS ORIENTADOS A OBJETOS ORIENTADOS A OBJETOS.
BASE DE DATOS: ENFOQUE ORIENTADO A OBJETOS · sistema gestor de base de datos orientada a objetos...
Transcript of BASE DE DATOS: ENFOQUE ORIENTADO A OBJETOS · sistema gestor de base de datos orientada a objetos...
BASE DE DATOS: ENFOQUE ORIENTADO A OBJETOS
Dámaso López Aragón
Introducción
En la actualidad, la orientación a objetos es una nueva forma de comprender los problemas y modelar el negocio de una empresa, documentar, diseñar 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 más complejas. En esta exposición, presentaremos los aspectos más 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. Definición
2. Conceptos básicos Orientado a Objetos 3. Modelo de Objetos 4. Sistema de Gestión de Base de Datos Orientado a Objetos
Surgimiento
1. Problemas para representar y modelar la información del "mundo real", el modelo clásico representa la información a través de una gran cantidad de datos.
2. Necesidad de los lenguaje de programación 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.
Definición
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 inclusión lógica. Teniendo en cuenta este concepto, las base de datos orientada a objetos están diseñadas para el manejo de datos de un sistema que ha sido modelada, diseñada e implementada como un conjunto de objetos relacionados entre sí.
Agenda
1. Base de Datos Orientado a Objetos 2. Conceptos básicos Orientado a Objetos
i. Clase ii. Objeto, Identidad de objeto iii. Encapsulamiento iv. Jerarquías de tipos y herencia v. Polimorfismo vi. Manejo de objetos complejos vii. Compatibilidad con los lenguajes de programación viii.Creación de versiones.
3. Modelo de Objetos 4. Sistema de Gestión de Base de Datos Orientado a Objetos
Conceptos Básicos Orientado a Objetos
El paradigma orientado a objetos se define como un conjunto de principios para realizar el modelado, diseño, desarrollo e implementación basado de estructuras conceptuales conocidas como objetos. Las bases de datos orientadas a objetos están diseñadas trabajar con aplicaciones desarrollados orientada a los negocios, que son un conjunto de objetos que interactúan entre sí.
Conceptos Básicos 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. Jerarquías de tipos y herencia 5. Polimorfismo 6. Manejo de objetos complejos 7. Compatibilidad con los lenguajes de programación 8. Creación de versiones.
1. Clase
Una clase se le define como un modelo que agrupa a un conjunto de objetos de características comunes. También es definida como una plantilla que contiene la definición de los datos y métodos para los objetos instanciados por la clase.
2. Identidad de Objetos
Un objeto es cualquier cosa sea real o abstracta a través del cual almacenamos datos y definimos métodos para controlar estos datos. La identidad es una propiedad de todo objeto que permite diferenciar a los demás objetos. Todo objeto se identifica por un identificador de objeto, el cual es único, y a través de éste se puede invocar un objeto para realizar una operación.
Objetos: Empleado
Juan Ríos DI: 08723133
Pedro Lamas DI: 10032122
Inés 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 interactúen con el usuario y solo son llamadas por funciones dentro del objeto. Proporciona una lógica independiente de los datos, porque se puede cambiar la implementación de un comportamiento sin cambiar el programa que uso dicho comportamiento.
4. Jerarquía de Tipos y Herencia
En los modelos de datos de una base de datos orientada a objetos, se necesitan un número limitado de clases; pero algunas de estas clases se parecen entre sí. Para representar estas clases, se defina una especialización. Las especializaciones de una clase (clase base) son definidas como subclases (clases heredadas), las cuales heredan las características y los métodos de la clase base.
5. Polimorfismo
El polimorfismo se refiere a definir diferentes comportamientos a los métodos que tienen la misma firma en diferentes clases. Esto quiere decir, sobreescribir los métodos de las clases heredadas, los cuales estos métodos 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 programación
Los lenguajes de programación que utiliza una base de datos orientada a objetos utilizan herramientas de diseño para el modelado de objetos y codificación. En la actualidad, existen varios lenguajes de programación: C++, Java, Smalltalk, LISP.
a. Extender el lenguaje a través 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 programación orientado a objetos que trabaje en forma directa con la base de datos a través de un Modelo de Datos persistente.
8. Creación de versiones
La determinación de versión 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 módulos, se deberá crear una nueva versión para cada uno de ellos para realizar los cambios o mejoras respectivas
Agenda
1. Base de Datos Orientado a Objetos 2. Conceptos básicos Orientado a Objetos 3. Modelo de Objetos
i. Concepto ii. Características iii. Relaciones
4. Sistema de Gestión de Base de Datos Orientado a Objetos
Modelo de Objetos El modelo de datos orientado a objetos es una extensión del paradigma de programación orientado a objetos. Los objetos entidad que se utilizan en los programas orientados a objetos son análogos a las entidades que se utilizan en las bases de datos orientadas a objetos: los objetos del programa desaparecen cuando el programa termina su ejecución, mientras que los objetos de la base de datos permanecen. A esto se le denomina persistencia.
Características
1. Soporta diversos tipos de datos: • abstractos: cliente, empleado, producto, etc. • complejos: estructura de datos, colecciones, objetos grandes.
2. Soporta un lenguaje de definición de objetos (ODL), define la interfaz de los tipos de objetos, no la implementación.
3. Soporta un lenguaje de manipulación de objetos (OML), se
emplea para realizar operaciones de creación, actualización y eliminación de objetos .
3. Soporta un lenguaje de consultas de objetos (OQL), aunque está
basado en el lenguaje SQL, su semántica no es la misma. Las consultas se especifican mediante objetos y sus atributos. Del mismo modo, las consultas devuelven conjuntos de objetos.
Características
Uso del Lenguaje de Definición 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; }
Características
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 año 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 representación 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. Relación interobjetos: Vínculo Atributo Clase b. Relación de herencia de jerarquía de clases
Relación InterObjetos: Vínculo Atributo Clase
Una relación atributo-clase o relación 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 continuación:
a. Relaciones 1:M b. Relaciones M:N
Relaciones 1:M
Para representar una relación 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 relación está basada en la regla: en un área trabaja uno a muchos empleados
Relaciones M:N
La relación M:N es la relación definida como “parte de un todo”. En esta relación, 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 relación está basada en la regla: un proveedor produce uno a muchos artículos, un artículo 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
Relación de herencia de jerarquía de clases
Describe la relación entre las clases y su jerarquía. Tenemos: a. Relación “is a”: las subclases son tipos específicos a
sus clases base. Son llamadas también herencia de comportamiento.
b. Relación “extends”: las subclases hereda una clase base. Se utiliza para heredar el estado y métodos entre clases
Agenda
1. Base de Datos Orientado a Objetos i. Surgimiento de la base de datos Orientado a Objetos ii. Definición
2. Conceptos básicos Orientado a Objetos 3. Modelo de Objetos 4. Sistema de Gestión de Base de Datos Orientado a Objetos
i. Introducción ii. Funcionalidades iii. Mapeo objetos iv. Ventajas y Desventajas
Sistema de gestión de base de datos OO
La información que administra una base de datos orientadas a objetos se representa a través de objetos a mediante objetos como los presentes en la programación orientada a objetos. Cuando se integra las características de una base de datos con las de un lenguaje de programación orientado a objetos, el resultado es un sistema gestor de base de datos orientada a objetos (ODBMS, OBJECT DATABASE MANAGEMENT SYSTEM).
Sistema de gestión de base de datos OO
Los diversos Sistemas de Gestión de Base de Datos Orientadas a Objetos utilizan diversos lenguajes de programación:
SGBDOO Lenguaje de Programación
ORION LISP
GemStone Extensión 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 programación orientado a objetos. A través de la persistencia, la manipulación de objetos se realiza directamente por el lenguaje de programación, 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 aplicación. Los mecanismos de control de concurrencia incluye mecanismos de recuperación durante fallos. Modos de control de concurrencia son: Pesimista: Obliga a una transacción a esperar a que se resuelva el conflicto para actualizar los datos. Optimista: Deja correr la transacción y resuelve éste al final del commit, emplea usando TimeStamp y copias de la transacción. Mixto: Combina diferentes controles de concurrencia a diferentes objetos y tipos de datas en una misma transacción.
Funcionalidades: Recuperación
Es el proceso de aplicar consistencia a los datos después de que una transacción ha abortado por fallas de hardware o de comunicación. En bases de datos orientadas a objetos, los usuarios pueden definir operaciones sobre los datos como parte de la definición de la base de datos. Una operación se especifica en dos partes: a. La interfaz que define la operación incluye el nombre de la
operación y los tipos de datos de sus argumentos (o parámetros). b. La implementación (o método) de la operación.
Aplicación Aplicación
Administrador de
Transacciones
Administrador de
Recuperaciones
Transaccion notificaciones
resultados operaciones
Funcionalidades: Facilidad de consultas ad-hoc
Es una técnica para consultar los objetos en una base de datos orientado a objetos utilizando el propio lenguaje de programación orientado a objetos. Este lenguaje de consulta de objetos soporte notación de consultas basada en valores, consultas basada en relaciones (navegabilidad) y en valores (ejecutar una operación).
Mapeo de Objetos
Es un método 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 más robusto ya que reduce las líneas de código programado, por lo que reduce la carga de trabajo de los programadores y asegura que los errores en el desarrollo sea mínimo.
Ventajas de un SGBDOO
1. Definir la información como objetos, mejora la comunicación entre usuarios, diseñadores y analistas.
2. Uso de un lenguaje para definir los datos y los métodos 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 través de colecciones.
5. Se cuenta con un estándar 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 ejecución cree su propia versión.
2. Diferentes proveedores desarrollan diferentes versiones de OQL y esto limita su verdadera interoperabilidad.
3. Es más complejo el diseño y actualizarlos. 4. No se cuenta con restricciones declarativas por que
depende de los métodos definidos en los objetos. 5. Restricciones a las Vistas (View) por comprometer a la
encapsulación. 6. No se pueden definir procedimiento almacenados.
Dámaso López Aragón Email: [email protected] [email protected] FaceBook: [email protected]