Saltar la navegación

3.5.- El lenguaje de consultas XQuery.

Caso práctico

Foto de Ana de pie en diagonal, mirando al frente y con manos cogidas.

Ana está orgullosa en su nueva faceta de profesora. Juan y María la han felicitado y están satisfechos con la introducción que les ha dado sobre Qizx. Ana les dice —Antes de empezar con la aplicación en Java, necesitamos familiarizarnos con el lenguaje de consultas XQuery.

A lo que Juan le pregunta —¿Conoces algo del lenguaje?"

Ana sonríe y contesta —Pues...sí. En clase vimos también algunos ejemplos sencillos de uso.

Juan, con cara de asombro dice —Está claro que el nuevo Ciclo Formativo de DAM incorpora muchos temas punteros que yo no domino. El próximo curso iniciaré sin falta el estudio de algunos módulos.

Hombre sentado trabajando con un ordenador.

XQuery es un lenguaje de consulta diseñado para extraer información de colecciones de datos expresadas en XML. Entre las principales características de XQuery vamos a destacar las siguientes:

  • Está basado en el lenguaje XPath, (XML Path Language), y se fundamenta en él para realizar la selección de información y la iteración a través del conjunto de datos XML.
  • Es un lenguaje declarativo, lo que significa que, en vez de ejecutar una lista de comandos como un lenguaje procedimental clásico, cada consulta es una expresión que es evaluada y devuelve un resultado, al igual que en SQL.

Podemos decir que XQuery es a XML lo mismo que SQL es a las bases de datos relacionales. Sin embargo, aunque XQuery y SQL puedan considerarse similares, el modelo de datos sobre el que se sustenta XQuery es muy distinto del modelo de datos relacional sobre el que sustenta SQL, ya que XML incluye conceptos como jerarquía y orden de los datos que no están presentes en el modelo relacional.

Por ejemplo, a diferencia de SQL, en XQuery es importante y determinante el orden en que se encuentren los datos, ya que no es lo mismo buscar una etiqueta nombre dentro de una etiqueta autor que todas las etiquetas nombre del documento (que pueden estar anidadas dentro de una etiqueta autor o fuera).

Los principales tipos de expresiones de XQuery son:

  • Expresiones XPath, para navegar por los documentos.
  • Expresiones FLWOR (For, Let, Where, Order, Return) para iterar por los elementos de un conjunto de datos.

Pero XQuery también admite:

  • Constructores para generar nodos y contenido dinámico.
  • Condicionales (IF, THEN ELSE) para construir el resultado en base a alguna condición.
  • Cuantificadores (SOME, ANY) para chequear la existencia de algún elemento que cumpla una condición.
  • Listas a las que se pueden aplicar operadores (UNION,...) y funciones de agregación (AVG, COUNT,...).

Un lenguaje procedimental es aquel que indica cómo se realiza cierto proceso para obtener los resultados que se esperan, esto es, se especifican los pasos o procedimiento que hay que seguir.