Almacenamiento de documentos XML Universitat Jaume I Integración de Sistemas de Información María José Aramburu 1 Datos versus documentos (i) Datos etiquetados en XML: – – – – Universitat Jaume I Curso 2004/2005 Estructura regular. El orden de los elementos no es importante. El concepto de dato se refiere a un elemento simple, de cierto tipo de datos, y sin contenido mixto. Pueden manipularse con un SGBD tradicional con extensiones para XML. Integración de Sistemas de Información 2 1 Datos versus documentos (ii) Documentos estructurados con XML: – – – – Universitat Jaume I Curso 2004/2005 Estructura irregular. El orden de los elementos es importante. El concepto de dato se refiere a un elemento complejo y a menudo con contenido mixto. Se manipulan mejor en un sistema nativo para gestión de contenidos XML. Integración de Sistemas de Información 3 XML = Documentos semi-estructurados Solo hay un tipo de datos: texto. Estructura definida en el propio documento. Estructura jerárquica con varios niveles de anidamiento. Componentes opcionales, y repetitivas. El orden de los elementos es significativo. Pueden haber documentos XML no asociados a ningún DTD. Ausencia de esquema previo. Universitat Jaume I Curso 2004/2005 Integración de Sistemas de Información 4 2 Requerimientos de una BD XML La estructura específica de cada documento debe ser preservada. Debe ser posible recuperar porciones de documentos. Puede no haber un esquema previo. El lenguaje de consulta debe soportar trayectorias, y condiciones sobre el contenido textual de los documentos. Universitat Jaume I Curso 2004/2005 Integración de Sistemas de Información 5 Almacenamiento de datos XML en BD Las BD requieren un esquema predefinido. Para insertar datos XML se debe trasladar su estructura al esquema de la BD. XSLT permite modificar la estructura de los datos. El orden de los elementos se pierden. Los datos recuperados suelen tener una organización diferente a la de su inserción. Universitat Jaume I Curso 2004/2005 Integración de Sistemas de Información 6 3 Almacenamiento de datos en tablas (i) Los documentos XML se modelan como una o varias tablas. Solo sirve para datos XML con una estructura tabular. Es útil como formato estándar de transmisión de datos entre BD Relacionales. Universitat Jaume I Curso 2004/2005 Integración de Sistemas de Información 7 Almacenamiento de datos en tablas (ii) La estructura del documento XML será: <database> <table> <row> <column1>...</column1> <column2>...</column2> ... </row> <row> ... </row> ... </table> <table> ... </table> ... </database> Universitat Jaume I Curso 2004/2005 Integración de Sistemas de Información 8 4 Almacenamiento objeto-relacional Los datos se modelan como un árbol de objetos con referencias. Cada tipo de elemento complejo es una clase de objetos. Cada tipo de elemento simple es una propiedad de objetos. Al final todo se almacena en tablas. Universitat Jaume I Curso 2004/2005 Integración de Sistemas de Información 9 Recuperación con plantillas (i) <?xml version="1.0"?> <FlightInfo> <Introduction>The following flights have available seats:</Introduction> <SelectStmt>SELECT Airline, FltNumber, Depart, Arrive FROM Flights</SelectStmt> <Flight> <Airline>$Airline</Airline> <FltNumber>$FltNumber</FltNumber> <Depart>$Depart</Depart> <Arrive>$Arrive</Arrive> </Flight> <Conclusion>We hope one of these meets your needs</Conclusion> </FlightInfo> Universitat Jaume I Curso 2004/2005 Integración de Sistemas de Información 10 5 Recuperación con plantillas (ii) <?xml version="1.0"?> <FlightInfo> <Introduction>The following flights have available seats:</Introduction> <Flights> <Flight> <Airline>ACME</Airline> <FltNumber>123</FltNumber> <Depart>Dec 12, 1998 13:43</Depart> <Arrive>Dec 13, 1998 01:21</Arrive> </Flight> ... </Flights> <Conclusion>We hope one of these meets your needs.</Conclusion> </FlightInfo> Universitat Jaume I Curso 2004/2005 Integración de Sistemas de Información 11 Lenguajes basados en SQL (SQL/XML) SQL/XML extiende SQL para construir elementos XML devueltos en una columna del resultado. SELECT XMLElement("Order", XMLAttributes(SONumber), XMLElement("Date", Date), XMLElement("Customer", Customer)) AS xmldocument FROM Orders WHERE SONumber="123" <Order SONumber="123"> <Date>10/29/02</Date> <Customer>Gallagher Industries</Customer> </Order> Universitat Jaume I Curso 2004/2005 Integración de Sistemas de Información 12 6 XQuery y XPath Los dos lenguajes de consulta XML se pueden utilizar en ambas aproximaciones. XPath sólo soporta trayectorias, no joins, por lo que sobre tablas solo puede consultar una tabla de cada vez. XQuery si soporta joins. Universitat Jaume I Curso 2004/2005 Integración de Sistemas de Información 13 Almacenamiento de datos XML en BD Nativas Estructuras irregulares producen demasiadas tablas y demasiados nulos. Las BD Nativas son más rápidas, suelen basarse en puntaros físicos. Son eficientes si los datos siempre se acceden de la misma forma. Sólo generan datos XML. Universitat Jaume I Curso 2004/2005 Integración de Sistemas de Información 14 7 DTD 1. 2. 3. 4. 5. Esquema Relacional Para cada elemento complejo crea una tabla y una clave primaria. Cada elemento con contenido mixto (PCDATA) se asocia a una tabla con una clave externa. Para cada elemento simple crear una columna en la tabla, y si es opcional con nulos. Para cada elemento simple repetitivo crear una tabla separada con una clave externa. Para cada elemento complejo que sea hijo crea una tabla, una clave primaria y una clave externa. Universitat Jaume I Curso 2004/2005 Integración de Sistemas de Información 15 DTD Esquema Relacional 1. 2. 3. 4. Para cada tabla crea un tipo de elemento. Para cada columna añade un elemento con PCDATA. Para cada tabla cuya clave primaria es utilizada como clave externa añade un elemento hijo y procesa recursivamente. Para cada clave externa añade un elemento hijo y procesa recursivamente. Universitat Jaume I Curso 2004/2005 Integración de Sistemas de Información 16 8 Almacenamiento de documentos XML Hay tres opciones: – – Sistema de ficheros: muy simple BLOB´s de las bases de datos relacionales: Permite aplicar herramientas de indexar texto. Creación de tablas ad-hoc que indexan tablas que almacenan BLOB´s – Universitat Jaume I Curso 2004/2005 Bases de datos nativas. Integración de Sistemas de Información 17 Bases de datos nativas Son BD cuyo modelo de almacenamiento es el del documento XML. Soportan orden de elementos, comentarios, secciones CDATA. Proporcionan lenguajes de consulta XML. Permiten almacenar documentos que no tienen un DTD. Universitat Jaume I Curso 2004/2005 Integración de Sistemas de Información 18 9 BD nativas basadas en texto Los ficheros XML se almacenan como texto indexado: sin fragmentar. Los índices permiten acceder rápidamente a cualquier posición del documento. A partir de ahí se recupera la porción del documento que se quiera sin tener que desplazarse por el disco. La eficiencia se pierde al acceder en otro orden. Universitat Jaume I Curso 2004/2005 Integración de Sistemas de Información 19 BD nativas basadas en un modelo Cada sistema tiene su propio modelo de almacenamiento interno. Si su modelo se basa en una BD relacional, u OO, su eficiencia es similar a la de estas BD´s. Si tienen su propio modelo de almacenamiento la eficiencia suele ser buena ya que la mayoría usan punteros físicos entre los nodos que representan al documento. La eficiencia se pierde al acceder en otro orden. Universitat Jaume I Curso 2004/2005 Integración de Sistemas de Información 20 10 Características de las BD nativas (i) Colecciones de documentos anidadas. XPath, XQuery, los propios: – Soportan consultas textuales, y condiciones sobre elementos anidados. Actualizaciones: XUpdate. Transacciones (rollbacks), bloqueos a nivel de documentos, nivel de concurrencia bajo. Interfaz parecido a ODBC, otros API estándar. Universitat Jaume I Curso 2004/2005 Integración de Sistemas de Información 21 Características de las BD nativas (ii) Datos devueltos en XML, DOM, HTTP, .... Los documentos devueltos son idénticos a los originales. Los documentos pueden incluir datos remotos y modificables. Las entidades externas pueden ser expandidas opcionalmente. Universitat Jaume I Curso 2004/2005 Integración de Sistemas de Información 22 11 Características de las BD nativas (iii) Las normalización no es un requerimiento. Integridad referencial interna se puede validar si se implementa con ID/IDREF. Integridad referencial externa (XLink) no es validada por los sistemas nativos. La utilización de índices y punteros físicos las hace escalables, aunque en exceso retrasa las actualizaciones. Universitat Jaume I Curso 2004/2005 Integración de Sistemas de Información 23 12