Download El libro electrónico

Document related concepts
Transcript
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 2012 / 2013
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.xml
……….
</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
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
• Es opcional. Establece una nueva variable sobre el mismo u otro documentos xml
let
where
Order by
return
• Ejemplo: for $cu in doc("cursos.xml")//cursos/curso let $nombre:=$cu/nombre return $nombre
• 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ñoWEB" return $cu
• Define el orden de presentación de los resultados
Ejemplo: for $cu in doc("cursos.xml")//cursos/curso order by $cu/nombre return $cu
• 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)
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
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]
Borrar_Flwor_9
Borrar el curso con id “4”
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