SlideShare una empresa de Scribd logo
1 de 31
ORM: Object-Relational Mapping
¿Qué es un ORM?
En el desarrollo de una aplicación suelen estar
involucradas dos entidades diferentes, por una parte el
código que mueve la aplicación y por otra los datos que se
manejan (División en capas).
Los sistemas de Mapeo Objeto-Relacional u ORM ayudan
a hacer la transición de lenguaje orientado a objetos a la
base de datos que se utilice.
¿Qué es un ORM?
Permite ver y modificar los datos almacenados en una
base de datos relacional usando el lenguaje de
programación elegido y organiza las tablas o
procedimientos almacenados en clases, por lo que en vez
de utilizar consultas SQL para comunicarse con la base de
datos se usan métodos y propiedades de objetos.
¿Qué es un ORM?
La característica más importante de ORM es el mapeo.
El mismo se usa para persistir objetos almacenados en
una base de datos. Un objeto y sus propiedades están
típicamente relacionados a una o más tablas y sus campos
en la base de datos. El ORM usa la información de esta
relación para gestionar el proceso de conversión de
tablas a objetos y viceversa generando las consultas SQL
necesarias para que la base de datos relacional gestione el
CRUD de los objetos de dominio de la aplicación.
Ventajas en el uso de ORMs.
Algunos beneficios de usar un ORM.
● Se encarga de gestionar la conversión de tipos DATE y
TIME en forma automática.
● Se encarga de hacer el trabajo “pesado” de asociar los
valores de los campos de cada registro de una tabla en
los respectivos atributos del objeto.
● Al brindar seguridad en diversos aspectos, previene
ataques de inyección SQL.
● Para consultas complejas, muchos ORM brindan
extensiones para escribir consultas en SQL nativo.
Algunos beneficios de usar un ORM.
● Generación de código (Entities and Schemas).
● Puede mejorar con creces la velocidad de desarrollo,
sobre todo cuando el esquema de la base de datos
todavía no se encuentra maduro. Es muy tedioso
reescribir una consulta SQL cada vez que se introduce
una modificación en dicho esquema, lo cual conlleva a
una pérdida de tiempo de producción.
● El uso de caché puede implicar velocidades de acceso
a datos mucho mayores.
Desventajas en el uso de ORMs.
Algunas desventajas de usar un ORM.
● Se puede llegar a perder la noción acerca de cuánto
tiempo se invierte retocando archivos XML o
anotaciones, con el objetivo de optimizar la
performance del ORM.
● Un mal uso de los sistemas ORMs (debido al
desconocimiento del funcionamiento interno) puede
reducir la performance de la aplicación en forma
drástica. Todo depende del programador y la
optimización en el uso del mismo.
Algunas desventajas de usar un ORM.
● De por sí al agregar una capa más que se encarga
abstraer al programador del acceso a los datos
agregamos mayor complejidad con lo cual la latencia
puede ser mayor.
Cuándo SI utilizar ORMs.
¿Cuándo utilizar un ORM?
● Para aplicaciones transaccionales (CRUD), en las que
se realiza una petición, se buscan un conjunto de
objetos en la BD, se los procesa y se renderiza una
página web. La performance utilizando un ORM pueden
ser mucho mejor si dichos objetos se encuentran en la
caché del ORM.
Cuándo NO utilizar ORMs.
¿Cuándo NO utilizar un ORM?
● Para aplicaciones que requieren la generación de
reportes en los cuales intervienen un gran número de
registros por cada petición, el trabajo que lleva a cabo
el ORM no es eficiente debido a que puede saturar la
memoria de objetos.
¿Cuándo NO utilizar un ORM?
● Los ORMs pueden ser optimizados para ser lo más
eficientes posibles, y esto muchas veces es suficiente.
Sin embargo en entornos donde se manejan un gran
volumen de datos y que requieren de una baja latencia,
los ORMs son un no rotundo.
Opiniones a partir de las
experiencias de diversos
profesionales.
Opiniones de Profesionales
● “En aplicaciones a gran escala, te encontrarás usando
ambos enfoques. ORM para llevar a cabo el CRUD y
una capa de acceso a datos fina de SQL para
reportes.”
● “Para consultas complejas, realmente no hay sustitutos
para plain SQL. Existen algunas consultas en JPA que
no son posibles de llevar a cabo...”
Opiniones de Profesionales
● “ORM no se trata sólo de portabilidad. Básicamente te
provee de una capa de abstracción de acceso a datos.
Un ORM libera al programador de escribir consultas
SQL y concentrar su atención en el dominio del
problema.”
● “Yo diría que SQL plano para reads (R), y ORM para
creates, updates y deletes (CUD).”
Opiniones de Profesionales
● “En mi experiencia como desarrollador, he encontrado
que los ORM son útiles cuando hay que gestionar
transacciones (operaciones insert/update/delete), pero
cuando se trata de recolectar datos con resultados
complejos, resulta muy importante evaluar la
performance y la eficiencia de una herramienta ORM.”
Opiniones de Profesionales
● “Si al usar un ORM no se obtiene ninguna ventaja real,
y la aplicación es muy sencilla, yo no usaría un ORM.
Un ejemplo claro es si la aplicación en cuestión se trata
acerca de procesar grandes conjuntos de registros y no
hay mucha lógica de negocio. Eso no significa que tu
aplicación no fuera diseñada de la manera apropiada,
pero, una vez más: Si usar un ORM no te brinda ningún
beneficio, entonces.. ¿Porque lo usarías?”
Opiniones de Profesionales
● “Muchas veces es preferible un código que sea fácil de
mantener, sacrificando performance. En lo personal
creo que un código fácil de mantener es más
económico, ya que si la aplicación es escalable, el
costo del hardware asociado es menor al de
horas/hombre.”
ORM más conocidos:
Características y comparaciones.
Ejemplos.
Ejemplos
La mayoría de los ORM se fundan sobre las mismas bases
e inclusive suelen trabajar de forma muy similar. Algunos
ejemplos de ORMs son:
● Hibernate (Java)
● Entity Framework (.NET)
● Doctrine (PHP)
● SQLAlchemy (Python)
● Active Record (Ruby)
Actividad
Investigar los ejemplos con orms 20 minutos
Algunas Características
● Hibernate (Java) y SQLAlchemy (Python) se basan en
el patrón estructural DATA MAPPER.
● Doctrine (PHP) y Active Record (Ruby) se basan en el
patrón estructural ActiveRecord.
Algunas Características
● Todos ellos brindan soporte para:
o Anotaciones/ XML para la definición del mapeo.
o Transacciones.
o Soporte para herencias y asociaciones entre clases.
o Sus propios lenguajes de consulta (DQL, HQL, etc).
o Caché (Doctrine PHP -> APC, Memcached, Xcache)
o Consultas personalizadas (Doctrine QueryBuilder)
Hibernate
Hibernate es una herramienta de Mapeo objeto relacional
(ORM) para la plataforma Java (y disponible también para
.Net con el nombre de NHibernate) que 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) o anotaciones en los beans de las
entidades que permiten establecer estas relaciones.
Hibernate ofrece también un lenguaje de consulta de datos
llamado HQL (Hibernate Query Language), al mismo tiempo que
una API para construir las consultas programáticamente
(conocida como "criteria").
ADO.NET - Entity Framework
Una entidad del Entity Framework es un objeto que tiene
una clave representando la clave primaria de una
entidad lógica de datastore. Un modelo conceptual
Entity Data Model (modelo Entidad Relación) es
mapeado a un modelo de esquema de datastore.
Usando el Entity Data Model, el Framework permite
que los datos sean tratados como entidades
independientemente de sus representaciones del
datastore subyacente.
ADO.NET - Entity Framework
El Entity SQL es un lenguaje similar al SQL para
consultar el Entity Data Model (en vez del datastore
subyacente). Similarmente, las extensiones del Linq,
LinqtoEntities, proporcionan consultas tipeadas en el
Entity Data Model. Las consultas Entity SQL y Linqto-
Entities son convertidas internamente en un Canonical
Query Tree que entonces es convertido en una
consulta comprensible al datastore subyacente (ej. en
SQL en el caso de una base de datos relacional).
Las entidades pueden utilizar sus relaciones, y sus
cambios enviados de regreso al datastore.
Doctrine (PHP)
Doctrine es un mapeador de objetos relacional (ORM)
escrito en PHP que proporciona una capa de
persistencia para objetos PHP. Es una capa de
abstracción que se sitúa justo encima de un SGBD. Una
característica de Doctrine es el bajo nivel de
configuración que necesita para empezar un proyecto.
Doctrine puede generar clases a partir de una base de
datos existente y después el programador puede
especificar relaciones y añadir funcionalidad extra a las
clases autogeneradas.
Doctrine (PHP)
No es necesario generar o mantener complejos
esquemas XML de base de datos como en otros
frameworks. Otra característica importante de Doctrine
es la posibilidad de escribir consultas de base de
datos utilizando un dialecto de SQL denominado DQL
(Doctrine Query Language) que está inspirado en
Hibernate (Java).

