XML y Base de Datos
XML y Base de Datos
XML y Base de Datos
TEMA
CURSO
: Base de Datos
PROFESOR
ALUMNO
NOTA:
PARA ABORDAR EL TEMA DE XML Y BASE DE DATOS CITARE UNA LECTURA QUE
ENCONTR EN INTERNET, PERTENECIENTE A LA REVISTA CIENTFICA VISIN DE FUTURO. A SU VEZ, ESTA LECTURA CONTIENE UN EJEMPLO PRCTICO DE UNA BASE DE DATOS DE UNA BIBLIOTECA LLEVADA A XML, MUY PARECIDO AL PROYECTO QUE PRESENTAMOS EN ESTE CICLO (2011-1)- VER PAGINA 7
INTRODUCCION
XML, siglas en ingles de eXtensible Markup Languaje (lenguaje de marcas extensible), es un meta lenguaje extensible de etiquetas desarrollado por el World Wide Web Consortium (W3C).Es una simplificacin y adaptacin del SGML y permite definir la gramtica de lenguajes especficos (de la misma manera que HTML es a su vez un lenguaje definido por SGML). Por lo tanto XML no es realmente un lenguaje en particular, sino una manera de definir lenguajes para diferentes necesidades. Algunos de estos lenguajes que usa XML para su definicin son XHTML, SVG, MathML. XML no ha nacido solo para su aplicacin en internet, sino que se propone como un estndar para el intercambio de informacin estructurada ente diferentes plataformas. Se puede usar en BASE DE DATOS, editores de texto, hojas de clculo y casi cualquier cosa imaginable. XML es una tecnologa sencilla que tiene a su alrededor otras que la complementan y la hacen mucho ms grande y con unas posibilidades mucho mayores. Tiene un papel muy importante en la actualidad ya que permite la compatibilidad ente sistemas para compartir la informacin de una manera segura, fiable y fcil. XML proviene de un lenguaje inventado por IBM en los aos setenta, llamado GML (Generalized Markup Languaje), que surgi por la necesidad que tenia la empresa de almacenar grandes cantidades de informacin. Este lenguaje gusto a la ISO, por lo que en 1986 trabajaron para normalizarlo, creando SGML (Estndar Generalized Markup Languaje), capaz de adaptarse a un gran abanico de problemas. Apartir de l se han creado otros sistemas para almacenar informacin. En el ao 1989 Tim Berners Lee cre la web, y junto con ella el lenguaje HTML. Este lenguaje se defini en el marco de SGML y fue de lejos la aplicacin ms conocida de este estndar. Los navegadores web sin embargo siempre han puesto pocas exigencias al cdigo HTML que interpretan y as las paginas las pginas web son caticas y no cumplen con la sintaxis. Estas pginas web dependen fuertemente de una forma especfica de lidiar con los errores y las ambigedades, lo que hace a las pginas ms frgiles y a los navegadores ms complejos.
Otra limitacin del HTML es que cada documento pertenece a un vocabulario fijo, establecido por el DTD (definicin tipo de documento). No se pueden combinar elementos de diferentes vocabularios. Asimismo es imposible para un intrprete (por ejemplo un navegador) analizar el documento sin tener conocimiento de su gramtica (del DTD). Por ejemplo, el navegador sabe que antes de una etiqueta <div> debe haberse cerrado cualquier <P> previamente abierto. Los navegadores resolvieron esto incluyendo lgica ad hoc para el HTML, en vez de incluir un analizador genrico. Ambas opciones, de todos modos, son muy complejas para los navegadores. Se busc entonces definir un subconjunto del SGML que permita: Mezclar elementos de diferentes lenguajes. Es decir que los lenguajes sean extensibles. La creacin de analizadores simples, sin ninguna lgica especial para cada lenguaje. Empezar de cero y hacer hincapi en que no se acepte nunca un documento con errores de sintaxis
Para lograr esto XML deja de lado muchas caractersticas de SGML que estaban pensadas para facilitar la escritura manual de documentos. XML en cambio est orientando a hacer las cosas ms sencillas para los programas automticos que necesiten interpretar el documento.
Definicin de XML. Es un formato de texto estandarizado que sirve para representar informacin estructurada en la web. Que la informacin sea estructurada quiere decir que se compone de partes bien definidas, y que esas partes se componen a su vez de otras partes. Entonces se tiene un rbol de trozos de informacin. Como subconjunto simplificado de SGML incorpora caractersticas de SGML, entre las que se incluyen las tres ms importantes:
Extensibilidad Estructura Validacion
Ventajas de XML.
Es extensible: Despus de diseado y puesto en produccin, es posible extender XML con la adicin de nuevas etiquetas, de modo que se pueda continuar utilizando sin complicacin alguna. El analizador es un componente estndar, no es necesario crear un analizador especfico para cada versin de lenguaje XML. Esto posibilita el empleo de cualquiera de los analizadores disponibles. De esta manera se evitan bugs y se acelera el desarrollo de aplicaciones. Si un tercero decide usar un documento creado en XML, es sencillo entender su estructura y procesarla. Mejora la compatibilidad entre aplicaciones. Podemos comunicar aplicaciones de distintas plataformas, sin que importe el origen de los datos, es decir, podramos tener una aplicacin en Linux con una base de datos Postgres y comunicarla con otra aplicacin en Windows y Base de Datos MS-SQL Server. Transformamos datos en informacin, pues se le aade un significado concreto y los asociamos a un contexto, con lo cual tenemos flexibilidad para estructurar documentos. Mejora la compatibilidad entre aplicaciones. Podemos comunicar aplicaciones de distintas plataformas, sin que importe el origen de los datos, es decir, podramos tener una
aplicacin en Linux con una base de datos Postgres y comunicarla con otra aplicacin en Windows y SQL Server, por dar un ejemplo.
Desventajas de XML.
Define ms la presentacin que el contenido. No es fcilmente procesable por mquinas. Problemas de internacionalizacin. Su interpretacin es ambigua segn el software utilizado. Su estructura es monoltica.
Es posible que con el tiempo las mayores ventajas del XML se vuelvan sus desventajas. La posibilidad de construir sistemas acordes a nuestras necesidades para el intercambio de datos podra llevarnos a la proliferacin de versiones incompatibles y si esto llegase a suceder, entonces la solucin que plantea el XML ante la bsqueda de intercambio universal de informacin, lo llevara a su opuesto; en vez de unificar todo un lenguaje, nos encontraramos con lenguajes muy especficos y cada vez ms alejados de la universalidad.
Prologo.- Aunque no es obligatorio, los documentos XML pueden empezar con unas lneas que
describen la versin XML, el tipo de documento y otras cosas. El prlogo de un documento XML contiene: Una declaracin XML. Es la sentencia que declara al documento como un documento XML.
Una declaracin de tipo de documento. Enlaza el documento con su DTD (definicin de tipo de documento), o el DTD puede estar incluida en la propia declaracin o ambas cosas al mismo tiempo. Uno o ms comentarios e instrucciones de procesamiento.
Cuerpo.- A diferencia del prlogo, el cuerpo no es opcional en un documento XML, el cuerpo debe
contener un y solo un elemento raz, caracterstica indispensable tambin para que el documento est bien formado. Sin embargo es necesaria la adquisicin de datos para su buen funcionamiento.
Elementos.- Los elementos XML pueden tener contenido (ms elementos, caracteres o ambos), o bien ser elementos vacos. Ejemplo: <elemento/>, <ciudad> y </ciudad>. Atributos.- Los elementos pueden tener atributos, que son una manera de incorporar
caractersticas o propiedades a los elementos de un documento. Deben ir entre comillas. Por ejemplo, un elemento estudiante puede tener un atributo Mario y un atributo tipo, con valores come croquetas y taleno respectivamente. <Estudiante Mario="come croquetas" tipo="taleno">Esto es un da que Mario va paseando</Estudiante>. Entidades predefinidas.- Entidades para representar caracteres especiales para que, de esta forma, no sean interpretados como marcado en el procesador XML. Ejemplo: entidad predefinida: entidad predefinida: & carcter: &.
Secciones CDATA.- Son secciones que no son analizadas sintcticamente y se emplean para bloques de texto que tienen que ser puestos a un lado por un analizador XML. Ejemplo:
<! [CDATA [<name>Juan Perez</name> <direccion>Lima</direccion> ] ] >
Comentarios.- Comentarios a modo informativo para el programador que han de ser ignorados por el procesador. Los comentarios en XML tienen el siguiente formato: <!--- Esto es un comentario ---> <!-- Otro comentario -->
Los documentos denominados como bien formados (del ingls well formed) son aquellos que cumplen con todas las definiciones bsicas de formato y pueden, por lo tanto, analizarse correctamente por cualquier analizador sintctico (parser) que cumpla con la norma. Se separa esto del concepto de validez que se explica ms adelante. Los documentos han de seguir una estructura estrictamente jerrquica con lo que respecta a las etiquetas que delimitan sus elementos. Una etiqueta debe estar correctamente incluida en otra, es decir, las etiquetas deben estar correctamente anidadas. Los elementos con contenido deben estar correctamente cerrados. Los documentos XML slo permiten un elemento raz del que todos los dems sean parte, es decir, solo pueden tener un elemento inicial. Los valores atributos en XML siempre deben estar encerrados entre comillas simples o dobles.
El XML es sensible a maysculas y minsculas. Existe un conjunto de caracteres llamados espacios en blanco (espacios, tabuladores, retornos de carro, saltos de lnea) que los procesadores XML tratan de forma diferente en el marcado XML. Es necesario asignar nombres a las estructuras, tipos de elementos, entidades, elementos particulares, etc. En XML los nombres tienen alguna caracterstica en comn. Las construcciones como etiquetas, referencias de entidad y declaraciones se denominan marcas; son partes del documento que el procesador XML espera entender. El resto del documento entre marcas son los datos entendibles por las personas
Que un documento est bien formado solamente se refiere a su estructura sintctica bsica, es decir, que se componga de elementos, atributos y comentarios como XML especifica que se escriban. Ahora bien, cada aplicacin de XML, es decir, cada lenguaje definido con esta tecnologa, necesitar especificar cul es exactamente la relacin que debe verificarse entre los distintos elementos presentes en el documento. Esta relacin entre elementos se especifica en un documento externo o definicin (expresada como DTD Document Type Definition, 'Definicin de Tipo de Documento' o como XSchema). Crear una definicin equivale a crear un nuevo lenguaje de marcado, para una aplicacin especfica.
XML SCHEMA. Un Schema es algo similar a un DTD. Define qu elementos puede contener un
documento XML, cmo estn organizados y qu atributos y de qu tipo pueden tener sus elementos. Va mas all que la DTD, ya que permite asociar los tipos de datos con elementos. El aspecto ms interesante de los esquemas XML es que estn expresados en sintaxis XML. Esto significa que un esquema XML se crea como un documento XML.
Qu es XML? El XML (Extensible Markup Language) es el nuevo estndar universal para intercambio electrnico de datos. Este estndar es un metalenguaje que puede ser utilizado para describir la estructura lgica 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, pginas web, el comercio electrnico, hasta las ms complejas soluciones de almacenamiento en bases de datos. En trminos comparativos, se puede decir que XML ha causado el mismo impacto que produjo la aparicin del SQL. Hoy existe un problema creciente, generado por forma en que se almacenan los datos en una cantidad inmensa de cientos de millones pginas web; lo que est causando que cuando se utiliza la Red como medio de informacin, sea cada vez ms difcil acceder a ellos y administrarlos adecuadamente. Estos datos estn 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 orgenes
Se podra afirmar que la mayora 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 aplicacin de SGML, incluyendo al HTML, contiene una o ms 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 definicin formal de un tipo de documento, y especifica la estructura lgica de cada documento. Define tanto los elementos del documento, qu etiquetas sern utilizadas, cuales son susatributos, y como stos pueden ser combinados. El SGML se caracteriza por tener algunas ventajas decisivas:
Es un estndar no propietario y est apoyado por gran nmero de proveedores de software. Los documentos pueden ser ledos directamente por los usuarios y pueden ser analizados (hacer que su cdigo sea interpretado) por programas. Los documentos SGML describen la estructura de los datos, no solo como stos van a ser presentados.
Pero SGML tiene tambin 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 documentacin tcnica, particularmente en los sectores militares y de inteligencia, manufactura de aeronaves, publicaciones y archivos. El HTLM, es una aplicacin del SGML, por su facilidad de uso se volvi muy popular; y puede afirmarse que hoy es la aplicacin ms difundida de SGML.Pero a diferencia de SGML el HTML no describe el contenido semntico o la estructura de los datos, slo abarca los aspectos relativos a la presentacin de documentos.
Cualquier elemento VACO (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 seccin 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 Declaracin de Documento nico (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. Documentos vlidos: Un documento bien formado, se dice adems que es vlido, 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 jerrquica que define la DTD, adems 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 diseado para ser un subconjunto de SGML, cualquier documento XML vlido debe ser tambin un documento SGML vlido. Hay varios modos de referenciar un DTD en un documento XML: Una opcin es crear un archivo que contenga de definicin 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.
Los esquemas de XML son los sucesores de las DTD Es muy probable que muy pronto los esquemas de XML sern utilizados en la mayora de las aplicaciones de Internet como reemplazo de las DTD, porque: Son ms fciles de aprender que las DTD. Son extensibles a las adiciones futuras. Son ms ricos y ms 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 ms fcil para describir documentos permisibles; de validar la correccin de los datos; sea fcil trabajar con los datos de una base de datos, sea fcil definir facetas de datos (restricciones en el dato), sea fcil modelar datos; sea fcil convertir datos entre diferentes tipos. Otra gran fortaleza de los esquemas de XML es que estn 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. Adems se puede utilizar el analizador de sintaxis de XML para analizar los archivos del esquema.
Una alternativa a la utilizacin de las hojas de estilo en cascada CSS, es recurrir al XSL cuando se requiera ms potencia de diseo, 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 vlido hay que asociarlo a una DTD. Se puede incluir la definicin 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 aadir a la declaracin <!DOCTYPE y a continuacin el nombre del nombre del tipo de documento, en vez de la URI de la DTD. La definicin de la DTD se debe escribir entre los smbolos '[' y ']'. Para obtener una definicin ms 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> Visualizacin 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 vlido; 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 diseo de la presentacin y se declara el conjunto de registros (recordset) de la base de datos que sern 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 presentacin 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 diseo de presentacin de los datos y la especificacinde los registros del conjunto de datos que sern mostrados.
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 preferiran. 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 tpicamente 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 administracin 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 tcnico en Rochester, N.Y."Usando XML, podemos crear el contenido sin importar la presentacin, 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. tambin 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 traduccin. 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 rpidamente XML para llenar una base de datos que pueda ya ser parte de aplicaciones existentes" diceRonald Bourret, creador de XMLDBMS. Naturalmente, el producto trabaja tambin 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 vaco 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 crticas respecto al uso de las RDBMS y las OODB para almacenar XML. Por ejemplo, una de caractersticas atractivas de XML es su organizacin jerrquica, una situacin 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 jerrquicas 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 difcil de mantener. Adems, 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 ms fastidioso al tratar en uno de los puntos fuertes de XML: producir las pginas web. El problema es que las pginas 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 traduccin de XML. Pero esta solucin tiene muchos gastos indirectos en su implementacin.
Adems, 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 requerirn las aplicaciones basadas en la web y el comercio electrnico. La demanda de XML se ampliar; las nuevas aplicaciones incluirn motores de bsqueda en Internet que utilizan etiquetas de XML, los sistemas de comercio electrnico que deben producir salida rpidamente, la reutilizacin de los datos y la personalizacin 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 definicin de lo que son las NXD, ofrecida por la iniciativa de XML:DB Una base de datos nativa de XML.... Define el modelo lgico de un documento de XML, y almacena y recupera documentos segn ese modelo. Como mnimo, 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 lgico, tal como una base de datos relacional tiene una fila en una tabla como su unidad fundamental del almacenamiento lgico. No se requiere tener ningn modelo de almacenamiento fsico en particular. Por ejemplo, el documento puede ser creado en una base de datos relacional, jerrquica, 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 definicin, 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 definicin, 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 manipulacin de los documentos de XML. Caractersticas 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 caractersticas bsicas. La mayora de los vendedores hoy tienen disponibles productos de la primera generacin, y algunos de los ms maduros ya tienen productos de la segunda generacin. El modelo de NXD todava se est desarrollando y continuar desarrollndose por varios aos. Almacenamiento XML Las NXD almacenan los documentos XML como una unidad y crearn un modelo que se alinee muy cerca al XML o una de tecnologas relacionadas XML como el Infoseto DOM. Este modelo incluye niveles arbitrarios del anidamiento y complejidad, como as tambin un completo soporte para manejar contenido mixto y semiestructurado. Este modelo es mapeado automticamente por el
NXD en el mecanismo subyacente del almacenamiento. El mapeo usado asegurar que el modelo especfico 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 representacin 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 sera tan til como se podra pretender. La razn de esto es simplemente que los datos que se vern 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 cmodo trabajando con las herramientas de XML tales como DOM, SAX, XPath y XSL-T, entonces sern probable que trabaje cmodo con una NXD. La base de datos abstraer todos los detalles de cmo se almacena el XML y dejar al desarrollador en libertad paraconstruir aplicaciones usando tecnologas 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 coleccin. Esto significa que se puede almacenar cualquier documento de XML en la coleccin, sin importar el esquema. Al hacer esto, se pueden construir consultas a travs de todos los documentos en la coleccin. 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 ms fcil. Desafortunadamente, esta caracterstica 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 validacin con las DTD, y algunos pueden validar colecciones enteras de documentos va 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 interrogacin de la base de datos, XPath est levemente extendido para permitir consultas a travs de colecciones de documentos. Desafortunadamente, XPath no fue diseado 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 ms 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 ms comprensivo. Algunas de estas cuestiones pueden ser resueltas utilizando utilizando XSLT. Sin embargo, XPATH es un mtodo 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 bsquedas, como por ejemplo Intermedia Text de Oracle.
Para mejorar el funcionamiento de las consultas, las NXD soportan la creacin de ndices en los datos almacenados en las colecciones. Estos ndices se pueden utilizar para mejorar dramticamente la velocidad de la ejecucin de la consulta. Los detalles de qu puede ser indexado y cmo se crean los ndices variarn ampliamente entre los distintos productos, pero la mayora soportan esta de la misma manera. Actualizacin La actualizacin de los documentos es actualmente el punto dbil de las actuales NXD. La mayora 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 tecnologa abierta que utilizan XML:DB XUpdate para este mismo propsito. Esto es probable ser un tema problemtico, hasta que XQuery incorpore un lenguaje de actualizacin. Hasta entonces, la manipulacin de DOM ser probablemente el mtodo ms comn de actualizacin usado con los productos de NXD.
Las NXD no son una panacea y definitivamente no se est pensado sustituir los sistemas de base de datos existentes. Son simplemente otro recurso ms 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 estn haciendo grandes inversiones en el desarrollo del estndar, las interfaces y herramientas para XML. Microsoft ya est proveyendo tecnologa 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 tambin ha seleccionado a XML para la implementacin del "Channel Data Format" un protocolo para la estandarizacin del procesamiento de la informacin en la red, por ejemplo en la tecnologa push. Poca gente sabe que Quicken, que es una aplicacin muy difundida, utiliza el formato XML. Compaas cuya orientacin es ms hacia el rea de los mainframe o UNIX tambin estn 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. Compaas como Sun, Oracle, Sybase y Corel tambin se estn 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 informacin y datos para ser utilizados en la red. Cumple con los requerimientos que van ms all del alcance de HTML. Con el apoyo del W3C, XML ha encontrado una creciente aceptacin como estndar no propietario y es adecuado no solo para describir documentos, sino tambin como lenguaje de descripcin de datos almacenados en bases de datos. En muy poco tiempo, el XML ha sido adoptado por un reconocido grupo de organizaciones de tecnologas de la Informacin. Actualmente los vendedores de las bases de datos ms populares ya han incorporado la tecnologa de XML en sus productos, y los analistas predicen que XML tiene un futuro brillante. El proceso de estandarizacin ya est concluido, y XML provee suficiente flexibilidad como para soportar un amplio rango de aplicaciones. Entonces, Por qu seguir esperando para iniciar el cambio?