almacenamiento de información

Upload: alfredo

Post on 16-Jul-2015

4.819 views

Category:

Documents


0 download

DESCRIPTION

XPATH XPath es un lenguaje que permite seleccionar nodos de un documento XML y calcular valores a partirde su contenido. Existen dos versiones de XPath aprobadas por el W3C, XML Path Language 1.0 (noviembre de 1999) y XML Path Language 2.0 (enero de 2007). La más utilizada actualmente es la versión 1. XPath considera un documento XML como un árbol de nodos. En Informática, un árbol es una estructura de datos que equivale a un árbol matemático. En Matemáticas un árbol es un caso particular de gra

TRANSCRIPT

XPATH XPath es un lenguaje que permite seleccionar nodos de un documento XML y calcular valores a partirde su contenido. Existen dos versiones de XPath aprobadas por el W3C, XML Path Language 1.0 (noviembre de 1999) y XML Path Language 2.0 (enero de 2007). La ms utilizada actualmente es la versin 1. XPath considera un documento XML como un rbol de nodos. En Informtica, un rbol es una estructura de datos que equivale a un rbol matemtico. En Matemticas un rbol es un caso particular de grafo. Los siguientes trminos definidos en teora de grafos se utilizan tambin en Informtica y en XPath: Un grafo es un conjunto de objetos llamados nodos o vrtices unidos por enlaces llamados arcos o aristas. Un grafo dirigido es un grafo en el que los arcos tienen direccin. Cuando dos nodos estn unidos por un arco con direccin, el nodo padre es el nodo del que parte el arco y el nodo hijo es el nodo al que llega el arco. Un rbol es un grafo en el que cualquier pareja de vrtices estn conectada por un nico camino (es decir, que no hay ciclos). Un rbol dirigido es un rbol en el que las aristas tienen direccin y todos los nodos menos uno tienen un nico padre. El nodo raz de un rbol dirigido es el nico nodo sin padre. Los nodos hermanos son los nodos que tienen el mismo padre Los nodos descendientes de un nodo son todos los nodos a los que se llega desde el nodo: los hijos, los hijos delos hijos, etc. Los nodos ascendientes de un nodo son todos los nodos de los que un nodo es descendiente: el padre, el padre del padre, etc. Tipos de nodos Un documento XML puede representarse como un rbol dirigido, considerando por ejemplo los elementos como nodos y que un elemento es padre de los elementos que contiene. Pero en XPath no slo los elementos son nodos, en realidad hay siete tipos de nodos: Raz Elemento Atributo Texto Comentario Instruccin de procesamiento Espacio de nombres

Nota: La declaracin DOCTYPE no se considera como nodo. Por ejemplo, el documento XML siguiente:

La vida est en otra parte Milan Kundera Pantalen y las visitadoras Mario Vargas Llosa Conversacin en la catedral Mario Vargas Llosa se puede representar mediante el siguiente grafo:

Los nodos atributos y de texto no son como los nodos elemento. Por ejemplo, los nodos atributo y de texto no pueden tener descendientes. En realidad el nodo atributo ni siquiera se considera como hijo, sino como una etiqueta adosada al elemento. El texto contenido por una etiqueta s que se considera hijo del elemento, aunque las expresiones XPath suelen trabajar con nodos elementos y para referirse a los atributos o al texto se utilizan notaciones especiales.

Sintaxis de la expresiones XPath Una expresin XPath es una cadena de texto que representa un recorrido en el rbol del documento. Las expresiones ms simples se parecen a las rutas de los archivos en el explorador de Windows o en la shell de GNU/Linux. Evaluar una expresin XPath es buscar si hay nodos en el documento que se ajustan al recorrido definido en la expresin. El resultado de la evaluacin son todos los nodos que se ajustan a la expresin. Las expresiones XPath se pueden escribir de dos formas distintas: sintaxis abreviada: ms compacta y fcil de leer sintaxis completa: ms larga pero con ms opciones disponibles Las expresiones XPath se pueden dividir en pasos de bsqueda. Cada paso de bsqueda se puede a su vez dividir en tres partes: - eje: indica el nodo o los nodos en los que se realiza la bsqueda - nodo de comprobacin: especifica el nodo o los nodos seleccionados dentro del eje - predicado: permite restringir los nodos de comprobacin Sintaxis abreviada Veamos unos ejemplos de expresiones XPath de sintaxis abreviada y el resultado de su evaluacin en el documento de ejemplo anterior: Ejes /: si est al principio de la expresin, indica el nodo raz, si no, indica "hijo".

//: indica "descendiente" (hijos, hijos de hijos, etc.).

@atributo: selecciona el atributo.

..: selecciona el elemento padre

|: permite elegir varios recorridos.

Nodos de comprobacin node(): selecciona todos los nodos (elementos y texto).

text(): selecciona el contenido del elemento (texto).

*: selecciona todos los elementos