Más contenido relacionado

Similar a presentacinorm-150325230016-conversion-gate01.pptx

Principales bases de datos existentes
Principales bases de datos existentesPrincipales bases de datos existentes
Principales bases de datos existenteschackws
 
Modelado de datos
Modelado de datosModelado de datos
Modelado de datosmanuel
 
Que es una base de datos
Que es una base de datosQue es una base de datos
Que es una base de datosHectorJuarez49
 
Base de Datos
Base de DatosBase de Datos
Base de Datosvjgaby
 
Act4 bd moreno_joel
Act4 bd moreno_joelAct4 bd moreno_joel
Act4 bd moreno_joeljoel28
 
Presentacion base de datos Cesar Morales
Presentacion base de datos Cesar MoralesPresentacion base de datos Cesar Morales
Presentacion base de datos Cesar Moralescesar morales
 
Las principales bases de datos existentes
Las principales bases de datos existentesLas principales bases de datos existentes
Las principales bases de datos existentesrulascch
 
Blog SGBD / Bases de Datos Generalidades y Sistemas de Gestión
Blog SGBD / Bases de Datos Generalidades y Sistemas de GestiónBlog SGBD / Bases de Datos Generalidades y Sistemas de Gestión
Blog SGBD / Bases de Datos Generalidades y Sistemas de GestiónJesús Daniel Mayo
 
