Bases de datos avanzadas

Documentos relacionados
Definición de XQuery.

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

Bases de Datos XPath - XQuery 1. XML: XPath - XQuery. Jorge Pérez Rojas Universidad de Talca, II Semestre 2006

Almacenamiento de documentos XML

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Base de datos relacional

Programación páginas web. Servidor (PHP)

Business Intelligence Available Inteligencia de Negocios Disponible

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

Oracle vs Oracle por Rodolfo Yglesias Setiembre 2008

Unidad II. Interfaz Grafica (continuación ) Basado en clases de Ing. Carlos A. Aguilar

SiteAudit Knowledge Base Programación de Reportes en SiteAudit

Microsoft SQL Server Conceptos.

Manual de ACCESS Intermedio

Introducción a XQuery Autor: Jorge Huedo Díaz Master Oficial en Tegnologías de la Información y Sistemas Informáticos

3. CONSIDERACIONES GENERALES

PRESENTACIÓN M. EN C. ALEJANDRO BOTELLO CASTILLO

La Gestión n Documental en Lex Nova (Producción n y Publicación) Leandro Escudero Atienza Director de T.I.

Tutorial de MS Access Un sistema de Bases de Datos Relacional. Profesores: Hugo Mora, Ignacio Casas

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

Características y Beneficios

C a p í t u l o 3 : T r a b a j o r e l a c i o n a d o

Oracle 12c DISEÑO Y PROGRAMACIÓN

Novedades. Introducción. Potencia

Guías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online

Capitulo 5. Implementación del sistema MDM

I. DATOS DE IDENTIFICACIÓN. 1. Unidad Académica: _Facultad de Ciencias

INDICE Parte I: Qué es Visual Foxpro Capitulo 1: Características del Producto

Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios

RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014

UNIVERSIDAD RICARDO PALMA FACULTAD DE INGENIERÍA

Resumen. El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl

SISTEMAS DE INFORMACIÓN II TEORÍA

Programación en Internet Curso Índice

BASE DE DATOS RELACIONALES

ArquitecturaTécnica de TRAVEL OPEN APPS. Breve definición técnica de la plataforma Travel Open Apps

Tema 5: Integración de Datos Distribuidos

BIABLE. Business Intelligence Available Inteligencia de Negocios Disponible. BIABLE, la nueva forma de trabajar con Microsoft Excel.

Registro (record): es la unidad básica de acceso y manipulación de la base de datos.

Componentes de Integración entre Plataformas Información Detallada

A.1. Definiciones de datos en SQL

Pentaho BI. Lic. Patricia Palacios Zuleta

PROGRAMACIÓN EN PHP. 1. Identificar las características y modalidad de programación bajo PHP.

MANUAL DE USUARIO FACTURACIÓN ELECTRÓNICA

CAPÍTULO 3 VISUAL BASIC

MÓDULO 2: TRATAMIENTO DE DATOS CON HOJA DE CÁLCULO. Tema 1: Gestión de listas de datos y tablas dinámicas. Leire Aldaz, Begoña Eguía y Leire Urcola

XQuery. Jose Emilio Labra Gayo Departamento de Informática Universidad de Oviedo. XQuery

IBM Software Demos Lotus Forms Designer

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web.

Centro de Capacitación en Tecnologías de la Información. Desarrollo de. diplomado

Base de datos II Facultad de Ingeniería. Escuela de computación.

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

BASE DE DATOS UNIVERSIDAD DE LOS ANDES FACULTAD DE MEDICINA T.S.U. EN ESTADISTICA DE SALUD CATEDRA DE COMPUTACIÓN II. Comenzar presentación

1. DML. Las subconsultas

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 8. Elementos Básicos

AVA-QHSE System. Introducción Características del producto Especificaciones Técnicas

PROGRAMACIÓN PÁGINAS WEB CON PHP

Arquitectura. 1.- Aplicaciones Web. Definición. Arquitectura clásica. Contenidos. 1.- Aplicaciones Web

- Bases de Datos - - Diseño Físico - Luis D. García

UNIDAD 1.- PARTE 1 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES. Xochitl Clemente Parra Armando Méndez Morales

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

ESPECIALISTA EN BASE DE DATOS

Workflows? Sí, cuántos quiere?

Descripción de Arquitectura Repositorio de metadatos de componentes de software

DOCUMENTACIÓN TÉCNICA

