Sunteți pe pagina 1din 13

Mapping O-R, Lazzy load

Walter Nahuelqun

Arquitectura de Software - Ing. (E) en Informtica

Indice de Contenidos
Introduccin Objetivo General Contenido
Lazy Load(Como funciona y cuando se utiliza) Mapping O-R()

Conclusin Bibliografa
29-10-2012 Arquitectura de Software 2

Introduccin
Resuelve problemas de carga desmesurada y dependencias circulares. Centran su atencin en la forma en que los objetos se relacionan en memoria y la forma en que las tablas se relacionan en la base de datos.

29-10-2012

Arquitectura de Software

Objetivos General

29-10-2012

Arquitectura de Software

Lazy load
Un objeto que no contiene los datos necesarios, pero sabe como obtenerlos Interrumpe por el momento el proceso de carga de objetos relacionados, dejandolo listo para cuando sus datos sean requeridos, asi el pueda cargarse automticamente. De no ser necesario esos datos, no habra que ir a buscarlos ahorrando el tiempo insumido en ello

29-10-2012

Arquitectura de Software

Lazy load
Resuelve problemas de carga desmesurada y dependencias circulares; el ejemplo clsico es una relacin uno a muchos, donde un objeto de negocio posee una coleccin de otros objetos; cuando el objeto A es solicitado, se trae a memoria el objeto A y slo el objeto A, con la coleccin de objetos B vaca; luego, los objetos B sern ledos cuando realmente se necesiten.
29-10-2012 Arquitectura de Software 6

Como trabaja?
Hay cuatro variedades principales de Lazy load. Lazy Initialization: utiliza un valor de marca especial (por lo
general nula) para indicar que un campo no est cargado. Todos los accesos al campo comprueba el campo para el valor del marcador y si descarga

Proxy virtual: es un objeto con la misma interfaz que el objeto


real. La primera vez que uno de sus mtodos son llamados estos cargan el valor real y luego los delegados

Value holder: es un objeto con un mtodo GetValue. Los


clientes llaman a getValue para obtener el objeto real, la primera llamada activa la carga

Ghost: es el objeto real, sin ningn dato. La primera vez que se


llama un mtodo el ghost carga los datos llenos en sus campos
29-10-2012 Arquitectura de Software 7

Cundo se utiliza?
Decidir cundo utilizar un lazy load es cunto quiere retirarse de la base de datos a medida que carga un objeto, y el nmero de llamadas de bases de datos que se requieren En trminos de rendimiento se trata de decidir si desea recibir el golpe de traer de vuelta los datos. A menudo es una buena idea traer todo lo que necesitas en una llamada por lo que tiene en su lugar, sobre todo si corresponde a una sola interaccion con una interfaz de usuario El mejor momento para utilizar lazy load es cuando se trata de una llamada adicional y los datos que est llamando no se utiliza cuando el objeto principal se utiliza

29-10-2012

Arquitectura de Software

Mapping O-R
Los patrones de Mapeo de Relaciones centran su atencin en la forma en que los objetos se relacionan en memoria y la forma en que las tablas se relacionan en la base de datos.

29-10-2012

Arquitectura de Software

Principalmente, dentro de esta categora, Fowler explica tres patrones:


Identity Field: consiste en generar un nmero y administrarlo; Foreign Key Mapping: sirve para mapear relaciones de uno a
muchos; una relacin de este tipo, que en memoria consiste en un objeto A con una coleccin de objetos B dentro, se mapea con una clave fornea del lado de la entidad contenida; la relacin se invierte en la base de datos.
muchos a muchos; en una base de datos esta relacin se resuelve introduciendo una tercera tabla que contenga las claves primarias de ambas entidades involucradas en la relacin.
Arquitectura de Software 10

Association Table Mapping: sirve para mapear relaciones de

29-10-2012

Cmo se implementan las relaciones de objetos?


Las relaciones de los esquemas de los objetos se implementa mediante una combinacin de referencias a los objetos y las operaciones

29-10-2012

Arquitectura de Software

11

Conclusin
Se llega al punto en el que carga un objeto puede tener el efecto de la carga de una enorme cantidad de objetos relacionados, algo que perjudica el rendimiento cuando slo unos pocos de los objetos son realmente necesarios.

29-10-2012

Arquitectura de Software

12

Bibliografia
http://martinfowler.com/eaaCatalog/lazyLoad .html Fowler, M. (2003). Patterns of Enterprise Application Architecture. Pearson Education, Inc.

29-10-2012

Arquitectura de Software

13

S-ar putea să vă placă și