Cordova angelica basededatos
Cordova angelica basededatosCordova angelica basededatos
Cordova angelica basededatosAngelica Cordova
 

Similar a presentacinorm-150325230016-conversion-gate01.pptx (20)

Conceptos de hibernate
Conceptos de hibernateConceptos de hibernate
Conceptos de hibernate
 
bases de datos
bases de datosbases de datos
bases de datos
 
Tipos de Bases de datos
Tipos de Bases de datosTipos de Bases de datos
Tipos de Bases de datos
 
Principales bases de datos existentes
Principales bases de datos existentesPrincipales bases de datos existentes
Principales bases de datos existentes
 
Qué es una base de datos
Qué es una base de datosQué es una base de datos
Qué es una base de datos
 
Modelado de datos
Modelado de datosModelado de datos
Modelado de datos
 
Que es una base de datos
Que es una base de datosQue es una base de datos
Que es una base de datos
 
Base de Datos
Base de DatosBase de Datos
Base de Datos
 
Base de datos3
Base de datos3Base de datos3
Base de datos3
 
Base de datos orientada a objetos
Base de datos orientada a objetosBase de datos orientada a objetos
Base de datos orientada a objetos
 
Base de datos
Base de datosBase de datos
Base de datos
 
MEAN Stack
MEAN StackMEAN Stack
MEAN Stack
 
