Documentos de Académico
Documentos de Profesional
Documentos de Cultura
BASE DE DATOS
ORIENTADA A OBJETOS
v1.0
ÍNDICE
MHProject
Créditos
Bases de datos db4o
db4objects Y
(Introducción) por dentro
Bibliografía
RDBMS
Vs OODBMS Introducción Características La API
OODBMS
Objetos
Transacciones
RDBMS Nativas Comparativas Casos de Uso Motor Tratamiento Estructurados
Tecnología
El paradigma Vs Estadísticas Ejemplos Instalación De Consultas Colecciones
De
Relacional No-Nativas Gráficos Casos de Éxito Documentación Objetos Arrays
Cliente/Servidor
Herencia
QBE NQ SODA
PERSISTENCIA DE DATOS
Persistencia
PERSISTENCIA
ORDMBS DE OODBMS
OBJETOS
RDBMS
RDBMS vs OODBMS
RDBMS vs OODBMS
Tecnología Relacional
Los datos constituyen un ente propio y van
completamente separados de las funciones
que los manejan.
De hecho uno puede existir perfectamente sin
la existencia del otro.
Esto crea una complejidad añadida a la hora
de manejar esos datos.
Tecnología de Objetos
Los datos coexisten junto a los procesos que
los tratan.
Estas entidades son los Objetos
Simplifica el tratamiento de los datos.
RDBMS
EL PARADIGMA RELACIONAL
El Paradigma Relacional
CLASE PARADIGMA
RDBMS
OBJETO1
X
TABLA1
X
TABLA2
OBJETO2
OBJETO3
X
ENTORNO DE OBJETOS ENTORNO DE DATOS
MAPEO
CLASE
VERTICAL
RDBMS
REGISTRO1
TABLA1 TABLA2
OBJETO1
REGISTRO2
OBJETO2
HORIZONTAL
OBJETO3
REGISTRO3
<atributo>
ENTORNO DE OBJETOS ENTORNO DE DATOS
<columna>
OODBMS
(Object oriented Data Base
Manager System)
OODBMS
Mandatory features:
Complex objects (OO feature)
objects can contain attributes which are themselves objects.
Object identity (OO)
Encapsulation (OO)
Classes (OO)
Inheritance (OO): class hierarchies
Overriding, Overloading, Late Binding (OO)
Computational completeness (OO
Persistence (DB)
data must remain after the process that created it has terminated
Secondary Storage Management (DB)
Concurrency (DB)
Recovery (DB)
Ad hoc query facility (DB)
not necessarily a query language – could be a graphical query tool
Cambios de esquemas
Falta de consenso en standards
Falta de ad-hoc querying
INTRODUCCIÓN
Db4o: Introducción
db4o
Db4o.queries
QBE SODA NQ
Query By Example Native Queries
Exportamos a
XML
(Xstream)
Novell TMT
BMW Car IT Eastern Data
Indra Systems Electrabel
Massie Labas Web Radiance
Bosch Hertz
MOTOR
INSTALACION
DOCUMENTACION
Db4o por dentro
Motor, Instalación, Documentación
La API
Db4o Por dentro: La API
com.db4o.
com.db4o.
ObjectContainer
Db4o
com.db4o.ObjectContainer.
Puede ser una dB tanto en single-mode como en
client to server connection.
Todos los ObjectContainer manejan una
transacción. Todo trabajo es transaccional.
Cada ObjectContainer mantiene sus propias
referencias a objetos almacenados e
instanciados.
Un ObjectContainer esta diseñado para
permanecer abierto mientras se trabaja con ellos,
cuando cerramos una dB todas las referencias a
objetos desaparecen de la memoria RAM.
com.db4o.ext nosnos
com.db4o.query
com.db4o.config extiende
nos ofrece
permiteyelproporciona
configurar
interface de las
y/o
funciones
tunear
consultas avanzadas
la base
mediante 3 de
de datos acom.db4o.
tiposnuestro (2 pasos)
de consultas
gusto
-Paquete
Razones:que alberga contienelatipos
com.db4o clase
y clases
predicado
que nospara permiten
-Es másconsultas
realizar
configurar fácil
y/o ytunear
rápido
mediante
la base
Native
de
empezar
datosQuery
aa nuestro
utilizar
(NQ).lagusto.
db.
-Será
-NQ
-La configuración
permite
más fácil mejor
para
dey más
la
otros
base
rápida
de
productos
datos
implementación
secopiar
hace laporinterface
norma
pero
reduce
general
básica deelantes
rendimiento
la db.
de abrir dela
-Es un en
consultas.
sesión sencillo
la misma.
ejemplo de
cómo de ligera puede llegar
com.db4o.ext com.db4o.config com.db4o.query a ser nuestra dB.
TRATAMIENTO
DE
OBJETOS
dbo4: Tratamiento de Objetos
ObjectContainer db = Db4o.openFile(“Archivo.yap”);
try {
// hacer algo con la db
Representa la
finally { base de datos
Almacenar objetos
Simplemente llamamos a .set( ) pasando
cualquier objeto como parámetro
db.set(pilot1);
Almacenamos el objeto
con un simple set
System.out.println("Stored "+pilot1);
Recuperar objetos
Lo intentamos con la sencilla interface QBE
Listamos todos !
Creamos un objeto
Pilot proto = new Pilot(null,0); prototipo con new()
(con null’s y 0’s)
ObjectSet result=db.get(proto);
Consultamos
listResult(result); con .get()
Listamos
resultados
Listamos
resultados
Actualizar objetos
Lo intentamos con la sencilla interface QBE
ObjectSet result=db.get(new Pilot("Michael",0));
Recuperamos un
Pilot found=(Pilot)result.next(); objeto de la db
found.addPoints(11);
Lo tratamos
(Actualizamos)
db.set(found);
retrieveAllPilots(db); Lo almacenamos
En la misma
sesión
Borrar objetos
Simplemente llamamos a .delete( ) pasando
cualquier objeto como parámetro
db.delete(found);
Borramos el objeto
conocido
retrieveAllPilots(db);
CONSULTAS DE
OBJETOS
dbo4: Consulta de Objetos
Listamos
resultados
Consultamos esa
expresión
mediante .query()
Imponemos ese
nodo a ‘Toda la
Query query = db.query(); clase pilot’ con
.constrain() sobre
query.constrain(Pilot.class); Pilot.class
Descendemos a
points e
imponemos >60
19/12/2005 E.T.S de Ingenieros de Telecomunicación .64
Db4o POR DENTRO
Objetos Estructurados
Colecciones y Arrays
Herencia
dbo4: Objetos Estructurados
car
Db4o
database
pilot
Consultas estructuradas
Consultar un piloto por su modelo de coche
Class: Car
el
mod pilo
t
Equals (“Ferrari”)
Creamos nuevo
nodo de consulta
Query carquery=db.query(); con .query()
Actualización de profundidad
Si queremos actualizar un objeto subordinado
salvando (almacenando) su objeto superior
en la dB debemos configurar la db para
actualización de profundida con
.cascadeOnUpdate() antes de abrir la db.
Por defecto la profundidad es 1 lo cual
permite actualizar atributos primitivos o
Strings.
Borrado recursivo
De forma análoga a la actualización el
borrado recursivo debe ser configurado
mediante .cascadeOnDelete() antes de la
apertura de la dB.
Con esto conseguimos borrar los objetos
subordinados borrando únicamente el objeto
de mayor nivel.
Pero que pasa si un objeto subordinado está
referenciado por otro objeto? Cuidado!!!
Borramos Borramos
Consulta
TRANSACCIONES
TECNOLOGÍA
CLIENTE/SERVIDOR
db4o: Transacciones Simples
Se t (
)
RollB
a ck() Db4o
Refre database
s h()
Créditos y Bibliografía
www.mhproject.org