Administrando el Almacenamiento de Datos XML

por Jerry Emerick

traducido por Felipe Guerrero.

Introducción: Demandas de Almacenamiento XML

XML se está convirtiendo en el formato de datos de elección para una amplia variedad de soluciones de sistemas de información. Aplicaciones comunes que usan XML incluyen: transmisión de documentos en sistemas B2B, construcción de formatos de mensajes para integración de aplicaciones Internet con sistemas legados, aasociación de datos XML con controles visuales y no visuales, almacenamiento y obtención de datos, y varias actividades de manipulación de datos dentro de aplicaciones. Los beneficios que a menudo se asocian con la utilización de XML incluyen independencia de la plataforma, bajo costo de entrada, y la habilidad de compartir datos de manera transparente. XML puede además acomodar una variedad de datos incluyendo texto, imágenes y sonido. Sin embargo, la excitación en torno a XML no viene sin desafíos, provenientes de estándares emergentes y conflictivos, nuevos requerimientos de habilidades y problemas administrativos causados por la creciente cantidad de datos XML que deben ser administrados [7].

La mayoria de las aplicaciones tradicionales de negocio y de las aplicaciones basadas en Internet dependen de bases de datos. Existen diversos modelos diferentes de bases de datos, sin embargo, la mayoría son relacionales [7]. Para mantener datos en una base de datos, éstos deben ser obtenidos y almacenados de una manera consistente, confiable y eficiente. El uso de la infraestructura existente de bases de datos para la administración de demandas de datos XML parece ser lógico. Sin embargo, nuevos productos nativos XML están construidos para manejar las demandas de datos XML en forma nativa sin el bagaje de conversiones a otras estructuras de bases de datos como la relacional. Adicionalmente, existe una diversidad de estrategias de almacenamiento XML, procesos de conversión, y niveles de soporte para XML con los productos líderes de bases de datos [1].

Requerimientos de Almacenamiento XML

Los documentos y los requerimientos de almacenamiento de datos XML pueden ser pensados a menudo en dos categorías generales: centrados en los datos y centrados en los documentos. Las demandas centradas en los datos suelen incluir documentos de facturación típicos, órdenes de compra, y documentos menos estructurados, y es apropiada para ítemes como contenidos de periódicos, artículos y publicidad. Si el documento XML tiene una estructura bien definida y contiene datos actualizables usados en maneras diversas, el documento es típicamente centrado en los datos. Los datos centrados en el documento tienden a ser más impredecibles en tamaño y contenido que los centrados en los datos los cuales son altamente estructurados, con tipos de datos de tamaño limitado y reglas menos flexibles para campos opcionales y contenido  [1].

Los sistemas de almacenamiento XML deben acomodarse eficientemente con ambos tipos de requerimientos de datos, dado que XML está siendo ampliamente usado en sistemas que administran ambos tiops de datos. La mayoría de los productos se enfocan en servir uno de esos formatos de datos mejor que el otro. Las bases de datos relacionales tradicionales son típicamente mejores al tratar con requerimientos centrados en los datos, mientras que los sistemas de administración de contenido y de documentos son típicamente mejores para almacenar datos centrados en el documento. En los sistemas que encuentran XML, Es común tener ambas categorías de datos dentro de la misma aplicación. Los documentos centrados en los datos se pueden originar en bases de datos relacionales o como un documento XML que puede haber sido transmitido como parte de un sistema B2B. Los sistemas de bases de datos deben ser capaces de exponer los datos relacionales como XML y almacenar el XML recibido como datos relacionales para transferir, obtener y almacenar transparentemente los datos requeridos por la aplicación.

Si bien es posible almacenar datos centrados en el documento en bases de datos relacionales u orientadas al objeto, esto resultará típicamente en duplicar el trabajo de un sistema administrador de contenido. Similarmente, dado que un sistema de administración de contenido está usualmente construido sobre una base de datos orientada al objeto o jerárquica, tratar de usarlo como base de datos probablemente será fustrante [1].