Act4 bd moreno_joel
Act4 bd moreno_joelAct4 bd moreno_joel
Act4 bd moreno_joel
 
Presentacion base de datos Cesar Morales
Presentacion base de datos Cesar MoralesPresentacion base de datos Cesar Morales
Presentacion base de datos Cesar Morales
 
Las principales bases de datos existentes
Las principales bases de datos existentesLas principales bases de datos existentes
Las principales bases de datos existentes
 
Principales bases de datos
Principales bases de datosPrincipales bases de datos
Principales bases de datos
 
Blog SGBD / Bases de Datos Generalidades y Sistemas de Gestión
Blog SGBD / Bases de Datos Generalidades y Sistemas de GestiónBlog SGBD / Bases de Datos Generalidades y Sistemas de Gestión
Blog SGBD / Bases de Datos Generalidades y Sistemas de Gestión
 
Cordova angelica basededatos
Cordova angelica basededatosCordova angelica basededatos
Cordova angelica basededatos
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
base de datos
base de datosbase de datos
base de datos
 

Más de ssuser948499

Presentación1.estudio de casos de usobsb
Presentación1.estudio de casos de usobsbPresentación1.estudio de casos de usobsb
Presentación1.estudio de casos de usobsbssuser948499
 
Data Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosData Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosssuser948499
 
la publicidaden el internetcomo medio ac
la publicidaden el internetcomo medio acla publicidaden el internetcomo medio ac
la publicidaden el internetcomo medio acssuser948499
 
f_ormulas_y_funciones.excel planillas po
f_ormulas_y_funciones.excel planillas pof_ormulas_y_funciones.excel planillas po
f_ormulas_y_funciones.excel planillas possuser948499
 
editores de texto.neln sistemas de bases
editores de texto.neln sistemas de baseseditores de texto.neln sistemas de bases
editores de texto.neln sistemas de basesssuser948499
 
introduccionallaprogramacionweb-230123213144-47a8fc90.ppt
introduccionallaprogramacionweb-230123213144-47a8fc90.pptintroduccionallaprogramacionweb-230123213144-47a8fc90.ppt
introduccionallaprogramacionweb-230123213144-47a8fc90.pptssuser948499
 
proyectointegrador-100308005101-phpapp02.pptx
proyectointegrador-100308005101-phpapp02.pptxproyectointegrador-100308005101-phpapp02.pptx
proyectointegrador-100308005101-phpapp02.pptxssuser948499
 
mongodb.base de datis noo relacionles fr
mongodb.base de datis noo relacionles frmongodb.base de datis noo relacionles fr
mongodb.base de datis noo relacionles frssuser948499
 
Curso_OBS. infromatica basica sistemas a
Curso_OBS. infromatica basica sistemas aCurso_OBS. infromatica basica sistemas a
Curso_OBS. infromatica basica sistemas assuser948499
 
introducion a sistemas de bases de datos
introducion a sistemas de bases de datosintroducion a sistemas de bases de datos
introducion a sistemas de bases de datosssuser948499
 
instalacion de linux ububtu 10.10 gestio
instalacion de linux ububtu 10.10 gestioinstalacion de linux ububtu 10.10 gestio
instalacion de linux ububtu 10.10 gestiossuser948499
 
seguridad de las aplicaciones web en el internet
seguridad de las aplicaciones web en el internetseguridad de las aplicaciones web en el internet
seguridad de las aplicaciones web en el internetssuser948499
 
modulo tres capas redes tecnologia inter
modulo tres capas redes tecnologia intermodulo tres capas redes tecnologia inter
modulo tres capas redes tecnologia interssuser948499
 
Gestion y manejo de bases de datos II 24
Gestion y manejo de bases de datos II 24Gestion y manejo de bases de datos II 24
Gestion y manejo de bases de datos II 24ssuser948499
 
