Funcionalidad 4: Almacenes de Datos y Bases de Datos XML ...

Funcionalidad 4: Almacenes de Datos y Bases de Datos XML ... Funcionalidad 4: Almacenes de Datos y Bases de Datos XML ...

alarcos.inf.cr.uclm.es
from alarcos.inf.cr.uclm.es More from this publisher
13.08.2013 Views

MMAABBDD Funcionalidad 4: Almacenes de Datos y Bases de Datos XML Los lenguajes que proporcionan más capacidades de consulta y transformación son: 12 XPath: Trata partes de los documentos XML mediante expresiones de rutas de acceso, recorriendo documentos XML a partir de dichas rutas. Cada expresión de ruta XPath es una secuencia de pasos de ubicación separados por el carácter“/” (que indica la raíz del documento). Como resultado de la expresión se obtiene una lista de nodos. Se puede acceder a los valores de los atributos usando el símbolo @. Ejemplo: /banco-2/cuenta/@numero_cuenta devuelve un conjunto de nodos con todos los valores del atributo numero_cuenta de los elementos de cuenta. XPath permite incluir restricciones para devolver una lista de nodos según las condiciones deseadas. Ejemplo: /banco-2/cuenta[saldo>400] devuelve los elementos de cuenta con un valor de saldo mayor que 400. Otras funciones disponibles para XPath son: o Comprobación de la posición de un nodo en el orden de los hermanos o Función de agregación Count() que cuenta el número de nodos coincidentes con la expresión a la que se aplica. o El operador “|” permite unir resultados de expresiones o Las expresiones XPath pueden saltar varios niveles de nodos mediante el uso de “//”. Resulta de gran utilidad para poder buscar los datos necesarios sin un conocimiento completo de un esquema. o La función predeterminada doc(nombre) devuelve la raíz de un documento con nombre, siendo el nombre el de un archivo o una URL. XQuery: Se trata del lenguaje de consulta estandarizado de XML. XQuery procede de un lenguaje de consulta denominado Quilt, el cual incluye características de lenguajes como XPath o SQL. Las consultas tienen una sintaxis similar a la de SQL. Cada consulta se escribe mediante una expresión denominada FLWOR. Una expresión de éste tipo consta de las siguientes cláusulas: o For: Es como la cláusula from de SQL y proporciona una serie de variables cuyos valores son los resultados de expresiones XPath o Let: Permite asignar el resultado de expresiones Xpath al nombre de las variables. No tiene equivalente en SQL. o Where: Es igual que la cláusula where de SQL o Order by: Permite la ordenación de las tuplas de salida.

MMAABBDD Funcionalidad 4: Almacenes de Datos y Bases de Datos XML 13 o Return: Permite la construcción de resultados en XML de la expresión devuelta. Cuando en la cláusula return se encuentra un elemento como que inicia una expresión, trata su contenido como texto XML normal, excepto partes encerradas entre llaves, que se evalúan como expresiones. XQuery proporciona otra forma de construir elementos usando constructores element y attribute dentro de la cláusula return. Además, las expresiones FLWOR de XQuery se pueden anidar en la cláusula return con el fin de generar anidamientos de elementos que no aparecen en el documento origen. Son similares a las subconsultas anidadas en la cláusula from de las consultas SQL XQuery no proporciona un constructor group by, las consultas de agregación se pueden escribir usando funciones de agregado sobre expresiones de ruta anidadas dentro de la cláusula return. En cambio los resultados se pueden ordenar si se incluye una cláusula order by. XQuery también soporta funciones definidas por el usuario Otras propiedades relevantes son: o El resultado de una consulta XQuery es un conjunto de nodos en el que pueden existir nodos repetidos. Para eliminar duplicados se utiliza la funcion distinct() o Se permiten funciones definidas por el usuario. o Posibilidad de incluir cuantificadores some y any. XSLT: XSL, que se trata de un lenguaje de hojas del estilo de XML, incluye un lenguaje de transformación de propósito general denominado XSLT. Éste lenguaje permite convertir documentos XML de una sintaxis a otra (por ejemplo, de un XML a otro o a un documento HTML). En XSLT las transformaciones se expresan utilizando reglas recursivas denominadas plantillas. Las plantillas permiten seleccionar contenido de los documentos XML mediante la utilización de expresiones Xpath. Existe un mecanismo importante denominado recursividad estructural que permite que cuando una plantilla coincide con un elemento en la estructura del árbol, las reglas de esa plantilla se aplican a los subelementos del árbol.

