xml nociones básicas para entender el “mundo xml”

79
XML XML Nociones básicas para Nociones básicas para entender el “mundo XML”. entender el “mundo XML”.

Upload: emygdia-salas

Post on 11-Apr-2015

142 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: XML Nociones básicas para entender el “mundo XML”

XMLXMLNociones básicas para entender el Nociones básicas para entender el

“mundo XML”.“mundo XML”.

Page 2: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 22

ÍndiceÍndice1)1) Introducción a XMLIntroducción a XML

2)2) XML aplicado a bases de datosXML aplicado a bases de datos

3)3) dbXMLdbXML

4)4) ExistExist

5)5) dbXML vs. ExistdbXML vs. Exist

6)6) ConclusionesConclusiones

Índice

Page 3: XML Nociones básicas para entender el “mundo XML”

1. Introducción a 1. Introducción a XMLXML

Page 4: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 44

¿Qué es XML?¿Qué es XML?

Definición:Definición:

Lenguaje de metamarcado para Lenguaje de metamarcado para documentos que contienen información documentos que contienen información estructuradaestructurada

1. Introducción a XML

Page 5: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 55

Lenguaje de metamarcado:Lenguaje de metamarcado: Mecanismo para identificar estructuras en un Mecanismo para identificar estructuras en un

documento.documento.

Información estructurada:Información estructurada: Consta de un contenido (palabras, imágenes…) Consta de un contenido (palabras, imágenes…)

y de el papel que “interpreta” este contenido.y de el papel que “interpreta” este contenido. Casi todos los documentos tienen una Casi todos los documentos tienen una

estructura.estructura.

1. Introducción a XML

Page 6: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 66

¿Qué es un documento?¿Qué es un documento? Para XML un documento no es sólo un Para XML un documento no es sólo un

“documento de texto propiamente dicho”.“documento de texto propiamente dicho”. Pueden tener: gráficos vectoriales, Pueden tener: gráficos vectoriales,

transacciones e-comerciales, meta-datas de transacciones e-comerciales, meta-datas de objetos, etc.objetos, etc.

1. Introducción a XML

Page 7: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 77

¿Para que se creó XML?¿Para que se creó XML? Para que documentos ricamente estructurados Para que documentos ricamente estructurados

se pudieran utilizar en Internet.se pudieran utilizar en Internet. Las únicas alternativas viables (SGML y HTML) Las únicas alternativas viables (SGML y HTML)

no son adecuadas para este propósito:no son adecuadas para este propósito:

- HTML: Limitado por un grupo de semanticos, - HTML: Limitado por un grupo de semanticos, no proporciona información estructurada.no proporciona información estructurada.

- SGML: Proporciona una estructura arbitraria, - SGML: Proporciona una estructura arbitraria, pero dificil implementarlo sólo para una pero dificil implementarlo sólo para una

aplicación web.aplicación web.

1. Introducción a XML

Page 8: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 88

Objetivos de desarrollo Objetivos de desarrollo de XMLde XML

1)1) Debe ser sencillo utilizar XML en Internet: Los Debe ser sencillo utilizar XML en Internet: Los usuarios deben ser capaces de ver usuarios deben ser capaces de ver documentos XML como HTML.documentos XML como HTML.

2)2) Debe admitir una gran variedad de Debe admitir una gran variedad de aplicaciones.aplicaciones.

3)3) Debe ser compatible con SGML.Debe ser compatible con SGML.4)4) Debe ser fácil escribir programas que Debe ser fácil escribir programas que

procesen documentos XML.procesen documentos XML.5)5) El número de características opcionales en El número de características opcionales en

XML debe mantenerse absolutamente mínimo, XML debe mantenerse absolutamente mínimo, idealmente cero.idealmente cero.

1. Introducción a XML

Page 9: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 99

6)6) Los documentos XML deben ser Los documentos XML deben ser humanamente legibles y razonablemente humanamente legibles y razonablemente claros.claros.

7)7) El diseño de XML debe de hacerse El diseño de XML debe de hacerse rápidamente.rápidamente.

8)8) El diseño de XML debe ser formal y conciso. El diseño de XML debe ser formal y conciso. (XML debe ser expresado en “EBNF”)(XML debe ser expresado en “EBNF”)

9)9) Los documentos XML deben de ser fáciles de Los documentos XML deben de ser fáciles de crear.crear.

10)10) Ser conciso es de mínima importancia en el Ser conciso es de mínima importancia en el marcaje de XML.marcaje de XML.

1. Introducción a XML

Page 10: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 1010

¿Cómo está definido ¿Cómo está definido XML?XML?XML está definido por un número de XML está definido por un número de

especificaciones relacionadas:especificaciones relacionadas:

1)1) Extensible markup language (XML): Define la Extensible markup language (XML): Define la sintaxis de XML.sintaxis de XML.

2)2) XML Pointer Language (XPointer) y XML XML Pointer Language (XPointer) y XML Linking Language (XLink): Define una manera Linking Language (XLink): Define una manera estándar de representar uniones entre estándar de representar uniones entre recursos.recursos.

3)3) Extensible Style Language (XSL): Define el Extensible Style Language (XSL): Define el lenguaje estándar de hojas de estilo para lenguaje estándar de hojas de estilo para XML.XML.

1. Introducción a XML

Page 11: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 1111

Estructura de un Estructura de un documento XMLdocumento XML

Un documento XML tiene dos estructuras: Una Un documento XML tiene dos estructuras: Una lógica y otra física.lógica y otra física.

