fbpx
Wikipedia

Adaptación de impedancias objeto-relacional

La Adaptación de impedancias objeto-relacional (object-relational impedance mismatch en inglés) es una serie de problemas conceptuales y técnicos que se presentan a menudo al trabajar con sistemas gestores de bases de datos relacionales desde servidores de aplicaciones desarrollados en lenguajes orientados a objetos.[1]​ Los problemas se centran, principalmente, en el mapeo de definiciones de objetos o clases en tablas de una base de datos definida según un esquema relacional.

El término proviene del concepto de ingeniería eléctrica Adaptación de impedancias.

Problemas

El problema base es que mientras que las instancias de objetos se referencian unas a otras formando un grafo (en el sentido matemático, con bucles y ciclos), los esquemas relacionales son tablas basadas en álgebra relacional que se enlazan con otras tuplas heterogéneas agrupando sus campos en filas con distintos tipos de datos.

Problemas relacionados con conceptos de la orientación a objetos

Encapsulación

Los programas orientados a objeto facilitan un diseño detallado con técnicas que permiten ocultar la representación interna de objetos (lo que se conoce como "encapsulación") En un entorno orientado a objetos los atributos internos de un objeto no se muestran exteriormente a ningún otro elemento, siendo sólo accesibles mediante la interfaz propia que implemente

Sin embargo, el mapeo objeto-relacional tiene que mostrar necesariamente el contenido interno de un objeto para interactuar con otros elementos. De este modo el mapeo suele violar el principio de encapsulación del objeto al hacer públicos de manera automática campos de éste en forma de columnas de la base de datos.

Accesibilidad

El control de acceso a los datos de un objeto (privado, público, protegido, ...) está en la naturaleza de su modelo.

Sin embargo, en el modelo relacional el control es mucho más difuso.

Interfaces, clases, herencia y polimorfismo

En el paradigma orientado a objetos los objetos definen interfaces que son la única forma de acceder a su elementos internos. Sin embargo, en el modelo relacional esto el acceso se controla mediante vistas (views) que dan distinta perspectiva y restricciones.

Lo mismo sucede con otros conceptos claves en el modelo orientado a objetos como pueden ser las clases de objetos, herencia y polimorfismo, no considerados en sistemas relacionales de bases de datos.

Mapeo a conceptos relacionales

Un mapeo adecuado entre conceptos relacional y orientado a objetos requeriría establecer relaciones entre tablas de la base de datos y asociaciones del análisis orientado a objetos.

Diferencias en tipos de datos

Pueden existir muchas diferencias entre los tipos de datos en un lenguaje orientado a objetos y un modelo relacional de bases de datos. ESte segundo prohíbe el uso de atributos que sean referencias (punteros), mientras que en OO es muy común. Otro aspecto es la semática de las operaciones en cada tipo y entre tipos. Además estos problemas se presentan con más profundidad en tipos de datos más complejos.

Diferencias en estructura e integridad

En los lenguajes OO, los objetos se componen de otros objetos en varias capas, mientras que en el modelo relacional se lo representa con nombres de variables no anidadas.

A veces las restricciones de un lenguaje OO no tienen fácil representación en el modelo relacional, pero es que además a veces se declaran implícitamente con el uso de excepciones en el código que manipula los datos internos.

Diferencias en la manipulación

La manipulación presenta diferencias semánticas. El modelo relacional define pocos operadores muy rigurosos (matemáticos) para hacer consultas, mientras que los lenguajes OO tienen operadores de consulta más complejos y personalizados en cada lenguaje.

Diferencias en las transacciones

El manejo de transacciones y concurrencia también suele presentar diferencias entre las dos aproximaciones.

Alternativas

Existen varias alternativas a los problemas anteriores

Uso de una arquitectura alternativa

La mayoría de estos problemas derivan del mapeo de elementos del modelo de objetos a tuplas de relaciones de bases de datos, por lo que el uso de otros sistemas de gestión de bases de datos como los NoSQL o XML lo solucionarían[2]

Minimización de los problemas

Un solución habitual es que un framework modele en tiempo de ejecución aspectos que son estáticos en ambos modelos.

Limitaciones:

  • No hay comprobación estática de tipos.
  • Coste computacional (temporal y de memoria) de las operaciones.
  • No se pueden usar determinados aspectos de la OO como el polimorfismo.

Compensación

Existen frameworks que automatizan el tratamiento de datos mediante patrones implementados sobre técnicas de reflexión o programación automática

No obstante presentan anomalías, como la mezcla de propiedades del dominio (por ejemplo "número de teléfono") y del framework (por ejemplo "IsModified").

Véase también

Referencias

  1. Ireland, Christopher; Bowers, David (24 de mayo de 2015). «Exposing the myth: object-relational impedance mismatch is a wicked problem». DBKDA 2015, The Seventh International Conference on Advances in Databases, Knowledge, and Data Applications (IARIA XPS Press): 21-26. ISBN 9781612084084. Consultado el 23 de octubre de 2019. 
  2. NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. Addison-Wesley Educational Publishers Inc, 2009. ISBN-13: 978-0321826626
  •   Datos: Q1600611

