[GIJRV-2006-2007]Tema2-Bases de Datos XML - KybeleGIJRV-2006... · Tamino XML Server y X-Hive Extensiones de BD para XML ... (basada en tipos) Control de versiones ... Control de
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
� Representación de información� Representación detallada (Fine-grained)� Representación tipada (basada en tipos)� Control de versiones (Versioning)
� Acceso a los contenidos� Acceso detallado (Fine-grained): DOM. XQuery, XPath…� Acceso tipado: enteros, listas, objetos…� Actualizaciones detalladas� Estructuras de índices de valores (árboles B), texto y paths (rutas de
� Esquemas de información� Validación de esquemas (evitar documentos no válidos)� Inferencia de representaciones tipadas� nuevos tipos a partir del esquema� Optimización de acceso
� Extensibilidad� Con funcionalidad � funciones y procedimientos� Con estructuras de índices� indización personalizada
� Funcionalidad de los SGBD clásicos � Propiedades ACID: Atomicity, Consistency, Isolation, Durability� Transacciones� Control de concurrencia� Control de acceso� Backup y recuperación
� Son bases de datos, y como tales soportan transacciones, acceso multi-usuario, lenguajes de consulta, etc., diseñadas especialmente para almacenar documentos XML
� En una BD XML nativa el aspecto principal de los productos es elalmacenamiento de los documentos XML.
� El término “nativa” se utiliza por los vendedores de los productos comerciales especializados en soluciones de BD XML .� Estrategia de Marketing ���� diferenciar sus soluciones de las extensiones para
XML ofrecidas por los vendedores de SGBD convencionales (BDR, BDOO, …)
1. Almacenamiento basado en texto (ficheros de texto): Almacena el documento XML entero en forma de texto y proporciona alguna funcionalidad de base de datos para acceder a él.
� Aplican (como mucho) técnicas de compresión para reducir el espacio de almacenamiento
� Mantienen índices adicionales para aumentar la eficiencia en el acceso a la información.
� Pueden definirse sobre BD o sistemas de ficheros:• Posibilidad sencilla: Almacenar el documento como un BLOB en una base
de datos relacional, o mediante un fichero, y proporcionar algunos índices sobre el documento que aceleren el acceso a la información
• Posibilidad sofisticada: Almacenar el documento en un almacén adecuado con índices, soporte para transacciones, etc.
� Productos de Investigación� Lore: Prototipo para almacenamiento de información semi-estructurada
• Permite representar estructuras de grafos irregulares (incluyendo jerarquías)
• Lenguaje de consulta potente para la gestión de documentos XML (Lorel)
• Primero se insertan los datos y luego se crea un “resumen” (esquema DataGuide)
� Natix
• Gestor de almacenamiento dedicado permitiendo un clustering de árboles y subárboles de documentos XML en registros de disco físico de tamaño limitado de forma flexible y eficiente.
� TIMBER
• Se construye sobre el gestor de almacenamiento multi-propósito Shore.
� Formado por 3 capas: servicios de núcleo, servicios de permisos y soluciones (componentes externos)
� Los servicios del núcleo incluyen, entre otros, una BD XML nativa y una BD relacional integrada
� El motor XML utiliza DataMap, que describe donde se almacena el contenido de un documento XML� es posible combinar el contenido XML con datos de diferentes orígenes
� X-Hive/DB is a native XML database that includes support for XQuery, XPath, DOM Level 3, XSLT, and XSL-FO, as well transactions, user-and group-level access control, load balancing across multiple servers, and BLOB storage. Additional features include:� Indexes. X-Hive/DB supports structural, content, full-text, and custom indexes.
Full-text indexes use a proprietary indexing mechanism; these indexes can be searched from XQuery through the xhive:fts (full-text search) function. In addition, users can integrate their own full-text index engines. Custom indexes are based on a user-implemented DOM NodeFilter.
� Linking. A link engine that implements XLink and XPointer supports bi-directional links, link-bases, and link management.
� External data. The SQL Loader can retrieve a snapshot of relational data (JDBC)or text files. The data is converted to XML using a table model and can be integrated into other documents.
� WebDAV. Remote clients can directly access collections and documents in the database through WebDAV
� J2EE Resource Adapter. An implementation of J2EE Resource Adapter allows X-Hive/DB applications to use the transaction management facilities of an EJB application server
� Versioning. Both linear and branched versioning (multiple versions of the same document) are supported
� In addition, an implementation of XUpdate (from the XML:DB Initiative) that uses Lexus may be downloaded from the X-Hive Web site.
� Diferentes aproximaciones:1. Almacenamiento no estructurado: Almacenamiento del documento XML
directamente en formato de texto en un CLOB (Character Large OBject).
• Lo soportan la mayoría de los SGBD relacionales. Incluyen además funciones para acceder el contenido de los documentos del SQL.
• Oracle XML DB
• IBM DB2 XML Extender
• Microsoft SQLXML
2. Almacenamiento estructurado: un metamodelo detallado de documentos XML capaz de representar árboles de nodos de documentos XML arbitrarios se construye utilizando primitivas de modelado del SGBD convencional que hay por debajo.
• Los contenidos de los documentos XML se pueden consultar utilizando las facilidades proporcionadas por el SGBD.
� Extensiones de BD de prototipos de investigación para el almacenamiento estructurado de documentos XML (mayoritariamente para SGBD relacionales).
� XML Cartridge � Oracle
� Shimura et. al. � PostgreSQL
� Monet XML � Monet
� Extensiones de BD en proyectos de libre distribución:
� ozone/XML: es una librería para clases persistentes para el SGBD OO ozone que implementa el estándar DOM para la representación de documentos XML en una BD.
3. Mapeo: el contenido de documentos XML se mapea en esquemas BD específicamente diseñado para este contenido.
� Permite utilizar las capacidades de modelado de los SGBDs convencionales para la representación eficiente y adecuada del contenido de los documentos.
� Existen gran cantidad de herramientas y formalismos para la especificación de el mapeo entre un formato XML y un esquema de BD.
� Mucha investigación respecto a la generación automática de esquemas de bases de datos relacionales a partir de documentos XML y el mapeo automático entre los mismos.
� Se utilizan atributos especiales en la definición de elementos y atributosdel XML Schema (es importante que los valores de estas anotacionesestén en mayúsculas)
� Las anotaciones más usadas son:� xdb:defaultTable – especifica el nombre de la tabla en la que las instancias XML de
este esquema serán almacenadas� xdb:SQLName – especifica el nombre del objeto SQL que se corresponde con el
elemento XML que se está definiendo� xdb:SQLCollType – especifica el nombre de la colección SQL que corresponderá al
elemento SQL que tiene maxOccurs > 1
� xdb:SQLType – especifica el nombre del tipo SQL correspondiente al elemento XML
� Tipos de búsquedas de datos XML� Basadas en XPath: utilizando expresiones XPath� Oracle Text: para búsquedas de texto dentro del contexto de un elemento
� Funciones más utilizadas para búsquedas:� EXISTSNODE(XMLType_instance,XPath_string [, namespace_string ] )
� SELECT EXTRACTVALUE(auth_details,'/Author/text()') FROM books;
(devuelve un VARCHAR2 por defecto, por lo tanto el valor del nodo no puedetener más de 4K; habría que utilizar Extract() para conseguir el nodo en binario y la función de XMLType getClobVal() para extraer el contenido en un CLOB)
� Se utiliza Oracle Text para buscar aquellos documentos XML que contienen determinadas frases o palabras
� Forma de uso:� Crear un índice de tipo CONTEXT sobre la colección de documentos XML� Utilizar la función CONTAINS() para recuperar el contenido� Ejemplo:
• CREATE INDEX author_idx ON books(auth_details)
INDEXTYPE IS CTXSYS.CONTEXT;
• SELECT title FROM books WHERE CONTAINS(auth_details, ‘John Smith')>0;
� Oracle Database 10g XML & SQL—Design, Build & Manage XML Applications in Java, C, C++ & PL/SQLMark V. Scardina, Ben Chang, Jinyu Wang - McGraw-Hill/Osborne
� Oracle 9i – XML Database Developer’s Guide – Oracle XML DB (Release 2)
� XML Data Management: Native XML and XML-Enabled Database SystemsRoberto Zicari - Addison Wesley Professional