Físicamente: el documento está compuesto Físicamente: el documento está compuesto por entidades.por entidades.- Una entidad puede hacer referencia a - Una entidad puede hacer referencia a

otra entidad.otra entidad.- Cada documento comienza con una - Cada documento comienza con una

entidad documento (raiz).entidad documento (raiz).

1. Introducción a XML

Page 12: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 1212

Logicamente: Documento compuesto por Logicamente: Documento compuesto por declaraciones, elementos, comentarios, declaraciones, elementos, comentarios, referencias a caracteres e instrucciones de referencias a caracteres e instrucciones de procesamiento.procesamiento.

Page 13: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 1313

Especificaciones de XMLEspecificaciones de XMLDTD:DTD: Definición de tipo documento Definición de tipo documento Archivo(s) que lleva una definición formal de un Archivo(s) que lleva una definición formal de un

tipo de documento y especifica la estructura tipo de documento y especifica la estructura lógica de cada uno.lógica de cada uno.

Define los elementos de una pagina y sus Define los elementos de una pagina y sus atributos.atributos.

DTD de XML opcionalDTD de XML opcional

XSL:XSL: Define o implementa el lenguaje de estilo de Define o implementa el lenguaje de estilo de los documentos escritos para XML.los documentos escritos para XML.

Permite modificar el aspecto de un documento.Permite modificar el aspecto de un documento.

1. Introducción a XML

Page 14: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 1414

XXL:XXL: Define el modo de enlace entre los diferentes Define el modo de enlace entre los diferentes enlaces.enlaces.

Se considera subconjunto de HyTime.Se considera subconjunto de HyTime. Sige algunas especificaciones de TEI.Sige algunas especificaciones de TEI. Este lenguaje tiene dos importantes Este lenguaje tiene dos importantes

componentes: XLink y XPointer.componentes: XLink y XPointer.

XUA:XUA: Estandarización de navegadores XML. Estandarización de navegadores XML. En proceso de creación.En proceso de creación. Se aplicará a los navegadores, para que todos Se aplicará a los navegadores, para que todos

compartan las especificaciones XML.compartan las especificaciones XML.

1. Introducción a XML

Page 15: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 1515

XML vs. HTMLXML vs. HTML HTML:HTML:

- Semántica de etiquetas y sistema de - Semántica de etiquetas y sistema de etiquetas fijos.etiquetas fijos.

- Cambios limitados por:- Cambios limitados por: Vendedores del navegador.Vendedores del navegador. Compatibilidad con antiguas versiones.Compatibilidad con antiguas versiones.

• XML:XML:- No especifica el sistema de etiquetas, así - No especifica el sistema de etiquetas, así

que no puede haber una semántica predefinida.que no puede haber una semántica predefinida.- Semanticos XML: serán definidos por las - Semanticos XML: serán definidos por las aplicaciones que los procesan o por las aplicaciones que los procesan o por las hojas de estilo. hojas de estilo.

1. Introducción a XML

Page 16: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 1616

XML vs. SGMLXML vs. SGMLSGML:SGML: Lenguaje generalizado estádar de etiquetas.Lenguaje generalizado estádar de etiquetas. Forma estándar e independiente de los Forma estándar e independiente de los

vendedores, para mantener los depositos de la vendedores, para mantener los depositos de la información estructurada.información estructurada.

No funciona bien sirviendo documentos en No funciona bien sirviendo documentos en internet.internet.

XML:XML: Perfil de aplicación de SGML.Perfil de aplicación de SGML.

1. Introducción a XML

Page 17: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 1717

Los sistemas totalmente ajustados a SGML Los sistemas totalmente ajustados a SGML deben poder leer documentos XML.deben poder leer documentos XML.

Aun así, utilizar y leer documentos XML no Aun así, utilizar y leer documentos XML no requiere un sistema que entienda la totalidad de requiere un sistema que entienda la totalidad de SGML.SGML.

1. Introducción a XML

Page 18: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 1818

¿Cómo son los ¿Cómo son los documentos XML?documentos XML?

Ejemplo:Ejemplo:

<?xml version="1.0"?>

<oldjoke>

<burns>Say<quote>goodnight</quote>,Gracie.</burns>

<allen><quote>Goodnight,Gracie.</quote></allen>

<applause/>

</oldjoke>

1. Introducción a XML

Page 19: XML Nociones básicas para entender el “mundo XML”

2. Relacional vs. XML2. Relacional vs. XML

Page 20: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 2020

IntroducciónIntroducción La diferencia principal entre las bases de datos La diferencia principal entre las bases de datos

relacionales y las XML:relacionales y las XML:- Relacional: centrada en datos (almacena - Relacional: centrada en datos (almacena en en sus campos datos atómicos).sus campos datos atómicos).- XML: almacenan documentos XML (ni - XML: almacenan documentos XML (ni tiene tiene campos, ni almacena datos campos, ni almacena datos atómicos.).atómicos.).

Asi, vemos que las diferencias principales se Asi, vemos que las diferencias principales se darán en cuanto al ALMACENAMIENTO, la darán en cuanto al ALMACENAMIENTO, la BÚSQUEDA, y el PROCESAMIENTO de dicha BÚSQUEDA, y el PROCESAMIENTO de dicha información.información.

2. Relacional vs. XML

Page 21: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 2121

AlmacenamientoAlmacenamientoRELACIONAL:RELACIONAL: Una BD relacional consiste en una colección Una BD relacional consiste en una colección

de tablas que guardan sistemas particulares de tablas que guardan sistemas particulares de datos.de datos.

