Topicos Avanzados de Bases de Datos en la Web Introducción a XML Profesor: Alejandro Vaisman 1er. Cuatrimestre, 2007 4/16/2007 1
XML XML es el lenguaje estándar para intercambiar informació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 ya están maduras. Un área con muchos problemas de investigación abiertos. Interesantes Relevantes. No triviales. 4/16/2007 2
Datos Dada una colección grande de datos, Cómo organizar/representar los datos? modelos de datos crí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 3
Documentos vs. Bases de datos Los documentos son, típicamente, pequeños, mientras que las bases de datos pueden se muy grandes Documentos: 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-friendly Problemas 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 4
Documentos vs.bases de Datos 4/16/2007 5
Porqué estudiar XML? Enorme demanda de data exchange Entre plataformas Entre empresas Enorme demanda de data integration Fuentes 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 6
Porqué no HTML? Amazon publica un catálogo de ventas de libros Fuente de datos: base de datos relational Publicación: páginas HTML generadas de la base de datos relacional Los 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 B from book B where B.title contains WMD and B.author = Bush 4/16/2007 7
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 8
Una solución XML 4/16/2007 9
XML vs. HTML XML tags: user-defined describen la estructura de los datos XML es human-friendly Y computer-friendly. HTML es human-friendly PERO NO computer-friendly. HTML tags: Predefinidos y fijos Describen formato y no estructura Orientados a consumo por parte de personas y no de máquinas 4/16/2007 10
Acerca de XML XML basics: elementos, atributos, trees Document Type Definition types : element type definition constraints : ID/IDREF XML query Languages XPath XQuery, XSLT 4/16/2007 11
Historia: SGML, HTML, XML SGML: Standard Generalized Markup Language Charles Goldfarb, ISO 8879, 1986 DTD (Document Type Definition) Herramienta poderosa y flexible para estructurar información, pero Una 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 12
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 fijos Describe el display format, no la estructura de los datos. 4/16/2007 13
XML: Una introducción XML tags: user-defined describen la estructura de los datos 4/16/2007 14
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 Web Un modelo de datos uniforme para data integration XML El standard XML no define como debe desplegarse la información Style sheet: provee browsers y un conjunto de reglas de formateo a aplicar a elementos particulares CSS (Cascading Style Sheets), originalmente para HTML XSL (extensible Style Language), for XML 4/16/2007 15
XML El usuario puede definir tags: <book>, <title>, etc. La estructura se puede anidar arbitrariamente 4/16/2007 16
XML La estructura se puede definir recursivamente 4/16/2007 17
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 18
Elementos XML Elemento: el segmento entre el tag inicial y su correspondiente tag final. 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 Elemento: el segmento entre el tag inicial y su correspondiente tag final. 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 Los tags anidados pueden utilizarse para expresar varias estructuras, 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> una lista: representada usando los mismos tags repetidamente: <person> </person> <person> </person> 4/16/2007 21
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> avaisman@dc.uba.ar </email> <email> avaisman@cs.toronto.edu</email> </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> avaisman@dc.uba.ar </email> 1er. e-mail <email> avaisman@cs.toronto.edu</email> 2do. e-mail </person> 4/16/2007 23
Estructura Ordenada 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> <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 Elemento raíz: Un documento XML consiste de un sinple elemento llamado root, e.g., Elemento vacío: 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., dimensión o tipo) Referencias (relevantes solo en presencia de un DTD): 4/16/2007 26
La estructura de los Atributos XML No pueden ser anidados estructura flat Los 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, y atributos no pueden anidarse subelementos no pueden representar referencias 4/16/2007 27
Otras construcciones XML Declaració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:stylesheet href= http://homepages.inf.ed.ac.uk/~wenfei/book.xsl type= text/xsl?> 4/16/2007 28
Documentos XML Bien Formados 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. Constraints muy débiles: Prácticamente aseguran que el documento XML podrá generar un labeled tree. 4/16/2007 29
Bases de datos relacionales y XML Curso Nombre Pab. Aula Profesor BD I TABD PI-I Bases de datos Tópicos Avanzados de BD en la Web Introducción al Procesamiento de imágenes I 8 Frías I 6 Vaisman 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 30
Un documento XML Completo 4/16/2007 31
El modelo de árbol XML Un documento XML se modela como un node-labeled ordered 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 32
El modelo de árbol XML(cont.) 4/16/2007 33