26
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

9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN …roble.pntic.mec.es/jtal0007/xmlfp/BdXML/UnidadDidactica9BD-curso… · LENGUAJE DE MARCAS Y SGI Curso 2012 / 2013 Unidad 9:GESTIÓN

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN …roble.pntic.mec.es/jtal0007/xmlfp/BdXML/UnidadDidactica9BD-curso… · LENGUAJE DE MARCAS Y SGI Curso 2012 / 2013 Unidad 9:GESTIÓN

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

Page 2: 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN …roble.pntic.mec.es/jtal0007/xmlfp/BdXML/UnidadDidactica9BD-curso… · LENGUAJE DE MARCAS Y SGI Curso 2012 / 2013 Unidad 9:GESTIÓN

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

Page 3: 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN …roble.pntic.mec.es/jtal0007/xmlfp/BdXML/UnidadDidactica9BD-curso… · LENGUAJE DE MARCAS Y SGI Curso 2012 / 2013 Unidad 9:GESTIÓN

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

Page 4: 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN …roble.pntic.mec.es/jtal0007/xmlfp/BdXML/UnidadDidactica9BD-curso… · LENGUAJE DE MARCAS Y SGI Curso 2012 / 2013 Unidad 9:GESTIÓN

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)

Page 5: 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN …roble.pntic.mec.es/jtal0007/xmlfp/BdXML/UnidadDidactica9BD-curso… · LENGUAJE DE MARCAS Y SGI Curso 2012 / 2013 Unidad 9:GESTIÓN

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

Page 6: 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN …roble.pntic.mec.es/jtal0007/xmlfp/BdXML/UnidadDidactica9BD-curso… · LENGUAJE DE MARCAS Y SGI Curso 2012 / 2013 Unidad 9:GESTIÓN

XQuery

Page 7: 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN …roble.pntic.mec.es/jtal0007/xmlfp/BdXML/UnidadDidactica9BD-curso… · LENGUAJE DE MARCAS Y SGI Curso 2012 / 2013 Unidad 9:GESTIÓN

¿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

Page 8: 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN …roble.pntic.mec.es/jtal0007/xmlfp/BdXML/UnidadDidactica9BD-curso… · LENGUAJE DE MARCAS Y SGI Curso 2012 / 2013 Unidad 9:GESTIÓN

¿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

Page 9: 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN …roble.pntic.mec.es/jtal0007/xmlfp/BdXML/UnidadDidactica9BD-curso… · LENGUAJE DE MARCAS Y SGI Curso 2012 / 2013 Unidad 9:GESTIÓN

¿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

Page 10: 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN …roble.pntic.mec.es/jtal0007/xmlfp/BdXML/UnidadDidactica9BD-curso… · LENGUAJE DE MARCAS Y SGI Curso 2012 / 2013 Unidad 9:GESTIÓN

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”

Page 11: 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN …roble.pntic.mec.es/jtal0007/xmlfp/BdXML/UnidadDidactica9BD-curso… · LENGUAJE DE MARCAS Y SGI Curso 2012 / 2013 Unidad 9:GESTIÓN

QIZX STUDIO (vista general)

Page 12: 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN …roble.pntic.mec.es/jtal0007/xmlfp/BdXML/UnidadDidactica9BD-curso… · LENGUAJE DE MARCAS Y SGI Curso 2012 / 2013 Unidad 9:GESTIÓN

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

Page 13: 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN …roble.pntic.mec.es/jtal0007/xmlfp/BdXML/UnidadDidactica9BD-curso… · LENGUAJE DE MARCAS Y SGI Curso 2012 / 2013 Unidad 9:GESTIÓN

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

Page 14: 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN …roble.pntic.mec.es/jtal0007/xmlfp/BdXML/UnidadDidactica9BD-curso… · LENGUAJE DE MARCAS Y SGI Curso 2012 / 2013 Unidad 9:GESTIÓN

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

Page 15: 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN …roble.pntic.mec.es/jtal0007/xmlfp/BdXML/UnidadDidactica9BD-curso… · LENGUAJE DE MARCAS Y SGI Curso 2012 / 2013 Unidad 9:GESTIÓN

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)

Page 16: 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN …roble.pntic.mec.es/jtal0007/xmlfp/BdXML/UnidadDidactica9BD-curso… · LENGUAJE DE MARCAS Y SGI Curso 2012 / 2013 Unidad 9:GESTIÓN

Ejemplos de consultas con FLWOR(1)

Consulta_Flwor_1

Cursos que se imparten en el taller de informática 4 “TI4”

Page 17: 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN …roble.pntic.mec.es/jtal0007/xmlfp/BdXML/UnidadDidactica9BD-curso… · LENGUAJE DE MARCAS Y SGI Curso 2012 / 2013 Unidad 9:GESTIÓN

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

Page 18: 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN …roble.pntic.mec.es/jtal0007/xmlfp/BdXML/UnidadDidactica9BD-curso… · LENGUAJE DE MARCAS Y SGI Curso 2012 / 2013 Unidad 9:GESTIÓN

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€

Page 19: 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN …roble.pntic.mec.es/jtal0007/xmlfp/BdXML/UnidadDidactica9BD-curso… · LENGUAJE DE MARCAS Y SGI Curso 2012 / 2013 Unidad 9:GESTIÓN

Ejemplos de consultas con FLWOR(4)

Consulta_Flwor_4

Docentes que imparte cada curso

Page 20: 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN …roble.pntic.mec.es/jtal0007/xmlfp/BdXML/UnidadDidactica9BD-curso… · LENGUAJE DE MARCAS Y SGI Curso 2012 / 2013 Unidad 9:GESTIÓN

Ejemplos de consultas con FLWOR(5)

Consulta_Flwor_5

Número de cursos que se imparte

Page 21: 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN …roble.pntic.mec.es/jtal0007/xmlfp/BdXML/UnidadDidactica9BD-curso… · LENGUAJE DE MARCAS Y SGI Curso 2012 / 2013 Unidad 9:GESTIÓN

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

Page 22: 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN …roble.pntic.mec.es/jtal0007/xmlfp/BdXML/UnidadDidactica9BD-curso… · LENGUAJE DE MARCAS Y SGI Curso 2012 / 2013 Unidad 9:GESTIÓN

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

Page 23: 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN …roble.pntic.mec.es/jtal0007/xmlfp/BdXML/UnidadDidactica9BD-curso… · LENGUAJE DE MARCAS Y SGI Curso 2012 / 2013 Unidad 9:GESTIÓN

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

Page 24: 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN …roble.pntic.mec.es/jtal0007/xmlfp/BdXML/UnidadDidactica9BD-curso… · LENGUAJE DE MARCAS Y SGI Curso 2012 / 2013 Unidad 9:GESTIÓN

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

Page 25: 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN …roble.pntic.mec.es/jtal0007/xmlfp/BdXML/UnidadDidactica9BD-curso… · LENGUAJE DE MARCAS Y SGI Curso 2012 / 2013 Unidad 9:GESTIÓN

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

Page 26: 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN …roble.pntic.mec.es/jtal0007/xmlfp/BdXML/UnidadDidactica9BD-curso… · LENGUAJE DE MARCAS Y SGI Curso 2012 / 2013 Unidad 9:GESTIÓN

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