XML y XQuery. Qué es XML? Qué es XML? (II) Ejemplo de fichero XML. Cuerpo de un documento XML. Estructura de un documento XML

Práctica de introducción a

XML práctico Bases esenciales, conceptos y casos prácticos (2ª edición)

1

arquitectura que maneja. Encontraremos también los diferentes servidores que

CONSULTAS DE RESUMEN SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Base de datos en Excel

Trataremos las cuestiones más interesantes de este programa, entre las que destacan:

1. Resumen Objetivos Introducción. 3

Capitulo III. Diseño del Sistema.

Multiperíodo: No tiene límite de períodos contables en línea. Posibilidad de trabajar con más de un período al mismo tiempo.

FSx-Connector Guía rápida del Módulo pcron (Tareas Programadas) Créditos

Microsoft SQL Server 2005

Análisis de Sistemas. M.Sc. Lic. Aidee Vargas C. C. octubre 2007

Novedades en Crystal Reports XI

Unidad 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN FORMATOS XML

GUÍA Nro. 1 TECNOLOGÍA DE INTERNET. TIII PIII

El lenguaje SQL es un lenguaje estándar para el acceso y

Alfresco permite su integración y personalización en sistemas de gestión documental para implementar funcionalidades específicas

CAPITULO 9. Diseño de una Base de Datos Relacional Distribuida

Ejemplos básicos de webmathematica para profesores

ÍNDICE CAPÍTULO 1. TIPOS DE ALMACENAMIENTO DE LA INFORMACIÓN... 13

Operación de Microsoft Word

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Ministerio de Educación Base de datos en la Enseñanza. Glosario

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com

Informàtica i Comunicacions Plaça Prnt. Tarradellas, FIGUERES (Girona) Tel Fax

Capítulo 1: Introducción a los Sistemas de Gestión de Bases de Datos (SGBD)

Guía del usuario. Centro de facturación de UPS

SIAM WEB DOCUMENTACION GENERAL

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms

LAS SUBCONSULTAS SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Soluciones Informáticas para la Gestión de la Calidad c/vicente Aleixandre nº 10 4º H, A CORUÑA Telf: / info@spuch.

PROGRAMA FORMATIVO MICROSOFT ACCESS 2007 (COMPLETO)

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

Transcripción:

Bases de datos avanzadas Universidad de Los Andes Postgrado en Computación Prof. Isabel M. Besembel Carrera Unidad II. Sesión 11 y 12. BD en XML. 1

Introducción Convergencia de los sistemas documentales y bases de datos Publicación de los datos de una BD en web a través de XML Enfoques: Middleware: uso de un SGBD relacional u orientado por objetos para almacenar los elementos simples del documento XML XML nativo: almacenar el documento XML completo junto con índices de acceso especiales para acelerar su acceso Sistemas documentales BDR Enfoque 1: integración de XML en el sistema mediante un mapeo XML BD apropiado Enfoque 2: necesidad de desarrollar un nuevo tipo de dato para documentos y además un SGBD completo orientado a la manipulación de documentos SGBDXML. BDXML Lenguajes de manipulación de datos: SQL3, 1999 con funciones XML o XQuery Nov. 2003 Isabel Besembel. ULA-PGCOMP 2

Aplicaciones Sitio Web XML BD XML Servidor de presentación I N T R A N E T HTML WML XML Navegador Web Sitio web dinámico: varias arquitecturas posibles (scripts CGI, servlet, activex, EJB, ASP o JSP) generan dinámicamente el HTML a partir de los datos de la BD Servidor de presentación necesario para asociar la hoja de estilo con los documentos. Las hojas de estilo se aplican a los datos extraídos de la BD sobre el servidor de presentación por un procesador XSL Nov. 2003 Isabel Besembel. ULA-PGCOMP 3

Aplicaciones HTML HTTP get HTTP post HTML generado Servidor de aplicaciones generación Documento XML Procesador XSL RTF PDF consultas Transformación XML-SQL BDXML XSL XSL Gestión de documentos semiestructurados BDR con una capa de mapeo XML o una BDXML Manejo transaccional con un servidor de aplicaciones Presentación en HTML con la ayuda de hojas de estilo procesados en el servidor de aplicaciones Posibilidad de imprimir documentos en RTF o PDF Nov. 2003 Isabel Besembel. ULA-PGCOMP 4

