Bases de Datos Nativas XML
Bases de Datos Nativas XML
Bases de Datos Nativas XML
en
sistemas
Resumen de la Investigacin
Para empezar hay que saber que significa XML son siglas en ingles pero en espaol significan Lenguaje de Anotacin Extensible lo que significa que es un Lenguaje que se puede extender con ayuda de otros, por lo cual su capacidad es muy grande, tanto como para poder incluso combinarse con las Bases de Datos usando SQL. Una vez esto tenemos que el uso de XML continuar creciendo conforme las organizaciones continen 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 contina. Probablemente no pasar mucho tiempo hasta que los vendedores lderes de bases de datos relacionales ofrezcan capacidades nativas de almacenamiento y obtencin de datos XML conjuntamente con las capacidades SQL y relacionales actuales. Esto ir probablemente ms all de la traduccin al almacenamiento nativo de XML en la base de datos. Las capacidades de almacenamiento XML que los vendedores lderes de bases de datos han agregado en los ltimos dos aos son una progresin natural hacia esta arquitectura. Por mientras, las aplicaciones intensivas en XML que requieren capacidades de almacenamiento y obtencin de datos muy rpidas y flexibles pueden ser tentadas de implementar alguno de los nuevos productos de bases de datos XML nativos. Las organizaciones de Tecnologa de Informacin mayores con inversiones grandes en productos de bases de datos lderes probablemente se quedarn con las capacidades actuales XML de sus productos de bases de datos y no apostarn la empresa a productos de almacenamiento XML nativos ms inmaduros. An cuando el soporte XML nativo puede manejar los problemas de escalabilidad y reducir la cantidad de trabajo involucrado por la eliminacin de las actividades de traduccin y mapeo, hay an numerosos problemas con la administracin de datos XML. Los datos XML son mucho ms voluminosos. Un documento XML, en contraste con un archivo delimitado por comas o basado en registros, incluye tags para cada campo adems de los valores de dato. Este hecho tiene implicaciones para las los requerimientos de capacidad de almacenamiento y para el rendimiento de transmisin y procesamiento. El impacto en las organizaciones debido al crecimiento 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 visin de la tecnologa, resultando en sistemas que son difciles de mantener, inflexibles, de mal rendimiento y difciles de integrar. El soporte de XML en sistemas de administracin de bases de datos est creciendo. Los profesionales de Tecnologas de Informacin necesitan entender las capacidades para cosechar los beneficios que la tecnologa tiene para ofrecer.
Desarrollo de la Investigacin
comn tener ambas categoras de datos dentro de la misma aplicacin. 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 aplicacin. Si bien es posible almacenar datos centrados en el documento en bases de datos relacionales u orientadas al objeto, esto resultar tpicamente en duplicar el trabajo de un sistema administrador de contenido. Similarmente, dado que un sistema de administracin de contenido est usualmente construido sobre una base de datos orientada al objeto o jerrquica, tratar de usarlo como base de datos probablemente ser fustrante. La diferencia entre los datos centrados en los datos y los centrados en el documento no siempre es fcil 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 artculos de revistas, pueden tener datos estructurados como el nombre del autor y la fecha. Tpicamente los requerimeintos que manejan los datos se inclinan con mayor peso en una direccin o la otra. Mas an, tomarse mayor tiempo en entender si los datos son ms centrados en el documento o en los datos ser ventajoso cuando se elija la estrategia de almacenamiento.
2. Almacenar una forma modificada del documento completo en el sistema de archivos. Este mtodo es popular cuando el nmero de documentos es pequeo y los documentos XML son infrecuentemente actualizados y transferidos entre sistemas de archivos. Nuevamente, los vendedores lderes de bases de datos soportan este mtodo, pero tiene limitaciones obvias que incluyen escalabilidad, flexibilidad en almacenamiento y recuperacin, 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 mtodo funciona para un nmero menor de documentos XML y tpicamente puede ser incluido solamente en el diseo dado que el documento XML se est moviendo por el sistema de archivos. Eventualmente, los contenidos de un documento XML podran terminar en una base de datos.
3. 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 opcin muy popular y es el foco de muchas caractersticas habilitadoras de XML en los productos principales de bases de datos y es el tema de muchos artculos y libros en el ltimo par de aos. Las siguientes secciones discutirn este mtodo en mayor detalle. Algunos enfoques comunes, descritos en la seccin siguiente, estn emergiendo para tomar una base de datos relacional existente y mapearla o moverla a un documento XML y a un esquema.
columnas y los atributos que representan valores de columna. La mayora de los esfuerzos aterrizarn en alguna parte en el medio. El proceso de mapeo y traduccin puede ser descompuesto en unos pocos pasos bsicos. 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 tambin anidadas como elementos, pero pueden surgir problemas cuando el mismo nombre de columna es usado en ms de una tabla. De esta manera el enfoque ms simple es mapear las columnas como atributos XML donde las colisiones de nombre en el esquema XML no son un problema. El segundo paso es crear las claves primarias en el esquema XML. Un enfoque podra ser agregar un atributo para la columna clave primaria con un ID agregado al nombre de la columna. Este atributo podra necesitar ser definido en el esquema XML como de tipo ID. Pueden surgir nuevamente problemas de colisin al crear claves primarias en el esquema XML. A diferencia de las bases de datos relacionales donde las claves primarias necesitan ser nicas slo dentro de una tabla, un atributo ID dentro de un documento XML debe ser nico a travs 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 travs del documento XML. 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 navegacin a travs del documento XML.
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 relacin Esquema XML y Esquema Relacional. Se pueden usar muchas variaciones de esquemas XML para representar la misma base de datos relacional. Al entender las capacidades y tcnicas disponibles cuando se construye el esquema XML, tanto el tamao del documento como el tiempo de procesamiento pueden ser minimizados. Este entendimiento requiere conocimiento detallado de las capacidades de los esquemas XML y adems un entendimiento acabado de cmo DOM y el API SAX procesarn realmente el documento XML. Esas APIs son el estndar de facto para el procesamiento de documentos XML.
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. Oracle ofrece tambin una utilidad SQL XML para Java. Esta herramienta es un conjunto de clases Java que permite la insercin de datos XML en tablas o vistas de objetos. Las clases Java pueden generar tambin documentos XML de resultados de consultas SQL. Un Servlet Java XSQL est tambin disponible que permite que la ejecucin 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 rpida, 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 aplicacin puede cambiar los nombres por defecto aplicando una hoja de estilo XSL para realizar una traduccin. La utilidad puede adems generar una representacin 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. Oracle ofrece una rica implementacin de soporte XML que provee acceso mediante programacin a datos estructurados como XML. Se proveen caractersticas 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 manipulacin 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 an 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 adems como repositorio para la administracin de DTD. De manera similar a los otros productos de bases de datos lderes, DB2 almacena un documento XML como una nica columna o mapea el documento XML a mltiples tablas y columnas. Una caracterstica 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 travs de mltiples tablas y columnas. El producto XML Extender est diseado para proveer capacidades de bsqueda rpida con pginas (archivos) XML. Esto es til para aplicaciones que comparten archivos XML o aplicaciones que buscan contra archivos XML como motores de bsqueda. El indexamiento es realizado usando Definicin 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 tambin para definir el mapeo de DTD a las tablas y columnas relacionales. Los procedimientos almacenados son implementados como parte de XML Extender que permiten la obtencin o generacin 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 tambin soportadas consultas dinmicas, 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.
de datos relacionales cuando los documentos XML anidados resultan en tablas y operaciones join adicionales que pueden rpidametne degradar el rendimiento. Los proponentes del uso de bases de datos relacionales maduras para el manejo de las demandas de almacenamiento XML de una organizacin son rpidas en apuntar a las caractersticas de almacenamiento y obtencin de datos XML que han implementado rpidamente para hacer mucho ms fcil la tarea del DBA y el desarrollador. La opcin de cambiar a una nueva base de datos XML nativa conforme es discutida en la siguiente seccin es una decisin que la mayora de las organizaciones no har rpidamente a menos que sea una decisin especfica de una aplicacin o una solucin 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 adems a las capacidades transaccionales, seguridad, respaldo, recuperacin y herramientas administrativas en los productos de bases de datos relacionales existentes que tomarn probablemente aos para los vendedores de nuevas bases de datos XML nativas implementar completamente. Hay sin embargo un nmero de razones para usar los tipos de bases de datos existentes y los productos de bases de datos existentes para almacenar XML an 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.
(2) Definir un nuevo esquema de base de datos XML nativa XML o Mapa de Datos a usar para almacenamiento y obtencin de datos. El producto XML nativo visto como lder 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 visin de dnde los vendedores lderes de bases de datos estn probablemente encabezando con soporte XML nativo. Tamino provee tanto almacenamiento XML nativo como mecanismo de almacenamiento relacional SQL dentro del mismo producto. Esta caracterstica permite a los usuarios consultar datos heterogneos mediante XQL y recibir conjuntos de resultados en formato XML. Al almacenar y obtener documentos XML usando el mecanismo XML, no es necesaria una traduccin a formato relacional. Tamino puede almacenar casi cualquier tipo de documento incluyendo informacin formateada XML, pginas HTML, cartas, planillas de clculo, audio, video, imgenes y datos de bases de datos SQL u de objetos. Otras bases de datos nativas XML incluyen dbXML, eXcelon, y x-Hive/DB.
Glosario
BLOB - Binary Large Object. Un archivo grande, tipicamente una imagen o sonido, que debe ser manejado de manera especial debido a su tamao. B2B - Business to Business. El intercambio de productos, servicios o informacin 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 dinmicamente 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 programacin estndar para obtener y actualizar informacin 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 semntica de los documentos XML. XPath - Lenguaje para direccionar partes de un documento XML. XSLT - Lenguaje para transformar documentos XML.
Conclusin
Como Conclusin tomo que XML es una herramienta muy potente con la cual podemos tener un manejo de las Bases de datos de una manera mas segura y fcil, haciendo que estas sean mas rpidas. Y mas fcil de manejar con miles de caractersticas mas como por ejemplo utilizando la aplicacin de su preferencia, y de esta manera almacenarla en una de estas bases de datos y evitarse el proceso de conversin de un formato a otro, adems, de tener en cuenta que por ahora an no existe un lenguaje estndar para el procesamiento de los datos, estas bases de datos son adecuadas para realizar bsquedas sobre los documentos almacenados. Conforme todas las carencias que tienen estas bases de datos sean superadas, podrn ser una muy buena alternativa para el almacenamiento de la informacin no solo por que la informacin estar almacenada en un formato estndar, XML, sino porque facilitar el desarrollo de aplicaciones basadas en XML, como por ejemplo los Web Services.
Bibliografia
http://es.wikipedia.org/wiki/XML-RPC http://geneura.ugr.es/~jmerelo/xml/ http://www.monografias.com/trabajos7/xml/xml.shtml http://geneura.ugr.es/~maribel/xml/introduccion/index.shtml http://www.w3c.es/divulgacion/guiasbreves/tecnologiasxml http://www.desarrolloweb.com/manuales/18/