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 fanjul.35858@e.unavarra.es afanjul@mhproject.org [---------- Tutor ----------] Mikel MHProject Sagues