(No devuelve nada porque autor slo contiene texto @*: selecciona todos los atributos

Predicados Los predicados se escriben entre corchetes [@atributo]: selecciona los elementos que tienen el atributo.

[nmero]: si hay varios resultados selecciona uno de ellos por nmero de orden; last() selecciona el ltimo de ellos

Los predicados permiten definir condiciones sobre los valores de los atributos. En las condiciones se pueden utilizar los operadores siguientes: - operador de unin (OR lgico): | - operadores lgicos: and, or, not() - operadores aritmticos: +, -, *, div, mod - operadores de comparacin: =, !=, , = [condicion]: selecciona los nodos que cumplen la condicin. La condicin puede utilizar el valor de un atributo (utilizando @) o el texto que contiene el elemento (utilizando .)

Se pueden escribir varios predicados seguidos, teniendo en cuenta que cada uno restringe los resultados del anterior, como si estuvieran encadenados por la operacin lgica and.

Expresiones ms complicadas. Las expresiones XPath pueden anidarse, lo que permite definir expresiones ms complicadas. Por ejemplo, en el documento utilizado anteriormente, un ejemplo de expresin ms complicada sera, por ejemplo, obtener los ttulos de los libros publicados el mismo ao que la novela "La vida est en otra parte". Esta informacin no est directamente almacenada en el documento, pero se puede obtener la respuesta en dos pasos: Obtener primero el ao en que se public la novela "La vida est en otra parte:

Y obtener despus los ttulos de los libros publicados en 1973:

Estas dos expresiones se pueden unir en una nica expresin, sustituyendo en la segunda expresin el valor 1973 por la primera expresin:

UTILIZACIN DE XML PARA EL ALMACENAMIENTO DE INFORMACIN Gran parte de las BD que hay hoy en da estn basadas en un modelo de datos(llamado modelo de entidad-relacin) Es un modelo que ha funcionado bien durante mucho tiempo y que todava seguir funcionando. Si bien es cierto que las BD orientadas a objetos permiten simplificar el trabajo de integracin con los lenguajes de programacin orientados a objetos, cambiar un modelo de trabajo o un sistema que funciona con el modelo anterior es arriesgado. Algunos SGBD tiene modelo hbridos que permiten aadir extensiones al modelo relacional y avanzar a un modelo orientado a objetos de manera transparente. Tras la llegada de la era Internet, la comparticin de la informacin empez a resultar crucial para no quedarse desfasado y mejorar las relaciones comerciales. Por ejemplo, una empresa X necesita enviarle a la empresa Y informacin en relacin a sus transacciones comerciales. El envo de esta informacin beneficia a X y tambin a Y(reduccin de

costes econmicos, costes burocrticos, tiempo, etc.) Es lo que se denomina B2B. El problema es que X utiliza unos modelos de datos distintos a los de Y. Tampoco es fcil ponerse de acuerdo con el SGBD. Debe haber algo que permita que ambos sistemas puedan entenderse entre s siendo distintos. La solucin es XML. XML permite definir de manera rpida e intuitiva una representacin de la informacin que ambas empresa desean compartir. La empresa X usar su SGBD para exportar sus datos a XML y se los remitir a Y. Ambas empresas conocen esa representacin de la informacin por lo que la informacin fluir sin problema (independientemente de los campos que tengan sus respectivas BDs o de los SGBD que estn utilizando) Los SGBD actuales(sobre todo los que usan modelos relacionales), proporcionan en algunos casos extensiones que permitan trabajar con los modelos y representaciones definidas en documentos XML. An as, si el objetivo es utilizar XML desde el principio, se debera analizar las siguientes BD XML nativas: - Excelon XIS Lite - TEXTXML - dbXML - eXist Cuando se habla de BD XML nativas, se ha de dejar claro que existen dos maneras de almacenar informacin dentro de ellas: - Usando un modelo centrado en el almacenamiento de los datos: Exactamente igual que las BD Relacionales (Se guardan tuplas) - Usnado un modelo centrado en el documento: no hay campos, ni datos, tal y como se conoce en las BD Relacionales. Se guardan documentos XML La primera permite seguir utilizando los modelos relacionales dentro de BD XML. La segunda permite almacenar documentacin de diferentes modelos dentro de la BD. Dependiendo de los objetivos de almacenamiento que se planteen quizs se ajuste ms un modelo que otro. Este anlisis debe ser meditado Dado que el modelo relacional es el mas utilizado hoy en da, se indicarn una serie de pasos para que usando XML se pueda usar el mismo modelo de datos

Regla 1 Para cada tabla en el esquema de la base de datos hay que crear un elemento con el mismo nombre de la tabla y la cardinalidad apropiada.

Regla 2 Las columnas de la tabla son incluidas en otro elemento (sub-elemento del elemento creado en la regla anterior), que representa un registro en la tabla

Regla 3 Para cada columna en la tabla cuyo tipo de dato es simple (char, integer, etc.) crear un elemento, sub-elemento del elemento creado en el paso anterior, de tipo #PCDATA con el mismo nombre de la columna. Regla 4 Para cada columna en la tabla cuyo tipo de dato es complejo (tipo objeto), crear un elemento complejo, sub-elemento del elemento creado en el paso 2, con el mismo nombre de la columna. Para cada propiedad del tipo objeto crear un elemento con el mismo nombre de la propiedad.

autor (nombre, apellidos, email)> nombre (#PCDATA)> apellidos (#PCDATA)> email (#PCDATA)>

Regla 5 Para cada columna en la tabla que es una tabla anidada, crear un elemento con el mismo nombre de esa columna y la cardinalidad apropiada. Repetir todos los pasos desde el 2. DTD resultante

]>XQUERY Para tener listo una base de datos para hacer consultas, basta con cargarla en el BaseX Si en vez de devolver todo el docuemnto, se quiere acceder nicamente a un conjunto de nodos bien identificado, aadiramos el camino en el rbol para acceder a ellos, por ejemplo, los libros: Doc(Biblioteca.xml)//Libros/Libro

Como se puede observar, aparecen todos los libros que haba almacenados en el documento XML inicial, con sus ttulo resaltados. Al igual que con las expresiones XSLT es posible que se quiera solo un conjunto de nodos dependiendo de un patrn de bsqueda. Si queremos todos los libros que se hayan publicado antes de 1970, la consulta se puede completar de la siguiente manera: Doc(Biblioteca.xml)//Libros/Libro[@ao