Db4o y JDBC Bases de Datos en MHP
Contenidos ODBMS vs RDBMS 1 JDBC y CDC Personal Profile 2 Db4o - H2 - Hsqldb 3 4 ATS – Db4o (Implementación) ATS – Db4o (Presentación) 5
Introduccción ODBMS vs RDBMS
2 Tecnologías cara a cara 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
ODBMS vs RDBMS 2 Tecnologías Relacional De Objetos Cara a Cara Relacional De Objetos 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. Los datos coexisten junto a los procesos que los tratan. Estas entidades son los Objetos Simplifica el tratamiento de los datos.
El paradigma Relacional ODBMS vs RDBMS
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).
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)
Esquema del Paradigma Relacional CLASE PARADIGMA RDBMS X OBJETO1 TABLA1 X TABLA2 X OBJETO2 OBJETO3 ENTORNO DE OBJETOS ENTORNO DE DATOS
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
Esquema del Paradigma Relacional CLASE MAPEO RDBMS REGISTRO1 OBJETO1 TABLA1 TABLA2 REGISTRO2 OBJETO2 OBJETO3 REGISTRO3 <atributo> <columna> ENTORNO DE OBJETOS ENTORNO DE DATOS
Java Database Connectivity (JDBC) Introducción Java Database Connectivity (JDBC)
Java Database Connectivity - JDBC Aplicación Java 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 API JDBC Driver Manager JDBC Driver JDBC Driver DBMS DBMS
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”)
CDC – Personal Basis Profile JDBC Optional Package (JSR 169) CDC – Personal Basis Profile
Problema 1 Problema 2 Solución: JDBC Optional Package 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
Personal Basis Profile 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
Es un subconjunto de los paquetes java.sql y javax.sql de JDBC 3.0 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/
Db4o - H2 - Hsqldb Casos de Uso
Casos de Uso Db4o H2 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
Casos de Uso: Comparativa Ventajas: db4o Orientada a Objetos. Intuitiva Pequeña Muy Rápida Completa Soporta encriptación Hsqldb Robusta Thin Client Standard JDBC Muy Soportada Muy Rápida Super Pequeña Soporta CDC H2 Thin Client Super Rápida Standard JDBC Creada desde cero Pequeña Soporta encriptación
Casos de Uso: Comparativa Desventajas: db4o Thick Client Necesita de BigDecimal Estricto sincronismo client/server No standard Hsqldb Necesita de BigDecimal Necesidad de mapeo No soporta encriptación de database Necesidad de libreria SQL H2 Necesita de BigDecimal No soporta CDC Necesidad de mapeo Necesidad de librería SQL
Casos de Uso: Comparativa
Implementación ATS-Db4o
ATS - Db4o: ¿Por qué? DataBase 4 Objects OODBMS Completa Fácil Conocida Completa DataBase 4 Objects OODBMS
ATS - Db4o: Fases Fase 1 Fase 2 Fase 3 Planteamiento inicial Definicion de un modelo standard de datos Implementación del modelo de datos 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
ATS - Db4o: MVC MVC Modelo: Dominio de la información Controlador: Responde a eventos Vista: Representación del Modelo
Falta de clases BigDecimal ATS - Db4o: Problemas Desconcierto entre Versiones Falta de clases BigDecimal BigInteger Data Binding Problemas Sincronismo entre Cliente y Servidor Imágenes
ATS-Db4o:Diagrama de Clases
ATS-Db4o: Diagrama de Flujo
Presentación ATS-Db4
Muchas Gracias 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 fanjul.35858@e.unavarra.es afanjul@mhproject.org [---------- Tutor ----------] Mikel Sagues mikel.sagues@unavarra.es [---------- Bibliografía ----------] Db4o.com: Tutorial and Presentations JDBC Implementation Reference 14/12/2006 Creative Commons 2.5: MHProject.org Ruegos y Preguntas Muchas Gracias Créditos y Bibliografía