presentacion d actividad opara bases de datos
presentacion d actividad opara bases de datospresentacion d actividad opara bases de datos
presentacion d actividad opara bases de datosssuser948499
 
aplicaciones_web_advantage_multimedia.ppt
aplicaciones_web_advantage_multimedia.pptaplicaciones_web_advantage_multimedia.ppt
aplicaciones_web_advantage_multimedia.pptssuser948499
 
gestión y manejo de bases de datos basic
gestión y manejo de bases de datos basicgestión y manejo de bases de datos basic
gestión y manejo de bases de datos basicssuser948499
 
Plantilla_de_presentación_de_trabajo_remoto.pptx
Plantilla_de_presentación_de_trabajo_remoto.pptxPlantilla_de_presentación_de_trabajo_remoto.pptx
Plantilla_de_presentación_de_trabajo_remoto.pptxssuser948499
 
Telindus-RedIRIS-Virtualizacion.ppt
Telindus-RedIRIS-Virtualizacion.pptTelindus-RedIRIS-Virtualizacion.ppt
Telindus-RedIRIS-Virtualizacion.pptssuser948499
 

Más de ssuser948499 (20)

Presentación1.estudio de casos de usobsb
Presentación1.estudio de casos de usobsbPresentación1.estudio de casos de usobsb
Presentación1.estudio de casos de usobsb
 
Data Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosData Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datos
 
la publicidaden el internetcomo medio ac
la publicidaden el internetcomo medio acla publicidaden el internetcomo medio ac
la publicidaden el internetcomo medio ac
 
f_ormulas_y_funciones.excel planillas po
f_ormulas_y_funciones.excel planillas pof_ormulas_y_funciones.excel planillas po
f_ormulas_y_funciones.excel planillas po
 
editores de texto.neln sistemas de bases
editores de texto.neln sistemas de baseseditores de texto.neln sistemas de bases
editores de texto.neln sistemas de bases
 
introduccionallaprogramacionweb-230123213144-47a8fc90.ppt
introduccionallaprogramacionweb-230123213144-47a8fc90.pptintroduccionallaprogramacionweb-230123213144-47a8fc90.ppt
introduccionallaprogramacionweb-230123213144-47a8fc90.ppt
 
proyectointegrador-100308005101-phpapp02.pptx
proyectointegrador-100308005101-phpapp02.pptxproyectointegrador-100308005101-phpapp02.pptx
proyectointegrador-100308005101-phpapp02.pptx
 
mongodb.base de datis noo relacionles fr
mongodb.base de datis noo relacionles frmongodb.base de datis noo relacionles fr
mongodb.base de datis noo relacionles fr
 
Curso_OBS. infromatica basica sistemas a
Curso_OBS. infromatica basica sistemas aCurso_OBS. infromatica basica sistemas a
Curso_OBS. infromatica basica sistemas a
 
introducion a sistemas de bases de datos
introducion a sistemas de bases de datosintroducion a sistemas de bases de datos
introducion a sistemas de bases de datos
 
instalacion de linux ububtu 10.10 gestio
instalacion de linux ububtu 10.10 gestioinstalacion de linux ububtu 10.10 gestio
instalacion de linux ububtu 10.10 gestio
 
seguridad de las aplicaciones web en el internet
seguridad de las aplicaciones web en el internetseguridad de las aplicaciones web en el internet
seguridad de las aplicaciones web en el internet
 
modulo tres capas redes tecnologia inter
modulo tres capas redes tecnologia intermodulo tres capas redes tecnologia inter
modulo tres capas redes tecnologia inter
 
Gestion y manejo de bases de datos II 24
Gestion y manejo de bases de datos II 24Gestion y manejo de bases de datos II 24
Gestion y manejo de bases de datos II 24
 
presentacion d actividad opara bases de datos
presentacion d actividad opara bases de datospresentacion d actividad opara bases de datos
presentacion d actividad opara bases de datos
 
