Lenguaje de recuperacion X-QUERY


Introducción


X-Query es un lenguaje de recuperación de consultas estándar, publicado por el W3C (World Wide Web Consortium) que utiliza la notación XML para definir consultas y manejar los resultados. X-Query es lo suficientemente flexible como para consultar un amplio espectro de orígenes de datos, incluyendo bases de datos relacionales, documentos XML,Servicios Web,aplicaciones y sistemas heredados.


X-Query es un lenguaje de recuperación que provee mecanismos para extraer información de bases de datos XML nativas, así como de otro tipo de orígenes de datos (como ser bases de datos relacionales). Entre otras cosas, permite la posibilidad de obtener datos de un archivo XML y una tabla de la base de datos relacional con una sola consulta. X-Query se presenta como un lenguaje de recuperación funcional, en vez de ejecutar comandos como lo haría un lenguaje procedural, cada consulta es una expresión a ser evaluada. Las expresiones se pueden combinar para hallar nuevas expresiones. X-Query hace un uso intensivo de XPath (un lenguaje utilizado para seleccionar porciones de XML); de hecho algunos ven a X-Query como un superconjunto de XPath. En el gráfico que se muestra más adelante se puede visualizar algunas de las especificaciones del W3C, ubicadas por orden de aparición. XPath en un principio fue parte de XSL 1.0 y luego se desarrolló como una especificación separada. La nueva versión de XPath (XPath 2.0) está siendo desarrollada de manera conjunta a X-Query, por el mismo grupo de trabajo. Los terminos formales de X-Query están definidos en el documento: X-Query 1.0 y XPath 2.0


Requisitos técnicos de X-QUERY


El grupo de trabajo X-Query del W3C ha definido una serie de requerimientos técnicos para dicho lenguaje. Los más importantes son:


  • XQuery debe ser un lenguaje declarativo.
  • XQuery debe ser independiente del protocolo de acceso a la colección de datos.
  • Las consultas y los resultados deben respetar el modelo de datos XML.
  • Debe ser capaz de soportar XML-Schemas y DTDs y también debe ser capaz de trabajar sin ninguno de ellos.
  • XQuery debe poder trabajar con independencia de la estructura del documento, esto es, sin necesidad de conocerla.

Claúsulas FLWOR


En X-Query las consultas pueden estar compuestas por claúsulas de hasta cinco tipos distintos. En concreto son:


  • For:vincula una o más variables a expresiones escritas en XPath, creando un flujo de tuplas en el que cada tupla está vinculada a una de las variable.
  • Let: vincula una variable al resultado completo de una expresión añadiendo esos vínculos a las tuplas generadas por una cláusula for o, si no existe ninguna cláusula for, creando una única tupla que contenga esos vínculos.
  • Where: filtra las tuplas eliminando todos los valores que no cumplan las condiciones dadas.
  • Order by: ordena las tuplas según el criterio dado.
  • Return: construye el resultado de la consulta para una tupla dada,después de haber sido filtrada por la cláusula where y ordenadapor la cláusula order by.

A continuación y por último se muestra un gráfico con el orden de ejecución y el resultado de las cinco claúsulas posibles:


claúsulas de consulta de X-query
Material adicional.


Bibliografía utilizada:


Información recopilada por: Ernesto Salvanés Castilla.