12.07.2015 Views

Mapeo Objeto Relacional - Repositorio UTN

Mapeo Objeto Relacional - Repositorio UTN

Mapeo Objeto Relacional - Repositorio UTN

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ORM (<strong>Mapeo</strong> <strong>Objeto</strong> –<strong>Relacional</strong>)En el ejemplo para el modelo original se crea una tabla conteniendo los campos de todaslas clases:tabla PERSONA [ID : Clave primaria.DISCRIMINADOR: VARCHARNOMBRE: VARCHARPREFERENCIAS: VARCHARSALARIO: DECIMAL]Vemos que además es necesario agregar en la clase Persona un campo para la claveprimaria (información shadow) y un campo discriminador en la tabla que permitadeterminar de qué clase es la instancia persistida. El discriminador puede contenersimplemente el nombre completo de la clase concreta del objeto que se ha grabado.Por ejemplo, si nuestras clases están en el paquete test y grabó una instancia deEmpleado, el campo discriminador contendrá el valor "test.Empleado", lo cual me permitereconstruir de forma eficiente el objeto desde la base de datos.Ahora, que sucede con la evolución del modelo. Al agregar la clase Ejecutivo es necesarioagregar el campo "bonificacion: decimal" a la tabla. Y definirlo como nullable!! porque losregistros correspondientes a Cliente o Empleado no definen un valor para la bonificación(no tiene sentido).Ventajas- Es un enfoque simple que permite agregar nuevas clases de forma sencilla (soloagregar columnas).- Soporta polimorfismo mediante inspección del valor del campo discriminador.- Provee acceso muy eficiente a los datos (Sin JOINS).Desventajas- Alto acoplamiento con la jerarquía de clases ya que todas se persisten en la mismatabla. Un cambio en la jerarquía afecta a todas.- Potencial desperdicio de espacio en la base de datos, por campos irrelevantes a laclase. Por ejemplo al tener que grabar un valor por defecto para la bonificación algrabar un Cliente.Tatiana Alexandra Freire Reyes 19

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!