Bases de Datos XML - Consulta de datos semi-estructurados
1. Bases de Datos XML
Universidad Autonóma de Tlaxcala
Dr. Alberto Portilla Flores
2. 2
Contenido
Bases de datos XML
XML y bases de datos
Consulta de datos semi-estructurados:
Conceptos de base
DTD y esquemas XML
XPath, XSLT, XQuery
Extensiones y sistemas nativos
Conclusiones y perspectivas
3. 3
¿Por qué XML?
Define un lenguaje ad-hoc de intercambio
Solicitud, factura, entregas, etc.
Datos del modelo y mensajes
DTD (Document Type Definitions)
Elementos y tipos validos (XML Schema)
Puente con UML (Unified Modelling Language)
Información de publicidad
Neutral desde el punto de vista del formato
Presentación con CSS y XSL
Datos de almacenamiento
Auto-descripción de archivos
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
4. 4
Lengua franca del siglo 21
Estándar de intercambio
Lisible: tagged mark text
Claro: separación de forma y contenido
Extensible: soporte para la evolución de aplicaciones
Seguridad: firewall, encriptación, autentificación
Desarrollado por W3C
Para la Web (Internet, Intranet)
Extendido para las aplicaciones industriales
Soportado por diferentes constructores
IBM, Microsoft .net, SUN, BEA, etc.
Herramientas genéricas y abiertas
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
5. 5
Datos y documentos
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
u Estrategia « Datos »
l Estructuración fuerte y simple
l Compatibilidad con SGBDR
l Actualización al día
l Integridad semántica
l Indexación exacta
l Adaptado a contextos
transaccionales y de toma de
decisión
l Eficiencia esperada « media » à
« fuerte » para una cantidad de
datos « media »
u Estrategia « Documentos »
l Estructuración débil y compleja
l Sistemas de documentos
especializados
l Gestión de versiones
l Investigación textual
l Indexación aproximada
l Acceso parecido a los motores de
búsqueda
l Eficiencia esperada « media »
para una cantidad de información
« fuerte »
6. 6
Publicación multi-soportes
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
XML
Base de
datos
Aplicación de
publicación
(XSL)
TV numérica
Middleware
XMLizer
7. 7
Intercambio de datos
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
Extractor
JDBC JDBC
Transformador
Base de
datos
relacional
Data warehouse
Minería de datos
8. 8
DB de documentos
semi-estructurados
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
Hoja de
estilo
XSL
Hoja de
estilo
XSL
Consultas
HTTP GET
HTTP POST
Consultas
Mapeo
XML-SQL
Procesador
XSL
Hoja de
estilo
XSL
HTML generado
Servidor de aplicación
Proyecto AMELI: Una aplicación del
servidor XML para la captura y
consulta de documentos semi-
estructurados para Internet/Intranet
Interfaz de aplicación
Solicitud
SGBDR
9. 9
Intercambio B2B-XML EDI
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
XML EDI
XMLizer
Internet
(SOAP)
Cliente
Proveedor
10. 10
Aplicación: Captura y
almacenamiento de datos XML
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
HTTP Java / XML
Servicios Web
SQL
Constancia
de
inscripción
Formular XForms
Motor de
XForms
Cliente
Microsoft
C#
email
Depósito
XML
a
SQL
Lista de
inscritos
11. 11
Sociedad ProXML
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
Red local
Mensajes XML de
empresas
Servidor de
aplicaciones
SGBDO
Servicio
Web
Servicio
aplicativo
Cliente
Nivel aplicación
Nivel de datos
SGBDR
Aplicación
patrimonial
ERP
CRM
XMLizer
Socios
12. 12
Ventajas de XML
Tecnología estructurada
Interfaces claras de intercambio
Ortogonal a la industria:
Intercambio de datos
Herramientas de oficina
GED
Sitios Web
Bases de datos
Integración e-business
…
Dirección:
Evitar el aislamiento
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
13. 13
XML: Resumen
Meta lenguaje de marcado
Define reglas para crear
documentos « taggeados »
Separa la estructura de la
presentación
Menos confuso que HTML
Más simple que SGML
Ideal para intercambiar datos
semi-estructurados
Puede ser usado entre programas
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
14. 14
Contenido
Bases de datos XML
XML y bases de datos
Consulta de datos semi-estructurados:
Conceptos de base
DTD y esquemas XML
XPath, XSLT, XQuery
Extensiones y sistemas nativos
Conclusiones y perspectivas
16. 16
Referencias
XML permite asociar un identificador a los elementos como valor de un
atributo específico
<state id = “s2”>
<scode> PUE </scode>
<sname> Puebla </sname>
</state>
<city id = “c2”>
<cname> Ciudad de Puebla </cname>
<state-of idref = “s2” />
</city>
17. 17
Orden
<person>
<firstname> John </firstname>
<lastname> Smith </lastname>
</person>
<person>
<lastname> Smith </lastname>
<firstname> John </firstname>
</person>
<person firstname = “John” lastname = “Smith” />
<person lastname = “Smith” firstname = “John” />
18. 18
Otros constructores
Comentarios en XML:
<!– this is a comment
Instrucción de procesamiento:
<?xml version = “1.0” ?>
<?xml-stylesheet href = “book.css”
type = “text/css” ?>
19. 19
Otros constructores
CDATA: caracteres que podrían confundirse
con marcas
<![CDATA[<start> an incorrect element </end>]]>
Macros tales como el carácter “<”
<
DTD:
<!DOCTYPE name [markupdeclarations]>
20. 20
Otros constructores
Documento completo en XML:
<?xml . . . ?>
<!DOCTYPE name [markupdeclarations]>
<name> . . . </name>
Ejemplo:
<?xml version = “1.0” ?>
<!DOCTYPE db SYSTEM “person.dtd”>
<db> <person> . . . </person> </db>
21. 21
Contenido
Bases de datos XML
XML y bases de datos
Consulta de datos semi-estructurados:
Conceptos de base
DTD y esquemas XML
XPath, XSLT, XQuery: Trabajo práctico
Extensiones y sistemas nativos
Conclusiones y perspectivas
22. 22
DTD (Document Type Definitions)
Servir de gramática para documentos XML
Algunas extensiones sirven como esquemas para
representar información
Expresiones regulares:
e* (cualquier número de elementos)
e+ (una o más ocurrencias)
e? (cero o una)
e | e’ (alternancia)
e , e’ (concatenación)
23. 23
DTD: Gramáticas
<!DOCTYPE db [
<!ELEMENT db (person*)>
<!ELEMENT person (name,age,email)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT email (#PCDATA)>
]>
<db> <person> <name> Alan </name>
<age> 42 </age>
<email> alan@abc.com </email>
</person>
. . .
</db>
27. 27
DTD: Esquemas
Permitir que los elementos de R1 y R2
aparezcan mezclados:
<!ELEMENT db ((r1|r2)*)>
Describir componentes opcionales o repetidos:
<!ELEMENT r1 (a,b?,c+)>
Almacenar la definición del esquema fuera del
documento:
<!DOCTYPE db SYSTEM “schema.dtd”>
<!DOCTYPE db SYSTEM “http://.../schema.dtd”>
28. 28
DTD: Atributos
<product>
<name language = “Spanish” department = “music”>
flauta transversal </name>
<price currency = “Pesos”> 4200.12 </price>
</product>
<!ATTLIST name language CDATA #REQUIRED
department CDATA #IMPLIED>
<!ATTLIST price currency CDATA #IMPLIED>
29. 29
DTD: Referencias
<family>
<person id = “jane” mother = “mary” father = “john”>
<name> Jane Doe </name>
</person>
<person id = “john” children = “jane jack”>
<name> John Doe </name>
</person>
<person id = “mary” children = “jane jack”>
<name> Mary Smith </name>
</person>
<person id = “jack” mother = “mary” father = “john”>
<name> Jack Smith </name>
</person>
</family>
30. 30
DTD: Referencias
Redundancia:
Representación anidada de la información
Evitar reuniones de elementos para obtener la
información asociada
Producto cartesiano:
Representación normalizada
Combinar la información de la base de datos usando
los identificadores
31. 31
Documentos XML válidos
Documento válido:
Bien formado
Conforme a una DTD
Los identificadores deben ser valores distintos
Los valores de las referencias deben ser
identificadores existentes
32. 32
Limitaciones de las DTD
Imponen orden (usar “|” como alternativa)
No hay noción de tipos atómicos: sólo el tipo
#PCDATA
No hay restricciones sobre las referencias: no se
puede definir una referencia específica (ID, IDREF,
IDREFS)
Los tags son globales: usar espacios de nombres
(xmlns), v.g., person:name y course:name
33. 33
Espacio de nombres
Especificar globalmente nombres únicos para la
definición de elementos
Anteponer a cada etiqueta o atributo un
identificador de recursos universal
Usar un URL como identificador único:
Se puede definir una abreviatura para los identificadores
Se puede usar el atributo xmlns en el elemento raíz para
definir un espacio de nombres predeterminado
36. 36
Esquema XML (XMLSchema)
Lenguaje de especificación de esquemas más sofisticado:
resuelve muchas de las deficiencias de las DTD
Cuenta con tipos de datos para restringir los elementos:
xsd:string, xsd:decimal
Permite indicar el número mínimo y máximo de apariciones
de los sub-elementos:
Usando minOccurs y maxOccurs
Por defecto, minOccurs = “1”, maxOccurs = “1”
37. 37
DTD: Ejemplo
<!DOCTYPE db [
<!ELEMENT db (person*)>
<!ELEMENT person (name,age,email)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT email (#PCDATA)>
]>
<db> <person> <name> Alan </name>
<age> 42 </age>
<email> alan@abc.com </email>
</person>
. . .
</db>
38. 38
Esquema XML: Ejemplo
<xsd:schema xmlns:xsd = “http://www.w3.org/2001/XMLSchema” >
<xsd:element name = “db” type = “Empleados”/>
<xsd:element name = “person”>
<xsd:element name = “name” type = “xsd:string”/>
<xsd:element name = “age” type = “xsd:decimal”/>
<xsd:element name = “email” type = “xsd:string”/>
</xsd:element>
<xsd:complexType name = “Empleados”>
<xsd:sequence>
<xsd:element ref = “person”
minOccurs = “0” maxOccurs =
“unbounded”/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
39. 39
Esquemas XML: Ventajas
Permite crear tipos definidos por el usuario
Permite restringir los textos de los elementos a tipos
específicos: numérico, lista, etc.
Permite restringir los tipos para crear tipos especializados:
valor mínimo y máximo
Permite la extensión de tipos complejos mediante el uso de
una forma de herencia
Permite restricciones de unicidad y de clave externa
Está integrado con espacio de nombres para permitir a
diferentes partes de un documento adaptarse a un esquema
diferente
40. 40
Contenido
Bases de datos XML
XML y bases de datos
Consulta de datos semi-estructurados:
Conceptos de base
DTD y esquemas XML
XPath, XSLT, XQuery
Extensiones y sistemas nativos
Conclusiones y perspectivas
41. 41
Consulta y transformación
El resultado de una consulta XML puede ser un
documento XML:
Extraer información de grandes volúmenes de datos
Convertir los datos entre distintas representaciones
(esquemas) en XML
Lenguajes de consulta y transformación:
XPath, expresiones de rutas de acceso (constructor)
XSLT, lenguaje de transformación (formato de datos)
XQuery, estándar para consultar datos XML
42. 42
Modelo de árbol
Nodos:
Atributos
Elementos que pueden tener nodos hijos
Contenido textual de un nodo:
<element>
Éste es un <bold> buen </bold> libro
</element>
Orden de los elementos y atributos
43. 43
XPath
Expresiones de ruta de acceso:
Secuencia de pasos de ubicación separados por “/”
(en lugar del “.” de OQL)
El resultado es un conjunto de valores
Ejemplo: /family/person/name
44. 44
/family/person/name
<family>
<person id = “jane” mother = “mary” father = “john”>
<name> Jane Doe </name>
</person>
<person id = “john” children = “jane jack”>
<name> John Doe </name>
</person>
<person id = “mary” children = “jane jack”>
<name> Mary Smith </name>
</person>
<person id = “jack” mother = “mary” father = “john”>
<name> Jack Smith </name>
</person>
</family>
45. 45
/family/person/name
<family>
<person id = “jane” mother = “mary” father = “john”>
<name> Jane Doe </name>
</person>
<person id = “john” children = “jane jack”>
<name> John Doe </name>
</person>
<person id = “mary” children = “jane jack”>
<name> Mary Smith </name>
</person>
<person id = “jack” mother = “mary” father = “john”>
<name> Jack Smith </name>
</person>
</family>
46. 46
XPath
Expresiones de ruta de acceso:
Secuencia de pasos de ubicación separados por “/”
(en lugar del “.” de OQL)
El resultado es un conjunto de valores
Ejemplo: /family/person/name
<name> Jane Doe </name>
<name> John Doe </name>
<name> Mary Smith </name>
<name> Jack Smith </name>
47. 47
XPath
Acceder a los valores de los elementos:
/family/person/name/text()
Acceder a los valores de los atributos:
/family/person/@children
De forma predeterminada, no se siguen las referencias
IDREF
48. 48
XPath
Predicados de selección
Contar nodos coincidentes
Saltar niveles
La función “id”
El operador “|”
Padre y descendientes
49. 49
XSLT (XML Stylesheet
Language)
Serie de reglas recursivas denominadas
plantillas:
Originalmente diseñado para generar HTML
XSL Transformations, mecanismo de transformación
de propósito general usado para transformar un
documento XML en otro documento XML
Selección de nodos en un árbol XML mediante
una expresión XPath
50. 50
XSLT: Plantillas
Plantilla definida por dos partes:
La parte selección es definida por una expresión
XPath
La parte coincidencia devuelve los valores de los
nodos en el resultado de la expresión XPath
<xsl:template match = “/family/person”>
<xsl:value-of select = “name”/>
</xsl:template>
<xsl:template match = “*”/>
51. 51
XSLT: Generación
La segunda plantilla coincide con todos los
nodos:
Copiar su contenido textual en el documento salida
(comportamiento predefinido)
Aplicar recursivamente las plantillas a sus sub-
elementos
Creación de elementos y atributos:
xsl:element
xsl:attribute
52. 52
XSLT: Generación
Todo texto o etiqueta fuera del espacio de
nombres xsl se copia a la salida sin cambios:
<xsl:template match = “/family/person”>
<persona>
<xsl:value-of select = “name”/>
</persona>
</xsl:template>
<xsl:template match = “*”/>
53. 53
XSLT: recursividad estructural
<xsl:template match = “/family”>
<personas>
<xsl:apply-templates/>
</personas>
</xsl:template>
<xsl:template match = “/family/person”>
<persona>
<xsl:value-of select = “name”/>
</persona>
</xsl:template>
<xsl:template match = “*”/>
Recursividad
forzada
54. 54
XSLT: Claves
Búsqueda de elementos mediante el uso de
valores de sub-elementos o atributos:
<xsl:key name = “pkey”
match = “person”
use = “name”/>
Uso de claves:
<xsl:value-of select =
key( “pkey”, “Jack Smith” )/>
56. 56
XQuery
Consultas:
Parecidas a las consultas SQL
Organizadas en expresiones FLWR
Cuatro secciones:
for: similar a la cláusula from de SQL
let: asignación de expresiones a variables
where: similar a la cláusula where de SQL
return: construcción de resultados en XML
57. 57
XQuery: Consulta simple
Obtener las referencias de los hijos de los
adultos mayores:
for $x in /family/person
let $lista := $x/@children
where $x/age >= 60
return <hijos> $lista </hijos>
for $x in /family/person[ age > 60 ]
return <hijos> $x/@children </hijos>
58. 58
XQuery: Ordenar
Usar al final de cualquier expresión la
cláusula sortby:
for $p in /family/person
return <result> $p/* </result>
sortby (name)
sortby (name descending)
59. 59
XQuery: Funciones
Funciones sobre conjuntos:
Eliminar duplicados: distinct
Funciones de agregación: sum, count, etc.
El operador “->” se puede aplicar sobre valores
de tipo:
IDREF para obtener el elemento
IDREFS para obtener un conjunto de elementos
60. 60
XQuery: Funciones
Funciones incorporadas:
document(name)
number(string)
Otras características:
if-then-else
some $e in path satisfies P
every $e in path satisfies P
61. 61
Contenido
Bases de datos XML
XML y bases de datos
Consulta de datos semi-estructurados:
Conceptos de base
DTD y esquemas XML
XPath, XSLT, XQuery
Extensiones y sistemas nativos
Conclusiones y perspectivas
62. 62
1. Introducción
Generaciones de bases de datos:
Red y jerárquico 70 - 80
Relacional 80 - 90
Objeto-Relacional 90 - …
WEB y bases de datos:
Pérdida de RDV (conexiones)
Servidores de aplicaciones débilmente acopladas
La WEB es una base distribuida muy voluminosa
Estructuración débil (flexible)
Orientado a documentos ...
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
63. 63
XML
Integración de datos y meta-datos
Las bases de datos no pueden ser indiferentes:
Almacenamiento de documentos XML
Consulta de documentos XML
¿Evolución o revolución?
¿Qué modelo de datos?
¿Qué lenguaje de consulta?
¿Cómo integrar soluciones nuevas y viejas?
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
64. 64
Modelo interno y productos
Middleware XML BD:
Arriba de un SGBD
Técnicas de mapeo sofisticadas
Sistemas nativos:
Técnicas de investigación y almacenamiento especializado
Extensión de SGBD relacionales:
Agregar tipos de datos nativos
Soportar documentos extendidos
Bases de datos orientadas a objetos:
Uso de modelos orientados a objetos
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
65. 65
2. Middleware XML
Componentes de software
usando un SGBD (objeto-
relacional):
Almacenamiento y consulta
de documentos XML
Transformación de XML a
relaciones
Vice-versa
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
SQL
SGBD
Tablas
Almac.
XML
Recup.
XML
XQuery XML
XML
Índices
66. 66
Mapeo
Orientado a reglas:
tabla = documento plano en XML
XML anidado:
XSL
XQuery
Orientado a esquema:
Tipos de datos
Control de los documentos
insertados y recuperados
Normalización de datos (sin
redundancia)
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
Vista por
defecto XML
JDBC
XML
RDBMS
XMLizer
67. 67
Difundiendo en XML
Nativo:
Renglones transformadas
en elementos
Columnas a atributos o
elementos anidados
Anidado:
¡XML no es plano!
¿Cómo anidar?
Estructuras (árboles)
Esquemas (mapeos)
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
<TABLE>
<VINS nv="100" cru="Volnay" mill="1999" degré="11" />
<VINS nv="200" cru="Chablis" mill="2000" degré="12"/>
</TABLE>
VIN
S
nv cosec
ha
año gra
do
100 Volna
y
199
9
11
200 Chabl
is
200
1
12
68. 68
Consulta en XQuery
Reescritura de consultas:
Transformación a SQL
Aplicar un mapeo
Indexación:
Rápido acceso a tags
Rápido acceso a datos
Optimización del Join:
Orden de Joins
Expresiones regulares
Dificultades:
Generalidad
Eficiencia
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
Tables
JDBC
XQuery
Vista XML
XML
Tables
Query
processor
69. 69
Almacenamiento en XML
Datos:
Columnas de tabla
Tablas genéricas o
aplicativas (SQL)
Estructura:
Pérdida o almacenada
Difícil de encontrar de
nuevo
Administrada en la base de
datos
Grafo de nodos
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
JDBC
Mapeo de
esquema
XML
Esquema
XML
Tablas
Transformador
70. 70
Mapeo entre esquemas
Correspondencia:
Elemento a columna
Atributo a columna
Generación de datos
Llaves
Restricciones referenciales
Reglas de administración
Control de integridad
…
Editor de Mapeos
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
Restaurant(#R,Name, Address, Comments)
Menu(#R, Starter,Course,Dessert)
71. 71
Oracle: XSU
Almacenamiento y publicación:
Mapeo de XML plano a una tabla
Mapeo de XML anidado a tablas anidadas
Tags especiales <rowset> y <row>
Comandos PutXml y GetXml
Posibilidad de pasar a través de iFS y XSL
Consultas:
Servlet XSQL
Documentos XML con consultas SQL
Transformación nativa de resultados de consultas
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
72. 72
Oracle: DB XML
Integra XSU (mapeo) y el tipo XMLType
Consulta vía SQL extendido (SQL/XML)
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
Función Rol
XMLAgg Dada una colección de fragmentos regresa un documento XML agregado
XMLConcat Dado un conjunto de instancias de tipo en XML correspondiente a los valores de una columna de
los renglones de una tabla regresa las instancias concatenadas
XMLElement Dado el nombre de un elemento, una colección de atributos opcionales, el contenido de un
elemento, regresa una instancia XMLType
XMLForest Convierte un conjunto de argumentos en XML y regresa un fragmento XML que es la
concatenación de los argumentos
XMLColAttVal Convierte el valor de una columna a XML
XMLSequence Transforma un conjunto de líneas referenciadas por un cursor dentro de una secuencia XML
XMLTransform Aplica una hoja de estilo XSL a una instancia de un XMLType y regresa una instancia XMLType
ExtractValue. Dada una instancia XMLType y una expresión XPath regresa el valor del nodo seleccionado
ExtractXML Dada una instancia XMLType y una expresión XPath regresa una estructura XML representando el
nodo seleccionado.
73. 73
Microsoft
SQL Server 2000:
Transforma XML a tablas
Definido por asistentes
Ejecutado por procesos
almacenados
Generación de resultados
en XML
Por SELECT … FOR XML
Proyecto Yukon 2003:
¿SGBD nativo?
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
SQL
Server
RowSet
SQL
XML
Files
XPath
XQuery
XML
XML
View
74. 74
Microsoft: SQL Server XML
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
Procesador
Esquemas XSD
mapeados
XPath
XQuery
Query
XML
Servidor
SQL
Rowsets
FOR XML
SQL
Queries
FOR XML
Queries
SQL
Queries
FOR XML
Queries
FOR XML
XMLBulkload
BCP/SQL
XML
Updategrams
update /
insert / delete
XML
75. 75
IBM XPeranto: Arquitectura
Vistas XML
usando un
SGBDR (DB2)
XQuery dentro
del traductor y
optimizador de
SQL
Será integrado
en DB2 en una
versión futura
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
Consulta sobre una
vista XML Resultado XML
Analizador de consultas
(Query parser)
Reescritura de consultas
(optim) (Query Rewrite)
Traducción SQL
(SQL Translation)
‘Tagging’ XML
Consulta SQL
Resultado
relacional
Sistema de base de datos relacional
76. 76
IBM XPeranto: Álgebra
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
Operador Descripción
Table Toma una tabla como flujo de entrada a partir de la base de datos
Project Evalúa un resultado con respecto de un flujo de entrada
Select Proyecta un dato de entrada de acuerdo a un criterio
Join Une 2 o más flujos de datos de entradas
Groupby Agrega un flujo de datos de entrada
Orderby Ordena un flujo de entrada
Union Unión de 2 o más entradas de flujos de entrada
Unnest Aplana listas con respecto a un elemento pivote
View Representa un nodo correspondiente a una vista
Function Llama una función XQuery
77. 77
e-XMLMedia: XMLizer
XML extracción
XQuery traducido a SQL
XML guardado en la BD
Mapeo de esquemas
Acelerador XTree (Depósito)
Portable:
Oracle, SQLServer, PostGres,
…
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
Extractor Transf.
JDBC
XMLizer
Relational
DB
Scripts XQuery
API XML/DBC
Reglas de mapeo
API SAX2
SGBD Relacional
78. 78
e-XMLMedia: Depósito
Mantiene la identificación
del documento
Mantiene la estructura del
documento
Reconstrucción rápida
XTree + Clustering
Navegación rápida
XPath por selección
Indexación de contenido
XTree
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
(1,7)
Nombre
(2,2)
Tipo
(3,3) (4,6)
(5,5) (6,6)
(7,7)
Guía
(0,7)
Rue
Categoría
Ville
Dirección
Restaurantes
Tour
d’Argent
Fish
Bd Seine Paris
***
79. 79
e-XMLMedia: Depósito
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
Tablas
relacionales
Inserción
Parser XQuery
Traductor SQL
API XML/DBC
XML
MAP
XQuery XML
Búsqueda
Colecciones
Extracción
XML
Transf.
XTree
80. 80
3. SGBD XML nativo
Construido para XML
Almacena documentos
completos sin
descomponerlos en
elementos
Usa técnicas de indexado y
árboles específicos
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
Árboles
Almacenar
XML
Recuperar
XML
Consulta XML
XML
Índices
Corazón del SGBD
Concurrencia, Fiabilidad
81. 81
Indexación de texto plano
Tesauros:
Conjunto de términos asociados
Lista de palabras importantes
Palabras preferentes y sinónimos
Especializaciones y translaciones
Estándares ISO 2788 y ANSI Z39.19
Raíces (steming) y lemas (preferente)
Listas inversas:
Archivos y palabras significativas
Para cada palabra, dirección en el documento
Firmas:
Vector de palabras que caracterizan el contenido
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
82. 82
Índices
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
XPath Palabras Frec. Liga
/doc/resum Base 5 Doc1
3 Doc2
2 Doc3
/doc/resum Data 4 Doc1
3 Doc2
2 Doc3
/doc/sect1 Object 5 Doc1
2 Doc4
BDR
XML
...
Objetos
Muy útil para indexar tags y datos
83. 83
Productos
Start ups:
Software A.G. Tamino http://www.softwareag.com/
X-Hive/Db http://www.x-hive.com/
Coherity http://www.coherity.com/
IXIA soft http://www.ixiasoft.com/
XML Global http://www.xmlglobal.com/
NeoCore http://www.neocore.com/
Integración de un tipo especial en SGBD-OR:
DB2 XML Extender
BLOB
Funciones de acceso Xpath integradas a SQL/XML
Oracle 9.i XML DB
Soportes XMLType
Consulta a través SQL/XML
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
84. 84
Tamino Software AG
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
Acceso a Tamino a partir de
aplicaciones XQL, SQL, OO
Almacenamiento nativo XML
Uso de Tamino en Internet
sin programar
Provee mapeo de datos y
acceso a datos heterogéneos
Administración de Internet
Tamino SDK
X-Port Technology
X-Machine Technology
X-Node Technology
Tamino Manager
85. 85
Nativo vs. Middleware
Ventajas de usar Middleware:
No se necesita un nuevo SGBD
Posibilidad de normalizar datos
Portabilidad entre SGBD
Estándares respetados
SQL, J2EE, XQuery
Buen desempeño para acceder
granos pequeños
Ventajas de usar nativo:
Nuevo SGBD
Concebido para XML
Integridad de documentos
Buen desempeño para
acceder a información a
grano grande
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
86. 86
Sistemas de documentos
Excelon (http://www.odi.com)
DOM implementado sobre OODBMS Object Store
BladeRunner (http://www.broadvision.com)
Interleaf Broadvision
Documentum (http://www.documentum.com)
Documentum 4.i supports XML natif
Separación de elementos textuales indexado desde 02/2001
Arbortext (http://www.arbortext.com)
Epic E-Content Engine E3
Fusión de XML vía XSL, sobre Oracle iFile System
Oracle (http://www.oracle.com)
Intermedia Text
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
87. 87
Contenido
Bases de datos XML
XML y bases de datos
Consulta de datos semi-estructurados:
Conceptos de base
DTD y esquemas XML
XPath, XSLT, XQuery
Extensiones y sistemas nativos
Conclusiones y perspectivas
88. 88
Conclusión
¿XML puede cambiar la construcción de bases de datos?
Investigación en BD semi-estructuradas
Necesidad de esquemas flexibles (XML Schema)
Lenguajes de consulta estandarizados (XQuery)
El efecto de la Web ...
¿Integración débil usando objeto-relacional?
Transformación a tablas
Administración de grafos
¿Middleware o SGBD?
Estrategias innovadoras:
SGBD XML nativos
El mercado es todavía reducido …
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini