Академический Документы
Профессиональный Документы
Культура Документы
Introducción
XML (eXtensible Markup Language), al igual que HTML
(HyperText Markup Language), tiene su origen en la gestión de
documentos (NO se concibió como tecnología de BD).
Ambos lenguajes derivan del SGML (Standard Generalized
Markup Language), lenguaje para estructurar documentos
grandes.
XML permita la representación de datos estructurados (BD) o
semi-estructurados (aplicaciones de negocios).
Útil como formato de datos cuando las aplicaciones necesitan
comunicarse y facilita la integración de información procedente
de varias aplicaciones.
Índice de contenidos
1
1. Motivación: ¿Por qué XML?
Las etiquetas:
Proporcionan el contexto de cada valor
Permiten especificar la semántica del valor
©Silberschatz et al. ©Grupo Kybele
Fundamentos de bases de datos 6
2
1. Motivación: ¿Por qué XML?
El intercambio de datos es crítico en el mundo de Internet hoy en
día
Ejemplos:
Banca: transferencias de fondos
Procesamiento de órdenes (especialmente las órdenes entre
compañías)
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.
Índice de contenidos
3
2. Estructura de los Datos XML
Etiqueta: marca de una sección de datos
Marca: elemento que no formará parte de la salida impresa
Elemento:
Constructor básico de un documento XML.
Sección de datos que comienza con <nombredeetiqueta> y termina
con la coincidencia </nombredeetiqueta>, incluyendo el texto que
aparece entre las dos etiquetas.
Cada documento debe tener un único elemento de raíz.
Los elementos deben estar anidados adecuadamente.
Contexto de un elemento: texto incluido entre la etiqueta de
comienzo y la etiqueta de fin de dicho elemento.
Etiquetas anidadas adecuadamente: si toda etiqueta de inicio tiene
una única etiqueta de fin en el contexto del mismo elemento padre.
Anidamiento adecuado: <cuenta> … <saldo> …. </saldo> </cuenta>
Anidamiento inadecuado: <cuenta> … <saldo> …. </cuenta> </saldo>
4
2. Estructura de los Datos XML
El anidamiento de datos es útil en las aplicaciones de
transferencia de datos: evitan la necesidad de joins.
Ejemplo: los elementos que representan la cuenta (número-cuenta,
nombre-sucursal, 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ó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.
5
2. Estructura de los Datos XML
6
Índice de contenidos
7
2.1. DTD: ELEMENTOS
<!DOCTYPE banco [
<!ELEMENT banco ( ( cuenta | cliente | impositor)+)>
<!ELEMENT cuenta (número-cuenta, nombre-sucursal, saldo)>
<! ELEMENT cliente (nombre-cliente, calle-cliente, ciudad-cliente)>
<! ELEMENT impositor (nombre-cliente, número-cuenta)>
<! ELEMENT número-cuenta (#PCDATA)>
<! ELEMENT nombre-sucursal (#PCDATA)>
<! ELEMENT saldo (#PCDATA)>
<! ELEMENT nombre-cliente (#PCDATA)>
<! ELEMENT calle-cliente (#PCDATA)>
<! ELEMENT ciudad-cliente (#PCDATA)>]>
<banco>
<cuenta>
<número-cuenta> C-101</número-cuenta>
<nombre-sucursal>Centro </nombre-sucursal>
<saldo>500</saldo>
</cuenta>
<impositor>
<nombre-cliente>González</nombre-cliente>
<número-cuenta>C-101</número-cuenta>
</impositor>
</banco>
©Silberschatz et al. ©Grupo Kybele
Fundamentos de bases de datos 22
8
2.1. DTD: ID e IDREF
<!DOCTYPE banco-2[
<!ELEMENT cuenta (sucursal, saldo)>
<!ATTLIST cuenta
número-cuenta ID # REQUIRED
tenedores IDREFS # REQUIRED>
<!ELEMENT cliente (nombre-cliente, calle-cliente, ciudad-cliente)>
<!ATTLIST cliente
cliente-id ID # REQUIRED
cuentas IDREFS # REQUIRED>
… declaraciones para sucursal, saldo, nombre-cliente,
calle-cliente y ciudad-cliente
]>
9
Índice de contenidos
10
2.2. Esquema XML: Metamodelo
Compositor
1..*
{complete,disjoint}
1..*
1..* uses
0..*
complexType
ELEMENT *
name 1 is_redefined_by 0..*
Type complexContent
1..* baseType * name
minOccurs: Number = 1 {complete,disjoint}
maxOccurs: Number = 1
1 is_based_on 0..1
Restriction
1 simpleType type
redefines 1..*
satisfies
* 1..*
attribute 0..* Facet
name simpleContent {incomplete,overlapping}
baseType
use
Índice de contenidos
11
3. Almacenamiento de Datos XML: BD relacionales
Bases de datos relacionales
Ventajas:
Sistemas de BD maduros y ampliamente usados.
Posibilidad de utilización desde aplicaciones existentes.
Desventajas:
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
©Silberschatz et al. ©Grupo Kybele
Fundamentos de bases de datos 34
12
3. Almacenamiento de Datos XML: BD relacionales
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.
©Silberschatz et al. ©Grupo Kybele
Fundamentos de bases de datos 37
Índice de contenidos
13
4. Consulta a Documentos XML
Índice de contenidos
14
5. La Interfaz de Programación de Aplicaciones
Dos modelos estándar de APIs de datos de XML
SAX (Simple API for XML (API simple para XML))
Modelo de eventos, diseñado para proporcionar una interfaz común entre analizadores y
aplicaciones.
Se basa en la noción de manejadores de eventos: funciones especificadas por el usuario
asociadas con eventos de análisis.
Eventos de análisis: reconocimiento de partes de un documento. Por ejemplo, las etiquetas
de inicio y fin de elemento, generan un evento.
SAX no es adecuado para aplicaciones de base de datos.
Índice de contenidos
6. Aplicaciones
Objetivo de XML:
Facilitar la comunicación de información en la Web y entre
aplicaciones permitiendo que la semántica de los datos se describa
con los mismos datos.
15
6. 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.
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.
6. Aplicaciones
MEDIACIÓN DE DATOS
16