XML y las Bases de Datos

XML y las Bases de Datos Fundamentos de bases de datos, 4ª Edición Silberschatz, Korth y Sudarshan Capitulo 10 Mc Graw-Hill { MARCOS LÓ LÓPEZ SANZ} ...
12 downloads 0 Views 677KB Size
XML y las Bases de Datos

Fundamentos de bases de datos, 4ª Edición Silberschatz, Korth y Sudarshan Capitulo 10 Mc Graw-Hill

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

Índice 1. Motivación: ¿Por qué XML? 2. Estructura de los Datos XML 2.1. DTDs 2.2. Esquemas XML

3. Almacenamiento de Datos XML 4. Consulta a Documentos XML 5. Aplicaciones

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

1. Motivación: ¿Por qué XML?  Orígenes:  Gestión de documentos  SGML (Standard Generalized Markup Language): 1986  SGML: Sistema para la organización y etiquetado de documentos. Reglas muy estrictas  Extensiones de SGML: HTML y XML • HTML (HyperText Markup Language): Lenguaje para marcado de hipertexto (1993) • XML (eXtensible Markup Language): Lenguaje para marcado extensible (1998)

 XML:  Versión actual: 1.0 (tercera edición)  4 de febrero de 2004  Definido por el Consorcio WWW (W3C): http://www.w3.org/XML/  En sus orígenes proyectado como un lenguaje de marcas de documentos • Marca: Marca elemento de un documento que no formará parte de la salida impresa (p. ej.: notas de un escritor para una revista ”no romper párrafo” ). • Lenguaje de marcas: marcas descripción formal de qué parte del documento es contenido, qué parte es marca y significado de la marca.

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

1

