Download 2013Agosto_Base de Datos Enfoque Orientado

Document related concepts

Polimorfismo (informática) wikipedia , lookup

Objeto inmutable wikipedia , lookup

Visitor (patrón de diseño) wikipedia , lookup

Dylan (lenguaje de programación) wikipedia , lookup

Common Lisp wikipedia , lookup

Transcript
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
Area
IdEmp
Nombre
Apellido
FechaNac
Area
idArea
Nombre
Empleado
1
M
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
Proveedor
IdArt
Descripcion
Medida
PreUni
Proveedor
idProv
Nombre
Direccion
M
Articulo
M
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.
Art_Provee
Articulo
Uni_Medida
Precio
IdArt
Descripcion
Medida
PreUni
Art_Provee
M
Proveedor
idProv
Nombre
Direccion
Articulo
1
Proveedor
1
Art_Provee
M
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.
Programa
Objetos
Motor
Persistencia
Registros
Base de
Datos
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
Transaccion
notificaciones
Administrador
de
Transacciones
operaciones
resultados
Administrador
de
Recuperaciones
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]