Aplicaciones Sitio de comercio electrónico B2B intercambio de mensajes del tipo pedido, recepción, entrega, factura, etc. Mensajes XML según el estándar cxml o ebxml (actualmente en desarrollo) Emisor de orden Sistemas de Información Extractor EDIXML repositorio I N T E R N E T Proveedor navegador EDIXML Formularios seguros BD Nov. 2003 Isabel Besembel. ULA-PGCOMP 5

Aplicaciones Aplicación 1 interfaz. Aplicación n Procesador XSL Consulta de datos heterogéneos Fuente 1 Wrapper 1 Motor de búsqueda Query-XML Mediador. Wrapper m Distribuidor de solicitudes Wraper HTML Sitios web HTML Wraper HTML Cliente Fuente m Solicitudes de búsqueda Wraper API aplicación XML es apropiado ya que es universal, más rico semánticamente e integra los conceptos jerárquicos, relacional y objetos Motor de búsqueda XML Conversión HTML-XML según plantillas Mejora de las respuestas a las búsquedas efectuadas por el motor Nov. 2003 Isabel Besembel. ULA-PGCOMP 6

Aplicaciones Integración de aplicaciones o intercambio de datos en las empresas EAI (Enterprise Application Integrator) configuración workflow supervisión Integración de XML como vehículo de intercambio en un EAI reduce el número de conectores, mejora la supervisión y está soportado por estándares reconocidos. adaptador XML coordinador Motor de transformación XML Motor de publicación conector BD Nov. 2003 Isabel Besembel. ULA-PGCOMP 7

Modelo de datos Modelo XML con mayor poder de expresión que el relacional Modelo 1: traducción en atributos (Attribute translation) Cada tabla es una marca que está compuesta de un elemento para cada tupla que es una marca cuyos atributos son las columnas de la tabla o Ejemplo: Empresa nombre direccion telefono codigopostal ciudad Quincalla El Palacio Av. Principal. Calle 34. Nro.102 0223-235 7124 4034 Valencia Supermercado El Callao Av. 8. Calle 45. Nro. 58 0283-240 5567 4065 Valera <Empresa> <Tupla nombre= Quincalla El Palacio direccion= Av. principal. Calle 34. Nro. 102 telefono= 0223-235 7124 codigopostal= 4034 ciudad= Valencia /> <Tupla nombre= Supermercado El Callao direccion= Av. 8. Calle 45. Nro. 58 telefono= 0283-240 5567 codigopostal= 4065 ciudad= Valera /> </Empresa> Nov. 2003 Isabel Besembel. ULA-PGCOMP 8

Modelo de datos Modelo 2: traducción en elementos (element translation) Cada tabla es una marca que está compuesta de un elemento para cada tupla que es una marca y de elementos anidados de primer nivel representando cada atributo o columna de la tabla Ejemplo: <Empresa> <Tupla> <nombre>quincalla El Palacio</nombre> <direccion>av. principal. Calle 34. Nro. 102</direccion> <telefono>0223-235 7124</telefono> <codigopostal>4034</codigopostal> <ciudad>valencia</ciudad> </Tupla> </Empresa> Nov. 2003 Isabel Besembel. ULA-PGCOMP 9

Ejercicio: Realizar la transformación a esquema relacional de umlempresa y luego usar el modelo 1 y el modelo 2 para obtener el documento XML Modelo de datos Ambos métodos son equivalentes Es posible aplicar uno u otro para publicar resultados de consultas SQL en XML Enfoques mixtos son posibles, pero siempre el resultado es un árbol XML plano (árbol con un nivel) y se pierde el poder expresivo de XML Herramientas: XML SDK de Oracle (traducción en elementos) XML-DBMS de Ronald Bourret XML en SQL Server de Microsoft Si el documento XML es plano se puede hacer transformación inversa, sino se transforma con XSL en dos pasos: Una para extraer y almacenar los datos en la BD Otra para anidar o aplanar los documentos XML Nov. 2003 Isabel Besembel. ULA-PGCOMP 10

Modelo de esquemas Normalmente es imposible guardar un documento XML en una única tabla Problema de transformación de un esquema relacional a un esquema XML y viceversa es un problema complejo Características del modelo XML 1. Descriptores opcionales en el DTD 2. Esquema que soporta tipos de datos simples y complejos, flexibles e irregulares 3. Datos autodescriptivos marcados y atributos de esquema y de DTD 4. Enlaces de tipo hipertexto representando relaciones N:M 5. Uso intensivo de la composición por agregación con los constructores sequence, choice y all 6. Tipos de datos variados y extensibles (entero, real, texto, fecha, identificador, etc.) Nov. 2003 Isabel Besembel. ULA-PGCOMP 11