aplicaciones_web_advantage_multimedia.ppt
aplicaciones_web_advantage_multimedia.pptaplicaciones_web_advantage_multimedia.ppt
aplicaciones_web_advantage_multimedia.ppt
 
gestión y manejo de bases de datos basic
gestión y manejo de bases de datos basicgestión y manejo de bases de datos basic
gestión y manejo de bases de datos basic
 
Plantilla_de_presentación_de_trabajo_remoto.pptx
Plantilla_de_presentación_de_trabajo_remoto.pptxPlantilla_de_presentación_de_trabajo_remoto.pptx
Plantilla_de_presentación_de_trabajo_remoto.pptx
 
Telindus-RedIRIS-Virtualizacion.ppt
Telindus-RedIRIS-Virtualizacion.pptTelindus-RedIRIS-Virtualizacion.ppt
Telindus-RedIRIS-Virtualizacion.ppt
 
1065256.ppt
1065256.ppt1065256.ppt
1065256.ppt
 

Último

CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaSHERELYNSAMANTHAPALO1
 
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)ssuser6958b11
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxLuisvila35
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUMarcosAlvarezSalinas
 
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdf
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdfManual de Usuario Estacion total Sokkia SERIE SET10K.pdf
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdfSandXmovex
 
3039_ftg_01Entregable 003_Matematica.pptx
3039_ftg_01Entregable 003_Matematica.pptx3039_ftg_01Entregable 003_Matematica.pptx
3039_ftg_01Entregable 003_Matematica.pptxJhordanGonzalo
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023ANDECE
 
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfCAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfReneBellido1
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaANDECE
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdfEdwinAlexanderSnchez2
 
Electromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfElectromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfAnonymous0pBRsQXfnx
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxEduardoSnchezHernnde5
 
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfLEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfAdelaHerrera9
 
Fisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfFisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfJessLeonelVargasJimn
 
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfCENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfpaola110264
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaANDECE
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfrolandolazartep
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxEtse9
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.pptVitobailon
 

Último (20)

CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresa
 
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
 
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdf
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdfManual de Usuario Estacion total Sokkia SERIE SET10K.pdf
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdf
 
3039_ftg_01Entregable 003_Matematica.pptx
3039_ftg_01Entregable 003_Matematica.pptx3039_ftg_01Entregable 003_Matematica.pptx
3039_ftg_01Entregable 003_Matematica.pptx
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
 
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfCAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes Granada
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf
 
Electromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfElectromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdf
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptx
 
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfLEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
 
Fisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfFisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdf
 
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfCENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de Almería
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdf
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptx
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.ppt
 

