López González, Jesús2021-03-172021-03-172020http://hdl.handle.net/10115/17540Tesis Doctoral leída en la Universidad Rey Juan Carlos de Madrid en 2020. Directores de la Tesis: Juan Manuel Serrano Hidalgo y César Cáceres TaladrizLos datos son, sin duda alguna, el elemento más característico que identifica a esta sociedad de la información en la que vivimos. Tal es así que se han posicionado como el principal activo de las empresas actuales [74]. Las exigentes demandas de las aplicaciones modernas han derivado en una eclosión de tecnologías muy diversas, centradas en el dato, cuyo fin es el de facilitar el almacenamiento y el procesado de las ingentes cantidades de información que éstas consumen, alcanzando niveles de rendimiento que serían impensables hace no demasiados años atrás. Este tipo de tecnologías suelen incluir lenguajes de consultas para el acceso y la manipulación de la información con la que trabajan. Dada esta situación, resulta muy habitual que la lógica de negocio de la aplicación, implementada en un lenguaje de propósito general (o lenguaje host), tenga que interoperar con un lenguaje de consultas (o lenguaje target) para poder acceder al estado gestionado por ésta misma. Esta situación puede derivar en ciertas situaciones problemáticas, que se describen en los siguientes párrafos. En primer lugar, pueden surgir desequilibrios importantes entre el lenguaje host y el lenguaje target llegando a derivar en problemas de mantenibilidad, confiabilidad y seguridad. Uno de los ejemplos más representativos de esta situación es el del object-relational impedance mismatch [24, 63], que recoge las dificultades que surgen cuando un lenguaje host basado en el paradigma de orientación a objetos (OO) debe lidiar con un lenguaje target que trabaja sobre una base de datos relacional. Teniendo en cuenta que Java lidera la lista de lenguajes de programación más utilizados en la actualidad1 y que las tres bases de datos más extendidas a día de hoy son relacionales2, se puede deducir que es un problema que ha sido objeto de mucha investigación. Prueba de ello es el surgimiento de los object-relational mappers (ORMs), que nacían con el objetivo de abstraer al programador OO de los detalles asociados a la capa de persistencia [6]. Desafortunadamente, la abstracción propuesta por un ORM es leaky [113], es decir, no es capaz de abstraer los detalles subyacentes en su totalidad...spaAttribution-NonCommercial-NoDerivatives 4.0 Internacionalhttp://creativecommons.org/licenses/by-nc-nd/4.0/InformáticaDiseño y formalización de lenguajes de consultas inspirados en ópticasinfo:eu-repo/semantics/doctoralThesisinfo:eu-repo/semantics/openAccess1203.17 Informática