Title: XML
1XML
- Nociones básicas para entender el mundo XML.
2Índice
Índice
- Introducción a XML
- XML aplicado a bases de datos
- dbXML
- Exist
- dbXML vs. Exist
- Conclusiones
31. Introducción a XML
4Qué es XML?
1. Introducción a XML
- Definición
- Lenguaje de metamarcado para documentos que
contienen información estructurada
51. Introducción a XML
- Lenguaje de metamarcado
- Mecanismo para identificar estructuras en un
documento. - Información estructurada
- Consta de un contenido (palabras, imágenes) y de
el papel que interpreta este contenido. - Casi todos los documentos tienen una estructura.
61. Introducción a XML
- Qué es un documento?
- Para XML un documento no es sólo un documento de
texto propiamente dicho. - Pueden tener gráficos vectoriales, transacciones
e-comerciales, meta-datas de objetos, etc.
7Para que se creó XML?
1. Introducción a XML
- Para que documentos ricamente estructurados se
pudieran utilizar en Internet. - Las únicas alternativas viables (SGML y HTML) no
son adecuadas para este propósito - - HTML Limitado por un grupo de semanticos,
no proporciona información estructurada. - - SGML Proporciona una estructura arbitraria,
pero dificil implementarlo sólo para una
aplicación web.
8Objetivos de desarrollo de XML
1. Introducción a XML
- Debe ser sencillo utilizar XML en Internet Los
usuarios deben ser capaces de ver documentos XML
como HTML. - Debe admitir una gran variedad de aplicaciones.
- Debe ser compatible con SGML.
- Debe ser fácil escribir programas que procesen
documentos XML. - El número de características opcionales en XML
debe mantenerse absolutamente mínimo, idealmente
cero.
91. Introducción a XML
- Los documentos XML deben ser humanamente legibles
y razonablemente claros. - El diseño de XML debe de hacerse rápidamente.
- El diseño de XML debe ser formal y conciso. (XML
debe ser expresado en EBNF) - Los documentos XML deben de ser fáciles de crear.
- Ser conciso es de mínima importancia en el
marcaje de XML.
10Cómo está definido XML?
1. Introducción a XML
- XML está definido por un número de
especificaciones relacionadas - Extensible markup language (XML) Define la
sintaxis de XML. - XML Pointer Language (XPointer) y XML Linking
Language (XLink) Define una manera estándar de
representar uniones entre recursos. - Extensible Style Language (XSL) Define el
lenguaje estándar de hojas de estilo para XML.
11Estructura de un documento XML
1. Introducción a XML
- Un documento XML tiene dos estructuras Una
lógica y otra física. - Físicamente el documento está compuesto por
entidades. - - Una entidad puede hacer referencia a
- otra entidad.
- - Cada documento comienza con una
- entidad documento (raiz).
12- Logicamente Documento compuesto por
declaraciones, elementos, comentarios,
referencias a caracteres e instrucciones de
procesamiento.
13Especificaciones de XML
1. Introducción a XML
- DTD Definición de tipo documento
- Archivo(s) que lleva una definición formal de un
tipo de documento y especifica la estructura
lógica de cada uno. - Define los elementos de una pagina y sus
atributos. - DTD de XML opcional
- XSL Define o implementa el lenguaje de estilo de
los documentos escritos para XML. - Permite modificar el aspecto de un documento.
141. Introducción a XML
- XXL Define el modo de enlace entre los
diferentes enlaces. - Se considera subconjunto de HyTime.
- Sige algunas especificaciones de TEI.
- Este lenguaje tiene dos importantes componentes
XLink y XPointer. - XUA Estandarización de navegadores XML.
- En proceso de creación.
- Se aplicará a los navegadores, para que todos
compartan las especificaciones XML.
15XML vs. HTML
1. Introducción a XML
- HTML
- - Semántica de etiquetas y sistema de etiquetas
fijos. - - Cambios limitados por
- Vendedores del navegador.
- Compatibilidad con antiguas versiones.
- XML
- - No especifica el sistema de etiquetas, así
que no puede haber una semántica predefinida. - - Semanticos XML serán definidos por las
aplicaciones que los procesan o por las hojas
de estilo.
16XML vs. SGML
1. Introducción a XML
- SGML
- Lenguaje generalizado estádar de etiquetas.
- Forma estándar e independiente de los vendedores,
para mantener los depositos de la información
estructurada. - No funciona bien sirviendo documentos en
internet. - XML
- Perfil de aplicación de SGML.
171. Introducción a XML
- Los sistemas totalmente ajustados a SGML deben
poder leer documentos XML. - Aun así, utilizar y leer documentos XML no
requiere un sistema que entienda la totalidad de
SGML.
18Cómo son los documentos XML?
1. Introducción a XML
- Ejemplo
-
- lt?xml version"1.0"?gt
- ltoldjokegt
- ltburnsgtSayltquotegtgoodnightlt/quotegt,
- Gracie.lt/burnsgt
- ltallengtltquotegtGoodnight,
- Gracie.lt/quotegtlt/allengt
- ltapplause/gt
- lt/oldjokegt
192. Relacional vs. XML
20Introducción
2. Relacional vs. XML
- La diferencia principal entre las bases de datos
relacionales y las XML - - Relacional centrada en datos (almacena en
sus campos datos atómicos). - - XML almacenan documentos XML (ni tiene
campos, ni almacena datos atómicos.). - Asi, vemos que las diferencias principales se
darán en cuanto al ALMACENAMIENTO, la BÚSQUEDA, y
el PROCESAMIENTO de dicha información.
21Almacenamiento
2. Relacional vs. XML
- RELACIONAL
- Una BD relacional consiste en una colección de
tablas que guardan sistemas particulares de
datos. - Las tablas pueden relacionarse entre si de
diferentes maneras - - Dependencias funcionales se crean cuando un
atributo de una tabla se relaciona con el
atributo de otras tablas. - - Relación más simple 11
- - 1n, n1, nn.
222. Relacional vs. XML
- Esta información almacenada en tablas está
organizada lógicamente para poder cumplir los
siguientes propósitos - - minimizar la duplicación.
- - reducir las anomalías en lo datos.
- - reforzar la integridad de los datos.
- Proceso de organización lógica normalización
(simplifica la manera en la que los datos están
definidos y su organización). - - Existen 5 formas de normalización 1NF 5NF.
232. Relacional vs. XML
- XML
- Supuestamente una base de datos nativa de XML
debería almacenar la información en formato XML. - Pero en realidad lo que hace es que una base de
datos de este tipo tiene repositorios tipo XML,
en los que se almacenan los indices generados por
cada documento XML almacenado.
24Búsqueda
2. Relacional vs. XML
- RELACIONAL
- La mayoría de bases de datos relacionales
utilizan SQL. - XML
- Utiliza XPath y XQuery.
- Algunas bases de datos permiten seleccionar los
elementos que deben tener índice, otras indexan
todo el documento. - Problema No permite realizar búsquedas muy
complicadas (ej ordenamiento y cross join).
25XQuery y XPath
2. Relacional vs. XML
- XQuery Lenguaje diseñado para procesar datos
XML. - - No sólo ficheros en XML, también otro tipo de
datos (incluidas las bases de datos), cuya
estructura sea similar a XML. - XQuery como generalización de XPath pues
XQuery utiliza las expresiones path de XPath. - - Exceptuando algunas expresiones más ambiguas,
todas las expresiones XPath lo son también de
XQuery.
26Procesamiento
2. Relacional vs. XML
- RELACIONAL
- Al igual que la búsqueda se hace con SQL.
- XML
- No funciona muy bien debido a su estructura
jerárquica. - - Muchas bases de datos necesitan que el usuario
recupere en documento XML entero, lo actualice
con algún API y luego lo vuelva a almacenar todo
el documento. -
27- - Esto pasa porque no existe un lenguaje oficial
para la actualización, inserción o eliminación de
elementos en un documento XML. (hay un lenguaje
de actualizaciones pero hay muchos gestores de
bases de datos que no lo damiten, se llama
XUpdate).
28Resumen de diferencias
2. Relacional vs. XML
XML RDBMS
Los datos en una estructura jerárquica única. Datos en tablas múltiples
Los nodos tienen elementos y/o valores de atributo. Celdas con un único valor
Los elementos pueden ser jerarquizados Valores celulares atómicos
Los elementos están ordenados. Orden filas/columnas sin definir
Los elementos pueden ser recursivos Poca aceptación para los elementos recursivos.
Esquema opcional Esquema requerido
Almacenamiento y recuperación directa de documentos XML. Joins necesarios a menudo para recuperar datos
293. XML APLICADO A BASES DE DATOS
30Qué ofrece?
- Nuevas necesidades frente a la web
- Intercambio de datos
- Soluciones para la estandarización de XML
- 1. Fuentes de datos no XML
- 2. Fuentes de datos XML
- Problemas de integracion
31Nuevas necesidades frente a la web
- Con la entrada y generalización del uso de
Internet un basto abanico de posibilidades de
comunicación se ha abierto ante nosotros - Internet se ha convertido en una herramienta de
intercambio de información usada tanto en el
ámbito personal como empresarial (muy
especialmente por empresas)
32- Pero el intercambio de información no es tan
fácil - diferentes formatos de representación de
información - la conversión de todos los formatos de
representación a uno - único es inviable
- la transformación de uno a otro es costosa
33Intercambio de datos
- El uso de la Web para el intercambio de datos es
fundamental para las empresas hoy por hoy - El máximo exponente de este problema son las
bases de datos - - bastas fuentes de información
- - diferentes formatos según empresa proveedora
- - su cambio es costoso
- Para solucionar este problema grave nació XML.
34- XML se ha convertido en el estándar para la
presentación de información en la Web y también
para el intercambio de información Inter. o
intr. empresas - La generación de XML a partir de la información
que tienen almacenada bases de datos se hace cada
vez mas necesario para facilitar la comunicación
a través de la Web - Los sistemas de gestión de bases de datos (DBMS)
empleados siguen siendo en su mayoría
relacionales aunque poco a poco se instauran
otras soluciones
35- Para resolver estos problemas de conversión (a
XML) distinguimos varias soluciones
36Soluciones para la estandarización de XML
- FUENTES DE DATOS NO XML
- La principal fuente de datos no XML con que
cuentan las empresas son los RDBMS. - El numero de estas es muy elevado por lo que su
conversión a otro SGBD es inviable - La solución pasa por un nivel intermedio entre la
capa cliente y la base de datos que transforme
las soluciones a un documento XML
37- Estas herramientas las podemos clasificar en dos
grupos - - las que transforman el modelo relacional a una
representación XML - Crean una vista virtual XML con información de la
base de datos. - El usuario es lo que ve y hace las consultas
sobre ello - La consulta es interpretada y ejecutada en la
RDBMS - Finalmente se devuelve la solución en XML
38(No Transcript)
39- Alguna de las herramientas que siguen este modelo
son - XTABLES (también conocido como XPERANTO)
- SilkRoute
- XBD
- - las que transforman el resultado de consultas
SQL a la RDBMS - Estas usan SQL como lenguaje de consulta del
cliente - La RDBMS devuelve la solución y esta es
transformada a XML
40- 2. FUENTES DE DATOS XML
- Dentro de estas distinguimos dos familias
- - 2.1 RDBMS habilitados para XML
- son bases de datos tradicionales que definen un
nuevo tipo de dato que permite el almacenamiento
de información en formato XML. - Esta información sufre una transformación a la
hora de su almacenado en tablas relacionales.
41- Esta forma de almacenado tiene dos planteamientos
diferentes - - El planteamiento de DB2 y ORACLE Donde el
dato XML tiene una tabla adjunta en la que se
almacena la información contenida en este. - - El planteamiento de SQLSERVER2005 Este
sistema almacena el documento en formato binario
en el que los elementos se identifican mediante
un numero que actúa como índice esta información
debe ser previamente convertida al
correspondiente tipo de dato
42- En esta tabla podemos ver un breve esbozo de sus
caracteristicas
43- 2.2 Bases de datos nativas XML
- Permiten el almacenamiento, consulta y
actualización de información XML - Su principal diferencia es el lenguaje de acceso
que usan ( XPath, Xquery o ambos) - Por el contrario el lenguaje de actualizacion en
general es el mismo XUpdate
444. dbXML
45Qué es dbXML?
4. dbXML
- Idea principal proporcionar una manera simple de
almacenar y administrar grandes cantidades de
documentos XML.
46Qué ofrece dbXML?
4. dbXML
- Cumple la mayoría de los requisitos de las bases
de datos XML nativas, entre ellos - Almacenamiento de colecciones de documentos XML.
- un motor de base de datos multi-threaded
optimizado para datos XML. - Almacenamiento de datos semiestructurados y
carentes de esquema. - Almacenamiento de documentos pre-analizados y
comprimidos.
474. dbXML
- Maquina XPath de búsqueda.
- Una colección de indices para mejorar el
funcionamiento de la búsqueda. - La implementación XUpdate de XMLDB para las
actualizaciones. - La implementación de Java API para de XML DB
para construir aplicaciones. - Una completa variedad de herramientas de linea de
comandos.
48Almacenamiento
4. dbXML
- Documentos almacenados en colecciones, donde cada
documento individual está almacenado en una forma
pre-analizada comprimida ? Significativamente
aumenta la velocidad cuando trabajamos con datos
XML. - La máquina dbXML está optimizada para el
almacenaje de documentos que tengan como mucho
50K. - Almacenaje en colecciones ? herramienta sencilla
para manipular y buscar documentos en forma de
sistema.
494. dbXML
- RDBMS vs. dbXML
- Diferencia principal En dbXML el esquema de lo
que se puede encontrar en no está fijo. - - Se pueden mezclar documentos de esquemas
completamente diferentes en la misma colección. - Ejemplo
- - Un catalogo de productos, donde cada
producto necesita datos especializados.
50Seguridad en dbXML
4. dbXML
- dbXML tiene tres formas de encargarse la
seguridad. - - Sin seguridad.
- - Seguridad simple nombre de usuario y
password (definido en system.xml) - - Seguridad por defecto defecto Basado en
usuarios y roles.
514. dbXML
- Sistema de Comandos Existen tres relacionados
con la seguridad. - Usuarios Los comandos relacionados con los
usuarios permiten administrar los usuarios de las
bases de datos. (crear, borrar, participación de
roles y sistema de contraseñas) - Roles Los roles se asignan para poder entrar en
las listas de control.(comandos relacionados
crear, borrar y participación de usuario).
52- Lista de control de acceso Como se garantiza
acceder a una base de datos. - - Acceso garantizado a nivel de colecciones (ni
recursivo, ni automático). - - Crear una colección no garantiza al usuario
poder acceder a la misma. - - Acceder a una colección padre no implica
poder acceder a la colección hijo.
53Linea de comandos
4. dbXML
- El servidor dbXML tiene un amplio número de
herramientas de líneas de comando para poder
desarrollar cualquier tipo de administración
básica. Veremos unos ejemplos para hacernos una
idea - (en todos los comandos myaddress.xml contiene un
simple documento) - ltaddress id"1"gt
- ltnamegt
- ltfirstgtJohnlt/firstgt
- ltlastgtSmithlt/lastgt
- lt/namegt
- lt/addressgt
544. dbXML
- Crear una colección
- dbxmladmin add_collection -c /db -n addresses
- Añadir un documento
- dbxmladmin add_document -c /db/addresses -n
myaddress -f myaddress.xml - Eliminar un documento
- dbxmladmin retrieve_document -d /db/addresses
-n myaddress
554. dbXML
- Crear un índice en el atributo id
- dbxmladmin add_indexer -c /db/addresses -n
id_idx -p _at_id - Ejecutar una búsqueda XPath
- dbxmladmin xpath -c /db/addresses -q
/address_at_id 1 - Patrón básico para ejecutar un comando
dbxmladmin - - decir que operación se quiere ejecutar.
- - que contexto de colección debe ser ejecutado
(-c switch). - - y cualquier argumento especifico de la
operación. -
56Desarrollando aplicaciones
4. dbXML
- El verdadero valor de dbXML se ve cuando
desarrolla aplicaciones hechas a medida. - Para esto se utiliza el XML DB API de Java.
- - Hecho para habilitar el desarrollo de las
aplicaciones de las bases de datos de XML
portables. - XML DB API es relativamente fácil de utilizar y
da una gran flexibilidad para desarrollar
aplicaciones .
575. EXIST XML NATIVE DB
58Características básicas
5. Exist XML native DB
- Exist es una base de datos nativa XML
- Desarrollada por OPEN SOURCE
- Facil de integar en aplicaciones que trabajan con
XML - Esta totalmente desarrollada en JAVA
- Es una base de datos preparada para trabajar
como - -proceso independiente del servidor
- -integrado en un server-engine
- -directamente integrada en una aplicacion
595. Exist XML native DB
- Exist utiliza un almacange de textos XML basado
en coleciones jerarquizadas - Usa tanto XPATH com XQUERY para el aceso de los
datos. Aunque es una sintaxis ligera - - el usuario puede preguntar por una parte de la
jerarquía de datos o hasta por todos los
documentos contenidos en la base de datos. - - el motor de procesamiento de preguntas
proporcionado por eXist es eficiente gracias al
uso de índices.
605. Exist XML native DB
- Exist integra un esquema de indexación por cada
documento XML que mejora la identificación de
relaciones estructurales entre nodos. - Usa XUpdate para la actualizacion de los datos
- Las aplicaciones java pueden acceder medianteel
API XMLDB interfaz común para el acceso a bases
de datos nativasXML
61Indices y organización de datos
5. Exist XML native DB
- Exist utiliza cuatro ficheros de indices
diferentes para almacenar documentos de xml - - collections.dbx maneja la jerarquia de los
datos del documento Xml. - - dom.dbx recoge nodos en un archivo paginado y
asocia de nodos a los nodos reales. - - elements.dbx se compone de los indices de los
elementos y sus atributos. - - words.dbx registro de palabras que se usa
para busquedas en todo el texto.
625. Exist XML native DB
- Todos estos indices estan basados en B-trees.
- - Este sistema se basa en la idea de organizar
los elementos, sus atributos correspondientes y
las palabras clave en colecciones en lugar de
hacerlo mediante el documento.
635. Exist XML native DB
- La jerarquica que lleva a elementos comunes (
serian los diferentes pasos por etiquetas
gerarquicas por las que tenemos que pasar) o mas
bien de la misma familia es unico el conjunto de
todas estas rutas de acceso a los datos se
almacena en elements.dbx - En el collections.dbx tendremos almacenada la
estructura del documento,gracias a el podremos
movernos con facilidad por la estructura
gerarquica de los datos. Ademas durante su
creacion a cada coleccion de datos le asigna un
identificador unico.
645. Exist XML native DB
- El dom.dbx representa el componente principal
Exist ya que en el almacenaremos todas las
colecciones de datos. En si solo es un fichero
estrutrurado por nodos. - La estructura tendria mas o menos este aspecto
655. Exist XML native DB
- Por ultimo, el elemento que nos queda es el
fichero word.dbx. Este fichero no es mas que un
indice inverso de palabras que nos ayuda a
conseguir las rutas de las palabras en los textos
Xml. Gracias a el las busquedas en la base de
datos son mas rapida.
66Acceso a los datos
5. Exist XML native DB
- Exist como cualquier otra badse de datos
nativaXml tiene como estandar de acceso a los
datos el lenguaje Xpath. Adfemas de ser
compatible con otros lenguajes derivados del
mismo como Xquery. - Pero esto no es todo, Exist gracias a su
estructura peculiar de ficheros que estructuran
los datos de los documentos XML utiliza un
lenguaje que podriamos definir como experimental.
675. Exist XML native DB
- Este nuevo lenguaje no es mas que una extension
de Xpath que intenta subsanar las carencias que
tiene este frente a las nuevas necesidades.
68Exist en acción
5. Exist XML native DB
- Para ver la eficiencia de EXIST presentamos una
serie de pruebas. - Para realizar las pruebas se a elegido un
conjunto de datos constituido por una 39.15 MB
XML.Los dato integran 5000 documentos tomados de
una base de datos de película. - Las pruebas se efectuaros sobre una maquina con
microprocesador AMD Athlon 4 de 1400 MHZ y
memoria de 256 MB,con un sistema operativo Linux
(Mandrake Linux 8.2)
695. Exist XML native DB
- Las pruebas consisten en
- 1. Comparar el tiempo de respuesta de varios
sistemas basados en xml frente a consultas
sobre los mismos datos. - Los sistemas elegidos son el propio Exist
trabajando Xpath estandar, Exist usando su Xpath
especifico, otra base de datos Xml nativa
(Apaches Xindice) y un motor de preguntas Xpath
externo(Jasen).
705. Exist XML native DB
XPath Query
eXist eXist Xindice
Jaxen
extensions /movie.//genre'Drama'//credit _at_ro
le'directors'
3.44 1.14 10.62
21.86 /moviegenres/genre'Western'/title
0.79 0.23 1.39
7.58 /movielanguages/language 'English'/title
1.45
0.97 34.18
8.50 /movie.//credit/_at_charactername 'Receptionis
t'
3.12 0.21 27.04
51.48 /moviecontains(.//comment,
'predictable')
2.79 0.20 25.75
31.49 /movie.//credit'Gable, Clark'
4.47 0.35 0.38
33.72 /movie.//languages/language'English' /tit
lestarts-with(.,'42 nd Street')
1.63 0.32 17.47
32.64 /movielanguages/language'English' and
cred-its/credit'Sinatra, Frank' 5.16
0.58 0.11 13.26
715. Exist XML native DB
- 2. La segundra prueba consiste en ver como
reacciona Exist frente al incremento del volumen
de datos, de esta manera veremos la
escalabilidad que tiene Exist. - Para realizar la prueba vamos a dividir los datos
iniciales (39.15 MB) subgrupos de de 5MB cada
uno,de esta manera iremos añadiendo tamaño a la
fuente de datos y veremos como responde Exist. - Como en el caso anterior proberemos el
experimento sobre Exist usando Xpath estandar y
sobre su Xpath especifico .
725. Exist XML native DB
73Comentarios
5. Exist XML native DB
- Aunque hoy en dia Exist es una herramienta
utilizada en inumerables proyectos, todavia
necesita resolver algunos aspectos importantes. - Los defectos mas importantes de Exist que se
busca subsanar son - - la velocidad de indesado de nombres
- - las exigencias de almacenaje
745. Exist XML native DB
- Otro problema importante es el uso de
Xupdate(estandar de XMLDB para la actuaizacion
de partes distintas de un documento)no es una
herramienta apropiada para las necesidades de una
actualizacion mas avanzada.
756. EXIST VS DBXML
766. Exist vs. dbXML
- En este apartado veremos las diferentes
caracteristicas entre EXIST y DBXML - Con ello intentaremos presentar las posibles
diferencias existentes entre ellas
EXIST DBXML
Lengua de desarrollo Java Lengua de desarrollo Aplicaciones Java Resto código propio
Plataformas donde trabaja Plataforma no definida aunque ha sido resesteado en WinXP y Red Hat Linux Plataformas donde trabaja Plataforma no definida aunque ha sido testeado en WinXP y Red Hat Linux
77Formato de almacenamiento almacena los datos mediante B-trees y archivos paginados. los nodos de los documentos se almacenan en un DOM (Document Object Model) persistente. guardan en directorio apropiado los datos son almacenados en Webapp/WEB-INF/data respecto al directorio raiz de Exist. de cada documento se almacena wcollections.dbx--gtlos datos sin mas wdom.dbx--gtDOM persistente welements.dbx--gtindice de elementos wwords.dbx--gtIndice de palabras(datos) Formato de almacenamiento se almacenan los datos mediante ficheros indesados los ficheros y sus anexos van comprimidos juntos y se guardan en directorio apropiado
78Soporte de ficheros en binario no tiene soporte para ellos Estandars Xml con los que trabajan -XPath/Xquery -Xupdate -Xinclude/Xpointers -API XMLDB Caracteristicas de la BD's sistema de autorizacion usa un sistema de permisos por niveles para el acceso a los documentos similar al que usa Unix resto de caracteristicas desconocidas Interface de usuario incorpora una interface grafica Soporte de ficheros en binario los soporta pero solo puede tener ficheros binarios o ficheros Xml Estandars Xml con los que trabajan -XPath/Xquery -Xupdate -Allows full-text query -API Java/C APIs -No supported Xpointers,XQL,Xquery Caracteristicas de la BD's sistema de autorizacion sistema de autorizacion por niveles usa la base de datos Berkeley para la concurrencia, realizar las transacciones, recuperación y replicado Interface de usuario No incorpora ninguna interface grafica
79Conclusiones
- XML es un lenguaje para definir lenguajes de
etiquetas. - XML se está expandiendo mucho gracias a Internet,
pues para ese uso fue creado. - WWW lo estandarizó para el intercambio de
documentos. - El código se encuentra fácilmente en inernet.