Topicos Avanzados de Bases de Datos en la Web · 4/16/2007 7 Porqué no HTML? zAmazon publica un...

33
4/16/2007 1 Topicos Avanzados de Bases de Datos en la Web Introducción a XML Profesor: Alejandro Vaisman 1er. Cuatrimestre, 2007

Transcript of Topicos Avanzados de Bases de Datos en la Web · 4/16/2007 7 Porqué no HTML? zAmazon publica un...

4/16/2007 1

Topicos Avanzados de Bases de Datos en la Web

Introducción a XML

Profesor: Alejandro Vaisman1er. Cuatrimestre, 2007

4/16/2007 2

XML

XML es el lenguaje estándar para intercambiarinformación en la Web.Ampliamente usado para almacenar información en la Web.Siguiente generación de buscadores.Algunas de las tecnologías asociadas al uso de XML yaestán maduras.Un área con muchos problemas de investigaciónabiertos.

InteresantesRelevantes.No triviales.

4/16/2007 3

Datos

Dada una colección grande de datos, ¿Cómo organizar/representar los datos? – modelos de datoscrítico con respecto al almacenamiento, recuperación, y data management

¿Cómo recuperar eficientemente la información de los datos? –Queries¿Cómo manejar eficientemente los datos? – actualizaciones (updates)Los datos se encuentran típicamente en documentos y bases de datos relacionales:

los sistemas de la base de datos relacionales dominan los sistemas comerciales XML es el estándar de facto para el intercambio de datos

4/16/2007 4

Documentos vs. Bases de datos

Los documentos son, típicamente, pequeños, mientras que las bases de datos pueden se muy grandesDocumentos: usualmente estáticos, mientras que las bases de datos son dinámicas. Un documento has tiene una estructura implícita, mientras una base de datos tiene una estructura explícita. Los documentos son, usualmente, semi-estructurados, y las bases de datos son estructuradas, restringida según un esquema.Los documentos are human-friendly, y las bases de datos son machine-friendlyProblemas de los documentos incluyen presentación, edición, codificacion de caracteres, codificación de languajes, mientras las bases de datos se focalizan en modelo, consultas, control de concurrencia, performance

4/16/2007 5

Documentos vs.Bases de Datos

4/16/2007 6

Porqué estudiar XML?

Enorme demanda de data exchangeEntre plataformasEntre empresas

Enorme demanda de data integrationFuentes de datos heterogéneas.Fuentes de datos distribuídas en diferentes ubicaciones.

XML (eXtensible Markup Language) se transformó en el primer modelo standard para data exchange en la Web y un modelo de datos uniforme para data integration.

4/16/2007 7

Porqué no HTML?

Amazon publica un catálogo de ventas de librosFuente de datos: base de datos relationalPublicación: páginas HTML generadas de la base de datos relacionalLos clientes quieren consultar el catálogo

pueden solo acceder a las paginas web publicadas (ergo, necesitan un parser) Solo les interesa información de libros sobre las Armas de Destrucción Masiva, y solo les interesa información sobre ADM escritos por Bush -- En SQL:

select Bfrom book Bwhere B.title contains “WMD” and B.author= “Bush”

4/16/2007 8

Cuál es el problema de HTML?

• Un cambio de menor importancia del formato al documento del HTML puede romper el parser - y dar una respuesta errónea la consulta

• Porque? Los tags HTML son• predefinidos y fijos• describen el formato y no la estructura de los datos • HTML es bueno para presentación • es human-friendly, pero no ayuda a la extracción automática de datos mediante programas

4/16/2007 9

Una solución XML

4/16/2007 10

XML vs. HTML

XML tags:user-defineddescriben la estructura de los datos

XML es human-friendly Y computer-friendly.HTML es human-friendly PERO NO computer-friendly.HTML tags:

Predefinidos y fijosDescriben formato y no estructuraOrientados a consumo por parte de personas y no de máquinas

