You are on page 1of 26

Unidad 9: GESTIÓN Y ALMACENAMIENTO DE LA

INFORMACIÓN EN FORMATOS XML

JJ Taboada León
IES San Sebastián, Departamento de Informática
LENGUAJE DE MARCAS Y SGI
Curso 2017/ 2018
XML PARA EL ALMACENAMIENTO
DE LA INFORMACIÓN(I)
 XML permite la representación de la información de forma
rápida e intuitiva
 Los SGBD actuales permiten trabajar con modelos y
representaciones en formato XML
 Mejor utilizar BD XML nativas
MODELOS BD XML nativas Descripción
Centrado en el almacenamiento de los Permite utilizar el modelo relacional
datos dentro de BD XML(se guardan tuplas)
Centrado en el documento Se guardan documentos XML
XML PARA EL ALMACENAMIENTO
DE LA INFORMACIÓN(II)

BD XML nativas SGBD


eXcelon XIS Lite Oracle
TEXTXML Microsoft SQL server
dbXML MySQL
eXist PostgresSQL
BaseX Interbase
Qizq SapDB
SQLite
LENGUAJES DE CONSULTAS Y
MANIPULACIÓN
 SQL(Structure Query Language) para BD relacionales
 Creación y borrado de tablas
 Inserción, modificación y borrado de tuplas
 Ejecución de búsquedas mediante consultas

 Xquery para documentos XML


 Extracción de datos de un documento
 Actualización de datos(inserción, reemplazo y borrado)
ANÁLISIS DE UN DOCUMENTO XML
 Se crea un árbol de nodos(elemento raíz e hijos)
 Tipos de nodos:
 Nodo Raíz (/) primer nodo del documento
 Nodo elemento  cualquier elemento del documento
 Nodo texto caracteres del documento que no están
marcados con alguna etiqueta.
 Nodo atributo etiquetas que completan la información de un
elemento
 Nodos de comentarios y de instrucciones de proceso
 El recorrido del árbol los hacemos con XPATH
 Xpath es utilizado en XQuery
XQuery
¿Qué es XQuery? (I)
 XQuery es a XML lo que SQL es a las tablas de base de datos.
 XQuery fue diseñado para consulta de datos XML.
 Ejemplo