MMAABBDD <strong>Funcionalidad</strong> 4:<br />

<strong>Almacenes</strong> <strong>de</strong> <strong>Datos</strong> y <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> <strong>XML</strong><br />

Los lenguajes que proporcionan más capacida<strong>de</strong>s <strong>de</strong> consulta y transformación son:<br />

12<br />

XPath: Trata partes <strong>de</strong> los documentos <strong>XML</strong> mediante expresiones <strong>de</strong> rutas <strong>de</strong> acceso,<br />

recorriendo documentos <strong>XML</strong> a partir <strong>de</strong> dichas rutas. Cada expresión <strong>de</strong> ruta XPath es<br />

una secuencia <strong>de</strong> pasos <strong>de</strong> ubicación separados por el carácter“/” (que indica la raíz <strong>de</strong>l<br />

documento). Como resultado <strong>de</strong> la expresión se obtiene una lista <strong>de</strong> nodos. Se pue<strong>de</strong><br />

acce<strong>de</strong>r a los valores <strong>de</strong> los atributos usando el símbolo @.<br />

Ejemplo: /banco-2/cuenta/@numero_cuenta <strong>de</strong>vuelve un conjunto <strong>de</strong> nodos con todos<br />

los valores <strong>de</strong>l atributo numero_cuenta <strong>de</strong> los elementos <strong>de</strong> cuenta.<br />

XPath permite incluir restricciones para <strong>de</strong>volver una lista <strong>de</strong> nodos según las<br />

condiciones <strong>de</strong>seadas.<br />

Ejemplo: /banco-2/cuenta[saldo>400] <strong>de</strong>vuelve los elementos <strong>de</strong> cuenta con un valor <strong>de</strong><br />

saldo mayor que 400.<br />

Otras funciones disponibles para XPath son:<br />

o Comprobación <strong>de</strong> la posición <strong>de</strong> un nodo en el or<strong>de</strong>n <strong>de</strong> los hermanos<br />

o Función <strong>de</strong> agregación Count() que cuenta el número <strong>de</strong> nodos coinci<strong>de</strong>ntes con<br />

la expresión a la que se aplica.<br />

o El operador “|” permite unir resultados <strong>de</strong> expresiones<br />

o Las expresiones XPath pue<strong>de</strong>n saltar varios niveles <strong>de</strong> nodos mediante el uso <strong>de</strong><br />

“//”. Resulta <strong>de</strong> gran utilidad para po<strong>de</strong>r buscar los datos necesarios sin un<br />

conocimiento completo <strong>de</strong> un esquema.<br />

o La función pre<strong>de</strong>terminada doc(nombre) <strong>de</strong>vuelve la raíz <strong>de</strong> un documento con<br />

nombre, siendo el nombre el <strong>de</strong> un archivo o una URL.<br />

XQuery: Se trata <strong>de</strong>l lenguaje <strong>de</strong> consulta estandarizado <strong>de</strong> <strong>XML</strong>. XQuery proce<strong>de</strong> <strong>de</strong><br />

un lenguaje <strong>de</strong> consulta <strong>de</strong>nominado Quilt, el cual incluye características <strong>de</strong> lenguajes<br />

como XPath o SQL.<br />

Las consultas tienen una sintaxis similar a la <strong>de</strong> SQL. Cada consulta se escribe mediante<br />

una expresión <strong>de</strong>nominada FLWOR. Una expresión <strong>de</strong> éste tipo consta <strong>de</strong> las siguientes<br />

cláusulas:<br />

o For: Es como la cláusula from <strong>de</strong> SQL y proporciona una serie <strong>de</strong> variables<br />

cuyos valores son los resultados <strong>de</strong> expresiones XPath<br />

o Let: Permite asignar el resultado <strong>de</strong> expresiones Xpath al nombre <strong>de</strong> las<br />

variables. No tiene equivalente en SQL.<br />

o Where: Es igual que la cláusula where <strong>de</strong> SQL<br />

o Or<strong>de</strong>r by: Permite la or<strong>de</strong>nación <strong>de</strong> las tuplas <strong>de</strong> salida.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!