You are on page 1of 25

Bases de Datos XML

XML
Jorge Prez Rojas e Universidad de Talca, II Semestre 2006

Bases de Datos XML

Motivacin o
Web Semntica: a
La Web se ha convertido en un gran repositorio de informacin. o
La info en la Web est diseada para ser fcilmente le a n a da, entendida y usada por personas.
Permiten a las personas encontrar informacin relacionada relevante o (hyperlinks).
Las personas se encargan de dar sentido a la info.
Problema: se crean cerca de 7 millones de pginas diariamente!!! cada a vez ms dif el procesamiento por personas. a cil

Bases de Datos XML

Motivacin (cont.) o
Integracin de Informacin: o o
Distintas empresas deben intercambiar informacin (electrnica) cr o o tica de sus procesos.
Problema: las empresas no tienen porqu compartir e modelo de datos (relacional, orientado a objetos) esquema (tipos de relaciones) terminolog (los consultores son empleados?) a convenciones (unidades de medida etc.)
Se necesita adems la automatizacin de los procesos. a o
Resultar imprctico que todas las empresas tuviesen que implementar sus a a sistemas de una forma estndar. a

Bases de Datos XML

Motivacin (cont.) o
Integracin de Informacin Ejemplo: o o
Actualmente en Chile todas las empresas pueden intercambiar informacin o de facturacin de manera automtica. o a
Se evita el papeleo, se agilizan los procesos.
Proyecto de Facturacin Electrnica impulsado por el SII. o o

Bases de Datos XML

XML: eXtensible Markup Language


A portable format that is both machine and human readable, and is used to produce documents that convey content with semantic structure. W3C 1998. XML est en el corazn de las soluciones a los anteriores y muchos otros a o problemas...

Bases de Datos XML

XML
Un documento XML es un documento de texto que contiene informacin o semiestructurada. La informacin se organiza como un arbol. o
Empresa departamento codigo B02 nombre telefono Marketing 8741460 empleado nombre Parra rut 10934412 empleados codigo A03 departamento nombre Finanzas telefono 2354928 empleado nombre Gonzalez rut 8881672 empleados

empleado nombre Chavez rut 12008991

empleado nombre Rios rut 12009113

Bases de Datos XML

XML Ejemplo
El siguiente es el documento equivalente al arbol anterior
<Empresa> <departamento> <codigo>B02</codigo> <nombre>Marketing</nombre> <telefono>8741460</telefono> <empleados> <empleado> <rut>10934412</rut> <nombre>Parra</nombre> </empleado> <empleado> <rut>12008991</rut> <nombre>Chavez</nombre> </empleado> </empleados> </departamento> <departamento> <codigo>A03</codigo> <nombre>Finanzas</nombre> <telefono>2354928</telefono> <empleados> <empleado> <rut>881672</rut> <nombre>Gonzalez</nombre> </empleado> <empleado> <rut>12009113</rut> <nombre>Rios</nombre> </empleado> </empleados> </departamento> </Empresa>

Bases de Datos XML

XML Construccin o
Cada porcin de texto encerrado entre < > se llama tag. o <Empresa>, <nombre>, </telefono> son tags. Un elemento y su contenido en el documento est denido por un tag a inicial y uno nal. <empleado> es el tag inicial del elemento empleado y </empleado> es el tag nal. Un tag puede ser inicial y nal a la vez no tiene contenido: <empleado></empleado> es equivalente a <empleado/>.

Bases de Datos XML

XML Construccin (cont.) o


Un elemento vlido XML puede contener texto (sin tags) o una coleccin a o de otros elementos. Los siguientes son elementos vlidos: a
<nombre>Parra</nombre> <departamento> <nombre>Marketing</nombre> <codigo>B02</codigo> </departamento> <A><B><C>c</C><D><F>f</F></D></B></A>

Los siguientes son elementos NO vlidos: a


<nombre>Parra<nombre> <departamento> <nombre>Marketing <codigo>B02</codigo><nombre> </departamento> <A><B><C></D><D><F></F></D></A></B>

Un documento XML bien formado es un elemento XML vlido. a

