Topicos Avanzados de Bases de Datos en la Web · 4/16/2007 7 Porqué no HTML? zAmazon publica un...
-
Upload
truongtram -
Category
Documents
-
view
219 -
download
5
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 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 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 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 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 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?