Download Bases de Datos en MHP

Document related concepts
no text concepts found
Transcript
Db4o y JDBC
Bases de Datos en MHP
MHProject
Contenidos
1
ODBMS vs RDBMS
2
JDBC y CDC Personal Profile
3
Db4o - H2 - Hsqldb
4
ATS – Db4o (Implementación)
5
ATS – Db4o (Presentación)
MHProject
Introduccción
ODBMS vs RDBMS
MHProject
ODBMS vs RDBMS
 2 Tecnologías cara a cara
 Tecnología Relacional
• Orientada al uso de funciones
• Centrada en los datos
 Tecnología de Objetos
• Orientada a Objetos
• Centrada en servicios
MHProject
ODBMS vs RDBMS
2 Tecnologías
Cara a Cara
Relacional
•
•
•
Los datos constituyen
un ente propio y van
completamente
separados de las
funciones que los
manejan.
Pueden existir
perfectamente sin la
existencia del otro.
Complejidad añadida a
la hora de manejar
esos datos.
De Objetos
•
•
•
Los datos coexisten
junto a los procesos que
los tratan.
Estas entidades son los
Objetos
Simplifica el tratamiento
de los datos.
MHProject
El paradigma Relacional
ODBMS vs RDBMS
MHProject
El paradigma Relacional
 Los datos son independientes de las
entidades que los procesan
 Dichos datos deben ser almacenados en
bases de datos relacionales compuestas
principalmente de Tablas, Filas (registros), y
Campos.
 Dichos datos deben mantener una relación
coherente entre ellos (Relación impuesta por
la Base de datos).
MHProject
El paradigma Relacional
 ¿Qué pasa si queremos almacenar
Objetos creados por un lenguaje
orientado a Objetos en una base de
datos Relacional?
 En este instante se produce lo que
vamos a llamar la Inadaptación de
Impedancias.
(Entre Objetos y Datos Relacionales)
MHProject
Esquema del Paradigma Relacional
CLASE
PARADIGMA
RDBMS
X
X
X
TABLA1
OBJETO1
OBJETO2
OBJETO3
ENTORNO DE OBJETOS
TABLA2
ENTORNO DE DATOS
MHProject
Paradigma Relacional
 ¿Qué pasa si queremos almacenar
Objetos creados por un lenguaje
orientado a Objetos en una base de
datos Relacional?
 La solución comunmente aceptada
pasa por lo que llamaremos
Mapeo Objeto - Relacional
MHProject
Esquema del Paradigma Relacional
CLASE
MAPEO
REGISTRO1
RDBMS
TABLA1
TABLA2
OBJETO1
REGISTRO2
OBJETO2
OBJETO3
REGISTRO3
ENTORNO DE OBJETOS
<atributo>
ENTORNO DE DATOS
<columna>
MHProject
Introducción
Java Database Connectivity
(JDBC)
MHProject
Java Database Connectivity
 API de acceso a
Bases de Datos
desde Java
 Independiente de
la plataforma o
Base de Datos (*)
 Uso de lenguaje de
consulta y acceso
estructurado SQL
 St.executeQuery(“sql”);
- JDBC
Aplicación Java
JDBC API
JDBC Driver Manager
JDBC Driver
JDBC Driver
DBMS
DBMS
MHProject
Java Database Connectivity
- JDBC
 Define una arquitectura standard
 Permite a los fabricantes desarrollar sus propios
drivers optimizados.
• Class.forName(“org.mySQL.Driver”);
 Puede hacer uso de drivers ODBC
ya existentes en el mercado.
 Arquitectura en 2 o 3 capas
 Arquitectura
 Embedida o en Memoria
 Cliente / Servidor (Cliente “delgado”)
MHProject
JDBC Optional Package (JSR 169)
CDC – Personal Basis Profile
MHProject
JDBC Optional Package
 Problema 1
 Ningún perfil basado en CDC nos ofrece soporte
para conexión a base de datos.
 Problema 2
 Varias de las funcionalidades ofrecidas por JDBC no
son admisibles por la plataforma CDC debido a sus
restricciones en la implementación.
 Solución:
 JDBC Optional Package