Bases de Datos XML

10

XML Construccin (cont.) o


Adicionalmente los tags de inicio pueden contener atributos:
<empleado email="figueroa@empresa.cl" supervisor="13545110"> <salario moneda="pesos">600000</salario> <nombre>Figueroa</nombre> <rut>09998711</rut> </empleado>

email y supervisor es un atributo de empleado. El valor de un atributo se encierra entre comillas ".

Bases de Datos XML

11

<evaluacion tipo="examen" fecha="17-11-2004" dificultad="98" cursoID="ICC423"> <pregunta numero="1" tema="SQL"> <enunciado>Dado el esquema construya la consulta SQL ... </enunciado> <imagen tipo="gif" peso="455">AAAKKS"#djAAASKKFL"43... </imagen> <imagen tipo="href">http://RESPALDO/BD2004/imagenes/img1.jpg</imagen> <respuestas> <respuesta calidad="correcta" userID="jperez@utalca.cl"> La siguiente es la consulta pedida ... </respuesta> <respuesta calidad="incorrecta" userID="fmeza@utalca.cl"> No se puede crear la consulta pedida, debido a ... </respuesta> </respuestas> </pregunta> <pregunta numero="2" tema="ndices"> <enunciado>Qu es un ndice?</enunciado> e </pregunta> <pregunta numero="3" tema="XML"> <enunciado>Para qu sirve XML?</enunciado> e <respuestas> <respuesta userID="jperez@utalca.cl"> Para casi todo ... </respuesta> <respuesta userID="fmeza@utalca.cl"> Para casi nada ... </respuesta> </respuestas> </pregunta> </evaluacion>

Bases de Datos XML

12

XML y la Web
Actualmente la mayor de las pginas Web estn construidas en HTML, a a a solo estructuran el contenido y le dan un orden visual a los datos. Slo son entendibles por personas, no se puede hacer un procesamiento o automtico. a XML se puede usar para construir pginas Web. a XML en la Web Combina contenido semiestrucutrado y estructura visual puede ser procesado por personas y por mquinas. a Las bsquedas en la Web ser much u an simo ms precisas si las pginas se a a construyeran usando XML.

Bases de Datos XML

13

XML y la Web (cont.)


<table> <tr><td> <b>Descripcion del Trabajo</b></td></tr> <tr><td colspan="2"> Prestigiosa empresa pesquera esta lanzando su sitio Web y quiere posicionarlo como uno de los lideres en el rubro. Se necesita disenador y programador de paginas Web para prestigiosa empresa pesquera Chilena. El trabajo es en la localidad de Valparaiso. El postulante debe tener dominio de plataformas Unix y Windows y debe tener experiencia en el uso de uno o mas de los siguientes programas: <Descripcion> <ul><li>Adobe Illustrator o Pothoshop</li> <Proposito> <li>Macromedia Dreameweaver MX</li></ul> Disenar y programar paginas Web para una y al menos una de las siguiente tecnologias Web: prestigiosa empresa pesquera. <ul><li>Flash</li><li>Coldfusion</li></ul> </Proposito> </td></tr> <Ubicacion>Valparaiso</Ubicacion> </table> <FuncionEsencial> Programar y Disenar paginas Web </FuncionEsencial> <HabilidadesRequeridas> <Software>Adobe Illustrator/Potoshop</Software> <Software>Macromedia Dreamweaver MX</Software> <Tecnologia>Flash</Tecnologias> <Tecnologia>Coldfusion</Tecnologias> </HabilidadesRequeridas> </Descripcion>

HT M

XM L

Bases de Datos XML

14

XML DTD
A un documento XML adems de las reglas de construccin, se le puede a o exigir que cumpla un esquema particular, similar a como se le exige un esquema a una relacin de una BD. o Un DTD (document type denition) es un documento para exigir un esquema a un XML. DTD: Bsicamente una Gramtica Libre de Contexto que describe los tags y a a la forma permitida de anidarlos. Describe los elementos y los posibles atributos. Cada dominio (aplicacin, pginas Web, BD, conjunto de empresas) crea o a su propio DTD que describe a todos los documentos vlidos del grupo. a

