mhproject bases de datos en mhp db4o y jdbc. mhproject contenidos odbms vs rdbms 1 jdbc y cdc...
TRANSCRIPT
MHProject
Bases de Datos en MHPDb4o y JDBC
MHProject
Contenidos
ODBMS vs RDBMS1
JDBC y CDC Personal Profile2
Db4o - H2 - Hsqldb 3
4 ATS – Db4o (Implementación)
ATS – Db4o (Presentación) 5
MHProject
ODBMS vs RDBMSIntroduccción
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
• 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.
2 TecnologíasCara a Cara
• Los datos coexisten junto a los procesos que los tratan.
• Estas entidades son los Objetos
• Simplifica el tratamiento de los datos.
ODBMS vs RDBMS
Relacional De Objetos
MHProject
ODBMS vs RDBMSEl paradigma Relacional
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
RDBMS
TABLA1 TABLA2
OBJETO3
OBJETO1
OBJETO2
CLASE
XXXENTORNO DE OBJETOS ENTORNO DE DATOS
PARADIGMA
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
ENTORNO DE OBJETOS ENTORNO DE DATOS
MAPEO
RDBMS
TABLA1 TABLA2
REGISTRO1
REGISTRO2
REGISTRO3OBJETO3
OBJETO1
OBJETO2
<atributo>
<columna>
MHProject
Java Database Connectivity (JDBC)Introducción
MHProject
Java Database Connectivity - JDBC
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 Driver JDBC Driver
JDBC Driver Manager
JDBC API
Aplicación Java
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
CDC – Personal Basis ProfileJDBC Optional Package (JSR 169)
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
Optional Packages
Personal Basis Profile
Foundation Profile
CDC - JVM
JDBC Optional Package
Standard GUI toolkitSoporte Xlet Model
Red y soporte I/O
Set-Top Box
• Arquitectura de Plataforma
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/configurations/articles/cdc/jdbc/
MHProject
Casos de UsoDb4o - H2 - Hsqldb
MHProject
Casos de Uso
Db4oDb4oBase de datos Orientada a Objetos y OpenSourceCreada por
HsqldbHsqldbBase de datos Relacional con JDBC y OpenSourceFundada por Thomas Mueller
H2H2Base de datos Relacional con JDBC y OpenSourceCreada por Thomas Mueller
JDBC
MHProject
Casos de Uso: Comparativa
db4o
• Orientada a Objetos.
• Intuitiva• Pequeña• Muy Rápida• Pequeña• Completa• Soporta
encriptación
H2
• Thin Client• Super
Rápida• Standard
JDBC• Creada
desde cero• Pequeña• Soporta
encriptación
Hsqldb
• Robusta• Thin Client• Standard
JDBC• Muy
Soportada• Muy Rápida• Super
Pequeña• Soporta CDC
• Ventajas:
MHProject
Casos de Uso: Comparativa
db4o
• Thick Client
• Necesita de BigDecimal
• Estricto sincronismo client/server
• No standard
H2
• Necesita de BigDecimal
• No soporta CDC
• Necesidad de mapeo
• Necesidad de librería SQL
Hsqldb
• Necesita de BigDecimal
• Necesidad de mapeo
• No soporta encriptación de database
• Necesidad de libreria SQL
• Desventajas:
MHProject
Casos de Uso: Comparativa
MHProject
ATS-Db4oImplementación
MHProject
ATS - Db4o: ¿Por qué?
DataBase 4 ObjectsDataBase 4 Objects
OODBMS
Completa
Conocida
Fácil
MHProject
ATS - Db4o: Fases
• Planteamiento inicial
• Definicion de un modelo standard de
datos
• Implementación del modelo de datos
• Planteamiento inicial
• Definicion de un modelo standard de
datos
• Implementación del modelo de datos
Fase 1Fase 1 Fase 2Fase 2 Fase 3Fase 3
• Esquema y Diseño de Interfaz de Usuario
• Implementación mediante componentes
reutilizables
• Esquema y Diseño de Interfaz de Usuario
• Implementación mediante componentes
reutilizables
• Definicion de acceso y consulta a
base de datos
• Implementación de un controlador
• Definicion de acceso y consulta a
base de datos
• Implementación de un controlador
MHProject
ATS - Db4o: MVC
Modelo: Dominio de la información
Controlador: Responde a eventos
Vista: Representación del Modelo
MVCMVC
MHProject
DataBinding
Desconciertoentre
VersionesFalta de clases
BigDecimalBigInteger
Sincronismoentre
Cliente yServidorImágenes
ProblemasProblemas
ATS - Db4o: Problemas
MHProject
ATS-Db4o:Diagrama de Clases
MHProject
ATS-Db4o: Diagrama de Flujo
EnventoConsulta
abrirCliente
consultarPacienteQBE
toString
getFoto
getHIcon
DbHandler
Paciente
Paciente UsuarioPersistent
Image
HIcon
getImage
HIcon Db4o
getPaciente
Paciente
MHProject
ATS-Db4Presentación
MHProject
Ru
ego
s y
Pre
gu
nta
s
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]@mhproject.org
[---------- Tutor ----------]Mikel Sagues
[---------- Bibliografía ----------]Db4o.com: Tutorial and Presentations
JDBC Implementation Reference
14/12/2006Creative Commons 2.5: MHProject.org
Cré
dit
os
y B
iblio
gra
fía