1. Motivación: ¿Por qué XML?  XML: Características:  Permite la representación de datos semi-estructurados (como HTML)  El objetivo era (¿es?) sustituir a HTML como lenguaje para la publicación de documentos en la Web  XHTML  Se pueden especificar etiquetas personalizadas  metalenguaje extensible  Soporta Unicode  Es ‘human-readable’ y ‘machine-readable’ simultáneamente  Permite separar la especificación del contenido de la de su visualización  Favorece el intercambio de datos: • Etiquetas autodocumentadas • Formato no rígido • No contiene elementos para la visualización de los contenidos { MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

1. Motivación: ¿Por qué XML?  XML:Intercambio de datos:

 La capacidad para especificar etiquetas nuevas, y para crear estructuras de etiquetas anidadas hace de XML una buena forma de intercambiar datos, datos y no sólo documentos.  HTML se usa principalmente para el formato de documentos  El intercambio de datos es crítico en el mundo de Internet hoy en día • Ejemplos: – Banca: transferencias de fondos – Datos científicos: » Química: ChemML (Lenguaje de marcas químicas) » Genética: BSML (Lenguaje de marcas de bio-secuencias)

• El flujo de documentos entre organizaciones se ha sustituido por el flujo electrónico de información  Cada área de aplicación tiene su propio conjunto de estándares para representar la información  Se considera la base de todos los formatos de intercambio de datos de nueva generación

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

1. Motivación: ¿Por qué XML?  XML: Estructura  Los documentos XML deben ser válidos y estar bien formados: • Bien formado: – – – –

Tener una única raíz Todos los elementos llevan etiquetas de apertura y cierre El anidamiento de elementos debe ser correcto Todos los valores de los atributos van entre comillas simples o dobles

• Válidos: Todo documento XML debe seguir un esquema determinado

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

2

1. Motivación: ¿Por qué XML?  XML: Ejemplo Marcos López Sanz URJC ejemplo

profesor

número 1

nombre

apellidos

Marcos

López Sanz

{ MARCOS LÓ LÓPEZ SANZ}

universidad

URJC Grupo de Investigación Kybele, 2007 ©

1. Motivación: ¿Por qué XML?  Desventajas para el almacenamiento de los datos:  Poca eficiencia de la representación XML: las etiquetas se repiten por todo el documento  problema de redundancia

 Ventajas para el intercambio de datos:  Las etiquetas hacen que los datos estén autodocumentados: • No hay que leer el esquema para entender el significado del texto

 Formato no rígido: • Si un remitente agrega información adicional, el receptor puede ignorarla • La facilidad de reconocer e ignorar etiquetas facilita la evolución • Permite evolucionar los datos sin invalidar las aplicaciones

 Existe una amplia variedad de herramientas disponibles para analizar, rastrear y consultar los documentos/datos de XML: • Incluidas herramientas de BD

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

Índice 1. Motivación: ¿Por qué XML? 2. Estructura de los Datos XML 2.1. DTDs 2.2. Esquemas XML

3. Almacenamiento de Datos XML 4. Consulta a Documentos XML 5. Aplicaciones

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

3

2. Estructura de los datos XML  Etiqueta: marca de una sección de datos

 Marca: Marca elemento que no formará parte de la salida impresa  Proporcionan el contexto de cada valor  Permiten especificar la semántica del valor

 Elemento:

 Constructor básico de un documento XML.  Sección de datos que comienza con y termina con la coincidencia  Contexto de un elemento: elemento texto incluido entre la etiqueta de comienzo y la etiqueta de fin de dicho elemento

 Reglas:

 Los documentos XML deben ser válidos y estar bien formados: • Bien formado: – – – –

Tener una única raíz Todos los elementos llevan etiquetas de apertura y cierre El anidamiento de elementos debe ser correcto Todos los valores de los atributos van entre comillas simples o dobles

• Válidos: Todo documento XML debe seguir un esquema determinado

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

2. Estructura de los Datos XML  Se permite la combinación de texto con subelementos  Ejemplo: Este elemento deberá ser borrado una vez se utilice rectángulo 34 45 35cb0c

 Útil para marcar documentos, pero no recomendada para la representación de datos estructurados.

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

2. Estructura de los datos XML  Anidamiento de datos:

 Útil en las aplicaciones de transferencia de datos: evitan la necesidad de joins.  Ejemplo: los elementos que representan la cuenta (número-cuenta, nombresucursal, saldo), anidados en cada cliente de la cuenta.

 No se soporta la anidación en las BD relacionales:

 Con varios clientes titulares de una cuenta, se almacenarían repetidamente los datos de la cuenta.  La normalizació normalización sustituye las estructuras anidadas: en cada cliente se incluye una clave ajena a la tabla que almacena las datos de la cuenta.  Se soporta anidación en BD Objeto-Relacionales (‘Nested Tables’).

 La anidación sólo es apropiada cuando se transfieren datos:

 La aplicación externa no tiene acceso directo a los datos referenciados por una clave ajena.

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

4

2. Estructura de los datos XML  Los elementos pueden tener atributos. atributos  Los atributos son cadenas, no contienen marcas.  Se especifican por medio de pares nombre=“ nombre=“valor” valor” dentro de la etiqueta de inicio de un elemento: vertical presión 3:56-12/02/00

 Un elemento puede tener varios atributos, pero cada nombre de atributo sólo puede producirse una vez:

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

2. Estructura de los datos XML  Distinción entre subelemento y atributo  En el contexto de los documentos: • Los atributos son texto que no aparecen en el documento impreso o visualizado (forman parte de las marcas y no del contenido). • Los subelementos son parte del contenido del documento.  En el contexto de la representació representación de datos (BD e intercambio de datos): • La diferencia es menos relevante. • La misma información se puede representar de dos maneras • La elección de utilizar una u otra es frecuentemente arbitraria  En el caso de atributos multivaluados: siempre subelementos

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

2. Estructura de los datos XML  Los elementos sin subelementos o contenido de texto se pueden abreviar finalizando la etiqueta de inicio con un /> y borrando la etiqueta final:   Los elementos abreviados pueden contener atributos.  Para almacenar datos de cadenas que pueden contener etiquetas, sin que dichas etiquetas se interpreten como subelementos, utilizar CDATA: CDATA  … ]]>  Aquí, y se tratan como simples cadenas.

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

5