presentacinorm-150325230016-conversion-gate01.pptx

  • 2. ¿Qué es un ORM? En el desarrollo de una aplicación suelen estar involucradas dos entidades diferentes, por una parte el código que mueve la aplicación y por otra los datos que se manejan (División en capas). Los sistemas de Mapeo Objeto-Relacional u ORM ayudan a hacer la transición de lenguaje orientado a objetos a la base de datos que se utilice.
  • 3. ¿Qué es un ORM? Permite ver y modificar los datos almacenados en una base de datos relacional usando el lenguaje de programación elegido y organiza las tablas o procedimientos almacenados en clases, por lo que en vez de utilizar consultas SQL para comunicarse con la base de datos se usan métodos y propiedades de objetos.
  • 4. ¿Qué es un ORM? La característica más importante de ORM es el mapeo. El mismo se usa para persistir objetos almacenados en una base de datos. Un objeto y sus propiedades están típicamente relacionados a una o más tablas y sus campos en la base de datos. El ORM usa la información de esta relación para gestionar el proceso de conversión de tablas a objetos y viceversa generando las consultas SQL necesarias para que la base de datos relacional gestione el CRUD de los objetos de dominio de la aplicación.
  • 5. Ventajas en el uso de ORMs.
  • 6. Algunos beneficios de usar un ORM. ● Se encarga de gestionar la conversión de tipos DATE y TIME en forma automática. ● Se encarga de hacer el trabajo “pesado” de asociar los valores de los campos de cada registro de una tabla en los respectivos atributos del objeto. ● Al brindar seguridad en diversos aspectos, previene ataques de inyección SQL. ● Para consultas complejas, muchos ORM brindan extensiones para escribir consultas en SQL nativo.
  • 7. Algunos beneficios de usar un ORM. ● Generación de código (Entities and Schemas). ● Puede mejorar con creces la velocidad de desarrollo, sobre todo cuando el esquema de la base de datos todavía no se encuentra maduro. Es muy tedioso reescribir una consulta SQL cada vez que se introduce una modificación en dicho esquema, lo cual conlleva a una pérdida de tiempo de producción. ● El uso de caché puede implicar velocidades de acceso a datos mucho mayores.
  • 8. Desventajas en el uso de ORMs.
  • 9. Algunas desventajas de usar un ORM. ● Se puede llegar a perder la noción acerca de cuánto tiempo se invierte retocando archivos XML o anotaciones, con el objetivo de optimizar la performance del ORM. ● Un mal uso de los sistemas ORMs (debido al desconocimiento del funcionamiento interno) puede reducir la performance de la aplicación en forma drástica. Todo depende del programador y la optimización en el uso del mismo.
  • 10. Algunas desventajas de usar un ORM. ● De por sí al agregar una capa más que se encarga abstraer al programador del acceso a los datos agregamos mayor complejidad con lo cual la latencia puede ser mayor.
  • 12. ¿Cuándo utilizar un ORM? ● Para aplicaciones transaccionales (CRUD), en las que se realiza una petición, se buscan un conjunto de objetos en la BD, se los procesa y se renderiza una página web. La performance utilizando un ORM pueden ser mucho mejor si dichos objetos se encuentran en la caché del ORM.
  • 14. ¿Cuándo NO utilizar un ORM? ● Para aplicaciones que requieren la generación de reportes en los cuales intervienen un gran número de registros por cada petición, el trabajo que lleva a cabo el ORM no es eficiente debido a que puede saturar la memoria de objetos.
  • 15. ¿Cuándo NO utilizar un ORM? ● Los ORMs pueden ser optimizados para ser lo más eficientes posibles, y esto muchas veces es suficiente. Sin embargo en entornos donde se manejan un gran volumen de datos y que requieren de una baja latencia, los ORMs son un no rotundo.
  • 16. Opiniones a partir de las experiencias de diversos profesionales.
  • 17. Opiniones de Profesionales ● “En aplicaciones a gran escala, te encontrarás usando ambos enfoques. ORM para llevar a cabo el CRUD y una capa de acceso a datos fina de SQL para reportes.” ● “Para consultas complejas, realmente no hay sustitutos para plain SQL. Existen algunas consultas en JPA que no son posibles de llevar a cabo...”
  • 18. Opiniones de Profesionales ● “ORM no se trata sólo de portabilidad. Básicamente te provee de una capa de abstracción de acceso a datos. Un ORM libera al programador de escribir consultas SQL y concentrar su atención en el dominio del problema.” ● “Yo diría que SQL plano para reads (R), y ORM para creates, updates y deletes (CUD).”
  • 19. Opiniones de Profesionales ● “En mi experiencia como desarrollador, he encontrado que los ORM son útiles cuando hay que gestionar transacciones (operaciones insert/update/delete), pero cuando se trata de recolectar datos con resultados complejos, resulta muy importante evaluar la performance y la eficiencia de una herramienta ORM.”
  • 20. Opiniones de Profesionales ● “Si al usar un ORM no se obtiene ninguna ventaja real, y la aplicación es muy sencilla, yo no usaría un ORM. Un ejemplo claro es si la aplicación en cuestión se trata acerca de procesar grandes conjuntos de registros y no hay mucha lógica de negocio. Eso no significa que tu aplicación no fuera diseñada de la manera apropiada, pero, una vez más: Si usar un ORM no te brinda ningún beneficio, entonces.. ¿Porque lo usarías?”
  • 21. Opiniones de Profesionales ● “Muchas veces es preferible un código que sea fácil de mantener, sacrificando performance. En lo personal creo que un código fácil de mantener es más económico, ya que si la aplicación es escalable, el costo del hardware asociado es menor al de horas/hombre.”
  • 22. ORM más conocidos: Características y comparaciones. Ejemplos.
  • 23. Ejemplos La mayoría de los ORM se fundan sobre las mismas bases e inclusive suelen trabajar de forma muy similar. Algunos ejemplos de ORMs son: ● Hibernate (Java) ● Entity Framework (.NET) ● Doctrine (PHP) ● SQLAlchemy (Python) ● Active Record (Ruby)
  • 24. Actividad Investigar los ejemplos con orms 20 minutos
  • 25. Algunas Características ● Hibernate (Java) y SQLAlchemy (Python) se basan en el patrón estructural DATA MAPPER. ● Doctrine (PHP) y Active Record (Ruby) se basan en el patrón estructural ActiveRecord.
  • 26. Algunas Características ● Todos ellos brindan soporte para: o Anotaciones/ XML para la definición del mapeo. o Transacciones. o Soporte para herencias y asociaciones entre clases. o Sus propios lenguajes de consulta (DQL, HQL, etc). o Caché (Doctrine PHP -> APC, Memcached, Xcache) o Consultas personalizadas (Doctrine QueryBuilder)
  • 27. Hibernate Hibernate es una herramienta de Mapeo objeto relacional (ORM) para la plataforma Java (y disponible también para .Net con el nombre de NHibernate) que 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) o anotaciones en los beans de las entidades que permiten establecer estas relaciones. Hibernate ofrece también un lenguaje de consulta de datos llamado HQL (Hibernate Query Language), al mismo tiempo que una API para construir las consultas programáticamente (conocida como "criteria").
  • 28. ADO.NET - Entity Framework Una entidad del Entity Framework es un objeto que tiene una clave representando la clave primaria de una entidad lógica de datastore. Un modelo conceptual Entity Data Model (modelo Entidad Relación) es mapeado a un modelo de esquema de datastore. Usando el Entity Data Model, el Framework permite que los datos sean tratados como entidades independientemente de sus representaciones del datastore subyacente.
  • 29. ADO.NET - Entity Framework El Entity SQL es un lenguaje similar al SQL para consultar el Entity Data Model (en vez del datastore subyacente). Similarmente, las extensiones del Linq, LinqtoEntities, proporcionan consultas tipeadas en el Entity Data Model. Las consultas Entity SQL y Linqto- Entities son convertidas internamente en un Canonical Query Tree que entonces es convertido en una consulta comprensible al datastore subyacente (ej. en SQL en el caso de una base de datos relacional). Las entidades pueden utilizar sus relaciones, y sus cambios enviados de regreso al datastore.
  • 30. Doctrine (PHP) Doctrine es un mapeador de objetos relacional (ORM) escrito en PHP que proporciona una capa de persistencia para objetos PHP. Es una capa de abstracción que se sitúa justo encima de un SGBD. Una característica de Doctrine es el bajo nivel de configuración que necesita para empezar un proyecto. Doctrine puede generar clases a partir de una base de datos existente y después el programador puede especificar relaciones y añadir funcionalidad extra a las clases autogeneradas.
  • 31. Doctrine (PHP) No es necesario generar o mantener complejos esquemas XML de base de datos como en otros frameworks. Otra característica importante de Doctrine es la posibilidad de escribir consultas de base de datos utilizando un dialecto de SQL denominado DQL (Doctrine Query Language) que está inspirado en Hibernate (Java).