La diferencia entre los datos centrados en los datos y los centrados en el documento no siempre es fácil de identificar. Por ejemplo, una orden de compra puede contener datos tales como comentarios o notas. Adicionalmente, los datos centrados en los documentos, tales como artículos de revistas, pueden tener datos estructurados como el nombre del autor y la fecha. Típicamente los requerimeintos que manejan los datos se inclinan con mayor peso en una dirección o la otra. Mas aún, tomarse mayor tiempo en entender si los datos son más centrados en el documento o en los datos será ventajoso cuando se elija la estrategia de almacenamiento.

Estrategias para el Almacenamiento de Datos XML

Con el objeto de mover datos entre un documento XML y una base de datos y viceversa, los datos en la base de datos deben ser mapeados a la estructura del documento XML. De la manera simple, el documento XML completo es mapeado a una columna única en la base de datos. Estrategias más complejas incluyen el mapeo de cada elemento a una columna correspondiente en la base de datos o el mapeo de la estructura del documento XML a la base de datos [1].

Las estrategias existentes pueden ser descompuestas en tres métodos básicos:

  1. Almacenar el documento completo en forma de texto, como un gran objeto binario (BLOB) en una base de datos relacional. Esta es una buena estrategia si el documento XML contiene contenido estático que sólo será modificado cuando el documento completo es reemplazado. Esta estrategia es común para datos centrados en el documento conforme estos datos son obtenidos y almacenados típicamente como una unidad. Los tres vendedores líderes de bases de datos relacionales (Microsoft SQL Server, Oracle Oracle8i, IBM DB2) soportan este método. Almacenar el documento completo en formato de texto es fácil de implementar dado que no se necesita mapeo o traducción, pero puede limitar también la búsqueda, indexamiento y granularidad de la obtención de documentos XML. Por otro lado, el documento XML se mantiene como era antes de ser almacenado, lo que minimiza el trabajo de rearmarlo luego de su obtención.

  2.  
  3. Almacenar una forma modificada del documento completo en el sistema de archivos. Este método es popular cuando el número de documentos es pequeño y los documentos XML son infrecuentemente actualizados y transferidos entre sistemas de archivos. Nuevamente, los vendedores líderes de bases de datos soportan este método, pero tiene limitaciones obvias que incluyen escalabilidad, flexibilidad en almacenamiento y recuperación, y seguridad dado que los datos descansan fuera de la base de datos. Almacenar una forma modificada del documento completo en el sistema de archivos es bastante limitado dado que el sistema de archivos no hace una base de datos muy buena. Este método funciona para un número menor de documentos XML y típicamente puede ser  incluido solamente en el diseño dado que el documento XML se está moviendo por el sistema de archivos. Eventualmente, los contenidos de un documento XML podrían terminar en una base de datos.

  4.  
  5. Mapear la estructura de los datos en el documento en la base de datos. Por ejemplo, mapear un documento XML que contiene una orden de ventas con tablas como Ordenes, Itemes, Partes, y Clientes u objetos como Orden, Item, Parte, y Cliente. Si la estructura del documento XML no es compatible con la estructura de la base de datos, el documento debe ser transformado para ajustarlo a la estructura de la base de datos antes de almacenarlo. Mapear la estructura de los datos en el documento a la base de datos es una opción muy popular y es el foco de muchas características habilitadoras de XML en los productos principales de bases de datos y es el tema de muchos artículos y libros en el último par de años [1]. Las siguientes secciones discutirán este método en mayor detalle.
Algunos enfoques comunes, descritos en la sección siguiente, están emergiendo para tomar una base de datos relacional existente y mapearla o moverla a un documento XML y a un esquema.

El Proceso de Mapeo y Traducción

Para modelar una estructura de base de datos como XML, la estructura XML debe ser capaz de acomodar algunos conceptos básicos incluyendo claves primarias, claves secundaria, tablas, y columnas. Este proceso puede irse a los extremos en dos direcciones diferentes. En una dirección se puede hacer una tentativa para mapear la base de datos relacional al esquema estándar de la industria, lo que implica típicamente una cantidad significativa de programación personalizada para traducir el esquema relacional al esquema XML estándar de la industria. En el otro extremo, la base de datos relacional existente se podría descargar en una estructura XML por defecto con los elementos que representan las columnas y los atributos que representan valores de columna. La mayoría de los esfuerzos aterrizarán en alguna parte en el medio [2].