MHProject
JDBC Optional Package
• Arquitectura de Plataforma
JDBC Optional Package
Optional Packages
Standard GUI toolkit
Soporte Xlet Model
Personal Basis Profile
Red y soporte I/O
Foundation Profile
Set-Top Box
CDC - JVM
MHProject
JDBC Optional Package
 Se ha definido para dar soporte de
acceso a base de datos desde
aplicaciones corriendo sobre CDC.
 Es un subconjunto de los paquetes
java.sql y javax.sql de JDBC 3.0
 DriverManager vs DataSource
 Se elimina el DriverManager encargado de cargar los
drivers JDBC por una versión más ligera que ofrece
transparencia y se adapta a CDC (DataSource)
 http://developers.sun.com/techtopics/mobility/confi
gurations/articles/cdc/jdbc/
MHProject
Db4o - H2 - Hsqldb
Casos de Uso
MHProject
Casos de Uso
Db4o
Base de datos Orientada a
Objetos y OpenSource
Creada por
Hsqldb
Base de datos Relacional
con JDBC y OpenSource
Fundada por Thomas Mueller
JDBC
H2
Base de datos Relacional
con JDBC y OpenSource
Creada por Thomas Mueller
MHProject
Casos de Uso: Comparativa
• Ventajas:
db4o
Hsqldb
H2
• Orientada a
Objetos.
• Intuitiva
• Pequeña
• Muy Rápida
• Pequeña
• Completa
• Soporta
encriptación
• Robusta
• Thin Client
• Standard
JDBC
• Muy
Soportada
• Muy Rápida
• Super
Pequeña
• Soporta CDC
• Thin Client
• Super
Rápida
• Standard
JDBC
• Creada
desde cero
• Pequeña
• Soporta
encriptación
MHProject
Casos de Uso: Comparativa
• Desventajas:
db4o
Hsqldb
H2
• Thick Client
• Necesita de
BigDecimal
• Estricto
sincronismo
client/server
• No
standard
• Necesita de
BigDecimal
• Necesidad
de mapeo
• No soporta
encriptación
de database
• Necesidad
de libreria
SQL
• Necesita de
BigDecimal
• No soporta
CDC
• Necesidad
de mapeo
• Necesidad
de librería
SQL
MHProject
Casos de Uso: Comparativa
MHProject
Implementación
ATS-Db4o
MHProject
ATS - Db4o: ¿Por qué?
Fácil
Conocida
DataBase 4 Objects
Completa
OODBMS
MHProject
ATS - Db4o: Fases
Fase 1•
Planteamie
nto inicial
• Definicion
de un
modelo
standard
de datos
•
Implement
ación del
modelo de
datos
Fase 2
• Definicion
de acceso
y consulta
a base de
datos
•
Implement
ación de
un
controlador
Fase 3
• Esquema y
Diseño de
Interfaz de
Usuario
•
Implementaci
ón mediante
componentes
reutilizables
MHProject
ATS - Db4o: MVC
Modelo: Dominio de la información
Controlador: Responde a eventos
MVC
Vista: Representación del Modelo
MHProject
ATS - Db4o: Problemas
Desconcierto
entre
Versiones
Data
Binding
Imágenes
Falta de clases
BigDecimal
BigInteger
Problemas
Sincronismo
entre
Cliente y
Servidor
MHProject
ATS-Db4o:Diagrama de Clases
MHProject
ATS-Db4o: Diagrama de Flujo
EnventoConsulta
DbHandler
Paciente Usuario
Persistent
Image
HIcon
Db4o
abrirCliente
consultarPacienteQBE
Paciente
getPaciente
Paciente
toString
getFoto
getHIcon
HIcon
getImage
MHProject
Presentación
ATS-Db4
MHProject
Créditos y Bibliografía
Ruegos y Preguntas
Base de datos
en MHP
[---------- Proyecto ----------]
MHProject v2.0
www.mhproject.org
E.T.S de Ingenieros de Telecomunicación
Universidad Pública de Navarra
[---------- Autor ----------]
Alejandro Fanjul
[email protected]
[email protected]
[---------- Tutor ----------]
Mikel MHProject
Sagues