Las tablas pueden relacionarse entre si de Las tablas pueden relacionarse entre si de diferentes maneras:diferentes maneras:- Dependencias funcionales: se crean cuando - Dependencias funcionales: se crean cuando un atributo de una tabla se relaciona con el un atributo de una tabla se relaciona con el atributo de otras tablas.atributo de otras tablas.

- Relación más simple: 1:1- Relación más simple: 1:1- 1:n, n:1, n:n.- 1:n, n:1, n:n.

2. Relacional vs. XML

Page 22: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 2222

Esta información almacenada en tablas está Esta información almacenada en tablas está organizada lógicamente para poder cumplir los organizada lógicamente para poder cumplir los siguientes propósitos:siguientes propósitos:

- minimizar la duplicación.- minimizar la duplicación.

- reducir las anomalías en lo datos.- reducir las anomalías en lo datos.

- reforzar la integridad de los datos.- reforzar la integridad de los datos. Proceso de organización lógica: normalización Proceso de organización lógica: normalización

(simplifica la manera en la que los datos están (simplifica la manera en la que los datos están definidos y su organización).definidos y su organización).

- Existen 5 formas de normalización: 1NF – 5NF.- Existen 5 formas de normalización: 1NF – 5NF.

2. Relacional vs. XML

Page 23: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 2323

XML:XML: Supuestamente una base de datos nativa de Supuestamente una base de datos nativa de

XML debería almacenar la información en XML debería almacenar la información en formato XML.formato XML.

Pero en realidad lo que hace es que una base Pero en realidad lo que hace es que una base de datos de este tipo tiene repositorios “tipo de datos de este tipo tiene repositorios “tipo XML”, en los que se almacenan los indices XML”, en los que se almacenan los indices generados por cada documento XML generados por cada documento XML almacenado.almacenado.

2. Relacional vs. XML

Page 24: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 2424

BúsquedaBúsqueda

RELACIONAL:RELACIONAL: La mayoría de bases de datos relacionales La mayoría de bases de datos relacionales

utilizan SQL.utilizan SQL.

XML:XML: Utiliza XPath y XQuery.Utiliza XPath y XQuery. Algunas bases de datos permiten seleccionar Algunas bases de datos permiten seleccionar

los elementos que deben tener índice, otras los elementos que deben tener índice, otras indexan todo el documento.indexan todo el documento.

Problema: No permite realizar búsquedas muy Problema: No permite realizar búsquedas muy complicadas (ej: ordenamiento y cross join).complicadas (ej: ordenamiento y cross join).

2. Relacional vs. XML

Page 25: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 2525

XQuery y XPathXQuery y XPath

XQuery: Lenguaje diseñado para procesar XQuery: Lenguaje diseñado para procesar datos XML.datos XML.- No sólo ficheros en XML, también otro tipo de - No sólo ficheros en XML, también otro tipo de

datos (incluidas las bases de datos), datos (incluidas las bases de datos), cuya cuya estructura sea similar a XML.estructura sea similar a XML.

XQuery como “generalización” de XPath: pues XQuery como “generalización” de XPath: pues XQuery utiliza las “expresiones path” de XPath.XQuery utiliza las “expresiones path” de XPath.- Exceptuando algunas expresiones más - Exceptuando algunas expresiones más ambiguas, todas las expresiones XPath lo ambiguas, todas las expresiones XPath lo son también de XQuery.son también de XQuery.

2. Relacional vs. XML

Page 26: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 2626

ProcesamientoProcesamiento

RELACIONAL:RELACIONAL: Al igual que la búsqueda se hace con SQL.Al igual que la búsqueda se hace con SQL.

XML:XML: No funciona muy bien debido a su estructura No funciona muy bien debido a su estructura

jerárquica.jerárquica.- Muchas bases de datos necesitan que el - Muchas bases de datos necesitan que el usuario recupere en documento XML entero, usuario recupere en documento XML entero, lo actualice con algún API y luego lo vuelva a lo actualice con algún API y luego lo vuelva a almacenar todo el documento.almacenar todo el documento.

2. Relacional vs. XML

Page 27: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 2727

- Esto pasa porque no existe un lenguaje - Esto pasa porque no existe un lenguaje oficial para la actualización, inserción o oficial para la actualización, inserción o eliminación de elementos en un documento eliminación de elementos en un documento XML. (hay un lenguaje de actualizaciones pero XML. (hay un lenguaje de actualizaciones pero hay muchos gestores de bases de datos que hay muchos gestores de bases de datos que no lo damiten, se llama XUpdate).no lo damiten, se llama XUpdate).

Page 28: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 2828

Resumen de diferenciasResumen de diferenciasXMLXML RDBMSRDBMS

Los datos en una estructura jerárquica Los datos en una estructura jerárquica única. única.

Datos en tablas múltiplesDatos en tablas múltiples

Los nodos tienen elementos y/o Los nodos tienen elementos y/o valores de atributo. valores de atributo.

Celdas con un único valorCeldas con un único valor

Los elementos pueden ser Los elementos pueden ser jerarquizadosjerarquizados

Valores celulares atómicosValores celulares atómicos

Los elementos están ordenados.Los elementos están ordenados. Orden filas/columnas sin definirOrden filas/columnas sin definir

Los elementos pueden ser recursivosLos elementos pueden ser recursivos Poca aceptación para los elementos Poca aceptación para los elementos recursivos.recursivos.

Esquema opcionalEsquema opcional Esquema requeridoEsquema requerido

Almacenamiento y recuperación Almacenamiento y recuperación directa de documentos XML.directa de documentos XML.

Joins necesarios a menudo para Joins necesarios a menudo para recuperar datosrecuperar datos