Modelo de esquemas Hoy día el modelo seleccionado es el de esquemas XML Bosque (repository) XML: Colección de documentos XML de igual naturaleza asociados a un esquema y almacenados en conjunto Cada documento es un árbol BDXML: es un conjunto de bosques XML <?xml version="1.0"?> <!-- archivo: hoteles1.xml --> <!-- D A T O S --> <Guia region="oriental" version="1.0"> <Hotel categoria="*****"> <nombre>lagunamar</nombre> <direccion> <Av>Via Playa El agua</av> </direccion> <telefono>0271-274 8234</telefono> <precio> <HabSimple>65.000</HabSimple> <HabDoble>80.000</HabDoble> </precio> <ciudad>margarita</ciudad> </Hotel> <Hotel categoria="****"> <nombre>hesperia Playa El Agua</nombre> <direccion> <Av>Via Playa El agua</av> </direccion> <telefono>0271-256 8345</telefono> <precio> <HabSimple>55.000</HabSimple> <HabDoble>70.000</HabDoble> </precio> <ciudad>margarita</ciudad> </Hotel> Nov. 2003 Isabel Besembel. ULA-PGCOMP 12

Modelo de esquemas <Posada categoria="***"> <nombre>la Comadre</nombre> <direccion> <Av>2</Av> <Nro>43-15</Nro> </direccion> <telefono>0285-287 7764</telefono> <precio> <HabSimple>20.000</HabSimple> <HabDoble>40.000</HabDoble> </precio> <ciudad>cumana</ciudad> </Posada> <Posada categoria="*"> <nombre>el Compai/nombre> <direccion> <Av>6</Av> <Nro>87-18</Nro> </direccion> <telefono>0286-276 7512</telefono> <precio> <HabDoble>45.000</HabDoble> </precio> <ciudad>maturin</ciudad> </Posada> </Guia> <?xml version="1.0"?> <!-- archivo: hoteles.xml --> <!-- D A T O S --> <Guia region="andes" version="1.0"> <Hotel categoria="***"> <nombre>prado Rio</nombre> <direccion> <Av>2</Av> <Nro>55</Nro> </direccion> <telefono>0274-244 6683</telefono> <precio> <HabSimple>35.000</HabSimple> <HabDoble>55.000</HabDoble> </precio> <ciudad>merida</ciudad> </Hotel> <Hotel categoria="****"> <nombre>park hotel</nombre> <direccion> <Av>Gonzalo Picon</Av> <Nro>67</Nro> </direccion> <telefono>0274-263 8256</telefono> <precio> <HabSimple>45.000</HabSimple> <HabDoble>65.000</HabDoble> </precio> <ciudad>merida</ciudad> </Hotel> Nov. 2003 Isabel Besembel. ULA-PGCOMP 13

Modelo de esquemas <Hotel categoria="**"> <nombre>oviedo</nombre> <direccion> <Av>3</Av> <Nro>3-43</Nro> </direccion> <telefono>0274-252 8745</telefono> <precio> <HabDoble>35.000</HabDoble> </precio> <ciudad>merida</ciudad> </Hotel> <Posada categoria="***"> <nombre>el encuentro</nombre> <direccion> <Av>2</Av> <Nro>17-15</Nro> </direccion> <telefono>0274-244 6234</telefono> <precio> <HabSimple>20.000</HabSimple> <HabDoble>40.000</HabDoble> </precio> <ciudad>trujillo</ciudad> </Posada> <Posada categoria="****"> <nombre>el remanzo</nombre> <direccion> <Av>Tulio Febres Cordero</Av> <Nro>23-18</Nro> </direccion> <telefono>0274-252 5412</telefono> <precio> <HabSimple>30.000</HabSimple> <HabDoble>45.000</HabDoble> </precio> <ciudad>trujillo</ciudad> </Posada> </Guia> Nov. 2003 Isabel Besembel. ULA-PGCOMP 14