2. Estructura de los datos XML  Los datos XML se pueden que intercambiar entre organizaciones.  El mismo nombre de etiqueta puede tener diferentes significados en diferentes organizaciones.

 Solución: especificar una cadena única como un nombre global de elementos:  Anteponer a cada etiqueta o atributo un identificador de recursos universal: espacio de nombres  nombre-único: nombre-elemento

 Para evitar utilizar nombres únicos largos se definen abreviaturas en el espacio de nombres (namespace) estándar. Centro Brooklyn …

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

2. Estructura de los datos XML  Los esquemas de las bases de datos restringen qué qué informació información se puede almacenar, y los tipos de datos de los valores almacenados.  Los documentos XML no precisan tener un esquema asociado.  Sin embargo, los esquemas son muy importantes para el intercambio de datos XML.  De lo contrario, un sitio no puede interpretar automáticamente los datos recibidos de otro sitio.

 Dos mecanismos para especificar el esquema XML  Document Type Definition (DTD) (Definición de Tipos de Documento) • Ampliamente utilizado, aunque en desuso • Parte del estándar XML  Esquema XML • Más novedoso y en auge • Soluciona parte de los problemas de las DTDs

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

2. Estructura de los datos XML  El tipo de un documento XML se puede especificar utilizando una DTD  la DTD es opcional  DTD restringe la estructura de los datos de XML  Qué elementos pueden producirse  Qué atributos puede/debe tener un elemento  Qué subelementos pueden/deben producirse dentro de cada elemento, y cuántas veces.

 DTD no restringe los tipos de datos  Todos los valores se representan como cadenas de XML

 Sintaxis de DTD    orden irrelevante

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

6

2. Estructura de los datos XML  Los subelementos pueden especificarse como:  Nombres de elementos, o  #PCDATA (datos de caracteres analizados): cadenas de caracteres  EMPTY (sin subelementos) o ANY (cualquiera, no hay restricción sobre los subelementos del elemento) • Ejemplo:

 La especificación de subelementos puede tener expresiones regulares • Notación: – | - alternativas – + - 1 ó más casos – * - 0 ó más casos – ? - 0 ó 1 caso

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

2. Estructura de los datos XML ]>

C-101 Centro 500 González C-101

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