El proceso de mapeo y traducción puede ser descompuesto en unos pocos pasos básicos. El primer paso es crear el esquema XML con un elemento para cada tabla y los atributos correspondientes para cada columna no clave que será mapeada. Las columnas que no permiten valores nulos pueden ser marcadas como requeridas mientras aquellas que permiten valores nulos pueden ser marcadas como opcionales en el esquema XML. Las columnas pueden ser también anidadas como elementos, pero pueden surgir problemas cuando el mismo nombre de columna es usado en más de una tabla. De esta manera el enfoque más simple es mapear las columnas como atributos XML donde las colisiones de nombre en el esquema XML no son un problema [12].

El segundo paso es crear las claves primarias en el esquema XML. Un enfoque podría ser agregar un atributo para la columna clave primaria con un ID agregado al nombre de la columna. Este atributo podría necesitar ser definido en el esquema XML como de tipo ID. Pueden surgir nuevamente problemas de colisión al crear claves primarias en el esquema XML. A diferencia de las bases de datos relacionales donde las claves primarias necesitan ser únicas sólo dentro de una tabla, un atributo ID dentro de un documento XML debe ser único a través de todo el documento. Una manera de manejar este problema es agregar el nombre del elemento (nombre de la tabla) al valor de la clave primaria (valor del atributo). Esto asegura que el valor es único a través del documento XML [12].

El tercer paso y final es modelar las relaciones de clave secundaria. Esto se puede lograr mediante el anidamiento de elementos bajo el elemento padre. Alternativamente, un ID de esquema XML puede ser usado para apuntar a una estructura XML correspondiente conteniendo un IDREF. Existen  compensaciones entre esos dos enfoques relacionados con rendimiento y habilidad de navegación a través del documento XML [12].


Documento XML (Esquema) Esquema Relacional 
Elemento Tabla
Atributo o Elemento Anidado Columna
Atributo ID  Clave Primaria
IDREF o Elemento Anidado Clave Secundaria
#REQUIRED, #IMPLIED NULL, NOT NULL

Tabla 1: Resumen de relación Esquema XML y Esquema Relacional [12]

Se pueden usar muchas variaciones de esquemas XML para representar la misma base de datos relacional. Al entender las capacidades y técnicas disponibles cuando se construye el esquema XML, tanto el tamaño del documento como el tiempo de procesamiento pueden ser minimizados. Este entendimiento requiere conocimiento detallado de las capacidades de los esquemas XML y además un entendimiento acabado de cómo DOM y el API SAX procesarán realmente el documento XML. Esas APIs son el estándar de facto para el procesamiento de documentos XML.

Líderes de Bases de Datos con capacidades XML

Muchos de los mayores vendedores de bases de datos están incorporando soporte XML en sus productos o proveyendo herramientas para el uso de XML en sus bases de datos. Algunos de ellos como Oracle8i de Oracle, SQL Server 2000 de Microsoft, y DB2 de IBM tienen mucho en común en términos de soporte XML. Todos ellos permiten que un documento XML pueda ser almacenado como una única columna en la base de datos con indexamiento y búsqueda limitados del documento. Ellos permiten además el particionamiento de un documento XML en columnas y tablas en la base de datos. Las herramientas y técnicas ofrecidas para lograr la obtención y almacenamiento de datos XML es variable, así como la facilidad con la que los desarrolladores pueden traducir datos XML a una estructura relacional [4].

Oracle8i

Oracle8i puede almacenar y obtener documentos XML completos como columnas, puede acceder XML almacenado en archivos externos o en la Web y puede mapear elementos de un documento XML a tablas y columnas en la base de datos [8].