Bases de Datos XML

15

DTD Ejemplo
<!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT Empresa (departamento*)> departamento (codigo,nombre,telefono,empleados)> empleados (empleado*)> <Empresa> empleado (rut,nombre)> <departamento> codigo (#PCDATA)> <codigo>B02</codigo> telefono (#PCDATA)> <nombre>Marketing</nombre> rut (#PCDATA)> <telefono>8741460</telefono> nombre (#PCDATA)> <empleados>

DT D

<Empresa> <departamento> <nombre>Marketing</nombre> <telefono>8741460</telefono> <empleados> <empleado> <nombre>Parra</nombre> </empleado> </departamento> </Empresa> <Empresa>

No

<departamento> <codigo>A03</codigo> <nombre>Finanzas</nombre> <telefono>8741460</telefono> </departamento> </Empresa>

<empleado> <rut>10934412</rut> <nombre>Parra</nombre> </empleado> <empleado> <rut>12008991</rut> <nombre>Chavez</nombre> </empleado> </empleados> </departamento> </Empresa>

No

V a

lid

lid o

V a

V a

lid

<Empresa> </Empresa>

V a

lid o

Bases de Datos XML

16

DTD (cont.)
!ELEMENT se usa para la denicin de un elemento. o La denicin de !ELEMENT lleva el nombre del elemento a denir y una o expresin regular entre parntesis. o e En la expresin regular, * indica 0 o ms ocurrencias, + indica una o ms o a a ocurrencias, ? indica 0 o una ocurrencia, , es concatenacin y | es unin. o o #PCDATA indica que el contenido del elemento es slo una secuencia de o caracteres. Adems se puede denir una lista de atributos para un elemento usando a !ATTLIST. La denicin de !ATTLIST lleva el nombre del elemento para el que se o dene la lista de atributos seguido del nombre del atributo, el tipo del atributo (CDATA, ID, IDREF o una lista de valores) y un modicador (#REQUIRED, #IMPLIED, o el valor por defecto).

Bases de Datos XML

17

DTD Ejemplo
<!ELEMENT repositorio (Evaluacion*)> <!ELEMENT evaluacion (pregunta+)> <!ATTLIST evaluacion tipo (examen|prueba|tarea) #REQUIRED> <!ATTLIST evaluacion fecha CDATA #REQUIRED> <!ATTLIST evaluacion dificultad CDATA #IMPLIED> <!ATTLIST evaluacion cursoID CDATA #REQUIRED> <!ELEMENT pregunta (enunciado,imagen*,respuestas?)> <!ATTLIST pregunta numero CDATA #REQUIRED> <!ATTLIST pregunta materia CDATA #REQUIRED> <!ELEMENT enunciado (#PCDATA)> <!ELEMENT imagen (#PCDATA)> <!ATTLIST imagen tipo (gif|jpeg|bmp|href) #REQUIRED> <!ATTLIST imagen peso CDATA #IMPLIED> <!ELEMENT respuestas (respuesta+)> <!ELEMENT respuesta (#PCDATA)> <!ATTLIST respuesta userID CDATA #REQUIRED> <!ATTLIST respuesta calidad (correcta|incorrecta) #IMPLIED>

Es un DTD de ejemplo para el XML de evaluaciones.

Bases de Datos XML

18

XML vs. Relacional


XML provee una nueva forma de almacenar y visualizar informacin o (datos) alternativa al modelo relacional... Cmo se relacionan? una o pregunta nada fcil de responder. a Es claro que cualquier instancia de una BD Relacional se puede llevar a una instancia de un documento XML plano (Cmo?). o Lo interesante es que XML estratica la informacin lo que es incompatible o con el modelo Relacional. Incluso XML puede permitir recursin en sus elementos!!! imposible en el o modelo relacional.

Bases de Datos XML

19

XML vs. Relacional (cont.)


Dado que XML se ha convertido en el stndar para intercambiar a informacin electrnica, los DBMS comerciales han tenido que adoptarlo (a o o su manera). Las nuevas versiones de Oracle y SQLServer proveen un set importante de herramientas para manejar XML. Estn destinadas principalmente a obtener informacin desde las tablas y a o convertirlas a XML u obtener informacin desde un XML y almacenarla en o tablas. Ejemplo: sentencia for xml de SQLServer 2000.

Bases de Datos XML

20

SQLServer FOR XML


select depto.nombre, depto.codigo, emp.nombre, emp.rut from departamento as depto join empleado as emp on emp.departamento_codigo = depto.codigo where codigo = A01 for xml auto

Opcin elements o

Por defecto

<depto> <nombre>Finanzas</nombre> <depto nombre="Finanzas" codigo="A03"> <codigo>A03</codigo> <emp nombre="Gonzalez" rut="08881672"/> <emp> <emp nombre="Rios" rut="12009113"/> <nombre>Gonzalez</nombre> </depto> <rut>08881672</rut> </emp> <emp> <nombre>Rios</nombre> <rut>12009113</rut> </emp> </depto>

Bases de Datos XML

21

XML como BD
Surgen muchas preguntas: Cmo poder obtener informacin desde un XML? Existe algo similar a o o SQL? Puede hacerse en forma eciente? Es factible almacenar grandes cantidades de informacin directamente en o XML? (Sin tener que pasar por un sistema administrador en modelo relacional) Cmo podemos medir si un esquema en XML (DTD) representa un buen o diseo? Existe normalizacin de XMLs? n o La contraparte relacional de estas preguntas ya han sido respondidas, de hecho es lo que se estudia a lo largo de un curso de BD. Todas las preguntas anteriores concernientes a XML se encuentran aun en estado muy inicial de investigacin... Existe mucha gente trabajando o actualmente en estos y otros temas con respecto a XML.

Bases de Datos XML

22

XML como BD (cont.)


Cmo poder obtener informacin desde un XML? Existe algo similar a o o SQL? XPath y XQuery son intentos de estndares de consultas sobre XML a Estn siendo desarrollados por el W3C (2001). a Puede hacerse en forma eciente? 2004 ACM SIGMOD Int. Conference on Management of Data Sesin especial: XML Query Eciency o

Bases de Datos XML

23

XML como BD (cont.)


Es factible almacenar de forma eciente grandes cantidades de informacin directamente en XML? o Actualmente hay varios proyectos en curso Ejemplo: El sistema NATIX (Alemania), ya est en estado comercial. a Existe otros trabajos interesantes que apuntan a construir DTDs a partir de diagramas E/R, algo similar al algoritmo que vimos para ir de E/R a modelo relacional R. Elmasri 2002: Conceptual Modeling for Customized XML Schemas

Bases de Datos XML

24

XML como BD (cont.)


Dado que interesa almacenar informacin directamente en XML la o siguiente pregunta cobra mucha importancia: Cmo podemos medir si un esquema en XML (DTD) representa un buen o diseo? Existe normalizacin de XMLs? n o M. Arenas et al. 2002: XNF: A Normal Form for XML Documents XNF est basada en una generalizacin de dependencias funcionales a o aplicables a XML y mide la calidad de un DTD. XNF resulta ser una generalizacin de BCNF para documentos XML: El o esquema de una relacin est en BCNF si y slo si su representacin en o a o o DTD est en XNF. a Se diseo un algoritmo eciente para llevar ciertos DTDs (los ms comunes n a en la prctica) a XNF. a

Bases de Datos XML

25

XML Conclusiones
XML nos presenta una vista jerarquizada y semiestructurada de los datos lo que resulta benecioso en distintas aplicaciones. Ya ha demostrado (en la prctica) ser la herramienta adecuada para a intercambiar informacin por la Web y es la solucin al problema de la o o Web Semntica. a XML toma cada vez ms fuerza como una alternativa vlida para a a almacenar informacin a gran escala. o Grandes esfuerzos a nivel mundial se realizan actualmente para proveer bases tericas para el desarrollo de XML como Base de Datos, existen o muchas preguntas abiertas y es un campo interesante para investigacin. o

You might also like