|
Para la mayoría de las
aplicaciones, almacenar y recuperar información implica alguna forma de
interacción con una base de datos relacional. Esto ha representado un
problema fundamental para los desarrolladores porque algunas veces el
diseño de datos relacionales y los ejemplares orientados a objetos
comparten estructuras de relaciones muy diferentes dentro de sus
respectivos entornos.
Las bases de datos
relacionales están estructuradas en una configuración tabular y los
ejemplares orientados a objetos normalmente están relacionados en forma
de árbol. Esta 'diferencia de impedancia' ha llevado a los
desarrolladores de varias tecnologías de persistencia de objetos a
intentar construir un puente entre el mundo relacional y el mundo
orientado a objetos.
Persistencia de Objetos
La tarea de persistir objetos Java en una base de datos relacional
actualmente está siendo facilitada por un gran número de herramientas
que permiten a los desarrolladores dirigir motores de persistencia para
convertir objetos Java a columnas/registros de una base de datos y
viceversa. Esta tarea implica serializar objetos Java estructurados en
forma de árbol a una base de datos relacional estructurada de forma
tabular y viceversa. Esencial para este esfuerzo es la necesidad de
mapear los objetos Java a columnas y registros de la base de datos de
una manera optimizada en velocidad y eficiencia.
Hibernate
Hibernate es un marco de
trabajo Java que proporciona mecanismos de mapeo objeto/relacional para
definir cómo se almacenan, eliminan, actualizan y recuperan los objetos
Java. Además, Hibernate ofrece servicios de consulta y recuperación que
pueden optimizar los esfuerzos de desarrollo dentro de entornos SQL y
JDBC. Por último, Hibernate reduce el esfuerzo necesario para convertir
hojas de resultados de la base de datos relacional en gráficos de
objetos Java.
Hibernate es un motor de
persistencia que realiza automáticamente el mapeo de objetos a bases de
datos relacionales a la vez que sirve como servicio de consultas SQL.
Con hibernate es posible crear objetos Java, con asociaciones,
herencia, polimorfismo, composición, etc. y que éstos se correspondan
con tablas de una base de datos.
Hibernate soporta
actualmente Oracle, DB2, MySQL, PostgreSQL, Sybsae, SAP DB,
HypersonicSQL, Microsoft SQL Server, Progress, Mckoi SQL, Pointbase,
Interbase e Ingres. Hibernate está pensado para ser utilizado en
arquitecturas tanto J2SE o J2EE, en esta última supone una alternativa
a JDO, CMP o BMP.
Además de todo esto, Hibernate es software libre y ha sido lanzado con una licencia LGPL. |