Modelo de esquemas Guía de datos: esquema generado a partir de un conjunto de documentos mediante la unión de los árboles de estructura que describen todos los caminos posibles en la colección y colocando los tipos de datos como texto Construcción: Aislar todos los caminos completos en el documento. Un camino completo es una secuencia de marcas desde la raíz hasta las hojas Eliminar todos los caminos o subcaminos incluidos en los caminos encontrados, guardando los caminos distintos Construir el grafo donde los caminos completos son todos los caminos distintos guardados Nov. 2003 Isabel Besembel. ULA-PGCOMP 15

Modelo de esquemas Guia Hotel nombre direccion telefono precio ciudad Av Nro HabSimple HabDoble nombre direccion Av Nro Modelo OEM (Object Exchange Model): para BD semi-estructuradas, propuesto por J. Widom en 1994. Absorbido por XML, ya no se utiliza, más flexible y menos complejo que los esquemas XML Posada telefono precio ciudad HabSimple HabDoble Nov. 2003 Isabel Besembel. ULA-PGCOMP 16

Lenguajes de consulta para XML Desde 1996 se ha investigado para proponer tal lenguaje Ejemplos: LOREL, STRUQL (AT&T), UnQL (P. Buneman), YATL (INRIA), SgmlQL. Fundamentados en enfoques diferentes, pero todos usan Mezcla de predicados sobre los metadatos (marcas) y los datos (valores) Expresiones de caminos Permiten seleccionar subgrafos y crear nuevos grafos a partir de los datos extraídos Nov. 2003 Isabel Besembel. ULA-PGCOMP 17

Selección de árboles por criterios múltiples Posibilidad de realizar las operaciones de los tipos básicos Cuantificación universal y existencial de las variables Combinación de datos desde los documentos Ordenamiento de los resultados Anidamiento de las consultas Posibilidad de usar agregados y funciones asociadas Tratamiento de jerarquías y de secuencias Agregación de datos desde los documentos Preservación de las estructuras Construcción de nuevas estructuras Objetivos Nov. 2003 Isabel Besembel. ULA-PGCOMP 18

Construido en Stanford 1996 para consultar grafos OEM con OQL LOREL Basado en expresiones de caminos simples, secuencia de marcas separadas por punto en vez de / del XPath Ejemplo: Guia.Hotel.direccion.Av Uso de variables asociadas a expresiones de caminos Ejemplo: $h asignada a Guia.Hotel para barrer los hoteles Consulta: Listar los hoteles de Margarita Select Guia.Hotel.nombre Where Guia.Hotel.ciudad = Margarita Consulta: Listar los nombres de las posadas en la misma avenida del hotel Prado Rio Select $p.nombre, $p.telefono From Guia.Hotel $h, Guia.Posada $p Where $h.direccion.av = $p.direccion.av and $h.nombre = Prado Rio Nov. 2003 Isabel Besembel. ULA-PGCOMP 19

LOREL Permite usar expresiones de caminos generalizadas, que son aquellas donde se pueden sustituir marcas por expresiones o símbolos que sirven de joker: No importa cual subcadena % Disyunción de marcas Opcionalidad? Joker # Ejemplo: Operador de repetición * (0..n) Select Hotel.# From Guia.Hotel $h Where $h.direccion.(av Nro) = %15% Nov. 2003 Isabel Besembel. ULA-PGCOMP 20

SQLX Desarrollado en 1998 en el Laboratorio PRiSM-Versalles,Francia Expresiones de navegación basadas en XPath Consulta: Listar los hoteles de Margarita Select $h/nombre From /Guia/Hotel $h Where $h/ciudad = Margarita Consulta: Listar los nombres de las posadas en la misma avenida del hotel Prado Rio Select $p/nombre, $p/telefono From /Guia/Hotel $h, /Guia/Posada $p Where $h/direccion/av = $p/direccion/av and $h/nombre = Prado Rio Nov. 2003 Isabel Besembel. ULA-PGCOMP 21

XML-QL Propuesto por AT&T en 1997 basado en STRUQL y adaptado a XML Selecciones: basadas en plantillas de búsqueda, donde las variables $N y $T recogen los datos encontrados Select <Posada> <nombre>$n</nombre> <telefono>$t</telefono> <ciudad>trujillo</ciudad> </Posada> IN Guia Posibilidad de encontrar los opcionales con Select <Hotel> <nombre>oviedo</nombre> <telefono>$t</telefono> <precio> <HabDoble>[$HD]</HabDoble> </precio> </Hotel> IN Guia Nov. 2003 Isabel Besembel. ULA-PGCOMP 22

