MAPEO OBJETO RELACIONAL

7
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

description

un breve trabajo para observar como funciona la tecnica de ORM con un ejemplo practico

Transcript of MAPEO OBJETO RELACIONAL

Page 1: MAPEO OBJETO RELACIONAL

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

Page 2: MAPEO OBJETO RELACIONAL

ORM Página 1

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.

Page 3: MAPEO OBJETO RELACIONAL

ORM Página 2

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++.

Page 4: MAPEO OBJETO RELACIONAL

ORM Página 3

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.

Page 5: MAPEO OBJETO RELACIONAL

ORM Página 4

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

Page 6: MAPEO OBJETO RELACIONAL

ORM Página 5

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.

Page 7: MAPEO OBJETO RELACIONAL

ORM Página 6

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...

.