Oracle ofrece también una utilidad SQL XML para Java. Esta herramienta es un conjunto de clases Java que permite la inserción de datos XML en tablas o vistas de objetos. Las clases Java pueden generar también documentos XML de resultados de consultas SQL. Un Servlet Java XSQL está también disponible que permite que la ejecución de consultas SQL retornen los resultados como XML y luego transformen el XML a HTML usando hojas de estilo.Este conjunto de herramientas puede ser utilizado efectivamente de una manera relativamente rápida, cuando son usadas por desarrolladores experimentados con habilidades Java y Oracle intermedias. Debajo hay un ejemplo que utiliza la Utilidad SQL XML para crear un documento XML. En la Figura 1 se muestra la Utilidad SQL XML ejecutando una consulta SQL contra la base de datos Oracle y luego generando un documento XML a partir de los resultados de la consulta SQL.


SELECT CUSTNO, CUSTNAME FROM CUSTOMER WHERE CUSTNO = 1234;

<"xml version=1.0">

<ROWSET>

        <ROW id="1">
                     <CUSTNO>1234</CUSTNO>

                     <CUSTNAME> AJAX INC </CUSTNAME>
        </ROW>

</ROWSET>

Figura 1

Por defecto, ROWSET es el nombre de elemento del elemento documento XML. ROW es el nombre de elemento de cada fila en el resultado de la consulta. Los nombres de columnas son usados para los nombres de elemento. Una aplicación puede cambiar los nombres por defecto aplicando una hoja de estilo XSL para realizar una traducción. La utilidad puede además generar una representación en forma de string del documento XML o un árbol de elementos DOM XML en memoria. Adicionalmente, la utilidad XML puede ser usada para generar un DTD basado en el esquema de la tabla que está siendo consultada [11].

Oracle ofrece una rica implementación de soporte XML que provee acceso mediante programación a datos estructurados como XML. Se proveen características para estructuras centradas en el documento y estructuras centradas en los datos.

DB2 de IBM

El producto de base de datos DB2 de IBM ofrece soporte XML mediante su producto DB2 XML Extender. XML Extender provee nuevas funciones que permiten el elmacenamiento y manipulación de documentos XML. Documentos XML enteros pueden ser almacenados en bases de datos DB2 como datos caracter, como una única columna o como archivos externos, y aún pueden ser administrados por DB2. Se proveen funciones para obtener el documento XML completo o elementos individuales o atributos del documento XML. El producto XML Extender sirve además como repositorio para la administración de DTD. De manera similar a los otros productos de bases de datos líderes, DB2 almacena un documento XML como una única columna o mapea el documento XML a múltiples tablas y columnas.

Una característica única de DB2 es la habilidad de administrar e indexar documentos XML localizados disparmente en el sistema de archivos, una única columna, o distribuidos a través de múltiples tablas y columnas. El producto XML Extender está diseñado para proveer capacidades de búsqueda rápida con páginas (archivos) XML. Esto es útil para aplicaciones que comparten archivos XML o aplicaciones que buscan contra archivos XML como motores de búsqueda. El indexamiento es realizado usando Definición de Acceso a Datos (Data Access Definition, DAD) para definir los elementos y atributos XML que deben ser indexados. Funciones definidas por el usuario (User-defined functions, UDFs) pueden ser usadas para insertar, seleccionar o actualizar un documento completo o elementos y atributos dentro de un documento. DAD es usado también para definir el mapeo de DTD a las tablas y columnas relacionales [3].

Los procedimientos almacenados son implementados como parte de XML Extender que permiten la obtención o generación de documentos XML sobre la base de consultas SQL. Se mapea un DTD contra las tablas relacionales usando DAD para proveer la estructura del documento generado. Son también soportadas consultas dinámicas, que construyen el documento XML sobre la base de nombres de tablas y nombres de columnas en la consulta en vez del mapeo definido en el DAD [3].

SQL Server 2000 de Microsoft

SQL Server 2000 ha introducido muchas nuevas características que se enfocan en soporte XML. SQL Server provee soporte para Esquemas de Datos XML, la habilidad de ejecutar consultas XPath, y la habilidad de obtener y escribir datos XML. Los conjuntos de resultados de sentencias SELECT pueden ser retornados como documentos XML mediante el uso de una nueva palabra clave FOR XML. Son soportados múltiples modos o formatos de obtención de datos que varían la interpretación de la sentencia SELECT y la estructura resultante del documento XML con niveles crecientes de control sobre el documento XML resultante. La jerarquía de árbol XML puede ser determinada automáticamente por el órden de las columnas en la sentencia SELECT y sus nombres de tablas respectios. Alternativamente, el desarrollador puede controlar el contenido y estructura detallada del documento XML directamente en la consulta SELECT. Las columnas pueden ser mapeadas como elementos o atributos o un esquema puede ser especificado para proveer el mapeo [10].