2. Relacional vs. XML

Page 29: XML Nociones básicas para entender el “mundo XML”

3. XML APLICADO A 3. XML APLICADO A BASES DE DATOSBASES DE DATOS

Page 30: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 3030

¿Qué ofrece? ¿Qué ofrece?

Nuevas necesidades frente a la webNuevas necesidades frente a la web

Intercambio de datosIntercambio de datos

Soluciones para la estandarización de XML Soluciones para la estandarización de XML 1. Fuentes de datos no XML1. Fuentes de datos no XML2. Fuentes de datos XML2. Fuentes de datos XML

Problemas de integracionProblemas de integracion

Page 31: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 3131

Nuevas necesidades Nuevas necesidades frente a la webfrente a la web Con la entrada y generalización del uso de Con la entrada y generalización del uso de

Internet un basto abanico de posibilidades de Internet un basto abanico de posibilidades de comunicación se ha abierto ante nosotroscomunicación se ha abierto ante nosotros

Internet se ha convertido en una herramienta de Internet se ha convertido en una herramienta de intercambio de información usada tanto en el intercambio de información usada tanto en el ámbito personal como empresarial (muy ámbito personal como empresarial (muy especialmente por empresas)especialmente por empresas)

Page 32: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 3232

Pero el intercambio de información no es tan Pero el intercambio de información no es tan fácil:fácil:

diferentes formatos de representación de diferentes formatos de representación de informacióninformación

la conversión de todos los formatos de la conversión de todos los formatos de representación a uno representación a uno

único es inviableúnico es inviable la transformación de uno a otro es costosala transformación de uno a otro es costosa

Page 33: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 3333

Intercambio de datosIntercambio de datos El uso de la Web para el intercambio de datos es El uso de la Web para el intercambio de datos es

fundamental para las empresas hoy por hoyfundamental para las empresas hoy por hoy

El máximo exponente de este problema son las El máximo exponente de este problema son las bases de datos bases de datos - bastas fuentes de información - bastas fuentes de información - diferentes formatos según empresa proveedora- diferentes formatos según empresa proveedora- su cambio es costoso- su cambio es costoso

Para solucionar este problema grave nació XML.Para solucionar este problema grave nació XML.

Page 34: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 3434

XML se ha convertido en el estándar para la XML se ha convertido en el estándar para la presentación de información en la Web y presentación de información en la Web y también para el intercambio de información también para el intercambio de información Inter. o intr. empresasInter. o intr. empresas

La generación de XML a partir de la información La generación de XML a partir de la información que tienen almacenada bases de datos se hace que tienen almacenada bases de datos se hace cada vez mas necesario para facilitar la cada vez mas necesario para facilitar la comunicación a través de la Webcomunicación a través de la Web

Los sistemas de gestión de bases de datos Los sistemas de gestión de bases de datos (DBMS) empleados siguen siendo en su (DBMS) empleados siguen siendo en su mayoría relacionales aunque poco a poco se mayoría relacionales aunque poco a poco se instauran otras solucionesinstauran otras soluciones

Page 35: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 3535

Para resolver estos problemas de conversión (a Para resolver estos problemas de conversión (a XML) distinguimos varias solucionesXML) distinguimos varias soluciones

Page 36: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 3636

Soluciones para la Soluciones para la estandarización de XMLestandarización de XML

1.1. FUENTES DE DATOS NO XML:FUENTES DE DATOS NO XML:

La principal fuente de datos no XML con que La principal fuente de datos no XML con que cuentan las empresas son los RDBMS.cuentan las empresas son los RDBMS.

El numero de estas es muy elevado por lo que su El numero de estas es muy elevado por lo que su conversión a otro SGBD es inviableconversión a otro SGBD es inviable

La solución pasa por un nivel intermedio entre la La solución pasa por un nivel intermedio entre la capa cliente y la base de datos que transforme las capa cliente y la base de datos que transforme las soluciones a un documento XMLsoluciones a un documento XML

Page 37: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 3737

Estas herramientas las podemos clasificar en Estas herramientas las podemos clasificar en dos grupos:dos grupos:- las que transforman el modelo relacional a una - las que transforman el modelo relacional a una representación XML:representación XML:

Crean una vista virtual XML con información de la base de Crean una vista virtual XML con información de la base de datos.datos.

El usuario es lo que ve y hace las consultas sobre elloEl usuario es lo que ve y hace las consultas sobre elloLa consulta es interpretada y ejecutada en la RDBMSLa consulta es interpretada y ejecutada en la RDBMSFinalmente se devuelve la solución en XMLFinalmente se devuelve la solución en XML

Page 38: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 3838

Page 39: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 3939

Alguna de las herramientas que siguen este Alguna de las herramientas que siguen este modelo son:modelo son:

XTABLES (también conocido como XPERANTO)XTABLES (también conocido como XPERANTO) SilkRouteSilkRoute XBDXBD

- las que transforman el resultado de consultas - las que transforman el resultado de consultas SQL a la RDBMS:SQL a la RDBMS:

Estas usan SQL como lenguaje de consulta del clienteEstas usan SQL como lenguaje de consulta del cliente La RDBMS devuelve la solución y esta es transformada a XMLLa RDBMS devuelve la solución y esta es transformada a XML

Page 40: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 4040

2. 2. FUENTES DE DATOS XML:FUENTES DE DATOS XML: Dentro de estas distinguimos dos familias:Dentro de estas distinguimos dos familias:

- 2.1 RDBMS habilitados para XML:- 2.1 RDBMS habilitados para XML:

son bases de datos tradicionales que definen son bases de datos tradicionales que definen un nuevo tipo de dato que permite el un nuevo tipo de dato que permite el almacenamiento de información en formato almacenamiento de información en formato XML.XML.

Esta información sufre una transformación a la Esta información sufre una transformación a la hora de su almacenado hora de su almacenado en tablas en tablas relacionales. relacionales.

Page 41: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 4141

Esta forma de almacenado tiene dos Esta forma de almacenado tiene dos planteamientos diferentes:planteamientos diferentes:

- El planteamiento de DB2 y ORACLE: Donde el - El planteamiento de DB2 y ORACLE: Donde el dato XML tiene una tabla adjunta en la que se dato XML tiene una tabla adjunta en la que se almacena la información contenida en este.almacena la información contenida en este.

- El planteamiento de SQLSERVER2005: Este - El planteamiento de SQLSERVER2005: Este sistema almacena el documento en formato sistema almacena el documento en formato binario en el que los elementos se identifican binario en el que los elementos se identifican mediante un numero que actúa como índice; mediante un numero que actúa como índice; esta información debe ser previamente esta información debe ser previamente convertida al correspondiente tipo de datoconvertida al correspondiente tipo de dato

Page 42: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 4242

En esta tabla podemos ver un breve esbozo de En esta tabla podemos ver un breve esbozo de sus caracteristicassus caracteristicas

Page 43: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 4343

- 2.2 Bases de datos nativas XML:2.2 Bases de datos nativas XML:

• Permiten el almacenamiento, consulta y Permiten el almacenamiento, consulta y actualización de información XMLactualización de información XML

• Su principal diferencia es el lenguaje de Su principal diferencia es el lenguaje de acceso que usan ( XPath, Xquery o ambos)acceso que usan ( XPath, Xquery o ambos)

• Por el contrario el lenguaje de actualizacion Por el contrario el lenguaje de actualizacion en general es el mismo XUpdateen general es el mismo XUpdate

Page 44: XML Nociones básicas para entender el “mundo XML”

4.4. dbXMLdbXML

Page 45: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 4545

¿Qué es dbXML?¿Qué es dbXML? Idea principalIdea principal: proporcionar una manera simple : proporcionar una manera simple

de almacenar y administrar grandes de almacenar y administrar grandes cantidades de documentos XML.cantidades de documentos XML.

4. dbXML

Page 46: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 4646

¿Qué ofrece dbXML?¿Qué ofrece dbXML?

Cumple la mayoría de los requisitos de las bases Cumple la mayoría de los requisitos de las bases de datos XML nativas, entre ellos:de datos XML nativas, entre ellos:

Almacenamiento de colecciones de Almacenamiento de colecciones de documentos XML.documentos XML.

un motor de base de datos “multi-threaded” un motor de base de datos “multi-threaded” optimizado para datos XML.optimizado para datos XML.

Almacenamiento de datos semiestructurados y Almacenamiento de datos semiestructurados y carentes de esquema.carentes de esquema.

Almacenamiento de documentos pre-Almacenamiento de documentos pre-analizados y comprimidos.analizados y comprimidos.

4. dbXML

Page 47: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 4747

Maquina XPath de búsqueda.Maquina XPath de búsqueda. Una colección de indices para mejorar el Una colección de indices para mejorar el

funcionamiento de la búsqueda.funcionamiento de la búsqueda. La implementación XUpdate de XML:DB para La implementación XUpdate de XML:DB para

las actualizaciones.las actualizaciones. La implementación de Java API para de XML: La implementación de Java API para de XML:

DB para construir aplicaciones.DB para construir aplicaciones. Una completa variedad de herramientas de linea Una completa variedad de herramientas de linea

de comandos.de comandos.

4. dbXML

Page 48: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 4848

AlmacenamientoAlmacenamiento

Documentos almacenados en colecciones, Documentos almacenados en colecciones, donde cada documento individual está donde cada documento individual está almacenado en una forma pre-analizada almacenado en una forma pre-analizada comprimida comprimida → Significativamente aumenta la → Significativamente aumenta la velocidad cuando trabajamos con datos XML.velocidad cuando trabajamos con datos XML.

La máquina dbXML está optimizada para el La máquina dbXML está optimizada para el almacenaje de documentos que tengan como almacenaje de documentos que tengan como mucho 50K.mucho 50K.

Almacenaje en colecciones → herramienta Almacenaje en colecciones → herramienta sencilla para manipular y buscar documentos en sencilla para manipular y buscar documentos en forma de sistema.forma de sistema.

4. dbXML

Page 49: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 4949

RDBMS vs. dbXML:RDBMS vs. dbXML: Diferencia principal: En dbXML el esquema de lo Diferencia principal: En dbXML el esquema de lo

que se puede encontrar en no está fijo.que se puede encontrar en no está fijo.

- Se pueden mezclar documentos de - Se pueden mezclar documentos de esquemas completamente diferentes esquemas completamente diferentes en la en la misma colección.misma colección.

Ejemplo:Ejemplo:

- Un catalogo de productos, donde cada - Un catalogo de productos, donde cada producto necesita datos especializados.producto necesita datos especializados.

4. dbXML

Page 50: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 5050

Seguridad en dbXMLSeguridad en dbXML

dbXML tiene tres formas de encargarse la dbXML tiene tres formas de encargarse la seguridad.seguridad.

- Sin seguridad.- Sin seguridad.

- Seguridad simple: nombre de - Seguridad simple: nombre de usuario y usuario y “password” (definido en “password” (definido en system.xml)system.xml)

- Seguridad por defecto defecto: Basado - Seguridad por defecto defecto: Basado en usuarios y roles.en usuarios y roles.

4. dbXML

Page 51: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 5151

Sistema de Comandos:Sistema de Comandos: Existen tres relacionados Existen tres relacionados con la seguridad.con la seguridad.

Usuarios: Los comandos relacionados con los Usuarios: Los comandos relacionados con los usuarios permiten administrar los usuarios de usuarios permiten administrar los usuarios de las bases de datos. (crear, borrar, participación las bases de datos. (crear, borrar, participación de roles y sistema de contraseñas)de roles y sistema de contraseñas)

Roles: Los roles se asignan para poder entrar Roles: Los roles se asignan para poder entrar en las listas de control.(comandos relacionados: en las listas de control.(comandos relacionados: crear, borrar y participación de usuario).crear, borrar y participación de usuario).

4. dbXML

Page 52: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 5252

Lista de control de acceso: Como se garantiza Lista de control de acceso: Como se garantiza acceder a una base de datos. acceder a una base de datos. - Acceso garantizado a nivel de colecciones (ni - Acceso garantizado a nivel de colecciones (ni

recursivo, ni automático).recursivo, ni automático).- Crear una colección no garantiza al usuario - Crear una colección no garantiza al usuario poder acceder a la misma.poder acceder a la misma.- Acceder a una colección “padre” no implica - Acceder a una colección “padre” no implica poder acceder a la “colección hijo”.poder acceder a la “colección hijo”.

Page 53: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 5353

Linea de comandosLinea de comandos

El servidor dbXML tiene un amplio número de El servidor dbXML tiene un amplio número de herramientas de líneas de comando para herramientas de líneas de comando para poder desarrollar cualquier tipo de poder desarrollar cualquier tipo de administración básica. Veremos unos ejemplos administración básica. Veremos unos ejemplos para hacernos una idea:para hacernos una idea:

(en todos los comandos myaddress.xml contiene (en todos los comandos myaddress.xml contiene un simple documento)un simple documento)

<address id="1"> <name> <first>John</first> <last>Smith</last> </name> </address>

4. dbXML

Page 54: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 5454

Crear una colección:Crear una colección:

dbxmladmin add_collection -c /db -n addresses

Añadir un documento:Añadir un documento:dbxmladmin add_document -c /db/addresses -n myaddress -

f myaddress.xml

EliminarEliminar un documento: un documento:dbxmladmin retrieve_document -d /db/addresses -n

myaddress

4. dbXML

Page 55: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 5555

Crear un índice en el atributo id:Crear un índice en el atributo id:dbxmladmin add_indexer -c /db/addresses -n id_idx -p

@id

Ejecutar una búsqueda XPath:Ejecutar una búsqueda XPath:dbxmladmin xpath -c /db/addresses -q /address[@id = 1]

• Patrón básico para ejecutar un comando dbxmladmin:Patrón básico para ejecutar un comando dbxmladmin:- decir que operación se quiere ejecutar.- decir que operación se quiere ejecutar.- que contexto de colección debe ser ejecutado (-c - que contexto de colección debe ser ejecutado (-c switch).switch).- y cualquier argumento especifico de la operación.- y cualquier argumento especifico de la operación.

4. dbXML

Page 56: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 5656

Desarrollando Desarrollando aplicacionesaplicaciones

El verdadero valor de dbXML se ve cuando El verdadero valor de dbXML se ve cuando desarrolla aplicaciones hechas a medida.desarrolla aplicaciones hechas a medida.

Para esto se utiliza el XML: DB API de Java.Para esto se utiliza el XML: DB API de Java.

- Hecho para habilitar el desarrollo de las - Hecho para habilitar el desarrollo de las aplicaciones de las bases de datos de XML aplicaciones de las bases de datos de XML portables.portables.

XML: DB API es relativamente fácil de utilizar y XML: DB API es relativamente fácil de utilizar y da una gran flexibilidad para desarrollar da una gran flexibilidad para desarrollar aplicaciones .aplicaciones .

4. dbXML

Page 57: XML Nociones básicas para entender el “mundo XML”

5. EXIST XML NATIVE 5. EXIST XML NATIVE DBDB

Page 58: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 5858

Características básicasCaracterísticas básicas

Exist es una base de datos nativa XMLExist es una base de datos nativa XML Desarrollada por OPEN SOURCEDesarrollada por OPEN SOURCE Facil de integar en aplicaciones que trabajan Facil de integar en aplicaciones que trabajan

con XMLcon XML Esta totalmente desarrollada en JAVAEsta totalmente desarrollada en JAVA Es una base de datos preparada para trabajar Es una base de datos preparada para trabajar

como:como:-proceso independiente del servidor-proceso independiente del servidor-integrado en un server-engine-integrado en un server-engine-directamente integrada en una aplicacion-directamente integrada en una aplicacion

5. Exist XML native DB

Page 59: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 5959

Exist utiliza un almacange de textos XML Exist utiliza un almacange de textos XML basado en coleciones jerarquizadasbasado en coleciones jerarquizadas

Usa tanto Usa tanto XPATH com XQUERY para el aceso XPATH com XQUERY para el aceso de los datos. de los datos. Aunque es una sintaxis ligera:Aunque es una sintaxis ligera:

- el usuario pued- el usuario puede preguntar por una parte de la e preguntar por una parte de la jerarquía de datos o hasta jerarquía de datos o hasta por todos por todos los documentos contenidos en la base de datos.los documentos contenidos en la base de datos.

- el- el motor de procesamiento de preguntas motor de procesamiento de preguntas proporcionado por eXist es eficiente gracias al proporcionado por eXist es eficiente gracias al uso de índices.uso de índices.

5. Exist XML native DB

Page 60: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 6060

Exist integra un esquema de indexación por Exist integra un esquema de indexación por cada documento XML que mejora la cada documento XML que mejora la identificación de relaciones estructurales entre identificación de relaciones estructurales entre nodos.nodos.

Usa XUpdate para la actualizacion de los datosUsa XUpdate para la actualizacion de los datos Las aplicaciones java pueden acceder Las aplicaciones java pueden acceder

medianteel API XML:DB interfaz común para el medianteel API XML:DB interfaz común para el acceso a bases de datos nativasXMLacceso a bases de datos nativasXML

5. Exist XML native DB

Page 61: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 6161

Indices y organización de Indices y organización de datosdatos

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.

5. Exist XML native DB

Page 62: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 6262

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.

5. Exist XML native DB

Page 63: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 6363

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.

5. Exist XML native DB

Page 64: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 6464

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:

5. Exist XML native DB

Page 65: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 6565

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.

5. Exist XML native DB

Page 66: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 6666

Acceso a los datosAcceso a los datos 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.

5. Exist XML native DB

Page 67: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 6767

Este nuevo lenguaje no es mas que una extension de Xpath que intenta subsanar las carencias que tiene este frente a las nuevas necesidades.

5. Exist XML native DB

Page 68: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 6868

Exist en acciónExist en acción

Para ver la eficiencia de EXIST presentamos Para ver la eficiencia de EXIST presentamos una serie de pruebas.una serie de pruebas.

Para realizar las pruebas se a elegido un Para realizar las pruebas se a elegido un conjunto de datos constituido por una 39.15 conjunto de datos constituido por una 39.15 MB XML.Los dato integran 5000 documentos MB XML.Los dato integran 5000 documentos tomados de una base de datos de película.tomados de una base de datos de película.

Las pruebas se efectuaros sobre una maquina Las pruebas se efectuaros sobre una maquina con microprocesador AMD Athlon 4 de 1400 con microprocesador AMD Athlon 4 de 1400 MHZ y memoria de 256 MB,con un sistema MHZ y memoria de 256 MB,con un sistema operativo Linux (Mandrake Linux 8.2)operativo Linux (Mandrake Linux 8.2)

5. Exist XML native DB

Page 69: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 6969

Las pruebas consisten en:Las pruebas consisten en:

1. Comparar el tiempo de respuesta de varios 1. Comparar el tiempo de respuesta de varios sistemas basados en xml sistemas basados en xml frente a consultas frente a consultas sobre los mismos datos.sobre los mismos datos.

Los sistemas elegidos son: el propio Exist Los sistemas elegidos son: el propio Exist trabajando Xpath estandar, Exist trabajando Xpath estandar, Exist usando su usando su Xpath especifico, otra base de datos Xml nativa Xpath especifico, otra base de datos Xml nativa ((Apache’s Xindice) y un motor de preguntas Apache’s Xindice) y un motor de preguntas Xpath externo(Jasen).Xpath externo(Jasen).

5. Exist XML native DB

Page 70: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 7070

XPath Query eXist eXist Xindice Jaxen +extensions