XML-QL Construcción de resultados: la cláusula where expresa los criterios de búsqueda y el select especifica la construcción del grafo resultado Where <Posada> </Posada> IN Guia Select <BB> </BB> <nombre>$n</nombre> <telefono>$t</telefono> <ciudad>trujillo</ciudad> <name>$n</name> <phone>$t</phone> Permite obtener los nombres y teléfonos de las posadas de Trujillo y componer el árbol resultado con las marcas en inglés Nov. 2003 Isabel Besembel. ULA-PGCOMP 23

XML-QL Productos (joins): mediante la reutilización de variables en las condiciones Where <Hotel> <nombre>prado Rio</nombre> <direccion> <Av>$a</Av> </direccion> </Hotel> IN Guia <Posada> <nombre>$n</nombre> <direccion> <Av>$a</Av> </direccion> </Posada> IN Guia Select <resultado> <nombre>$n</nombre> </resultado> Listar los nombres de las posadas en la misma avenida del hotel Prado Rio Nov. 2003 Isabel Besembel. ULA-PGCOMP 24

Variables para marcas: permite consultar los metadatos XML-QL Consulta: Encontrar todos los nombres y teléfonos de los hoteles 3 estrellas en Margarita Where <Hotel @categoria= *** > <$a>$v</$a> $a IN {nombre, telefono} <ciudad>margarita</ciudad> </Hotel> IN Guia Select <resultado> </resultado> <$a>$v</$a> Nov. 2003 Isabel Besembel. ULA-PGCOMP 25