SQL Server ha agregado también nuevas características para soportar la escritura de documentos XML desde el sistema de archivos a la base de datos usando una nueva función OpenXML. Para usar la función OpenXML, una representación interna del documento XML debe ser creada en memoria usando un nuevo procedimiento almacenado del sistema. La función OpenXML referencia el documento XML en memoria, especifica una consulta XPath para filtrar o localizar los datos XML dentro del documento, y especifica si las columnas relacionales en la base de datos serán mapeadas a elementos de documento XML o atributos. Un esquema puede ser también especificado para determinar el mapeo entre el documento XML y las tablas y columnas de la base de datos. Esto permite básicamente al desarrollador cargar un documento XML en memoria y luego usar SQL y XPath para retornar datos de consulta desde el documento XML en memoria [10].

Los tres vendedores líderes ofrecen similares capacidades para el manejo de XML. Oracle ofrece a una rica interfaz de programación para datos XML usando las clases, servlets y utilidades Java. SQL Server de Microsoft ofrece la mayor flexibilidad para la obtención de estructuración de datos como XML a través de los varios modos descritos arriba. Los tres soportan las estrategias de almacenamiento más comunes aunque las capacidades objeto-relacionales de Oracle pueden proveer mayor flexibilidad en esta área y prevenir parte de la traducción XML adicional que puede ser necesaria en los otros dos productos discutidos. El producto DB2 de IBM parece estar un paso atrás de la competencia con su soporte XML; aunque es posible soportar las tres estrategias comunes de almacenamiento, este soporte de la herramienta para las estrategias no parece ser tan rico.

Hay algunos que critican el uso del modelo relacional para el almacenamiento XML. La crítica más común es la sobrecarga y la programación extra asociada con el mapeo y traducción de datos estructurados XML en datos relacionales. La estructura jerárquica de un documento XML es también una forma que no se apega bien a las bases de datos relacionales. La estructura jerárquica de un documento XML es representada típicamente por joins en la base de datos relacional. Numerosos niveles de anidamiento en los documentos XML pueden causar problemas significativos de rendimiento y diseño en bases de datos relacionales cuando los documentos XML anidados resultan en tablas y operaciones join adicionales que pueden rápidametne degradar el rendimiento [4].

Los proponentes del uso de bases de datos relacionales maduras para el manejo de las demandas de almacenamiento XML de una organización son rápidas en apuntar a las características de almacenamiento y obtención de datos XML que han implementado rápidamente para hacer mucho más fácil la tarea del DBA y el desarrollador. La opción de cambiar a una nueva base de datos XML nativa conforme es discutida en la siguiente sección es una decisión que la mayoría de las organizaciones no hará rápidamente a menos que sea una decisión específica de una aplicación o una solución de nicho. Se ha invertido demasiado en entrenamiento, procedimientos y aplicaciones exsitentes para que las organizaciones abandonen su arquitectura de bases de datos actual. Los proponentes apuntan además a las capacidades transaccionales, seguridad, respaldo, recuperación y herramientas administrativas en los productos de bases de datos relacionales existentes que tomarán probablemente años para los vendedores de nuevas bases de datos XML nativas implementar completamente [4].

Hay sin embargo un número de razones para usar los tipos de bases de datos existentes y los productos de bases de datos existentes para almacenar XML aún cuando no sea de forma nativa. Primero, las bases de datos relacionales y orientadas al objeto comunes son bien conocidas, mientras que las bases de datos XML nativas son nuevas. Segundo, como resultado de la familiaridad con las bases de datos relacionales y orientadas al objeto, los usuarios entienden su comportamiento, especialmente en lo que respecta al rendimiento [4].

Bases de Datos XML Nativas

