1. MAPEO
OBJETO
RELACIONAL
En este trabajo se presenta el concepto de ORM como una técnica de programación
para convertir datos entre el lenguaje P.O.O y el sistema de bases de datos relacional
utilizado en el desarrollo de aplicaciones. A lo largo del contenido de este artículo, se
verá la importancia del tema, sus ventajas y desventajas y un ejemplo practico y , por
último se terminara dando a conocer el nombre de algunos de los framework mas
usados en el mapeo de objeto relacionales
PROFESOR : M.C. C.VALENTIN ROLDAN
ALUMNO: EDUARDO CABRAL MENDOZA
2. INTRODUCCION
En el siguiente trabajo trato de exponer los puntos mas relevantes sobre ORM, cabe
mencionar desde un principio que a pesar de que es una técnica que es básica para nuestra
formación específicamente en el area de informática,es valido aclarar que es una técnica un
tanto confusa y que puede ser interpreta de distintos puntos de vista pero la finalidad es la
misma y que debemos elegir nosotros la herramienta que mas se adapte a nuestras
necesidades y sobre todo con la que sintamos mayor conformidad en su funcionamiento.
En el trabajo pondré algunos ejemplos de manera grafica para lograr la interpretación de los
abstraismos que se mencionaran y que cada uno pueda dar interpretarlos de manera
semenjante que es la finalidad de estos mapeos.
ORM Página 1
3. Mapeo Objeto-Relacional
Es una técnica de programación muy utilizada en paradigmas orientados a objetos, que te
permite 'mapear' (es decir, emparejar un par de entidades de tu programa): por un lado una
base de datos relacional y por otro lado objetos.
Esto posibilita el uso de las características propias de la orientación a objetos (básicamente
herencia y polimorfismo). Hay paquetes comerciales y de uso libre disponibles que desarrollan
el mapeo relacional de objetos, aunque algunos programadores prefieren crear sus propias
herramientas ORM.
Entre estos paquetes comerciales tenemos una lista de los principales motores de mapeo
objeto relacional, tales como:
ColdFusion, Common Lisp, Java, JavaScript, .NET, Perl, PHP, Python, Ruby, Smalltalk, C++.
ORM Página 2
4. VENTAJAS
Rapidez en el desarrollo.
Abstracción de la base de datos.
Reutilización.
seguridad.
Mantenimiento del código.
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 más 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. }
Las bases de datos relacionales solo permiten guardar tipos de datos primitvos (enteros,
cadenas de texto,etc…) por lo que no se puede guardar de forma directa los objetos de la
aplicación en las tablas, sino que estos se deben de convertir antes en registros, que por lo
general afectan a varias tablas. En el momento de volver a recuperar los datos, hay que
hacer el proceso contrario, se deben convertir los registros en objetos.
Es entonces cuando ORM cobra importancia, ya que se encarga de forma automática de
convertir los objetos en registros y viceversa, simulando así tener una base de datos
orientada a objetos.
ORM Página 3
5. EJEMPLO PRACTICO
Una agenda con personas / direcciones y teléfonos. En la base de datos relacional, pueden haber
tablas para:
1. Las personas, con datos como su nombre completo, edad, género
2. Los teléfonos, con el dato del número telefónico y relacionados con las personas a través
de una llave foránea (si la relación es 1-N) o una tabla de rompimiento (si la relación es N-
M)
3. Las direcciones, con datos para calle, número exterior e interior, colonia, etc. y
relacionados con las personas, también a través de una llave foránea.
Tablas_de_BD.gif
ORM Página 4
6. Por otro lado, en tu programa podrías tener los siguientes objetos:
1. Un objeto persona, con una propiedad cadena para el nombre, una propiedad entera para
la edad, una propiedad de una enumeración para el género.
2. Un objeto telefono, con una propiedad cadena para el número telefónico.
3. Un objeto direccion, con una propiedad cadena para cada campo de la misma tabla
Mapeo1
Pero además, en tu objeto persona podrías tener lo siguiente:
1. Una propiedad lista de objetos telefono
2. Una propiedad de objeto direccion
Y de esta manera, una persona tiene uno o mas números telefónicos, y una dirección
asociada.
ORM Página 5
7. Ahora bien, el ORM, además de permitirte modelar tu información de manera que utilices
objetos para representar las relaciones de la base de datos, también puede permitirte la
llamada persistencia.
Mapeo2.gif
Esta propiedad se refiere al hecho de que, a través del motor del ORM y gracias al mapeo
establecido (por ejemplo en un archivo de configuración XML) entre los objetos y las tablas
de la base de datos, se consigue que los datos manipulados en los objetos se reflejen en
la base de datos, y que cualquier cambio en los objetos mismos dentro del programa
permita que el mapeo, además de ser declarativo (que establece el mapeo en sí entre
objeto y relación), sea también del contenido.
En cuanto a los frameworks existentes, y que pueden usarse para desarrollar sistemas con
un ORM, se encuentran por ejemplo:
Hibernate, para el lenguaje Java
Propel, para el lenguaje PHP
SQLAlchemy, para el lenguaje Python
Doctrine, también para PHP
etc...
.
ORM Página 6