Hibernate ORM

0

No comments posted yet

Comments

Slide 1

ORM/Hibernate Richard Poblete M. richard.poblete@econube.cl

Slide 2

Temario Problemática Programación Orientada a Objetos Origen Conceptos Características de la POO Bases de datos relacionales Características Elementos Base de datos orientada a objetos Bases de datos distintas a SQL Entonces Soluciones??? ORM JAVA Hibernate Historia Características Mapping /Mapeo Relacional Persistencia Hibernate Query Language (HQL) Integración Entidades y componentes Implementaciones Conclusión del autor Bibliografía Hibernate

Slide 3

Problema a Resolver El problema: en la POO, las tareas de manejo de datos son implementadas generalmente por la manipulación de objetos, los cuales son casi siempre valores no escalares. Por su contraparte los SGBD SQL , solamente puede almacenar y manipular valores escalares como enteros y cadenas, organizados en tablas. El vía crucis del problema reside en traducir estos objetos a formas en las cuales puedan ser almacenadas en la base de datos, y los cuáles pueden ser recuperados más tarde fácilmente, mientras se preserven las propiedades de los objetos y sus relaciones; estos objetos se dice entonces que son persistentes. Quiero Manejar!!!

Slide 4

POO Definición y Origenes: Es un paradigma que utiliza objetos como elementos fundamentales en la construcción de la solución. Surge en los años 70 (Simula 67, Centro de Cómputo Noruego). Un objeto es una abstracción de algún hecho o cosa del mundo real que tiene atributos que representan sus características o propiedades y métodos que representan su comportamiento o acciones que realizan. Lenguaje de programación: C++, Java, C#, VB.Net, etc. Conceptos fundamentales: Clase Herencia Objeto Método Evento Mensaje Propiedad o Atributo Estado Interno Componentes de Objetos: Atributos, identidad, relaciones y métodos Características Abstracción Encapsulamiento Principio de ocultación Polimorfismo Herencia Recolección de basura

Slide 5

Base de datos Relacionales Bases de datos relacionales: Una base de datos relacional es una base de datos que cumple con el modelo relacional, el cual es el modelo más utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente. Permiten establecer interconexiones (relaciones) entre los datos (que están guardados en tablas), y trabajar con ellos conjuntamente. Tras ser postuladas sus bases en 1970 por Edgar Frank Codd, de los laboratorios IBM en San José (California), no tardó en consolidarse como un nuevo paradigma en los modelos de base de datos. Características Una base de datos relacional se compone de varias tablas o relaciones. No pueden existir dos tablas con el mismo nombre. Cada tabla es a su vez un conjunto de registros, filas o tuplas. Elementos Relaciones base y derivadas Restricciones Dominios Clave única Clave primaria Clave foránea Clave índice

Slide 6

ODBMS Base de datos orientada a objetos: La información se representa mediante objetos como los presentes en la POO. Cuando se integra las características de una base de datos con las de un lenguaje de POO, el resultado es un sistema gestor de base de datos orientada a objetos. Un ODBMS hace que los objetos de la base de datos aparezcan como objetos de un lenguaje de programación en uno o más lenguajes de programación a los que dé soporte. Un ODBMS extiende los lenguajes con datos persistentes de forma transparente, control de concurrencia, recuperación de datos, consultas asociativas y otras capacidades. Trabajan bien con lenguajes de programación orientados a objetos como Java, C#, Visual Basic.NET y C++. Los ODBMS usan exactamente el mismo modelo que estos lenguajes de programación. Los ODBMS proporcionan los costes de desarrollo más bajos y el mejor rendimiento cuando se usan objetos gracias a que almacenan objetos en disco y tienen una integración transparente con el programa escrito en un lenguaje de POO, al almacenar exactamente el modelo de objeto usado a nivel aplicativo, lo que reduce los costes de desarrollo y mantenimiento.

Slide 7

Bases de datos distintas a SQL Las bases de datos como Caché no necesitan mapeo objeto-relacional manual. El acceso del SQL a los valores no escalares ya ha sido construido. Dificultades: Las bases de datos orientadas a objetos e hibridas aún no han conseguido una alta aceptación y uso. Limitaciones de cambiar de un SGBD SQL a un sistema orientado totalmente a objetos implica que se pierde la capacidad de crear sentencias SQL Muchos programadores se encuentran más a gusto con SQL, aún cuando la mayoría de las bases de datos comerciales orientadas a objetos tienen SQL de manera limitada.

Slide 8

Soluciones de la Persistencia de los Objetos?? Posibles Soluciones: Usando ODBMS Poco desarrollo, aceptación y falta de madurez Mucho conocimiento de programadores en SQL No soluciona el problema de desarrollos sobre sistemas legacy con almacenamiento estructurado Usando Bases de Datos Híbridas(Cache) Idem problema anterior 1 y 2 Escalabilidad incierta Desarrollo propio dela integración con la base de datos Los desarrollos propios tiene problemas en los tiempos de desarrollo, se encárese la mantención, no es un estándar!! Usando ORM/Hibernate!!! Que????

Slide 9

ORM O/RM, ORM, y O/R mapping: El mapeo objeto-relacional (Object-Relational mapping) es una técnica de programación para convertir datos entre el sistema de tipos utilizado en un lenguaje POO y el utilizado en una base de datos relacional. En la práctica esto crea una base de datos orientada a objetos virtual, sobre la base de datos relacional. Esto posibilita el uso de las características propias de la POO (básicamente herencia y polimorfismo). Una implementación del mapeo relacional de objetos podría necesitar elegir de manera sistemática y predictiva qué tablas usar y generar las sentencias SQL necesarias. Muchos paquetes han sido desarrollados para reducir el tedioso proceso de desarrollo de sistemas de mapeo relacional de objetos proveyendo bibliotecas de clases que son capaces de realizar mapeos automáticamente. Desde el punto de vista de un programador, el sistema debe lucir como un almacén de objetos persistentes. Uno puede crear objetos y trabajar normalmente con ellos, los cambios que sufran terminarán siendo reflejados en la base de datos. Sin embargo, en la práctica no es tan simple, provocando que el programa sea más lento y utilice más memoria que el código "escrito a mano". Hibernate es otro ejemplo, este framework de mapeo objeto-relacional más usado en Java inspiró la especificación EJB 3.

Slide 10

JAVA Java es un lenguaje POO desarrollado por Sun Microsystems a principios de los años 90. El lenguaje en sí mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos más simple y elimina herramientas de bajo nivel, como la manipulación directa de punteros o memoria. Las aplicaciones Java están típicamente compiladas en un bytecode, aunque la compilación en código máquina nativo también es posible. La implementación original y de referencia del compilador, la máquina virtual y las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems en 1995. EL desarrollo y evolución del lenguaje es a través del Java Community Process Entre noviembre de 2006 y mayo de 2007, Sun Microsystems liberó la mayor parte de sus tecnologías Java bajo la licencia GNU GPL, prácticamente todo el Java de Sun es ahora software libre (aunque la biblioteca de clases de Sun que se requiere para ejecutar los programas Java aún no lo es).

Slide 11

ORM/Hibernate Hibernate: es una herramienta de Mapeo objeto-relacional para la plataforma Java (para .Net NHibernate) facilita el mapeo de atributos entre una base de datos relacional tradicional y el modelo de objetos de una aplicación, mediante archivos declarativos (XML) que permiten establecer estas relaciones. Hibernate es software libre, distribuido bajo los términos de la licencia GNU LGPL. Historia fue una iniciativa de un grupo de desarrolladores dispersos alrededor del mundo conducidos por Gavin King. Tiempo después, JBoss Inc. (empresa comprada por Red Hat) contrató a los principales desarrolladores de Hibernate y trabajó con ellos para brindar un mejor soporte al proyecto. La version actual de desarrollo de Hibernate es la 3.x, la cual incorpora nuevas características, como una nueva arquitectura Interceptor/Callback, filtros definidos por el usuario, y uso de anotaciones para definir la correspondencia en lugar o conjuntamente con los archivos XML. Hibernate 3 también guarda cercanía con la especificación EJB 3.0 y actúa como la espina dorsal de la implementación de EJB 3.0 en Jboss. Características Mapping o Mapeo relacional Persistencia Hivernate Query Language (HQL) Integracion Integración Estidades y Componentes Otras Implementaciones : NeXT, Enterprise Objects Framework, OpenStep, WebObjects, Apache Cayenne, Java Data Objects, Enterprise Java Beans, iPersist, Linq, Propel, QuickDB, Hibernate. Hibernate

Slide 12

Conclusión y Bibliografia Conclusión: A la hora de encontrarnos con la dificultad de almacenar las persistencias de los objetos, vienen como posibles soluciones un sin número de alternativas, algunas menos decorosas como construir nuestro propio ORM, otras utilizar ORM existentes y en el caso de Java usar el framework Hibernate, como también utilizar ODBMS u base de datos hibridas con almacenamiento relacional y de objetos. Por tanto hoy por hoy al pensar en esta problemática específicamente para Java como estandar de facto en la construcciones de apliciones web de alta disponibilidad, flexibilidad y escalabilidad en la web; Hiberante es un ejemplo de una solución robusta y estándar. Bibliografía Hibernate Elliott, J., & O'Brien, T. (Abril 2008). Harnessing Hibernate (Primera ed.). O'Reilly Media. Iverson, W. (Diciembre 2, 2004). Hibernate: A J2EE Developer's Guide (Primera ed.). Addison Wesley. James, E. (Mayo 10, 2004). Hibernate: A Developer's Notebook (First ed.). O'Reilly Media. King, G., & Christian, B. (Agosto 1, 2004). Hibernate In Action (segunda ed.). Manning Publications. King, G., & Christian, B. (Noviembre 24, 2006). Java Persistence with Hibernate (Segunda ed.). Manning Publications. Linwood, J., & Minter, D. (Agosto 25, 2006). Beginning Hibernate: From Novice to Professional (Third ed.). Apress. Minter, D., & Linwood, J. (Junio 27, 2005). Pro Hibernate 3 (Primera ed.). Apress. Pugh, E., & Gradecki, J. D. (Octubre 8, 2004). Professional Hibernate (Programmer to Programmer) (Primera ed.). Wrox.

Summary: Como relacionar un modelo entidad relación y un modelo orientado a objetos: Hibernate ORM JAVA OOP SQL

Tags: hibernate orm java oop sql

URL:
More by this User
Most Viewed
Previous Page Next Page
Curso ITIL ISO20000
Curso ITIL IS...
 
 
 
Previous Page Next Page