Debido tanto a las limitaciones reales como percibidas del uso de la tecnología de bases de datos relacionales para el almacenamiento de XML, nuevas clases de bases de datos están emergiendo como bases de datos XML nativas. Estas bases de datos se diferencian a sí mismas y ganan el término nativas porque almacenan los datos estructurados como XML sin la necesidad de traducir los datos a una estructura relacional o de objeto.

Las bases de datos XML nativas son diseñadas para trabajar con XQL (eXtensible Query Language), el cuál sirve un propósito similar a SQL en una base de datos relacional. XQL está diseñado para trabajar con documentos XML jerárquicamente estructurados y puede proveer características de consulta como filtros y joins. Los esquemas XML son implementados en bases de datos XML nativas para registrar reglas de almacenamiento e indexación de datos y para proveer y obtener información de almacenamiento a los mecanismos de bases de datos XML nativas. Adicionalmente, todos los objetos en una base de datos XML nativa son típicamente accesibles directamente mediante un URL [6]. El trabajo con bases de datos XML nativas involucra dos pasos básicos: (1) Describir los datos mediante Definiciones de Tipos de Datos (Document Type Definitions, DTD) o esquemas XML y (2) Definir un nuevo esquema de base de datos XML nativa XML o Mapa de Datos a usar para almacenamiento y obtención de datos [6].

El producto XML nativo visto como líder en el mercado es Tamino de Software AG. Al revisar las capacidades de Tamino, los beneficios de trabajar nativamente con XML se aclaran y provee una visión de dónde los vendedores líderes de bases de datos están probablemente encabezando con soporte XML nativo. Tamino provee tanto almacenamiento XML nativo como mecanismo de almacenamiento relacional SQL dentro del mismo producto. Esta característica permite a los usuarios consultar datos heterogéneos mediante XQL y recibir conjuntos de resultados en formato XML [7].

Al almacenar y obtener documentos XML usando el mecanismo XML, no es necesaria una traducción a formato relacional. Tamino puede almacenar casi cualquier tipo de documento incluyendo información formateada XML, páginas HTML, cartas, planillas de cálculo, audio, video, imágenes y datos de bases de datos SQL u de objetos. Otras bases de datos nativas XML incluyen dbXML, eXcelon, y x-Hive/DB.

Conclusiones y Resumen

El uso de XML continuará creciendo conforme las organizaciones continúen encontrando nuevos usos para el registro de datos estructurados. La necesidad de que las bases de datos manejen los requerimientos de datos de esas aplicaciones ciertamente continúa..

Probablemente no pasará mucho tiempo hasta que los vendedores líderes de bases de datos relacionales ofrezcan capacidades nativas de almacenamiento y obtención de datos XML conjuntamente con las capacidades SQL y relacionales actuales. Esto irá probablemente más allá de la traducción al almacenamiento nativo de XML en la base de datos. Las capacidades de almacenamiento XML que los vendedores líderes de bases de datos han agregado en los últimos dos años son una progresión natural hacia esta arquitectura. Por mientras, las aplicaciones intensivas en XML que requeiren capacidades de almacenamiento y obtención de datos muy rápidas y flexibles pueden ser tentadas de implementar alguno de los nuevos productos de bases de datos XML nativos. Las organizaciones de Tecnología de Información mayores con inversiones grandes en productos de bases de datos líderes probablemente se quedarán con las capacidades actuales XML de sus productos de bases de datos y no apostarán la empresa a productos de almacenamiento XML nativos más inmaduros [4].

Aún cuando el soporte XML nativo puede manejar los problemas de escalabilidad  y reducir la cantidad de trabajo involucrado por la eliminación de las actividades de traducción y mapeo, hay aún numerosos problemas con la administración de datos XML. Los datos XML son mucho más voluminosos. Un documento XML, en contraste con un archivo delimitado por comas o basado en registros, incluye tags para cada campo además de los valores de dato. Este hecho tiene implicaciones para las los requerimeintos de capacidad de almacenamiento y para el rendimiento de transmisión y procesamiento.