2. Estructura de los datos XML  Especificación de atributos: atributos Para cada atributo:  Nombre  Tipo de atributo • CDATA  datos de tipo carácter • ID (identificador) o IDREF (referencia a ID) o IDREFS (múltiples IDREF)  Si • es obligatorio (#REQUIRED), • tiene un valor por defecto (valor), • no se ha especificado ningún valor predeterminado (#IMPLIED)

 Ejemplos  

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

7

2. Estructura de los datos XML  Un elemento puede tener a lo sumo un atributo de tipo ID.  El valor del atributo ID de cada elemento de un documento XML debe ser distinto.  Así el valor del atributo ID es un identificador del objeto.

 Un atributo de tipo IDREF debe contener el valor ID de un elemento en el mismo documento.  Un atributo de tipo IDREFS contiene un conjunto de (0 o más) valores ID separados por espacios. Cada valor ID debe contener el valor ID de un elemento del mismo documento.  IDs e IDREFs  Similares a los mecanismos de referencia de las BDOO y BDOR (OIDs y REFs)

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

2. Estructura de los datos XML …etc… ]> Centro 500 Juncal Mártires Melilla María Etreros Alicante { MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

2. Estructura de los datos XML  Limitaciones de las DTDs:  No se pueden declarar el tipo de elementos y atributos de texto individuales: • Todos los valores son cadenas, no son enteros, son números reales, etc.  Es difícil especificar conjuntos desordenados de subelementos • El orden es normalmente irrelevante en las aplicaciones de intercambio de datos (y de BD); es relevante en el diseño de documentos • (A | B)* permite la especificación de conjuntos desordenados, pero es mucho más difícil asegurar que cada uno de los elementos de A y B se produzca una sola vez  Hay una falta de tipos en ID e IDREF • El atributo titulares de una cuenta puede contener una referencia, por ejemplo, de otra cuenta (en vez de un cliente), que no tiene sentido. • El atributo titulares idealmente debería restringirse para hacer referencia sólo a los elementos de cliente.

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

8

2. Estructura de los datos XML  Esquema XML:  Lenguaje de esquema más sofisticado. Soluciona alguno de los inconvenientes de las DTD.  Soporta: • Declaración de tipos de valores – Enteros, cadenas, etc. – Restricciones de valores mínimos/máximos

    

• Tipos definidos por el usuario • Tipos específicos mediante la restricción de otros tipos • Extensión de tipos complejos mediante una especie de “herencia” Restricciones de unicidad y claves ajenas Es un superconjunto de DTDs XML Schema se especifica en términos de XML Está integrado por espacios de nombres: diferentes partes de un documento pueden adaptarse a esquemas diferentes Es significativamente más complicado que las DTDs

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

2. Estructura de los datos XML  Ejemplo: ….. definiciones de cliente y titular ….

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

2. Estructura de los datos XML Compositor

1..*

Metamodelo

{complete,disjoint}

SEQUENCE

CHOICE

{ordered}

{choice}

1..*

ELEMENT 1..*

ALL {unordered}

1..* *

name baseType minOccurs: Number = 1 maxOccurs: Number = 1

0..*

uses

*

complexType 1

Type name

is_redefined_by

0..*

complexContent

{complete,disjoint}

1

simpleType

1

is_based_on

0..1

Restriction type

redefines

1..*

*

attribute name baseType use 1..* is {d

join

1..* 0..*

satisfies

Facet

simpleContent

{incomplete,overlapping}

Enumeration

Pattern

Length

minLength

set_values

expression

value

length

t}

Group

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

9

Índice 1. Motivación: ¿Por qué XML? 2. Estructura de los Datos XML 2.1. DTDs 2.2. Esquemas XML

3. Almacenamiento de Datos XML 4. Consulta a Documentos XML 5. Aplicaciones

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

3. Almacenamiento de datos XML  Bases de datos relacionales  Ventajas: • Sistemas de BD maduros y ampliamente usados. • Posibilidad de utilización desde aplicaciones existentes.  Desventajas: • Se deben transformar los datos al modelo relacional • La conversión es sencilla si los datos se generan a partir de un esquema relacional y si se usa XML como formato de intercambio de datos. • Si XML no se genera a partir de un esquema relacional, la transformación no es tan sencilla. Se producen problemas en la conversión, especialmente: » Elementos anidados » Elementos que se repiten (atributos multivaluados)

• Hay diferentes alternativas para solucionarlo: – Almacenamiento como cadenas de caracteres – Representación en árbol – Asignación a relaciones

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

3. Almacenamiento de datos XML  Bases de datos relacionales: Almacenamiento como cadenas de caracteres  Dos opciones:

• Almacenar cada elemento hijo del elemento de nivel superior como un campo de tipo cadena en una tupla separada en la BD. – Utilizar una única relación (ELEMENTOS) con un atributo (datos) para almacenar todos los elementos (por ejemplo, cada tupla almacena un elemento XML en forma de cadena: cuenta, cliente o impositor)

• Almacenar cada elemento de nivel superior como una relación separada (por ejemplo: Tres relaciones: cuenta, cliente, impositor)  Beneficios: • Es posible almacenar cualquier dato XML, incluso sin DTD.

 Inconvenientes:

• El SGBD NO conoce el esquema de los datos almacenados; por tanto, no es posible consultar los datos directamente. • Necesidad de analizar las cadenas para acceder a los valores dentro de los elementos. • El análisis es lento.

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

10

3. Almacenamiento de datos XML  Bases de datos relacionales: Representació Representación en árbol:  Los datos XML se modelan como un árbol y se almacenan en las relaciones: • nodos(id, tipo, etiqueta, valor) hijo(id-hijo, id-padre))  A cada elemento y atributo se le proporciona un identificador único.  Se inserta una tupla en la relación nodos para cada elemento y atributo, con los campos: • Id: identificador del elemento o atributo • Tipo: especifica si se trata de un atributo o elemento • Etiqueta: especifica el nombre del elemento o del atributo • Valor: es el valor literal del elemento o atributo  La relación hijo almacena el elemento padre de cada elemento y atributo. • Se puede añadir un atributo más (posición) a hijo, que guarda el orden de los hijos.  Beneficios: • Puede almacenar cualquier dato XML, incluso sin DTD. • Se pueden traducir las consultas a consultas relacionales.  Inconvenientes: • Los datos se dividen en demasiadas piezas y las consultas simples requieren una gran cantidad de combinaciones (joins).

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

