You are on page 1of 33

Topicos Avanzados de Bases de Datos en la Web

Introduccin a XML
Profesor: Alejandro Vaisman 1er. Cuatrimestre, 2007

4/16/2007

XML
z XML es el lenguaje estndar para intercambiar informacin en la Web. z Ampliamente usado para almacenar informacin en la Web. z Siguiente generacin de buscadores. z Algunas de las tecnologas asociadas al uso de XML ya estn maduras. z Un rea con muchos problemas de investigacin abiertos. zInteresantes zRelevantes. z No triviales.
4/16/2007 2

Datos
z Dada una coleccin grande de datos, { Cmo organizar/representar los datos? modelos de datos { crtico con respecto al almacenamiento, recuperacin, y data management z Cmo recuperar eficientemente la informacin de los datos? Queries z Cmo manejar eficientemente los datos? actualizaciones (updates) z Los datos se encuentran tpicamente en documentos y bases de datos relacionales: { los sistemas de la base de datos relacionales dominan los sistemas comerciales { XML es el estndar de facto para el intercambio de datos

4/16/2007

Documentos vs. Bases de datos


z Los documentos son, tpicamente, pequeos, mientras que las bases de datos pueden se muy grandes z Documentos: usualmente estticos, mientras que las bases de datos son dinmicas. z Un documento has tiene una estructura implcita, mientras una base de datos tiene una estructura explcita. z Los documentos son, usualmente, semi-estructurados, y las bases de datos son estructuradas, restringida segn un esquema. z Los documentos are human-friendly, y las bases de datos son machine-friendly z Problemas de los documentos incluyen presentacin, edicin, codificacion de caracteres, codificacin de languajes, mientras las bases de datos se focalizan en modelo, consultas, control de concurrencia, performance

4/16/2007

Documentos vs.Bases de Datos

4/16/2007

Porqu estudiar XML?


z Enorme demanda de data exchange { Entre plataformas { Entre empresas z Enorme demanda de data integration { Fuentes de datos heterogneas. { Fuentes de datos distribudas en diferentes ubicaciones. z 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

Porqu no HTML?
z Amazon publica un catlogo de ventas de libros { Fuente de datos: base de datos relational { Publicacin: pginas HTML generadas de la base de datos relacional
{ Los clientes quieren consultar el catlogo z pueden solo acceder a las paginas web publicadas (ergo, necesitan un parser) z Solo les interesa informacin de libros sobre las Armas de Destruccin Masiva, y solo les interesa informacin sobre ADM escritos por Bush -- En SQL:

select B

from book B where B.title contains WMD and B.author = Bush


4/16/2007 7

Cul es el problema de HTML?

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

Porque? Los tags HTML son predefinidos y fijos describen el formato y no la estructura de los datos HTML es bueno para presentacin es human-friendly, pero no ayuda a la extraccin automtica de datos mediante programas 4/16/2007

Una solucin XML

4/16/2007

XML vs. HTML


z XML tags: { user-defined { describen la estructura de los datos z XML es human-friendly Y computer-friendly. z HTML es human-friendly PERO NO computer-friendly. z HTML tags: { Predefinidos y fijos { Describen formato y no estructura { Orientados a consumo por parte de personas y no de mquinas
4/16/2007 10

Acerca de XML
z XML basics: elementos, atributos, trees z Document Type Definition
{types: element type definition {constraints: ID/IDREF

XML query Languages


{XPath {XQuery, XSLT

4/16/2007

11

Historia: SGML, HTML, XML


z SGML: Standard Generalized Markup Language { Charles Goldfarb, ISO 8879, 1986
{ DTD (Document Type Definition) { Herramienta poderosa y flexible para estructurar informacin, pero

{ Una implementacin completa, genrica de SGML ha demostrado ser extremadamente dificil. { Herramientas para trabajar con documentos SGML han demostrado ser muy caros. z Dos sub-languages desplazaron a SGML: { HTML: HyperText Markup Language (Tim Berners-Lee,1991). Describe presentacin. XML: eXtensible Markup Language, W3C, 1998. Describe contenido.

4/16/2007

12

De HTML a XML
z El HTML es bueno para presentacin (human-friendly), pero no ayuda a la extraccin de datos automtica por medio de los programas (no user-friendly). z Porqu? Los tags HTML son: { Predefinidos y fijos { Describe el display format, no la estructura de los datos.

4/16/2007

13

XML: Una introduccin


z XML tags:
{ user-defined { describen la estructura de los datos

4/16/2007

14

XML vs. HTML


z 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 gramtica (DTD) y validar a estructura

z Para que se puede usar XML?


{ Standard para intercambio de datos en la Web { Un modelo de datos uniforme para data integration

z XML
{ El standard XML no define como debe desplegarse la informacin { Style sheet: provee browsers y un conjunto de reglas de formateo a aplicar a elementos particulares
z CSS (Cascading Style Sheets), originalmente para HTML z XSL (eXtensible Style Language), for XML
4/16/2007 15

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

4/16/2007

16

XML
z La estructura se puede definir recursivamente

4/16/2007

17

Tags y Texto
z 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 bsico : text, llamado PCDATA (Parsed Character DATA)
4/16/2007 18

Elementos XML
z Elemento: el segmento entre el tag inicial y su correspondiente tag final. z Subelemento: la relacion entre un elemento y sus elementos componentes. <person>
<name> Alejandro Vaisman </name> <tel> (5411) 4576 3390 ext. 710 </tel> <email> avaisman@dc.uba.ar </email> <email> avaisman@cs.toronto.edu</email> <oldemail>avaisman@dcc.uchile.cl</oldemail>

</person>
4/16/2007 19

Elementos XML
z Elemento: el segmento entre el tag inicial y su correspondiente tag final. z Subelemento: la relacion entre un elemento y sus elementos componentes. <person>
<name> Alejandro Vaisman </name> <tel> (5411) 4576 3390 ext. 710 </tel> <email> avaisman@dc.uba.ar </email> <email> avaisman@cs.toronto.edu</email> <oldemail>avaisman@dcc.uchile.cl</oldemail>

</person>
4/16/2007 20

Estructura Anidada
z Los tags anidados pueden utilizarse para expresar varias estructuras, z e.g., records:
<person>
<name> Alejandro Vaisman </name> <tel> (5411) 4576 3390 ext. 710 </tel> <email> avaisman@dc.uba.ar </email> <email> avaisman@cs.toronto.edu</email>

</person>

z una lista: representada usando los mismos tags repetidamente:


<person> </person> <person> </person>
4/16/2007 21

Estructura Ordenada
z Los elementos XML estan ordnados!
{ Como representar conjuntos en XML? { Como representar un par no ordenado (a, b) en XML? z <person>
<name> Alejandro Vaisman </name> <tel> (5411) 4576 3390 ext. 710 </tel> <email> avaisman@dc.uba.ar </email> <email> avaisman@cs.toronto.edu</email>

</person>
4/16/2007 22

Estructura Ordenada
z Los elementos XML estan ordnados!
{ Como representar conjuntos en XML? { Como representar un par no ordenado (a, b) en XML? z <person>
<name> Alejandro Vaisman </name> <tel> (5411) 4576 3390 ext. 710 </tel> <email> avaisman@dc.uba.ar </email> 1er. e-mail <email> avaisman@cs.toronto.edu</email> 2do. e-mail

</person>
4/16/2007 23

Estructura Ordenada
z Los siguientes elementos son considerados distintos

<person>
<name> Alejandro Vaisman </name> <tel> (5411) 4576 3390 ext. 710 </tel <email> avaisman@dc.uba.ar </email> <email> avaisman@cs.toronto.edu</email>

</person>

z <person>
<name> Alejandro Vaisman </name> <tel> (5411) 4576 3390 ext. 710 </tel> <email> avaisman@cs.toronto.edu</email> <email> avaisman@dc.uba.ar </email>

</person>
4/16/2007 24

Elementos Especiales
z Elemento raz: Un documento XML consiste de un sinple elemento llamado root, e.g.,

Elemento vaco: elemento especial que indica contenido no-textual

Un elemento puede contener atributos a ser interpretados por las aplicaciones.


4/16/2007 25

Atributos XML
Un tag inicial puede contener atributos describiendo algunas propiedades del elemento (e.g., dimensin o tipo)

Referencias (relevantes solo en presencia de un DTD):

4/16/2007

26

La estructura de los Atributos XML


z No pueden ser anidados estructura flat z Los nombres de los atributos XML deben ser nicos.
{ Es errneo escribir <person pal=Blair pal=Saddam> ..

z 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>

z Atributos vs. subelementos: unordered vs. ordered, y


{ atributos no pueden anidarse { subelementos no pueden representar referencias
4/16/2007 27

Otras construcciones XML


z Declaracin XML: informacin de versin { <?xml version= 1.0?> z Comentarioss: { <!-- This is a comment. Processors will ignore me --> z CDATA: bloque de escape conteniendo caracteres que, de otra manera se reconocera 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. z PI (Processing Instruction): para aplicaciones, no parsers { <?instruction?> Ejemplo: Asociar una hoja XSL con un documento XML { <?xml:stylesheet { href=http://homepages.inf.ed.ac.uk/~wenfei/book.xsl type=text/xsl ?>

4/16/2007

28

Documentos XML Bien Formados

z Un documento esta bien formado, si satisface dos restricciones (donde solo elementos y atributos se consideran): { Los tags deben anidarse apropiadamente { Los atributos deben ser nicos. z Constraints muy dbiles: Prcticamente aseguran que el documento XML podr generar un labeled tree.

4/16/2007

29

Bases de datos relacionales y XML


Curso BD I TABD PI-I Nombre
Bases de datos

Pab.

Aula

Profesor Fras Vaisman Mejail

I I I

8 6 4

Tpicos Avanzados de BD en la Web Introduccin al Procesamiento de imgenes

Cmo se puede almacenar esta informacin en XML? Cmo lo hara si tuviera varias relaciones?
4/16/2007 30

Un documento XML Completo

4/16/2007

31

El modelo de rbol XML


z Un documento XML se modela como un node-labeled ordered tree. { Element node: tpicamente 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). z Un documento XML tiene una nica representacin como rbol?

4/16/2007

32

El modelo de rbol XML(cont.)

4/16/2007

33

You might also like