El impacto en las organizaciones debido al crecimeinto de XML no debe ser tomado a la ligera. Los beneficios obvios del uso de bases de datos para almacenar XML puede ser sobrepasado por el uso indebido o sin visión de la tecnología, resultando en sistemas que son difíciles de mantener, inflexibles, de mal rendimiento y difíciles de integrar. El soporte de XML en sistemas de administarción de bases de datos está creciendo. Los profesionales de Tecnologías de Información necesitan entender las capacidades para cosechar los beneficios que la tecnología tiene para ofrecer.

Glosario

BLOB - Binary Large Object. Un archivo grande, tipicamente una imagen o sonido, que debe ser manejado de manera especial debido a su tamaño.
B2B - Business to Business. El intercambio de productos, servicios o información entre negocios en vez que entre negocios y consumidores.
DBA - Database Administrator. Es el director o ejecutor de las actividades relacionadas con mantener un ambiente de bases de datos exitoso.
DOM - Document Object Model. Es una interfaz independiente de la plataforma y del lenguaje que permitirá a los progamas y scripts acceder dinámicamente y actualziar el contenido, estructura y estilo de los documentos.
DTD - Document Type Definition. Un predecesor de los esquemas XML. Define la estructura de un documento XML.
SQL - Structured Query Language. Es lenguaje de programación estándar para obtener y actualizar información de una base de datos.
XML - Extensible Markup Language. Es el formato universal para documentos y datos estructurados en la Web.
XML Schema - Provee un medio para definir la estructura, contenido y semántica de los documentos XML.
XPath - Lenguaje para direccionar partes de un documento XML.
XSLT - Lenguaje para transformar documentos XML.

Referencias

1
Bourret, Ronald. "XML and Databases." September, 1999. < http://www.rpbourret.com/xml/XMLAndDatabases.htm>(January 10, 2001).
2
Buck, Lee. "Modeling Relational Data in XML." < http://www.extensibility.com/tibco/resources/modeling.htm> (February 19, 2001).
3
Cheng, Josephine and Xu, Jane. "IBM DB2 XML Extender: An End to End Solution for Storing and Retrieving XML Documents." Paper presented at ICDE 2000 Conference, San Diego, CA.
4
Dejesus, Edmund. "XML Enters the DBMS Arena." ComputerWorld. October 30, 2000. < http://www.computerworld.com/cwi/story/0,1199,NAV63_STO53026,00.htm >(January 25, 2001).
5
Didier, Marting, et al (2000). Professional XML. Wrox Press Ltd.
6
Hess, D.A. (August 2000). Software AG, Inc. Tamino. Datapro Information Services, a subsidiary of Gartner Group.
7
Lewis, William. "Pillar of the Community." August 18, 2000. Intelligent Enterprise, < http://www.intelligententerprise.com/000818/feat1.shtml>(February 1, 2001).
8
North, Ken. "Oracle: Powered by XML and Java." < http://www.devx.com/upload/free/features/xml/1999/01win99/knwin99/knwin99.asp> (January 20, 2001).
9
Shanmugasundaram, Jayavel, et al. Relational Databases for Querying XML Documents: Limitations and Opportunities, Department of Computer Sciences, University of Wisconsin-Madison. 2000.
10
Wahlin, Dan. "Customize XML Data with SQL Server."XML Magazine, February/March 2001.
11
Wait, Brad. Oracle Corporation. "Using XML in Oracle Database Applications." < http://technet.oracle.com/tech/xml/info/htdocs/otnwp/about_oracle_xml_products.htm > (March 6, 2001).
12
Williams, Kevin, et al (2001). XML Structures for Existing Databases. WROX Press Ltd.

Biografía

Jerry Emerick (gjemerick@yahoo.com) es un recién graduado de la Grand Valley State University y un IT Project Manager de Gordon Food Service, una compañía privada considerada líder tecnológico en su industria. Sus inereses de investigación incluyen tecnologías de bases de datos, XML y Análisis y Diseño Orientado a Objetos. Él también está participando actualmente en proyectos de eBusiness enfocándose en aplicaciones Extranet que se enfrentan al cliente.


Last Modified:
Location: www.acm.org/crossroads/espanol/xrds8-4/XML_RDBMS.html