4/16/2007 11

Acerca de XML

XML basics: elementos, atributos, trees Document Type Definition

“types”: element type definition“constraints”: ID/IDREF

� XML query LanguagesXPathXQuery, XSLT

4/16/2007 12

Historia: SGML, HTML, XML

SGML: Standard Generalized Markup LanguageCharles Goldfarb, ISO 8879, 1986

DTD (Document Type Definition)Herramienta poderosa y flexible para estructurar información, peroUna implementación completa, genérica de SGML ha demostrado ser extremadamente dificil.Herramientas para trabajar con documentos SGML han demostrado ser muy caros.

Dos sub-languages desplazaron a SGML:HTML: HyperText Markup Language (Tim Berners-Lee,1991). Describe presentación.

– XML: eXtensible Markup Language, W3C, 1998. Describe contenido.

4/16/2007 13

De HTML a XML

El HTML es bueno para presentación (human-friendly), pero no ayuda a la extracción de datos automática por medio de los programas (no user-friendly).Porqué? Los tags HTML son:

Predefinidos y fijosDescribe el display format, no la estructura de los datos.

4/16/2007 14

XML: Una introducción

XML tags:user-defineddescriben la estructura de los datos

4/16/2007 15

XML vs. HTML

Nuevos tags, user-defined describen la estructura en lugar del formato

Las estructuras se pueden anidar arbitrariamente (aun en forma recursiva)Opcionalmente puede describirse su gramática (DTD) y validar a estructura

Para que se puede usar XML?Standard para intercambio de datos en la WebUn modelo de datos uniforme para data integration

XML El standard XML no define como debe desplegarse la informaciónStyle sheet: provee browsers y un conjunto de reglas de formateo a aplicar a elementos particulares

CSS (Cascading Style Sheets), originalmente para HTMLXSL (eXtensible Style Language), for XML

4/16/2007 16

XML

El usuario puede definir tags: <book>, <title>, etc.La estructura se puede anidar arbitrariamente

4/16/2007 17

XML

La estructura se puede definir recursivamente

4/16/2007 18

Tags y Texto

XML consiste en tags y texto

• Los tags vienen en pares: markups• start tag, e.g., <course>• end tag, e.g., </course>

• Los tags deben anidarse correctamente

•XML tiene un único tipo “básico” : text, llamado PCDATA (Parsed Character DATA)

4/16/2007 19

Elementos XML

Elemento: el segmento entre el tag inicial y sucorrespondiente tag final.Subelemento: la relacion entre un elemento y suselementos componentes.<person>

<name> Alejandro Vaisman </name><tel> (5411) 4576 – 3390 ext. 710 </tel><email> [email protected] </email><email> [email protected]</email><oldemail>[email protected]</oldemail>

</person>

4/16/2007 20

Elementos XML

Elemento: el segmento entre el tag inicial y sucorrespondiente tag final.Subelemento: la relacion entre un elemento y suselementos componentes.<person>

<name> Alejandro Vaisman </name><tel> (5411) 4576 – 3390 ext. 710 </tel><email> [email protected] </email><email> [email protected]</email><oldemail>[email protected]</oldemail>

</person>

4/16/2007 21

Estructura Anidada

Los tags anidados pueden utilizarse para expresarvarias estructuras,e.g., “records”:<person>

<name> Alejandro Vaisman </name><tel> (5411) 4576 – 3390 ext. 710 </tel><email> [email protected] </email><email> [email protected]</email>

</person>

una lista: representada usando los mismos tags repetidamente:<person> … </person><person> … </person>

4/16/2007 22

Estructura Ordenada

Los elementos XML estan ordnados!Como representar conjuntos en XML?Como representar un par no ordenado (a, b) en XML?<person><name> Alejandro Vaisman </name><tel> (5411) 4576 – 3390 ext. 710 </tel><email> [email protected] </email> <email> [email protected]</email>

</person>

4/16/2007 23

Estructura Ordenada

Los elementos XML estan ordnados!Como representar conjuntos en XML?Como representar un par no ordenado (a, b) en XML?<person>

<name> Alejandro Vaisman </name><tel> (5411) 4576 – 3390 ext. 710 </tel><email> [email protected] </email> 1er. e-mail<email> [email protected]</email> 2do. e-mail

</person>

4/16/2007 24

Estructura Ordenada

Los siguientes elementos son considerados distintos– <person>

<name> Alejandro Vaisman </name><tel> (5411) 4576 – 3390 ext. 710 </tel<email> [email protected] </email> <email> [email protected]</email>

</person>– <person>

<name> Alejandro Vaisman </name><tel> (5411) 4576 – 3390 ext. 710 </tel><email> [email protected]</email><email> [email protected] </email>

</person>

4/16/2007 25

Elementos Especiales

Elemento raíz: Un documento XML consiste de un sinple elemento llamado root, e.g.,

• Elemento vacío: elemento especial que indica contenidono-textual

• Un elemento puede contener atributos a ser interpretadospor las aplicaciones.

4/16/2007 26

Atributos XML• Un tag inicial puede contener atributos describiendo algunas“propiedades” del elemento (e.g., dimensión o tipo)

• Referencias (relevantes solo en presencia de un DTD):

4/16/2007 27

La “estructura” de los Atributos XML

No pueden ser anidados – estructura flatLos nombres de los atributos XML deben ser únicos.

Es erróneo escribir<person pal=“Blair” pal=“Saddam”> ..

Los atributos XML NO estan ordenados<person id = “011” pal=“012”><name> George Bush</name></person>

Es lo mismo que:<person pal=“012” id = “011”><name> George Bush</name></person>

Atributos vs. subelementos: unordered vs. ordered, yatributos no pueden anidarsesubelementos no pueden representar referencias

4/16/2007 28

Otras construcciones XMLDeclaración XML: información de versión

<?xml version= ‘1.0’?>Comentarioss:

<!-- This is a comment. Processors will ignore me -->CDATA: bloque de escape conteniendo caracteres que, de otra manera se reconocería como markup:

<![CDATA[ content]]>e.g., <![CDATA[ <start> this is not an element </end>]]>Es decir, todo lo que esta dentro de CDATA se interpreta como caracteres.PI (Processing Instruction): para aplicaciones, no parsers

<?instruction?>Ejemplo: Asociar una hoja XSL con un documento XML

<?xml:stylesheethref=“http://homepages.inf.ed.ac.uk/~wenfei/book.xsl” type=“text/xsl” ?>

4/16/2007 29

Documentos XML Bien Formados

Un documento esta bien formado, si satisface dos restricciones (donde solo elementos y atributos se consideran):

Los tags deben anidarse apropiadamenteLos atributos deben ser únicos.

Constraints muy débiles: Prácticamente aseguran que el documento XML podrá generar un labeled tree.

4/16/2007 30

Bases de datos relacionales y XML

Curso Nombre Pab. Aula Profesor

BD I Bases de datos I 8 Frías

TABD Tópicos Avanzados de BD en la Web

I 6 Vaisman

PI-I Introducción al Procesamiento de imágenes

I 4 Mejail

¿Cómo se puede almacenar esta información en XML? ¿Cómo lo haría si tuviera varias relaciones?

4/16/2007 31

Un documento XML Completo

4/16/2007 32

El modelo de árbol XML

Un documento XML se modela como un node-labeledordered tree.

Element node: típicamente interno, con un nombre (tag) e hijos (subelementos y atributos), e.g., student, name.Attribute node: nodo hoja con nombre (tag) y texto, e.g., @id.Text node: nodo hoja con texto (string) pero sin nombre (tag).

Un documento XML tiene una única representación como árbol?

4/16/2007 33

El modelo de árbol XML(cont.)