3. Almacenamiento de datos XML  Bases de datos relacionales: Asignació Asignación a relaciones

 Los elementos XML cuyo esquema es conocido, se asignan a relaciones y atributos.  Los elementos cuyo esquema es desconocido se almacenen como cadenas o árboles.  Se crea una relación para cada tipo de elemento cuyo esquema es conocido: • Un atributo id para almacenar una id única para cada elemento. • Todos los atributos de elemento se convierten en atributos de relación. • Todos los subelementos que se producen una sola vez se convierten en atributos: – Si el valor del subelementos es texto, el atributo almacena el texto como valor. – Para subelementos complejos, se almacena la id del subelemento.

• Si el subelemento pueden parecer varias veces en el elemento, se representado en una tabla separada: – Similar a la conversión de atributos multivaluados del E/R en tablas.

 Beneficios: • Almacenamiento eficiente. • Pueden transmitir consultas XML dentro de SQL, ejecutarlas eficientemente, y después trasladar los resultados de SQL de vuelta a XML.  Inconvenientes: • Se necesita conocer DTD o esquema XML. • Las sobrecargas por transformación continúan presentes.

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

3. Almacenamiento de datos XML  Almacenamiento de datos no relacionales  Archivos planos • Dado que XML es un formato de archivo, es natural almacenar datos XML como un archivo plano. • Amplia disponibilidad de herramientas para el acceso y consulta a ficheros XML. • Presentan los problemas asociados a la gestión de ficheros: falta de concurrencia, comprobaciones de integridad, atomicidad, recuperación, seguridad …  Base de datos XML: BD construidas específicamente para almacenar datos XML: • Modelo de almacenamiento XML puro. • Construidas como una capa de DOM (Document Object Model) implementada sobre una BDOO + un lenguaje de consulta XML para proporcionar consultas declarativas. • Construidas como una capa sobre BDOR: – Ventajas de las BD relacionales. – Desaparece el problema de la representación de estructuras anidadas. { MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

11

Índice 1. Motivación: ¿Por qué XML? 2. Estructura de los Datos XML 2.1. DTDs 2.2. Esquemas XML

3. Almacenamiento de Datos XML 4. Consulta a Documentos XML 5. Aplicaciones

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

4. Consulta de datos XML  El resultado de una consulta a un documento XML es otro documento XML. Por tanto, un mismo lenguaje puede combinar:  Transformación de información de un esquema XML a otro  Consulta de datos XML

 Lenguajes de consulta/transformación de XML:  XPath: consta de expresiones de rutas de acceso.  XSLT: diseñado para la transformación de XML a XML y HTML.  XQuery: lenguaje estándar de consulta de XML, con un conjunto completo de características.

 Se ha propuesto una variedad amplia de lenguajes, y algunos han servido como base para el está estándar de XQuery  XML-QL, Quilt, XQL, … { MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

4. Consulta de datos XML  Ejemplo de XQuery: XQuery:  Lista de todos los pares título-autor cada uno de ellos dentro de un elemento :

• Consulta: { for $b in doc("/XQuery/docs/XMP/bib.xml")/bib/book, $t in $b/title, $a in $b/author return { $t } { $a } }

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

12

4. Consulta de datos XML  Ejemplo de XQuery: XQuery: TCP/IP Illustrated Stevens W. Data on the Web Abiteboul Serge Resultado

{ MARCOS LÓ LÓPEZ SANZ}

TCP/IP Illustrated Stevens W. Addison-Wesley 65.95 Data on the Web Abiteboul Serge Buneman Peter Morgan Kaufmann Publishers 39.95

Original

Grupo de Investigación Kybele, 2007 ©

4. Consulta de datos XML  El Modelo de árbol de datos XML  Los lenguajes de consulta y transformación se basan en un modelo de árbol de datos XML.  Un documento XML se modela como un árbol con nodos que corresponde a elementos y atributos: • Los nodos elemento tienen (o no) nodos hijo, que pueden ser atributos o subelementos. • El texto de un elemento se modela como un nodo de texto, hijo del elemento. • Los hijos de un nodo se ordenan de acuerdo a su orden en el documento XML. • Los nodos de elementos y atributos (excepto los nodos raíz) tienen un padre único, que es un nodo elemento. • El nodo raíz tiene un único hijo, que es el elemento raíz del documento.

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

4. Consulta de datos XML  Interfaces de acceso a documentos XML (APIs de procesamiento)  DOM (Document Object Model): • Interfaz de acceso (API) estándar a los elementos de un documento XML • Genera en memoria una representación jerárquica del documento XML • Los objetos del árbol representan elementos, atributos, contenido, etc. • Los datos XML se representan mediante una estructura de árbol, donde cada elemento se representa con un nodo (DOMNode). Los programas pueden acceder a partes del documento navegando desde la raíz. • Se proporcionan variedad en las funciones para navegar a través del árbol DOM. Por ejemplo, el API DOM de Java proporciona una interfaz Node (interfaces hijas Element y Attribute) con métodos: getParentNode( ), getFirstChild( ), getNextSibling( ), getAttribute( )…

• También proporciona funciones para actualizar árboles DOM. • DOM se puede usar para acceder a datos XML almacenados en BD; se puede construir una BD XML usando DOM como interfaz de acceso y actualización de datos. • Sin embargo, DOM no soporta ninguna forma de consulta declarativa. { MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

13

4. Consulta de datos XML  Interfaces de acceso a documentos XML (APIs de procesamiento)  SAX (Simple API for XML): • Interfaz de acceso (API) secuencial a elementos XML • Modelo de eventos: Acceso por medio de eventos (inicio/fin de etiqueta/atributo/contenido) • Se basa en la noción de manejadores de eventos: funciones especificadas por el usuario asociadas con eventos de análisis. • No genera árbol en memoria  menos recursos = más rápido • SAX no es adecuado para aplicaciones de base de datos.

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

Índice 1. Motivación: ¿Por qué XML? 2. Estructura de los Datos XML 2.1. DTDs 2.2. Esquemas XML

3. Almacenamiento de Datos XML 4. Consulta a Documentos XML 5. Aplicaciones

{ MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

5. Aplicaciones  Intercambio de datos  Estándares para representación XML de datos de aplicaciones especializadas: química, transporte (registros de envíos, …), B2B (catálogos, …), etc.  El modelo relacional, para aplicaciones de datos tan complejas, genera un gran número de relaciones complicadas de gestionar.  En XML, la representación explícita de nombres de atributos y sus valores, ayuda a evitar confusiones entre atributos.  La representación de elementos anidados permite reducir el número de relaciones a representar; también reduce el número de combinaciones en las consultas.

 Operaciones:  Los datos XML suelen proceder de BD relacionales que hay que convertirlos a formato XML.  Los datos de entrada hay que convertirlos de XML a un formato normalizado para almacenarlo en una BD relacional. • BD con capacidades XML  conversión automática del modelo relacional a XML { MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

14

5. Aplicaciones  Mediación de datos  Ejemplos: • Aplicaciones de comparación de precios de compra • Gestión centralizada de cuentas de un cliente en distintas instituciones, etc.

 Si la información no está en XML: software envolvente  Genera datos XML a partir de páginas HTML.  Estas aplicaciones necesitan un mantenimiento constante, ya que dependen de los detalles de formato de las páginas Web.

 Una vez que se tiene la información de las distintas fuentes: aplicación mediadora  Se combina la información de las distintas fuentes en un único esquema.  El mediador debe proporcionar código para transformar los datos entre diferentes representaciones XML. { MARCOS LÓ LÓPEZ SANZ}

Grupo de Investigación Kybele, 2007 ©

15