adaptación, impedancias, objeto, relacional, object, relational, impedance, mismatch, inglés, serie, problemas, conceptuales, técnicos, presentan, menudo, trabajar, sistemas, gestores, bases, datos, relacionales, desde, servidores, aplicaciones, desarrollados,. La Adaptacion de impedancias objeto relacional object relational impedance mismatch en ingles es una serie de problemas conceptuales y tecnicos que se presentan a menudo al trabajar con sistemas gestores de bases de datos relacionales desde servidores de aplicaciones desarrollados en lenguajes orientados a objetos 1 Los problemas se centran principalmente en el mapeo de definiciones de objetos o clases en tablas de una base de datos definida segun un esquema relacional El termino proviene del concepto de ingenieria electrica Adaptacion de impedancias Indice 1 Problemas 1 1 Problemas relacionados con conceptos de la orientacion a objetos 1 1 1 Encapsulacion 1 1 2 Accesibilidad 1 1 3 Interfaces clases herencia y polimorfismo 1 1 4 Mapeo a conceptos relacionales 1 2 Diferencias en tipos de datos 1 3 Diferencias en estructura e integridad 1 4 Diferencias en la manipulacion 1 5 Diferencias en las transacciones 2 Alternativas 2 1 Uso de una arquitectura alternativa 2 2 Minimizacion de los problemas 2 3 Compensacion 3 Vease tambien 4 ReferenciasProblemas EditarEl problema base es que mientras que las instancias de objetos se referencian unas a otras formando un grafo en el sentido matematico con bucles y ciclos los esquemas relacionales son tablas basadas en algebra relacional que se enlazan con otras tuplas heterogeneas agrupando sus campos en filas con distintos tipos de datos Problemas relacionados con conceptos de la orientacion a objetos Editar Encapsulacion Editar Los programas orientados a objeto facilitan un diseno detallado con tecnicas que permiten ocultar la representacion interna de objetos lo que se conoce como encapsulacion En un entorno orientado a objetos los atributos internos de un objeto no se muestran exteriormente a ningun otro elemento siendo solo accesibles mediante la interfaz propia que implementeSin embargo el mapeo objeto relacional tiene que mostrar necesariamente el contenido interno de un objeto para interactuar con otros elementos De este modo el mapeo suele violar el principio de encapsulacion del objeto al hacer publicos de manera automatica campos de este en forma de columnas de la base de datos Accesibilidad Editar El control de acceso a los datos de un objeto privado publico protegido esta en la naturaleza de su modelo Sin embargo en el modelo relacional el control es mucho mas difuso Interfaces clases herencia y polimorfismo Editar En el paradigma orientado a objetos los objetos definen interfaces que son la unica forma de acceder a su elementos internos Sin embargo en el modelo relacional esto el acceso se controla mediante vistas views que dan distinta perspectiva y restricciones Lo mismo sucede con otros conceptos claves en el modelo orientado a objetos como pueden ser las clases de objetos herencia y polimorfismo no considerados en sistemas relacionales de bases de datos Mapeo a conceptos relacionales Editar Un mapeo adecuado entre conceptos relacional y orientado a objetos requeriria establecer relaciones entre tablas de la base de datos y asociaciones del analisis orientado a objetos Diferencias en tipos de datos Editar Pueden existir muchas diferencias entre los tipos de datos en un lenguaje orientado a objetos y un modelo relacional de bases de datos ESte segundo prohibe el uso de atributos que sean referencias punteros mientras que en OO es muy comun Otro aspecto es la sematica de las operaciones en cada tipo y entre tipos Ademas estos problemas se presentan con mas profundidad en tipos de datos mas complejos Diferencias en estructura e integridad Editar En los lenguajes OO los objetos se componen de otros objetos en varias capas mientras que en el modelo relacional se lo representa con nombres de variables no anidadas A veces las restricciones de un lenguaje OO no tienen facil representacion en el modelo relacional pero es que ademas a veces se declaran implicitamente con el uso de excepciones en el codigo que manipula los datos internos Diferencias en la manipulacion Editar La manipulacion presenta diferencias semanticas El modelo relacional define pocos operadores muy rigurosos matematicos para hacer consultas mientras que los lenguajes OO tienen operadores de consulta mas complejos y personalizados en cada lenguaje Diferencias en las transacciones Editar El manejo de transacciones y concurrencia tambien suele presentar diferencias entre las dos aproximaciones Alternativas EditarExisten varias alternativas a los problemas anteriores Uso de una arquitectura alternativa Editar La mayoria de estos problemas derivan del mapeo de elementos del modelo de objetos a tuplas de relaciones de bases de datos por lo que el uso de otros sistemas de gestion de bases de datos como los NoSQL o XML lo solucionarian 2 Minimizacion de los problemas Editar Un solucion habitual es que un framework modele en tiempo de ejecucion aspectos que son estaticos en ambos modelos Limitaciones No hay comprobacion estatica de tipos Coste computacional temporal y de memoria de las operaciones No se pueden usar determinados aspectos de la OO como el polimorfismo Compensacion Editar Existen frameworks que automatizan el tratamiento de datos mediante patrones implementados sobre tecnicas de reflexion o programacion automaticaNo obstante presentan anomalias como la mezcla de propiedades del dominio por ejemplo numero de telefono y del framework por ejemplo IsModified Vease tambien EditarMapeo objeto relacional Base de datos objeto relacionalReferencias Editar Ireland Christopher Bowers David 24 de mayo de 2015 Exposing the myth object relational impedance mismatch is a wicked problem DBKDA 2015 The Seventh International Conference on Advances in Databases Knowledge and Data Applications IARIA XPS Press 21 26 ISBN 9781612084084 Consultado el 23 de octubre de 2019 NoSQL Distilled A Brief Guide to the Emerging World of Polyglot Persistence Addison Wesley Educational Publishers Inc 2009 ISBN 13 978 0321826626 Datos Q1600611Obtenido de https es wikipedia org w index php title Adaptacion de impedancias objeto relacional amp oldid 128780332, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos