INTEGRANTE: CARHUAYAL PUENTE, ISABEL ALISSON
TEMA: ORM (MAPEO OBJETO – RELACIONAL)
Mapeo objeto-relacional
DEFINICIONES:
Es una técnica de programación para convertir datos entre el
lenguaje de programación orientado a objetos utilizado y el
sistema de base de datos relacional utilizado en el desarrollo de
nuestra aplicación.
Es un componente de software que me permite trabajar con los
datos persistidos como si ellos fueran parte de una base de
datos orientada a objetos (en este caso virtual). Debido a que
lo standard es trabajar con BD relacionales, se deben realizar
operaciones que permitan transformar un registro en objeto y
viceversa. A esta funcionalidad se la llama Mapeo objeto-
relacional (ORM).
EL PROBLEMA
Actualmente, las bases de datos relacionales solo pueden guardar datos
primitivos, por lo que no podemos guardar objetos que vayamos creando en
nuestra aplicación, sino lo que hacemos es convertir los datos del objeto en
datos primitivos que si podremos almacenar en las tablas correspondientes
de nuestras bases de datos. Si luego necesitamos ese objeto en alguna
parte de nuestra aplicación, debemos de recuperar los datos primitivos de la
base de datos y volver a construir el objeto.
SOLUCIÓN
El mapeo objeto-relacional lo que nos ayudará será
precisamente a eso, a olvidarnos completamente de
como convertir los objetos en datos primitivos para
almacenarlos y viceversa.
VENTAJAS
• La mayoría de las herramientas actuales permiten la creación del modelo
por medio del esquema de la base de datos, leyendo el esquema, nos crea
el modelo adecuado.
Rapidez en el
desarrollo
• Al utilizar un sistema ORM, lo que conseguidos es separarnos totalmente del sistema de
Base de datos que utilicemos, y así si en un futuro debemos de cambiar de motor de
bases de datos, tendremos la seguridad de que este cambio no nos afectará a nuestro
sistema, siendo el cambio mas sencillo.
Abstracción de la
base de datos
• Nos permite utilizar los métodos de un objeto de datos desde distintas zonas de
la aplicación, incluso desde aplicaciones distintas.Reutilización
• Los ORM suelen implementar sistemas para evitar tipos de ataques como
pueden ser los SQL injections.Seguridad
• Nos facilita el mantenimiento del código debido a la correcta
ordenación de la capa de datos, haciendo que el mantenimiento
del código sea mucho mas sencillo.
Mantenimiento del
código
•Estos sistemas de mapeo traen su propio lenguaje para hacer las
consultas, lo que hace que los usuarios dejen de utilizar la sentencias
SQL para que pasen a utilizar el lenguaje propio de cada herramienta.
Lenguaje propio para
realizar las consultas
DESVENTAJAS
Tiempo
utilizado en el
aprendizaje
• Este tipo de herramientas suelen ser complejas por lo que su correcta
utilización lleva un tiempo que hay que emplear en ver el funcionamiento
correcto y ver todo el partido que se le puede sacar.
Aplicaciones
algo mas lentas
• Esto es debido a que todas las consultas que se hagan sobre la base de
datos, el sistema primero deberá de transformarlas al lenguaje propio de la
herramienta, luego leer los registros y por último crear los objetos.
Sistemas
Complejos
• Normalmente la utilidad de ORM desciende con la mayor complejidad del
sistema relacional. Es decir, si tienes una base de datos compleja, ORM
también se te hará más complejo y perderás más tiempo adaptando tus
clases que en un sistema de menor complejidad.
ALGUNOS DISTINTOS SISTEMAS ORM:
Hibernate
• Es una herramienta
ORM para la
tecnología JAVA y
disponible también
para la tecnología
.NET con el nombre
de Nhibernate.
• Es software libre
bajo la licencia
GNU LGPL.
• Para crear el
modelo, Doctrine
nos da dos
alternativa, hacer
una clase por tabla
e indicarle
mediante PHP el
tipo de datos que
almacenaremos. O
bien utilizar un
esquema en
formato YAML
(similar a
XML, pero mas
legible para las
personas).
Linq
• Es un ORM
desarrollado por
Microsoft para el
mapeo objeto-
relacional para los
lenguajes Visual
Basic. Net y C#.
• Incluye una
herramienta
llamada SQLMetal
que permite la
generación
automática de
clases directamente
desde una base de
datos MS-SQL.
Doctrine
• Es un framework
ORM para PHP 5.2
y posterior.
• Entre sus puntos
fuertes destaca su
lenguaje DQL
(Doctrine Query
Language) que
está inspirado en el
HQL de Hibernate.
• Para crear el
modelo, Doctrine
nos da dos
alternativa, hacer
una clase por tabla
e indicarle
mediante PHP el
tipo de datos que
almacenaremos.
Propel
• Es uno de los más
antiguos framework
ORM para PHP 5 y
superior y que está
respaldado por el
framework Synfony.
• Podemos
acceder y
modificar los datos
de la base de datos
utilizando la lógica
de programación
orientada a
objetos, en vez de
utilizar los clásicos
Select y Updates de
SQL.
ADOdb Active Record
• Basado en la muy
conocida librería de
abstracción ADOdb.
• Funciona con PHP
4 y 5.

