Mapeo Objeto Relacional

Páginas: 15 (3515 palabras) Publicado: 1 de julio de 2013
Mapeo
Objetos/Relacional

por Fernando Dodino

Versión 1.0
Septiembre 2007

Técnicas Avanzadas de Programación – Mapeo Objetos Relacional

Mapeo Objetos Relacional
Si tenemos un modelo de objetos como el siguiente

¿Qué tipo de estructura siguen los objetos en memoria?
Un grafo dirigido

Pedido
Ítems
Item

Prod.Conserv

producto
cantidad


3

Item
Prod.Fabr.producto
cantidad


2

Estos objetos viven en el ambiente y todos somos felices. El tema es que la
memoria es limitada y necesito poder almacenar los objetos en un medio que me
permita recuperarlos el día de mañana (concepto que llamaremos persistencia).
Entonces tengo distintas opciones:
- Puedo conservar la misma estructura en una base de objetos,
- o puedo utilizar una base de datosrelacional como repositorio de
información.
La pregunta es: este grafo que acabamos de dibujar ¿encaja justo en una
estructura basada en el álgebra relacional?
Mmm... claramente son distintas formas de relacionar entidades.
Anotamos en el pizarrón similitudes y diferencias
2

Técnicas Avanzadas de Programación – Mapeo Objetos Relacional



Originalmente podemos establecer unaequivalencia entre el concepto de
Tabla/Clase, y Registro/instancias de esa clase. Pero más adelante
empezaremos a tener ciertas dificultades para que este mapping sea tan
lineal.

Objetos
Datos
Comportamiento

RDBMS









Los objetos tienen comportamiento, las tablas sólo permiten habilitar
ciertos controles de integridad (constraints) o pequeñas validaciones antes
o después deuna actualización (triggers). Los stored procedures no están
asociados a una tabla, lo que genera el mismo problema que en la
programación estructurada: toco un campo y necesito al menos recompilar
todos los stored procedures asociados. Cada actualización impacta en los
datos por un lado y en los programas que actualizan los datos
(Find/Replace masivo).
Los objetos encapsulan información, nopara protegerse (siempre puedo
hackearlo), sino para favorecer la abstracción del observador. Una tabla no
tiene esa habilidad: si tengo una entidad con un atributo ACTIVO que es
VARCHAR2(1), tengo que entrar al constraint check o bien tirar un SELECT
para saber si el ACTIVO es 1 ó 0, “S” ó “N”, e inferir en el mejor de los
casos qué significan los valores de ese campo. Puedo documentarlo enun
diccionario de datos, algo que está ajeno a la base que estoy tocando y que
necesita una sincronización propia de gente pulcra y obsesiva.
En objetos puedo generar interfaces, que permiten establecer un contrato
entre dos partes, quien publica un determinado servicio y quien usa ese
servicio. En el álgebra relacional la interfaz no se convierte en ninguna
entidad, con lo cual hay quecontar con ciertos trucos para generar objetos
que sólo encapsulan comportamiento (como los strategies stateless):

La herencia es una relación estática que se da entre clases, que favorece
agrupar comportamiento y atributos en común. Cuando yo instancio un
objeto recibo la definición propia de la clase y de todas las superclases de
las cuales heredo. En el modelo lógico de un DiagramaEntidad/Relación yo
tengo supertipos y subtipos, pero en la implementación física las tablas no

3

Técnicas Avanzadas de Programación – Mapeo Objetos Relacional



tienen el concepto de herencia. Entonces tengo que hacer las adaptaciones
correspondientes (como veremos más adelante).
Al no existir el comportamiento en las tablas y no estar presente el
concepto de interfaz
no haypolimorfismo en el álgebra relacional: yo
puedo recibir un objeto sin saber exactamente de qué clase es, y a mí no
me interesa averiguarlo, sólo me concentro en lo que le puedo pedir y en
su contrato. Al tirar un query sobre una tabla, necesito saber de qué tabla
se trata (claro, al menos en los queries tradicionales, que no acceden a los
metadatos).

Esto es lo que se conoce como “Impedance...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Objetivos De Mkt Relacional
  • Base De Datos Relacional Y Orientada A Objetos
  • Diferencias Entre Las Bases De Datos Relacionales Y Orientados A Objetos
  • Base De Datos Objeto-Relacional
  • Base de datos objeto-relacional
  • Mapeo
  • Mapeo
  • Mapeo

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS