spacer.png, 0 kB
spacer.png, 0 kB
XML y Bases de Datos Imprimir E-mail

Revista Científica Visión de Futuro
Año 1 - N° 1 - Vol. 1
Junio de 2004
ISSN: 1668 - 8708

Prof. Brys, Carlos

Universidad Nacional de Misiones
Facultad de Ciencias Económicas
Departamento de Administración
Ruta Nac. 12 Km. 7 1/2. Miguel Lanús - Misiones - Argentina
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla Esta dirección de correo electrónico está siendo protegida de \"spam bots\", necesita habilitar Javascript para poder verla.

INTRODUCCION

¿Qué es XML ?

El XML (Extensible Markup Language) es el nuevo estándar universal para intercambio electrónico de datos. Este estándar es un metalenguaje que puede ser utilizado para describir la estructura lógica y el contenido de una gran variedad documentos, y puede ser adaptado para satisfacer una gran cantidad de aplicaciones.

Estos atributos de ser universal y extensible abre un rango ilimitado de usos para el XML, desde procesadores de texto, páginas web, el comercio electrónico, hasta las más complejas soluciones de almacenamiento en bases de datos.

En términos comparativos, se puede decir que XML ha causado el mismo impacto que produjo la aparición del SQL.

Hoy existe un problema creciente, generado por formaen que se almacenan los datos en una cantidad inmensa de cientos de millones páginas web; lo que está causando que cuando se utiliza la Red como medio de información, sea cada vez más difícil acceder a ellos y administrarlos adecuadamente. Estos datos están almacenados en los servidores web como documentos de texto en un formato de denominado HTML (Hypertext Markup Language -Lenguaje de Marcado de Hipertexto).

Desde SGML, pasando por HTML hasta XML

SGML, los orígenes

Se podría afirmar que la mayoría de los usuarios de HTML desconocen que este lenguaje está basado en el SGML (Standard Generalized Markup Language), un metalenguaje que define las reglas para el manejo distintos tipos de documentos.

Toda aplicación de SGML, incluyendo al HTML, contiene una o más definiciones de tipos de documentos (DTD – Document Type Definition).

Se requiere de una DTD para poder interpretar y verificar un documento SGML.

Las DTD son descripciones formales de la sintaxis de los documentos, asignadas a un tipo de documento. Una DTD contiene una definición formal de un tipo de documento, y especifica la estructura lógica de cada documento. Define tanto los elementos del documento, qué etiquetas serán utilizadas, cuales son susatributos, y como éstos pueden ser combinados.

El SGML se caracteriza por tener algunas ventajas decisivas:

  • Es un estándar no propietario y está apoyado por gran número de proveedores de software.
  • Los documentos pueden ser leídos directamente por los usuarios y pueden ser analizados (hacer que su código sea interpretado) por programas.
  • Los documentos SGML describen la estructura de los datos, no solo como éstos van a ser presentados.

Pero SGML tiene también sus debilidades. Es muy general y complejo, con una lista de especificaciones inmensa, muchas de las cuales no son de relevancia practica para la Red.

En consecuencia, SGML se utiliza, sobre todo, para grandes proyectos de documentación técnica, particularmente en los sectores militares y de inteligencia, manufactura de aeronaves, publicaciones y archivos.

El HTLM, es una aplicación del SGML, por su facilidad de uso se volvió muy popular; y puede afirmarse que hoy es la aplicación más difundida de SGML.Pero a diferencia de SGML el HTML no describe el contenido semántico o la estructura de los datos, sólo abarca los aspectos relativos a la presentación de documentos.

HTML, una solución con limitaciones

Uno de los pilares fundamentales de la Red Internet es el HTML, el cual describe la forma en que los documentos serán vistos en el navegador.

El lenguaje HTML fue inventado por Tim Barners-Lee en 1989 con la finalidad específica de distribuir documentos en la Red, los que con el tiempo se conocerían popularmente como “páginas web”.

La gran ventaja del HTML es que su uso es extremadamente simple. Para escribir un documento HTML se utilizan una serie de códigos llamados "etiquetas" (tags) para definir la forma en se mostrarán los documentos. Para ello, hoy se dispone de una gran cantidad de herramientas en entornos visuales que facilitan enormemente la creación de los documentos.

Sin embargo el HTML tiene limitaciones, por ejemplo:

  • Solo controla la presentación de la información.
  • No es extensible, por lo tanto no se pueden definir etiquetas nuevas para requerimientos específicos.
  • No es posible representar las especificaciones de las estructuras de los datos, como se requiere por ejemplo, en bases de datos u objetos jerárquicos.
  • No provee soporte para validación de los datos.
  • No maneja los aspectos del contenido y no puede ser utilizado, por ejemplo, para calificar páginas web.

XHTML, una alternativa

¿Qué es XHTML?

XHTML (EXtensible HyperText Markup Language) es el HTML extensible, un nuevo estándar propuesto para reemplazar al HTML. Básicamente es idéntico al HTML 4.01 pero mucho más estricto y limpio. Se puede decir el XHTML es HTML definido como una aplicación XML.

XHTML 1.0 se convirtió en una recomendación oficial del World Wide Web Consortium (W3C) en enero del año 2000. Esto significa que es estable, que ha sido revisado por los miembros del consorcio que la especificación es un estándar para la web.

XML, la solución del dilema

De lo que se ha expuesto anteriormente, se puede llegar a la conclusión que para los requerimientos de hoy, SGML es muy complejo y HTML muy sencillo.

Sin embargo, la solución a este dilema se encuentra dentro de la lógica misma de SGML, esto es, un metalenguaje con el cual se pueda crear un sistema de "gramática" para cubrir sus propios requerimientos.

Entonces, XML nace al definir un nuevo estándar sobre la base de SGML, que combine la sencillez y universalidad de HTML con la flexibilidad de SGML, pero mucho menos complejo. Esta simplicidad hace que la implementación de XML sea sumamente sencilla.

Además, XML no permite ninguna desviación de la sintaxis estándar. Esto asegura que todos los documentos codificados en XML puedan ser editados, almacenados y transmitidos sin importar el analizador de XML del receptor.

Implementación del XML

Estructura de XML

Un documento XML tiene dos estructuras, una lógica y otra física. Físicamente, el documento está compuesto por unidades llamadas entidades. Una entidad puede hacer referencia a otra entidad, causando que esta se incluya en el documento. Cada documento comienza con una entidad documento, también llamada “raíz”. Lógicamente, el documento está compuesto de declaraciones, elementos, comentarios, referencias a caracteres e instrucciones de procesamiento, todos los cuales están indicados por una marca explícita.

Los documentos XML se dividen en dos grupos, documentos bien formados y documentos válidos.

·Documentos bien formados:

Los documentos bien formados son los que cumplen las especificaciones del lenguaje respecto a las reglas sintácticas, sin estar sujetos a los elementos establecidos en una DTD.

Los documentos XML deben ajustarse a una estructura jerárquica muy estricta, y los documentos bien formados deben cumplirla.

Hay exactamente un elemento, llamado raíz o elemento documento, de forma que ninguna parte del mismo aparece en el contenido de ningún otro elemento.

Todas las etiquetas deben estar balanceadas: esto es, todos los elementos que contengan datos de tipo carácter deben tener etiquetas de principio y fin.

Todos los valores de los atributos deben ir entrecomillados.

Cualquier elemento VACÍO (aquellos que no tienen etiqueta final como <IMG>, <HR>, y <BR> y otros de HTML) deben terminar con '/>' o con una etiqueta de fin; Ejemplo: <BR> deberá tener su etiqueta de cierre <BR/>.

No debe haber etiquetas aisladas (< ó &) en el texto (p.e. debe darse como < y &), y la secuencia ]]> debe darse como ]]> si no ocurre esto como final de una sección marcada como CDATA;

Los elementos deben anidar dentro de sí sus propiedades (no se deben sobreponer etiquetas, como en el resto de SGML);

Un documento que no utiliza una DTD, debe comenzar con una Declaración de Documento Unico (SDD, Standalone Document Declaration) que indique:

<?XML version="1.0" standalone="yes"?>

Los documentos bien formados sin una DTD pueden utilizar atributos en sus elementos, pero éstos deben ser todos por defecto del tipo CDATA.


Estructura Jerárquica de un documento XML

·Documentos válidos:

Un documento bien formado, se dice además que es válido, si tiene una DTD (Document Type Definition) o un Esquema (Schema) como el resto de las aplicaciones SGML .

Sus elementos y sobre todo la estructura jerárquica que define la DTD, además de los atributos, deben ajustarse a las especificaciones de la DTD.

Las definiciones del DTD pueden escribirse en un archivo auxiliar externo, o dentro del mismo archivo XML

Dado que XML está diseñado para ser un subconjunto de SGML, cualquier documento XML válido debe ser también un documento SGML válido.

Hay varios modos de referenciar un DTD en un documento XML:

Una opción es crear un archivo que contenga de definición de la DTD. Para asociarlo con el XML de debe incluir dentro del documento una referencia al documento que contiene la DTD en forma de URI (Universal Resource Identifier), o identificador universal de recursos de la siguiente forma:

<!DOCTYPE LIBRO SYSTEM http://www.sitioweb/libro.dtd" >

En este caso la palabra SYSTEM indica que la DTD se obtendrá a partir de un elemento externo al documento e indicado por el URI que lo sigue, por supuesto entrecomillado.

La evolución de las DTD: Esquemas

En mayo de 2001, el W3C convirtió en recomendación una propuesta elaborada por Microsoftde nominada XML Schema. Los esquemaspueden considerarse como si fueran DTDs supercargadas, ya que permiten mas tipos de datos complejos dentro de las etiquetas y formas adicionales de validar los datos dentro de las etiquetas.

¿ Que es un esquema XML ?

El propósito de un esquema XML es definir la construcción legal de bloques de un documento XML, de la misma manera que una DTD.

Un esquema XML:

  • Define los elementos que pueden aparecer en un documento
  • Define los atributos que pueden aparecer en un documento
  • Define cuales elementos son elementos hijos
  • Define la secuencia en que los elementos hijos pueden aparecer.
  • Define el número de elementos hijos
  • Define cuando un elemento es vacìo o pude incluir un texto
  • Define los tipos de datos para los elementos y atributos
  • Define los valores pode defecto para los elementos y atributos

Los esquemas de XML son los sucesores de las DTD

Es muy probable que muy pronto los esquemas de XML sen utilizados en la mayoría de las aplicaciones de Internet como reemplazo de las DTD, porque :

  • Son más fáciles de aprender que las DTD.
  • Son extensibles a las adiciones futuras.
  • Son más ricos y más útiles que las DTD.
  • Se escriben en XML.
  • Soportan tipos de datos
  • Soportan espacios de nombres (namespaces)

Uno de los puntos fuertes de los esquemas de XML es que soportan tipos de datos. Esto permite que sea mas fácil para describir documentos permisibles; de validar la corrección de los datos; sea fácil trabajar con los datos de unabase de datos, sea fácil definir facetas de datos (restricciones en el dato), sea fácil modelar datos; sea fácil convertir datos entre diferentes tipos

Otra gran fortaleza de los esquemas de XML es que están escritos en XML, por lo tanto no es necesario aprender otro lenguaje, así que se puede utilizar el editor de XML para corregir ficheros del esquema. Además se puede utilizar el analizador de sintaxis de XML para analizar los archivos del esquema.

Creación de un documento XML

Caso de ejemplo: Un negocio de venta de libros

Para explicar la aplicación de un archivo XML, utilizaremos como caso de ejemplo un negocio de venta de libros, analizando el modelado la base de datos de los libros en su depósito.

Un documento XML es simplemente un archivo de texto formateado mediante etiquetas, y siguiendo una estructura jerárquica. Las etiquetas definen el modelado de los datos, partiendo del elemento raíz que identifica al conjunto completo de los registros del archivo.

Para este caso de ejemplo, será el elemento raíz será definido como <BIBLIOTECA>.Dentro de este primer elemento, en forma anidada y siguiendo una estructura de árbol invertido, se definirán los registros.

<LIBRO> es la definición del registro que contiene a los campos <TITULO>, <AUTOR>, <PLAZOENTREGA>, <ISBN>, <EDITORIAL>, <EDICION>, <PAGINAS>, <PRECIO>, <MONEDA>, <COMENTARIO< e <IMAGEN>

En cada etiqueta se incluye el dato correspondiente a cada campo del registro.

Como puede apreciarse en la figura, el XML contiene etiquetas al igual que el HTML, pero a diferencia de éste, no describe cómo deben verse los datos, sino que describe a los datos.

Para poder presentar los datos en una forma adecuada, existen dos soluciones posibles utilizando plantillas de estilo que permitan definir el aspecto del documento:

Si la estructura de los datos que se están modelando es relativamente simple, se puede asociar al archivo XML una hoja de estilos en cascada CSS (Cascading Style Sheets). Esta opción es útil cuando las estructuras de los documentos son elementales, ya que ofrece una visualización más rápida, pero esta solución no tiene muchas perspectivas de desarrollo en el futuro.

Una alternativa a la utilización de las hojas de estilo en cascada CSS, es recurrir al XSL cuando se requiera más potencia de diseño, como documentos XML que encierran datos estructurados (tablas, organigramas, etc.).

El lenguaje de hojas de estilos extensible XSL (eXtensible Stylesheet Language), define o implementa el lenguaje de estilo de los documentos XML. Esto permite definir el aspecto en que un documento XML será visto en un programa explorador.

Si el documento XML está bien formado, para asegurarse de que es válido hay que asociarlo a una DTD.

Se puede incluir la definición de la DTD dentro del propio documento XML de la siguiente manera:

<?xml version="1.0"?>

<!DOCTYPE BIBLIOTECA [

<!ELEMENT LIBRO (TITULO+, AUTOR+, NOMBRE+, APELLIDO+, PLAZOENTREGA+, ISBN+, EDITORIAL+, EDICION+, PAGINAS+, PRECIO+, MONEDA+, COMENTARIOS+, IMAGEN?)>
<!ELEMENT TITULO (#PCDATA)>
<!ELEMENT AUTOR (#PCDATA)>
<!ELEMENT NOMBRE (#PCDATA)>
<!ELEMENT APELLIDO (#PCDATA)>
<!ELEMENT PLAZOENTREGA (#PCDATA)>
<!ELEMENT ISBN (#PCDATA)>
<!ELEMENT EDITORIAL (#PCDATA)>
<!ELEMENT EDICION (#PCDATA)>
<!ELEMENT PAGINAS (#PCDATA)>
<!ELEMENT PRECIO (#PCDATA)>
<!ELEMENT MONEDA (#PCDATA)>
<!ELEMENT COMENTARIO (#PCDATA)>
<!ELEMENT IMAGEN (#PCDATA)>

]>

Para incluir la DTD directamente dentro del XML como en este ejemplo, se debe añadir a la declaración <!DOCTYPE y a continuación el nombre del nombre del tipo de documento, en vez de la URI de la DTD.

La definición de la DTD se debe escribir entre los símbolos '[' y ']'.

Para obtener una definición más rica, en lugar de usar la DTD para describir la base de datos, se la puede reemplazar por un esquema de la siguiente manera:

<?xml version="1.0"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="LIBRO">
    <xs:complexType>
        <xs:sequence>
            <element name="TITULO" type="xs:string"/>
            <element name="AUTOR" type="xs:string"/>
            <element name="NOMBRE" type="xs:string"/>
            <element name="APELLIDO" type="xs:string"/>
            <element name="PLAZOENTREGA" type="xs:string"/>
            <element name="ISBN" type="xs:string"/>
            <element name="EDITORIAL" type="xs:string"/>
            <element name="EDICION" type="xs:string"/>
            <element name="PAGINAS" type="xs:string"/>
            <element name="PRECIO" type="xs:string"/>
            <element name="MONEDA" type="xs:string"/>
            <element name="COMENTARIO" type="xs:string"/>
            <element name="IMAGEN" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>
</xs:schema>

Visualización de los datos de la base.

Hasta este punto, el documento XLM de ejemplo contiene a la base de datos, está bien formado y es válido; pero no es visualizable en un formato aceptable.

Para poder desplegar correctamente los datos en un programa navegador de Internet, será necesario asociar el documento XML con una plantilla de estilos XSL que defina el formato de los datos.

El paso siguiente es crear el documento XSL al que denominamos “biblioteca.xsl” y en su interior se define el diseño de la presentación y se declara el conjunto de registros (recordset) de la base de datos que serán mostrados de la siguiente forma:

<?xml version='1.0'?>

<body xmlns:xsl="http://www.w3.org/TR/WD-xsl">

    <style> {font-size: medium; font-family: Times New Roman;} </style>
        <XSL:for-each select="BIBLIOTECA/LIBRO">
            <xsl:value-of select=""TITULO"/>
            <xsl:value-of select=""AUTOR"/>
            <xsl:value-of select=""PLAZOENTREGA"/>
            <xsl:value-of select=""ISBN"/>
            <xsl:value-of select=""EDITORIAL"/>
            <xsl:value-of select=""EDICION"/>
            <xsl:value-of select=""PAGINAS"/>
            <xsl:value-of select=""PRECIO"/>
            <xsl:value-of select=""MONEDA"/>
            <xsl:value-of select=""COMENTARIO"/>
            <xsl:value-of select=""IMAGEN"/>
        </XSL:for-each>
</body>

Seguidamente, es necesario asociar el archivo XSL que contiene el formato presentación con el archivo XLM que contiene los datos, incorporando a este último una referencia al primero de la siguiente forma:

<?xml-stylesheet xhref="biblioteca.xsl" type="text/xsl" ?>

De esta manera, al cargarse el archivo XML en el explorador de Internet, éste invoca al archivo de estilos XSL asociado que contiene el diseño de presentación de los datos y la especificaciónde los registros del conjunto de datos que serán mostrados.

Diseñando adecuadamente el formato del documento XSL con tablas y familias tipográficas, se podrá visualizar la base de datos contenida en el documento XML, de esta manera:


El XML en el terreno de las bases de datos

El XML está emergiendo como el formato preferido para una amplia variedad de tipos de datos, especialmente documentos. Su característica de ser estructurado, universal y extensible, para hacer documentos dinámicos y búsquedas más simples, está causando que muchas empresas estén comenzando a migrar sus datos a lo que parece ser una mina de oro. El hecho que XML se centra en el contenido, abstrayendo el formato de la presentación en hojas de estilo independientes, permite una extensa reutilización del material.

Para las empresas que deben trabajar con datos que provienen de sistemas incompatibles, XML puede servir como una tecnología común para el transporte de los datos en torno a un formato neutral. Además, XML puede manejar toda clases de datos, incluyendo texto, imágenes y sonido, aparte de ser extensible lo que le permite manejar cualquier caso especial de modelado de estructuras complejas.

Claramente, XML parece destinado convertirse en la lengua franca de los datos del futuro.

El problema hasta ahora ha sido cómo manejar los datos etiquetados de XML. Una solución prometedora es utilizar bases de datos para almacenar, recuperar y manipular XML. La idea es poner los datos de XML en un área de trabajo (framework) donde la búsqueda, el análisis, la actualización y la salida pueden realizarse en un ambiente más manejable, más sistemático y conocido. Las bases de datos tienen el mérito de que los usuarios están familiarizados ellas y su comportamiento, así que incorporar XML a un entorno de bases de datos es una situación natural.

Sin embargo, no hay un único modelo de bases de datos. Los puristas afirmarían que solamente las bases de datos que almacenan internamente al XML en su formato nativo merecen llamarse "base de datos de XML". Otros afirman que si un producto puede almacenar y recuperar XML en él, y es una base de datos, entonces es una base de datos XML, sin importar cómo se almacenan los datos. Sin entrar en demasiados detalles, se puede hacer una clasificación general según como se almacenan los datos. Si el XML no se almacena internamente como XML, llamaremos a eso una "base de datos que soporta XML” (database XML-enabled),por el contrario si el XML se almacena internamente como XML , la llamaremos una "base de datos de XML nativa".

Hay una buena cantidad de razones por las cuales utilizar los distintos los tipos productos y bases de datos existentes para almacenar XML, incluso si no está en su forma nativa.

Primero, las bases de datos relacionales (RDBMS- Relational Data Base Manegement System) y las bases de datos orientadas a objeto (OODB – Object Oriented Data Base) son bien conocidas, mientras que las bases de datos nativas de XML son nuevas.

En segundo lugar, como resultado de familiaridad con las bases de datos relacionales y las orientadas a objeto, los usuarios entienden su comportamiento, especialmente con respecto a funcionamiento.

Todavía hay cierta negativa a moverse a una base de datos nativa de XML, ya que algunas características -especialmente la escalabilidad- no se han probado. Finalmente, las RDBMS y las OODB son opciones seguras en la mente corporativa. Las empresas no desean arriesgarse a migrar hacia una base de datos XML nativa, si es que no tienen la necesidad de hacerlo. Los usuarios sienten que las bases de datos XML nativas,no son bien conocidas o bien soportadas como ellos lo preferirían. Usar una base de datos relacional les permite mejorar la experiencia existente con la base de datos.

Hoy hay bases con soporte de XML que los manejan muy bien y que se basan en modelos relacionales u orientados a objeto. Estas bases de datos aceptan típicamente XML, lo analizan en segmentos que encajan en el esquema de la base de datos y lo almacenan como si fuera cualquier otro dato de la base. Para recuperar el XML, los segmentos se vuelven a unir otra vez.

Productos

Uno de los productos para manejar XML en base de datos es Content@XML de la empresa Xyvision Enterprise Solutions Inc., este un sistema de administración de contenidos que almacena documentos XML en cualquiera de las bases de datos relacionales populares.

Un usuario de Content@XML es Element K Content LLC, un publicita técnico en Rochester, N.Y."Usando XML, podemos crear el contenido sin importar la presentación, reutilizar ese contenido y modificar la salida como sea necesaria", diceKress Riley, vice presidente de desarrollo de contenidos en Element K. El sistema recibe el material en XML y lo entregamos en cualquier formato que sea apropiado. "XML acorta un proceso de dos semanasa algunos minutos",informa Riley.

La base de datos Domino de Lotus Development Corp. también puede manejar XML. Las herramientas de Lotus para XML incluso permiten que se cree y procese el contenido como XML nativo.

Cuando se usaXML con una base de datos relacional, los productos de terceros que funcionen entre ambos, puede ser útil para manejar la traducción. Uno de esos productos es XML-DBMS, una herramienta basada en JDBC (Java Database Connectivity) que transfiere los datos entre el XML y la base de datos. "XML-DBMS permite que se utilice rápidamente XML para llenar una base de datos que pueda ya ser parte de aplicaciones existentes" diceRonald Bourret, creador de XML-DBMS. Naturalmente, el producto trabaja también a la inversa, retornando la salida de la base de datos en XML. Esto puede ser útil tanto para publicar el resultado de XML usando las hojas del estilo como para transportar los datos como XML. "Los componentes de XML-DBMS cubren el vacío que hay entre la base de datos y la estructura de un documento de XML" comenta Asante Bremang, investigador en la Universidad de Liverpool en Inglaterra.

Hay algunas críticas respecto al uso de las RDBMS y las OODB para almacenar XML. Por ejemplo, una de características atractivas de XML es su organización jerárquica, una situación donde las tablas de las bases de datos se quiebran. Las bases de datos relacionales deben asociar (mapear) el XML a las tablas relacionadas y por lo tanto aplanar las estructuras jerárquicas de XML en filas y columnas para poder manejar los datos. Se puede asociar el tipo datos de XML a una fila de la base de datos y lograr que esto trabaje, pero es muy difícil de mantener.

Además, traducir XML a y desde la base de datos requiere un proceso considerable, especialmente para los documentos grandes o complejos. Este factor de rendimiento puede ser el más fastidioso al tratar en uno de los puntos fuertes de XML: producir las páginas web. El problema es que las páginas resultantes pueden ser demasiado lentas para cargarse.

Algunas veces, las empresas eligen usar cierta base de datos relacional, sin importar su conveniencia para realizar el trabajo con el XML. En tales casos, es preferible el colocar una envoltura alrededor de la base de datos relacional para manejar la traducción de XML. Pero esta solución tiene muchos gastos indirectos en su implementación.

Bases de Datos XML Nativas

Tierra Nativa

Los puristas sostendrán que la solución a estas dificultades está en almacenar XML en su formato nativo, lo cual tiene sentido. Esto elimina inmediatamente la necesidad de traducir entre XML y la base de datos. En este sentido, en estos momentos está emergiendo una nueva familia de bases de datos nativas de XML.

La primera y probablemente más conocida base de datos comercial de XML nativo es Tamino de la empresa Software AG. Además de poder almacenar y acceder a XML, Tamino soporta ODBC, Unicode,comunicaciones HTTP y la capacidad de manejar datos de que no son XML. Un informe del Gartner Group Inc., menciona que "Tamino está especialmente bien preparado para que las organizaciones integren la información de distintas plataformas y formatos y la envíen a los clientes o a los socios de negocio"

Tamino es fuerte especialmente en sus capacidades de búsquedas indexadas, posee un lenguaje de interrogación que permite consultas breves pero poderosas que en comparación, pondrían a SQL en un laberinto sin salida.Además, SQL no puede manejar consultas a una profundidad arbitraria.

Otras bases de datos XML nativas, incluyen dbXML, eXcelon y X-Hive/DB. El servidor de los datos de eXcelon de la corporación eXcelon, incluye una base de datos orientada a objeto que almacena, administra y distribuye XML nativo. X-Hive/DB, de Rotterdam, Holanda, trabaja con bases de datos relacionales que soportan JDBC. El dbXML Group LLC, está desarrollando dbXML, que según el principal oficial de tecnología de la compañía, comenta que "las millares de descargas por la webde nuestra versión pre-alfa de la base, demuestra el interés que crece en bases de datos nativas de XML"

Extrañamente, una de las principales críticas a las bases de datos XML nativas está en su rendimiento. Algunos prevén problemas a buscar información que puede hallarse cerca del final de un documento de gran tamaño. Sin otro mecanismo al cual recurrir, una base de datos XML nativa tendría que buscar a través de todo el documento hasta terminar la búsqueda. Las bases de datos relacionales y las orientadas a objetos probablemente esquivarían esta dificultad descomponiendo el documento en trozos más pequeños, cada uno de ellos indexables más rápidamente. Sin embargo, esto no es una dificultad insuperable, con tal que se agregue un índice a cada documento cuando se almacena en la base.

Las capacidades de indexación de Tamino compensan la pérdida de rendimiento a buscar a través de documentos grandes. El almacenamiento de XML en formato nativo elimina las operaciones de traducción innecesarias.En este sentido, Tamino es muy rápido.

Software AG dice que tiene planes para Tamino, internamente y externamente. Será integrado con otros productos de la empresa para permitir incluso un acceso más simple. También trabajan en un motor de traducción de las hojas del estilo y nuevos elementos de la seguridad para controlar el acceso. Además, Tamino - actualmente disponible para Windows NT/2000, Solaris y SCO Unix - aparecerá en más plataformas, incluyendo Linux y algunos mainframes.

Muchos de los principales vendedores de bases de datos están incorporando soporte para XML en sus productos o están proveyendo las herramientas para usar XML en sus bases de datos. IBM tiene XML Extender for DB2que le permite almacenar documentos XML en las bases de datos DB2; y las nuevas funciones asisten en el trabajo de manejar documentos XML estructurados. Microsoft SQL 7 usa extensiones del servidorpara trabajar con XML, y SQL Server 2000 lo incorpora en forma natural.Oracle tiene el rango más amplio de características y un poderoso motorde indexación de XML.

Además, muchos usuarios cuentan con que los vendedores mas grandes pronto ofrezcan su propia respuesta de bases de datos XML nativas en sus productos, en respuesta a la demanda que requerirán las aplicaciones basadas en la web y el comercio electrónico. La demanda de XML se ampliará; las nuevas aplicaciones incluirán motores de búsqueda en Internet que utilizan etiquetas de XML, los sistemas de comercio electrónico que deben producir salida rápidamente, la reutilización de los datos y la personalización del contenido.

El movimiento hacia las bases de datos XML que manejen tales aplicaciones ocurrirá pronto.

¿Qué es una base de datos de XML nativa?

Para tener una mejor idea de lo que es realmente una Base de Datos Nativa XML (NXD -Native XML Database), se puede analizar la definición de lo que son las NXD, ofrecida por la iniciativa de XML:DB

Una base de datos nativa de XML....

Define el modelo lógico de un documento de XML, y almacena y recupera documentos según ese modelo. Como mínimo, el modelo debe incluir elementos, atributos, PCDATA, y el orden del documento. Los ejemplos de tales modelos son el modelo de los datos de XPath, los XML Infoset, y los modelos explicitados por el DOM y los eventos en SAX 1.0.

Tiene un documento de XML como unidad fundamental del almacenamiento lógico, tal como una base de datos relacional tiene una fila en una tabla como su unidad fundamental del almacenamiento lógico.

No se requiere tener ningún modelo de almacenamiento físico en particular. Por ejemplo, el documento puede ser creado en una base de datos relacional, jerárquica, u orientada a objetos, o utilizar un formato de almacenamiento propietario tal como archivos indexados y comprimidos.

Hay mucho que se puede deducir de de esta definición, pero hay tres puntos principales que se pueden resumir en lo siguiente:

  • La base de datos se especializa en almacenar datos XML yalmacena todos los componentes del modelo de XML intacto.
  • La base de datos almacena y recupera documentos.
  • Una NXD puede que realmente sea una base de datos independiente.

Como debe estar claro de esta definición, las NXD realmente no representan un nuevo modelo base de datos de bajo nivel, y no pretenden sustituir las bases de datos existentes. Son simplemente una herramienta prevista para asistir al desarrollador proporcionando un almacenamiento robusto y la manipulación de los documentos de XML.

Características de las bases de datos nativas de XML

No todos las NXD son exactamente iguales, pero poseen alguna semejanza entre ellas para poder discutir sus características básicas.

La mayoría de los vendedores hoy tienen disponibles productos de la primera generación, y algunos de los más maduros ya tienen productos de la segunda generación. El modelo de NXD todavía se está desarrollando y continuará desarrollándose por varios años.

Almacenamiento XML

Las NXD almacenan los documentos XML como una unidad y crearán un modelo que se alinee muy cerca al XML o una de tecnologías relacionadas XML como el Infoseto DOM. Este modelo incluye niveles arbitrarios del anidamiento y complejidad, como así también un completo soporte para manejar contenido mixto y semiestructurado. Este modelo es mapeado automáticamente por el NXD en el mecanismo subyacente del almacenamiento. El mapeo usado asegurará que el modelo específico de XML de los datos será mantenido intacto. Una vez almacenados los datos, se deberá continuar utilizando las herramientas de NXD si se pretendever una representación útil de los datos.

Por ejemplo, si se está utilizando una NXD por encima de una base de datos relacional, acceder a los datos de las tablas directamente con el SQL no sería tan útil como se podría pretender. La razón de esto es simplemente que los datos que se verán son el modelo del documento de XML, (es decir los elementos y los atributos) en lugar de las entidades de negocio que los datos representan. El modelo de la entidad de negocio existe dentro del dominio del documento de XML, no dentro del dominio del sistema subyacente del almacenamiento de datos. Para trabajar con los datos, se debe trabajar con ellos como XML.

Si un desarrollador se siente cómodo trabajando con las herramientas de XML tales como DOM, SAX, XPath y XSL-T, entonces serán probable que trabaje cómodo con una NXD. La base de datos abstraerá todos los detalles de cómo se almacena el XML y dejará al desarrollador en libertad paraconstruir aplicaciones usando tecnologías de XML.

Colecciones

Las NXD manejan colecciones de documentos, permitiendo que se consulten y se manejen esos documentos como conjunto. Esto es muy similar al concepto relacional de una tabla. Las NXD se diferencian del concepto de las tablas en que no todas las bases de datos nativas de XML requieren un esquema para ser asociado a una colección. Esto significa que se puede almacenar cualquier documento de XML en la colección, sin importar el esquema. Al hacer esto, se pueden construir consultas a través de todos los documentos en la colección. Las NXD que utilizan estas funciones se llaman esquema-independientes. Tener colecciones esquema-independientes del documento da a la base de datos mucha flexibilidad y hace el desarrollo de las aplicaciones sea más fácil. Desafortunadamente, esta característica no es bien apreciada por los administradores, debido al riesgo de baja integridad de los datos. El viejo adagio de usar la herramienta correcta para realizar el trabajo se aplica definitivamente aquí. Si se necesita una estructura de esquemas fuerte, entones hay que asegurarse de que se utiliza una NXD que soporta esquemas o se deberá encontrar otra manera de almacenar los datos del XML. Algunos productos utilizan la validación con las DTD, y algunos pueden validar colecciones enteras de documentos vía un lenguaje de esquemas propietario. Se espera que el futuro los esquemas propuestos por el W3C se impongan como el lenguaje del esquema para las NXD.

Consultas

Actualmente las NXD usanXPath (XML Pattern Matching), que es un leguaje para direccionar partes de un documento XML.. Para funcionar como un lenguaje de interrogación de la base de datos, XPath está levemente extendido para permitir consultas a través de colecciones de documentos. Desafortunadamente, XPath no fue diseñado como un verdadero lenguaje de consultas de base de datos y no cumple con las expectativas cuando se lo utiliza como tal. Algunas de las limitaciones de XPath más notorias es la falta de capacidad para de agrupar, ordenar, hacer referencias cruzadas, el soporte para tipos de los datos. Debido a estos resultados XPath necesita ser ampliado como parte de un lenguaje más comprensivo. Algunas de estas cuestiones pueden ser resueltas utilizando utilizando XSLT.

Sin embargo, XPATH es un método lento, especialmente si el XML está almacenado en una tabla de una base de datos; aunque algunos motores han implementado herramientas propietarias para acelerar las búsquedas, como por ejemplo Intermedia Text de Oracle.

Para mejorar el funcionamiento de las consultas, las NXD soportan la creación de índices en los datos almacenados en las colecciones. Estos índices se pueden utilizar para mejorar dramáticamente la velocidad de la ejecución de la consulta. Los detalles de qué puede ser indexado y cómo se crean los índices variarán ampliamente entre los distintos productos, pero la mayoría soportan esta de la misma manera.

Actualización

La actualización de los documentos es actualmente el punto débil de las actuales NXD. La mayoría de los productos requieren que el usuario recupere el documento, lo edite utilizando una API de XML, y luego volver a almacenarlo en la base de datos. Algunos productos tienen lenguajes propietarios que permitan realizar las actualizaciones dentro del servidor, y hay un par de bases de datos de tecnología abierta que utilizan XML:DB XUpdate para este mismo propósito. Esto es probable será un tema problemático, hasta que XQuery incorpore un lenguaje de actualización. Hasta entonces, la manipulación de DOM será probablemente el método más común de actualización usado con los productos de NXD.

Las áreas de aplicación

Existe solamente un requisito para cualquier aplicación que desee utilizar un NXD: la aplicación deber utilizar XML. Más allá de esto no existe ninguna regla definitiva para determinar qué tipo aplicación se puede o no construir con una NXD, aunque se pueden dar algunas guías elementales. En general, las NXD sobresalen en almacenar datos orientados a documentos (p.e. XHTML o DocBook), datos que tienen una estructura muy compleja con una anidamiento profundo, y datos que son por naturaleza semiestructurados. Una NXD puede almacenar cualquier tipo de datos de XML, pero probablemente no es la mejor herramienta a utilizar para algo como un sistema contable donde la estructura de los datos es rígida y están muy bien definidas.

XLM es un formato es muy versátil para intercambiar datos entre las aplicaciones, y en distintas plataformas. Por ejemplo, una aplicación para Internet permite a los usuarios realizar una consulta a una base de datos. La consulta puede ser enviada desde el programa navegadoren formato XML a la base de datos; y el motor de la base podrá retornar el resultado nuevamente al navegador en XML.

Usando XML como un formato estándar para el intercambio de datos, cualquier sistema que corra ya sea un mainframe, NT, Unix, puede interactuar con otros. En este sentido deja muy atrás a las estructuras formales de datos relacionales, dado que es mucho más flexible que un sistema basado en un concepto de campos rígidos. También amplía la capacidad de rendimiento de las interfaces estándar como CORBA y DCOM

Algunas áreas de aplicación potenciales incluyen.

  • Portales de información corporativos.
  • Catálogos dedatos.
  • Bases de datos de productos manufacturados.
  • Almacenamiento de información médica.
  • Sistemas de administración des documentos.
  • Registro de transacciones de B2B.

Más allá de esto, las NXD son simplemente una herramienta nueva y su utilidad final será determinada por la creatividad de los desarrolladores.

Resumiendo…

Las NXD no son una panacea y definitivamente no se está pensado sustituir los sistemas de base de datos existentes. Son simplemente otro recurso más en la caja herramienta de los desarrolladores de XML, y cuando son aplicadas en las circunstancias correctas pueden rendir ventajas significativas. Si la empresa maneja datos en formado XML, entonces vale la pena probar una NXD, y descubrir que se está utilizando la herramienta correcta para hacer el trabajo.

Conclusiones

El Futuro del XML

Se están haciendo grandes inversiones en el desarrollo del estándar, las interfaces y herramientas para XML. Microsoft ya está proveyendo tecnología XML en su navegador, Internet Explorer, y se ha incorporado el soporte de XML pronto en sus herramientas para la red como FrontPage y SQL Server. Microsoft también ha seleccionado a XML para la implementación del "Channel Data Format" un protocolo para la estandarización del procesamiento de la información en la red, por ejemplo en la tecnología push. Poca gente sabe que Quicken, que es una aplicación muy difundida, utiliza el formato XML. Compañías cuya orientación es más hacia el área de los mainframe o UNIX también están trabajando en proyectos en XML. Varios productos de Software AG, como Tamino, Natural@Web, Adabas Web Retrieval y Adabas Web Gateway, ya ofrecen una funcionalidad XML. Compañías como Sun, Oracle, Sybase y Corel también se están concentrando fuertemente sus esfuerzos y produciendo productos con soporte al XML.

Este nuevo lenguaje está destinado a jugar un papel fundamental, al proveer una estructura de información y datos para ser utilizados en la red. Cumple con los requerimientos que van más allá del alcance de HTML. Con el apoyo del W3C, XML ha encontrado una creciente aceptación como estándar no propietario y es adecuado no solo para describir documentos, sino también como lenguaje de descripción de datos almacenados en bases de datos.

En muy poco tiempo, el XML ha sido adoptado por un reconocido grupo de organizaciones de tecnologías de la Información.

Actualmente los vendedores de las bases de datos más populares ya han incorporado la tecnología de XML en sus productos, y los analistas predicen que XML tiene un futuro brillante.

El proceso de estandarización ya está concluido, y XML provee suficiente flexibilidad como para soportar un amplio rango de aplicaciones.

Entonces, ¿ Porqué seguir esperando para iniciar el cambio ?

Referencias:

[1]WWW Consortium. Extensible Markup Language (XML)

http://www.w3.org/XML/

[2]WWW Consortium. XML Schemas

http://www.w3.org/TR/xmlschema-0/

[3]XML:DB Initiative for XML Databases

http://www.xmldb.org/

[4]Kimbro Staken. Introduction to Native XML Databases

October 31, 2001

http://www.xml.com/pub/a/2001/10/31/nativexmldb.html

[5]Extracto del “Information Interchange Technology Handbook” What is SGML?

http://www.techapps.co.uk/iihb_sgml.html

[6]XML School

http://www.w3schools.com/xml/default.asp

[7]DeJesus Edmund - Computerworld – XML Enters The DBMS Arena

October 30, 2000

http://www.computerworld.com/cwi/story/0,1199,NAV47-68-85-1552_STO53026,00.html

[8]Cafe con Leche XML News, and Resources:

http://metalab.unc.edu/xml/

[9]Microsoft DevelopmentNetwork - MSDN

http://www.microsoft.com/xml/

[10]Sun Microsystems

http://java.sun.com/xml/

[11]Oracle Corporation

http://www.webspedite.com/oracle/

[12]Webreference

http://www.webreference.com/authoring/languages/xml/

[13]DataChannel XML Resources, XML = Revolution

http://www.datachannel.com/xml_resources/

[14]POET XML Resource Library

http://www.poet.com/xml/xml_lib.html

[15]Berthold Daum, Chris Horak.The XML Shockwave

Software AG 2000

http://www.softwareag.com/xml/Books/xmlshockwave.htm

[16]Frank Jung, XML_Backgrounder

Software AG, August 2000

www.softwareag.com/xml/about/e-XML_Backgrounder_WP03E0700.pdf

[17]XML Database Products

http://www.rpbourret.com/xml/XMLDatabaseProds.htm

 
spacer.png, 0 kB
spacer.png, 0 kB
spacer.png, 0 kB