Anda di halaman 1dari 2

ORM (Object-relational Mapping)

Tcnica de programacin / Diseo para convertir datos entre el sistema de tipos utilizado en los lenguajes OO y el utilizado en una BBDD relacional. La gran mayora de las aplicaciones modernas se asan en lenguaje OO y ases de datos relacionales. Los o jetos en su estado natural pueden poseer propiedades !ue los identi"i!uen de "orma unvoca. #ara relacionar la instancia de un o jeto con sus datos persistentes se necesita algo !ue permita identi"icarla. $sar %eys relacionadas con el negocio no son una uena idea por!ue cual!uier cam io en el negocio puede signi"icar un cam io en la BBDD. &l uso de 'eys compuestas tampoco son recomendadas por!ue aumentan la complejidad del diseo y pueden ser menos per"ormances !ue las claves asadas en una sola columna. &l #O(D )persistent o ject identi"ier* se utilize para identi"icar en "orma unvoca o jetos en una BBDD relacional. +o de e tener ning,n sentido en el negocio y de e ser ,nico dentro de una jerar!ua de clases y pre"eri lemente ,nico entre todos los o jetos. Las estrategias para la asignacin de valores al #O(D son ./01 necesita un lo!ueo pesimista de toda la ta la. Le pide a la ta la el m23imo valor del atri uto y lo incrementa para el nuevo o jeto. Ta le 'ey4values1 mantiene una ta la cuya "inalidad es llevar un inventario de la pr3ima 'ey disponi le. 5$(Ds / $$(Ds1 n,mero aleatorio de 678 its. .ecanismos propietarios como identity y se!uence1 !ue di"icultan la porta ilidad de la aplicacin a otro motor de BBDD. 9ig: / Lo; ):ilo*1 usa n,meros enteros limitados por round4trip con el motor de BBDD. Divide al #O(D en 7 componentes lgicos dondeo 9ig: se o tiene de una ta la con una sola "ila y una sola columna. #or tener un solo origen se lo puede considerar ,nico. o Lo;1 se inicializa en < por cada :ig: y se incrementa localmente cada vez !ue la aplicacin necesita crear un nuevo #O(D en el marco de la misma sesin de tra ajo !ue re!uiri el :ig:. Las clases se mapean a ta las aun!ue a menudo no directamente. La :erencia se mapea por medio de las siguientes tcnicas Ta le per class :ierarc:y1 !ue mapea toda una jerar!ua de clase en una ta la )todas las propiedades de una jerar!ua de clases se almacenan en una ta la*. Ta le per concrete class1 cada ta la incluye tanto las propiedades de la clase !ue representa como las de la clase de la cual :ereda. Ta le per class1 crea una ta la por cada clase1 !ue contiene el #O(D de la superclase y las propiedades propias de la clase !ue representa. =ecordamos !ue la en la propiedad de />O?(/?(O+ el @enteroA y la @parteA tienen ciclos de vida independientes )uno puede e3istir sin el otro*1 mientras !ue en la /5=&5/?(O+ todo lo !ue aplica al @enteroA aplica tam in a la @parteA. La concurrencia controla el acceso simult2neo al mismo o jeto. >e implementa con tcnicas de ro;4loc'ing. &se loc'ing puede ser #esimista1 la entidad est2 lo!ueada para la totalidad del tiempo en !ue reside en memoria ) ueno para atc:*. Optimista1 la entidad est2 lo!ueada solo durante el tiempo en !ue se accede a ella ) ueno para online*. >e implementa por ejemplo controlando el time stamp o un n,mero de versin

del o jeto en el momento de actualizar para estar seguro !ue el mismo no "ue actualizado por alguien m2s desde la ,ltima lectura. >tore #rocedure&st2n escritas en un lenguaje propietario !ue puede resultar una tra a a la :ora de cam iar de =DB.>. &l acoplamiento entre los ># y las ta las reduce la "le3i ilidad. >e utilizan en atc: )incremento de per"ormance*1 o cuando no e3iste una capa de persistencia slida y se necesita un prototipo de aplicacin r2pidamente. La capa de persistencia encapsula el acceso a la ase de datos permitiendo a los programadores centrarse en el pro lema de negocio !ue de en in"ormatizar.

Anda mungkin juga menyukai