/movie[.//genre='Drama']//credit[@role='directors'] 3.44 1.14 10.62 21.86/movie[genres/genre='Western']/title 0.79 0.23 1.39 7.58/movie[languages/language='English']/title 1.45 0.97 34.18 8.50/movie[.//credit/@charactername='Receptionist'] 3.12 0.21 27.04 51.48/movie[contains(.//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']/title[starts-with(.,'42 nd Street')] 1.63 0.32 17.47 32.64/movie[languages/language='English'and cred-its/credit='Sinatra, Frank'] 5.16 0.58 0.11 13.26

5. Exist XML native DB

Page 71: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 7171

2. La segundra prueba consiste en ver como 2. La segundra prueba consiste en ver como reacciona Exist frente al incremento del volumen reacciona Exist frente al incremento del volumen de datos, de esta manera veremos la de datos, de esta manera veremos la escalabilidad que tiene Exist.escalabilidad que tiene Exist.

Para realizar la prueba vamos a dividir los datos Para realizar la prueba vamos a dividir los datos iniciales iniciales ((39.15 MB39.15 MB)) subgrupos de de 5MB cada subgrupos de de 5MB cada uno,de esta manera iremos añadiendo tamaño a uno,de esta manera iremos añadiendo tamaño a la fuente de datos y veremos como responde la fuente de datos y veremos como responde Exist.Exist.

Como en el caso anterior proberemos el Como en el caso anterior proberemos el experimento sobre Exist usando Xpath estandar experimento sobre Exist usando Xpath estandar y sobre su Xpath especifico . y sobre su Xpath especifico .

5. Exist XML native DB

Page 72: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 7272

5. Exist XML native DB

Page 73: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 7373

ComentariosComentarios Aunque hoy en dia Exist es una herramienta Aunque hoy en dia Exist es una herramienta

utilizada en inumerables proyectos, todavia utilizada en inumerables proyectos, todavia necesita resolver algunos aspectos importantes.necesita resolver algunos aspectos importantes.

Los defectos mas importantes de Exist que se Los defectos mas importantes de Exist que se busca subsanar son:busca subsanar son:- la velocidad de indesado de nombres- la velocidad de indesado de nombres- las exigencias de almacenaje- las exigencias de almacenaje

5. Exist XML native DB

Page 74: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 7474

Otro problema importante es el uso de Otro problema importante es el uso de Xupdate(estandar de XML:DB para la Xupdate(estandar de XML:DB para la actuaizacion de partes distintas de un actuaizacion de partes distintas de un documento)no es una herramienta apropiada documento)no es una herramienta apropiada para las necesidades de una actualizacion mas para las necesidades de una actualizacion mas avanzada.avanzada.

5. Exist XML native DB

Page 75: XML Nociones básicas para entender el “mundo XML”

6. EXIST VS DBXML6. EXIST VS DBXML

Page 76: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 7676

En este apartado veremos las diferentes En este apartado veremos las diferentes caracteristicas entre EXIST y DBXMLcaracteristicas entre EXIST y DBXML

Con ello intentaremos presentar las posibles Con ello intentaremos presentar las posibles diferencias existentes entre ellasdiferencias existentes entre ellas

EXIST EXIST DBXMLDBXML

Lengua de desarrollo:Lengua de desarrollo:

JavaJava

Lengua de desarrollo:Lengua de desarrollo:Aplicaciones: JavaAplicaciones: Java

Resto: código propioResto: código propio

Plataformas donde trabaja:Plataformas donde trabaja:Plataforma no definida aunque ha Plataforma no definida aunque ha sido resesteado en WinXP y Red Hat sido resesteado en WinXP y Red Hat LinuxLinux

Plataformas donde trabaja:Plataformas donde trabaja:Plataforma no definida aunque ha Plataforma no definida aunque ha sido testeado en WinXP y Red Hat sido testeado en WinXP y Red Hat LinuxLinux

6. Exist vs. dbXML

Page 77: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 7777

Formato de almacenamiento:Formato de almacenamiento: almacena los datos mediante B+-trees y almacena los datos mediante B+-trees y archivos paginados.archivos paginados.

los nodos de los documentos se los nodos de los documentos se almacenan en un DOM (Documentalmacenan en un DOM (Document

Object Model) persistente. Object Model) persistente. guardan en directorio apropiado guardan en directorio apropiado

los datos son almacenados en:los datos son almacenados en:

Webapp/WEB-INF/data respecto al Webapp/WEB-INF/data respecto al

directorio raiz de Exist.directorio raiz de Exist.

de cada documento se almacena:de cada documento se almacena:

wcollections.dbx-->los datos sin maswcollections.dbx-->los datos sin mas

wdom.dbx-->DOM persistentewdom.dbx-->DOM persistente

welements.dbx-->indice de elementoswelements.dbx-->indice de elementos

wwords.dbx-->Indice de palabras(datos)wwords.dbx-->Indice de palabras(datos)

Formato de almacenamiento:Formato de almacenamiento:se almacenan los datos mediante se almacenan los datos mediante

ficheros indesados ficheros indesados

los ficheros y sus anexos van comprimidos los ficheros y sus anexos van comprimidos juntos y se guardan en directorio apropiadojuntos y se guardan en directorio apropiado

Page 78: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 7878

Soporte de ficheros en binarioSoporte de ficheros en binariono tiene soporte para ellosno tiene soporte para ellos

Estandars Xml con los que trabajanEstandars Xml con los que trabajan-XPath/Xquery-XPath/Xquery

-Xupdate-Xupdate

-Xinclude/Xpointers-Xinclude/Xpointers

-API: XML:DB-API: XML:DB

Caracteristicas de la BD'sCaracteristicas de la BD'ssistema de autorizacion:sistema de autorizacion:

usa un sistema de permisos por niveles usa un sistema de permisos por niveles para el acceso a los documentos similar al para el acceso a los documentos similar al que usa Unix que usa Unix

resto de caracteristicas desconocidasresto de caracteristicas desconocidas

Interface de usuarioInterface de usuarioincorpora una interface graficaincorpora una interface grafica

Soporte de ficheros en binarioSoporte de ficheros en binariolos soporta pero solo puede tener ficheros los soporta pero solo puede tener ficheros binarios o ficheros Xmlbinarios o ficheros Xml

Estandars Xml con los que trabajanEstandars Xml con los que trabajan-XPath/Xquery-XPath/Xquery

-Xupdate-Xupdate-Allows full-text query-Allows full-text query-API: Java/C++ API’s-API: Java/C++ API’s

-No supported:-No supported: Xpointers,XQL,XqueryXpointers,XQL,Xquery

Caracteristicas de la BD'sCaracteristicas de la BD'ssistema de autorizacion:sistema de autorizacion:

sistema de autorizacion por nivelessistema de autorizacion por niveles

usa la base de datos Berkeley para la usa la base de datos Berkeley para la concurrencia, realizar las transacciones, concurrencia, realizar las transacciones, recuperación y replicadorecuperación y replicado

Interface de usuarioInterface de usuarioNo incorpora ninguna interface graficaNo incorpora ninguna interface grafica

Page 79: XML Nociones básicas para entender el “mundo XML”

Mikel Alonso & Cynthia FresnoMikel Alonso & Cynthia Fresno 7979

ConclusionesConclusiones

XML es un “lenguaje” para definir XML es un “lenguaje” para definir lenguajes de etiquetas.lenguajes de etiquetas.

XML se está expandiendo mucho gracias XML se está expandiendo mucho gracias a Internet, pues para ese uso fue creado.a Internet, pues para ese uso fue creado.

WWW lo estandarizó para el intercambio WWW lo estandarizó para el intercambio de documentos.de documentos.

El código se encuentra fácilmente en El código se encuentra fácilmente en inernet.inernet.