Post on 14-Jun-2020
JJ Taboada León
IES San Sebastián, Departamento de Informática LENGUAJE DE MARCAS Y SGI
Curso 2012 / 2013
Unidad 9:GESTIÓN Y ALMACENAMIENTO DE LA
INFORMACIÓN EN FORMATOS XML
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
datos
Permite utilizar el modelo relacional
dentro de BD XML(se guardan tuplas)
Centrado en el documento Se guradan documentos XML
XML PARA EL ALMACENAMIENTO
DE LA INFORMACIÓN(II)
BD XML nativas SGBD
eXcelon XIS Lite
TEXTXML
dbXML
eXist
BaseX
Qizq
Oracle
Microsoft SQL server
MySQL
PostgresSQL
Interbase
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
QIZX STUDIO
Para aprender XQuery vamos a utilizar la herramienta QIZX
STUDIO:
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, 7-Linux 2.4+ -Mac OS X 10.5+
Actividades: Descargar la edición gratuita (Free Engine Edition) •Descomprimimos el fichero .zip descargado, buscamos la carpeta “bin” y dentro ejecutamos
“qizxstudio.bat”
•Crear un grupo de librerias “GrupoLibreriasXML”
•Crear un Librería o Base de Datos “BD_cursos”
QIZX STUDIO (vista general)
Ejemplos de uso de Xquery (I)
Crearemos un nuevo documento XML y lo añadimos en la
base de datos de Qizx Studio
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> <comienzo>1/6/2012</comienzo>
<fin>29/6/2012</fin>
<docente>Anselmo López López</docente>
<aula> TI2>/aula> </curso>
……….
</cursos>
cursos.xml
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
Septiembre
doc("cursos.xml")//cursos/curso[comienzo >=
"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
for
• Permite seleccionar los nodos que se quieren consultar y los guarda en una variable precedida por $
• Ejemplo: for $cu in doc("cursos.xml")//cursos/curso return $cu/nombre
let
• 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
where
• 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
Order by
• Define el orden de presentación de los resultados
Ejemplo: for $cu in doc("cursos.xml")//cursos/curso order by $cu/nombre return $cu
return
• Permite devolver un valor concreto de los resultados de las anteriores clausuala (uno por nodo)
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
Infromació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)
Insercion_Flwor_7
Añadir un nuevo curso de Java Script de
30 horas el 1 de enero de 2013 impartido
por Valle Taboada
Clausulas
insert node
…..
before doc(“documneto.xml”)//raiz/nodo[1]
Inserta antes del primer nodo
insert node
…..
as last into doc(“documentoxml”)//raiz
Inserta al final del documento
Ejemplos de modificación con FLWOR(8)
Modificacion_Flwor_8
Modificar el nombre del curso con id 1
por ajax
Modificación
replace value of node
doc(“documneto.xml”)//raiz/nodo[1]/etiqueta1
with “nuevo valor”
,
replace node
doc(“documneto.xml”)//raiz/nodo[1]/etiqueta2
with “nuevo valor”
Moficiación en el primer nodo
Ejemplos de borrado con FLWOR(9)
Borrar_Flwor_9
Borrar el curso con id “4”
Borrar
delete doc(“documneto.xml”)//raiz/nodo[1]
Borra el primer nodo
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, insercció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://es.hotusa.com/servicios-a-agencias/ag_online.htm
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
http://empresas.fundaciontripartita.org/app/xml_formato2011.as
px?AspxAutoDetectCookieSupport=1