MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC...

32
MHProject Bases de Datos en MHP Db4o y JDBC

Transcript of MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC...

Page 1: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

MHProject

Bases de Datos en MHPDb4o y JDBC

Page 2: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

MHProject

Contenidos

ODBMS vs RDBMS1

JDBC y CDC Personal Profile2

Db4o - H2 - Hsqldb 3

4 ATS – Db4o (Implementación)

ATS – Db4o (Presentación) 5

Page 3: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

MHProject

ODBMS vs RDBMSIntroduccción

Page 4: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementació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

Page 5: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

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

Page 6: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

MHProject

ODBMS vs RDBMSEl paradigma Relacional

Page 7: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

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).

Page 8: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

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)

Page 9: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

MHProject

Esquema del Paradigma Relacional

RDBMS

TABLA1 TABLA2

OBJETO3

OBJETO1

OBJETO2

CLASE

XXXENTORNO DE OBJETOS ENTORNO DE DATOS

PARADIGMA

Page 10: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

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

Page 11: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

MHProject

Esquema del Paradigma Relacional

CLASE

ENTORNO DE OBJETOS ENTORNO DE DATOS

MAPEO

RDBMS

TABLA1 TABLA2

REGISTRO1

REGISTRO2

REGISTRO3OBJETO3

OBJETO1

OBJETO2

<atributo>

<columna>

Page 12: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

MHProject

Java Database Connectivity (JDBC)Introducción

Page 13: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementació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

Page 14: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

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”)

Page 15: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

MHProject

CDC – Personal Basis ProfileJDBC Optional Package (JSR 169)

Page 16: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

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

Page 17: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

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

Page 18: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

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/

Page 19: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

MHProject

Casos de UsoDb4o - H2 - Hsqldb

Page 20: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

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

Page 21: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

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:

Page 22: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

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:

Page 23: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

MHProject

Casos de Uso: Comparativa

Page 24: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

MHProject

ATS-Db4oImplementación

Page 25: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

MHProject

ATS - Db4o: ¿Por qué?

DataBase 4 ObjectsDataBase 4 Objects

OODBMS

Completa

Conocida

Fácil

Page 26: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

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

Page 27: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

MHProject

ATS - Db4o: MVC

Modelo: Dominio de la información

Controlador: Responde a eventos

Vista: Representación del Modelo

MVCMVC

Page 28: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

MHProject

DataBinding

Desconciertoentre

VersionesFalta de clases

BigDecimalBigInteger

Sincronismoentre

Cliente yServidorImágenes

ProblemasProblemas

ATS - Db4o: Problemas

Page 29: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

MHProject

ATS-Db4o:Diagrama de Clases

Page 30: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

MHProject

ATS-Db4o: Diagrama de Flujo

EnventoConsulta

abrirCliente

consultarPacienteQBE

toString

getFoto

getHIcon

DbHandler

Paciente

Paciente UsuarioPersistent

Image

HIcon

getImage

HIcon Db4o

getPaciente

Paciente

Page 31: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementación)

MHProject

ATS-Db4Presentación

Page 32: MHProject Bases de Datos en MHP Db4o y JDBC. MHProject Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 34 ATS – Db4o (Implementació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

[email protected]

[---------- 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