for $x in doc(“libros.xml")/libreria/libro
where $x/price>30
order by $x/title
return $x/title
¿Qué es XQuery? (II)
 XQuery es el lenguaje para consultar datos XML
 XQuery para XML es como SQL para bases de datos
 XQuery se basa en expresiones XPath
 XQuery es soportado por todos los principales bases de datos
 XQuery es una Recomendación del W3C
¿Qué utilidad tiene?
 XQuery se puede utilizar para:
 Extraer información a utilizar en un servicio Web
 Generar informes de resumen
 Transformación de datos XML a XHTML
 Buscar en la Web los documentos de información relevante
BASEX
 Para aprender XQuery vamos a utilizar la herramienta
BASEX:
 Es un motor de DB XML para el almacenamiento de
documentos XML, búsquedas y transformaciones
 Está orientado a consulta.
 No necesita DTD o schema
 Soporta XQuery/XPath2
 Soporta Windows XP, Vista, 10, 7-Linux 2.4+ -Mac OS X
10.5+

Actividades: Descargar la edición gratuita (BaseX##.exe)


•Realizar la instalación. Ejecutamos “BaseX.exe”
•Crear un Librería o Base de Datos “BD_cursos”
Ejemplos de uso de Xquery (I)
 Crearemos un nuevo documento XML y lo añadimos en la
base de datos de BaseX
 Se trata de almacenar información de una empresa dedicada a
la impartición de cursos de informática:
 Nombre del curso
 Precio del curso
 Número de horas
 Número de plazas disponibles
 Fecha de comienzo del curso
 Fecha de finalización del curso
 Nombre del docente que imparte el curos
 Aula donde se imparte el curso
Ejemplos de uso de Xquery (II)
<?xml version="1.0" encoding="ISO-8859-1"?>
<cursos>
<curso id=“1">
<nombre>Oracle</nombre>
<precio moneda=“euro”>800</precio>
<plazas>15</plazas>
cursos.xml
<comienzo>1/6/2012</comienzo>
<fin>29/6/2012</fin>
<docente>Anselmo López López</docente>
<aula> TI2>/aula>
</curso>
……….

</cursos>

Importamos el documento cursos.xml en la base de datos


BD_cursos
Consultas simples(I). ejemplos
Consulta Orden
Extraer todo el documento almacenado doc(“cursos.xml”)
Extraer todos los cursos doc("cursos.xml")//cursos/curso
Extraer los docentes doc("cursos.xml")//cursos/curso/docente
Extraer el nombre de todos los cursos doc("cursos.xml")//cursos/curso/nombre
Extrer información del curso “PHP” doc("cursos.xml")//cursos/curso[nombre="PHP"]
Extraer información del curso con id “2” doc("cursos.xml")//cursos/curso[@id="2"]
Extraer información de los cursos que comienzan en doc("cursos.xml")//cursos/curso[comienzo >=
Septiembre "1/9/2012"]

Actividades:
1. Completar el documento cursos.xml con 5 cursos más
2. Realizar cada una de las consultas que aparecen el la tabla anterior de
ejemplos
Consultas con expresiones FLWOR
• Permite seleccionar los nodos que se quieren consultar y los guarda en una variable precedida
por $
for • Ejemplo: for $cu in doc("cursos.xml")//cursos/curso return $cu/nombre

• Es opcional. Establece una nueva variable sobre el mismo u otro documentos xml
• Ejemplo: for $cu in doc("cursos.xml")//cursos/curso let $nombre:=$cu/nombre return $nombre
let

• Permite establecer una condición sobre la variable indicada en “for” y “let”


• Ejemplo: for $cu in doc("cursos.xml")//cursos/curso where $cu/nombre="Diseño WEB" return $cu
where

• Define el orden de presentación de los resultados


Ejemplo: for $cu in doc("cursos.xml")//cursos/curso order by $cu/nombre return $cu
Order by

• Permite devolver un valor concreto de los resultados de las anteriores clausulas


(uno por nodo)
return
Ejemplos de consultas con FLWOR(1)
Consulta_Flwor_1
Cursos que se imparten en el taller de informática 4 “TI4”
Ejemplos de consultas con FLWOR(2)
Consulta_Flwor_2 función data()
Cursos que se imparten en el taller de informática 4 “TI4” pero sin etiquetas XML
Ejemplos de consultas con FLWOR(3)
Consulta_Flwor_3
Información de los Cursos que se imparten en el taller de informática 2 “TI2” y cuyo
precio sea igual o menor de 800€
Ejemplos de consultas con FLWOR(4)
Consulta_Flwor_4
Docentes que imparte cada curso
Ejemplos de consultas con FLWOR(5)
Consulta_Flwor_5
Número de cursos que se imparte
Ejemplos de consultas con FLWOR(6)
Consulta_Flwor_6 salida en HTML
Tabla HTML que nos muestre el curso, el docente y fecha de comienzo, ordenado por
fecha
Ejemplos de inserción con FLWOR(7)
Clausulas
insert node Inserta antes del primer nodo
…..
before doc(“documneto.xml”)//raiz/nodo[1]
insert node Inserta al final del documento
…..
as last into doc(“documentoxml”)//raiz

Insercion_Flwor_7
Añadir un nuevo curso de Java Script de
30 horas el 1 de enero de 2013 impartido
por Valle Taboada
Ejemplos de modificación con FLWOR(8)
Modificación
replace value of node Moficiación en el primer nodo
doc(“documneto.xml”)//raiz/nodo[1]/etiqueta1
with “nuevo valor”
,
replace node
doc(“documneto.xml”)//raiz/nodo[1]/etiqueta2
with “nuevo valor”

Modificacion_Flwor_8
Modificar el nombre del curso con id 1
por ajax
Ejemplos de borrado con FLWOR(9)
Borrar
delete doc(“documneto.xml”)//raiz/nodo[1] Borra el primer nodo

Borrar_Flwor_9
Borrar el curso con id “4”
Salvar consultas y exportar librerías
 Xquery permite salvar las consultas que vamos realizando
File/Save Xquery File As….
 Xquery también permite exportar los resultados de las
operaciones que realizamos en la base de datos a un fichero
con formato xml o html
Icono Save results de la ventana de
la derecha
Actividades
 http://es.hotusa.com/servicios-a-agencias/ag_online.htm

Actividades:
1. Realizar cada uno de los ejemplos sobre consultas, inserción, modificación y
borrado mostrados anteriormente

2. Tomado como referencia los archivos xml que aparecen en la siguiente


dirección, crear varios nodos con datos ficticios y realizar distintas consultas
con salida en HTML
http://www.hotusa.es/images/Especificacion_Servicios_XML_Hotusa_ve
r8_62.pdf
3. Tomado como referencia los archivos xml de acciones formativas que
aparecen en la siguiente dirección crear varios nodos con datos ficticios y
realizar distintas consultas con salida en HTML
https://empresas.fundae.es/Lanzadera
Unidad 9: GESTIÓN Y ALMACENAMIENTO DE LA
INFORMACIÓN EN FORMATOS XML

FIN DE LA PRESENTACIÓN
¡GRACIAS POR LA ATENCIÓN!