Mapeo objeto relacional

  • 1.
    INTEGRANTE: CARHUAYAL PUENTE,ISABEL ALISSON TEMA: ORM (MAPEO OBJETO – RELACIONAL)
  • 2.
  • 3.
    DEFINICIONES: Es una técnicade programación para convertir datos entre el lenguaje de programación orientado a objetos utilizado y el sistema de base de datos relacional utilizado en el desarrollo de nuestra aplicación. Es un componente de software que me permite trabajar con los datos persistidos como si ellos fueran parte de una base de datos orientada a objetos (en este caso virtual). Debido a que lo standard es trabajar con BD relacionales, se deben realizar operaciones que permitan transformar un registro en objeto y viceversa. A esta funcionalidad se la llama Mapeo objeto- relacional (ORM).
  • 4.
    EL PROBLEMA Actualmente, lasbases de datos relacionales solo pueden guardar datos primitivos, por lo que no podemos guardar objetos que vayamos creando en nuestra aplicación, sino lo que hacemos es convertir los datos del objeto en datos primitivos que si podremos almacenar en las tablas correspondientes de nuestras bases de datos. Si luego necesitamos ese objeto en alguna parte de nuestra aplicación, debemos de recuperar los datos primitivos de la base de datos y volver a construir el objeto.
  • 5.
    SOLUCIÓN El mapeo objeto-relacionallo que nos ayudará será precisamente a eso, a olvidarnos completamente de como convertir los objetos en datos primitivos para almacenarlos y viceversa.
  • 6.
    VENTAJAS • La mayoríade las herramientas actuales permiten la creación del modelo por medio del esquema de la base de datos, leyendo el esquema, nos crea el modelo adecuado. Rapidez en el desarrollo • Al utilizar un sistema ORM, lo que conseguidos es separarnos totalmente del sistema de Base de datos que utilicemos, y así si en un futuro debemos de cambiar de motor de bases de datos, tendremos la seguridad de que este cambio no nos afectará a nuestro sistema, siendo el cambio mas sencillo. Abstracción de la base de datos • Nos permite utilizar los métodos de un objeto de datos desde distintas zonas de la aplicación, incluso desde aplicaciones distintas.Reutilización • Los ORM suelen implementar sistemas para evitar tipos de ataques como pueden ser los SQL injections.Seguridad • Nos facilita el mantenimiento del código debido a la correcta ordenación de la capa de datos, haciendo que el mantenimiento del código sea mucho mas sencillo. Mantenimiento del código •Estos sistemas de mapeo traen su propio lenguaje para hacer las consultas, lo que hace que los usuarios dejen de utilizar la sentencias SQL para que pasen a utilizar el lenguaje propio de cada herramienta. Lenguaje propio para realizar las consultas
  • 7.
    DESVENTAJAS Tiempo utilizado en el aprendizaje •Este tipo de herramientas suelen ser complejas por lo que su correcta utilización lleva un tiempo que hay que emplear en ver el funcionamiento correcto y ver todo el partido que se le puede sacar. Aplicaciones algo mas lentas • Esto es debido a que todas las consultas que se hagan sobre la base de datos, el sistema primero deberá de transformarlas al lenguaje propio de la herramienta, luego leer los registros y por último crear los objetos. Sistemas Complejos • Normalmente la utilidad de ORM desciende con la mayor complejidad del sistema relacional. Es decir, si tienes una base de datos compleja, ORM también se te hará más complejo y perderás más tiempo adaptando tus clases que en un sistema de menor complejidad.
  • 8.
    ALGUNOS DISTINTOS SISTEMASORM: Hibernate • Es una herramienta ORM para la tecnología JAVA y disponible también para la tecnología .NET con el nombre de Nhibernate. • Es software libre bajo la licencia GNU LGPL. • Para crear el modelo, Doctrine nos da dos alternativa, hacer una clase por tabla e indicarle mediante PHP el tipo de datos que almacenaremos. O bien utilizar un esquema en formato YAML (similar a XML, pero mas legible para las personas). Linq • Es un ORM desarrollado por Microsoft para el mapeo objeto- relacional para los lenguajes Visual Basic. Net y C#. • Incluye una herramienta llamada SQLMetal que permite la generación automática de clases directamente desde una base de datos MS-SQL. Doctrine • Es un framework ORM para PHP 5.2 y posterior. • Entre sus puntos fuertes destaca su lenguaje DQL (Doctrine Query Language) que está inspirado en el HQL de Hibernate. • Para crear el modelo, Doctrine nos da dos alternativa, hacer una clase por tabla e indicarle mediante PHP el tipo de datos que almacenaremos. Propel • Es uno de los más antiguos framework ORM para PHP 5 y superior y que está respaldado por el framework Synfony. • Podemos acceder y modificar los datos de la base de datos utilizando la lógica de programación orientada a objetos, en vez de utilizar los clásicos Select y Updates de SQL. ADOdb Active Record • Basado en la muy conocida librería de abstracción ADOdb. • Funciona con PHP 4 y 5.