XML-QL Expresiones regulares: expresiones de caminos con. y operadores como: (opción) * (cualquiera) +(concatenación) Consulta: encontrar los teléfonos de todos los hoteles o posadas en Margarita Where <*> <ciudad>margarita</ciudad> <telefono>$t</telefono> </*> IN Guia Select <resultado>$t</resultado> Resumen: select <plantilla> regresa el subárbol que responde Where <plantilla> select <plantilla> filtro de búsqueda con where y construcción del resultado con el select Nov. 2003 Isabel Besembel. ULA-PGCOMP 26

Variante de XPath propuesta por Microsoft, pero abandonada a favor de XQuery Poca legibilidad y no hay forma de reestructurar los resultados XQL Consulta: Encontrar todos los nombres de los hoteles 3 estrellas en Margarita /Guia/Hotel?(@categoria[text() = *** ] ) /nombre??/ciudad[ text() = Margarita ] / nivel siguiente a partir de la raíz o el nodo actual // todos los niveles a partir de la raíz o el nodo actual * Designa una marca cualquiera @att el atributo de nombre att @* un atributo cualquiera [ criterio de filtrado ]? Indicar el nodo resultado?? La raíz de un subárbol resultado Nov. 2003 Isabel Besembel. ULA-PGCOMP 27

XQuery Propuesto a W3C en 2001 por IBM y algunos autores de XML/QL Palabras claves se escriben en minúsculas (en azul) Fuertemente tipeado y basado en programación funcional Generalización de XPath y superconjunto de SQL Funciones: Proyección de árboles en subárboles, asegurada por XPath Selección de árboles y subárboles usando predicados sobre los valores de las hojas (<, >, =,!=, <=, >=) Toda operación válida sobre un tipo de dato se puede usar para componer una consulta. Tiene reglas específicas para inferir tipos de datos. Soporta funciones documentales como contains para búsqueda Nov. 2003 Isabel Besembel. ULA-PGCOMP 28

XQuery Consultas con variables asociadas a árboles o para iterar sobre colecciones de árboles. La cuantificación universal es la opción por omisión Posibilidad de combinar los árboles extraídos usando join de árboles Reordenamiento de árboles y de los resultados según valores de los elementos en forma ascendente o descendente Anidamiento de consultas para indicar una reestructuración de los resultados, permitiendo así la reconstrucción de jerarquías Cálculo sobre colecciones particionadas o no a través de count, sum, max, min y avg Posibilidad de incluir cualquier función de usuario a condición que se respete el tipo de dato Uso de los operadores /, //, *, etc. de XPath Nov. 2003 Isabel Besembel. ULA-PGCOMP 29

Consultas XPath Expresiones de caminos interpretadas como consulta aplicada a un documento o a una colección de documentos cuyo resultado es un conjunto de subárboles seleccionados en cada documento Ejemplo: document( http://www.guiahotelera.ve )//Hotel/nombre/text() collection( Guia )//Hotel/nombre/text() Expresiones FLWR (flower) for let where return ; aplicadas a una o varias colecciones de árboles definidos en el bloque for que permite regresar los árboles construidos por el bloque return a partir de los árboles memorizados por el bloque let y/o seleccionados por el bloque where Nov. 2003 Isabel Besembel. ULA-PGCOMP 30

Consultas Forma general: for $<var> in <bosque> [, $<var> in <bosque>] // iteración let $<var> := <subárbol> // asignación where <condición> // elección return <resultado> // construcción Lista ordenada de tuplas de variables asociadas Lista elegida de tuplas de variables asociadas Instancias XML for let where return Nov. 2003 Isabel Besembel. ULA-PGCOMP 31

Consultas Restricciones: $<variable>/<expresión de camino> Θ <constante> Productos (join): $<variable>/<expresión de camino> Θ $<variable>/<expresión de camino> Operadores: Θ ={ <, >, =,!=, <=, >= }, empty para probar si un elemento está vacío, contains para probar palabras claves, etc. Consulta 1: liste los nombres de los hoteles en Margarita for $H in collection( Guia )/Hotel where $H/ciudad = Margarita return $H/nombre Equivalente en XPath a collection( Guia )/Hotel[ciudad = Margarita ]/nombre Nov. 2003 Isabel Besembel. ULA-PGCOMP 32

Consultas Anidamiento de consultas: en el for (para definir variables en árboles calculados), where (para calcular los valores de los predicados) o return (para definir los documentos anidados). Listar los nombres de las posadas en la misma avenida del hotel Prado Rio for $H in collection( Guia )/Hotel, $P in collection( Guia )/Posada where $H//direccion/Av = $P//direccion/Av and $H/nombre = Prado Rio return <resultado> </resultado> <nombre> {$H/nombre/text()} </nombre> <telefono> {$H/telefono/text()} </telefono> Nov. 2003 Isabel Besembel. ULA-PGCOMP 33

Consultas Encontrar todos los nombres y direcciones de los hoteles 3 estrellas en Margarita for $H in collection( Guia )/Hotel where $H/@categoria = *** return <resultado> </resultado> {$H/nombre} <direccion> {$H/ direccion//text()} </ direccion > Cuántos hoteles hay en los documentos Guia? for $H := collection( Guia )/Hotel return <nombrehotel> {count ($H) } </nombrehotel> Aplanamiento en forma de texto de la dirección Nov. 2003 Isabel Besembel. ULA-PGCOMP 34

Consultas Listar las direcciones de los hoteles cuyo nombre contiene la palabra hotel for $H := collection( Guia )/Hotel where contains ($H//nombre, hotel ) return <resultado> {$H/nombre} <direccion> {$H/ direccion//text()} </ direccion > </resultado> Encontrar todos los valores de los atributos de los hoteles for $H in collection( Guia )/Hotel return <res> {for $A in $H//@* return $A} </res> Nov. 2003 Isabel Besembel. ULA-PGCOMP 35

Hacia un algebra para XML Algebra Xquery: Conjunto de operadores elementales, cada uno permite la transformación de una o varias colecciones de árboles XML en una colección de árboles, el conjunto permite la representación de los planos de ejecución calculando la respuesta a toda consulta Xquery. Necesita la especificación del sistema de tipos y sus operadores, además de las reglas de inferencia de tipos Resultados preliminares están en el documento que define la semántica formal de Xquery (www.w3.org/tr/2001/wd-querysemantics-200100607 Nov. 2003 Isabel Besembel. ULA-PGCOMP 36

Asignación y construcción: let $var := expresión Proyección: $var/xpath Acceso a los datos: $var/xpath/data() Iteración: for $var IN seq return expresión Selección: for $var IN seq where cc return expresión Cuantificación existencial: some $var in seq satisfies cc Cuantificación universal: any $var in seq satisfies cc Producto: for $var1 in seq1, $var2 in seq2 where cc return expresión Ordenamiento: expresión1 sortby expresión2 Operadores Funciones integradas: distinct-value, unordered, parent, ref, deref, index, before, after, avg, min, max, sum, count Definición de funciones: define function nom ([type:var]*) returns colección Nov. 2003 Isabel Besembel. ULA-PGCOMP 37