SlideShare una empresa de Scribd logo
1 de 88
Bases de Datos XML
Universidad Autonóma de Tlaxcala
Dr. Alberto Portilla Flores
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
¿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
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
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
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
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
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
Intercambio B2B-XML EDI
Autor: G. Gardarin
Traducido: J.L. Zechinelli Martini
XML EDI
XMLizer
Internet
(SOAP)
Cliente
Proveedor
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
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
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
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
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
15
Modelo XML basado en
grafos
 Expresión XML:
<person>
<name> Alan </name>
<age> 42 </age>
<email> alan@abc.com </email>
</person>
 Expresión SSD (Semi-Structured Data):
{person: {name: “Alan”, age: 42, email: “alan@abc.com”}}
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
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
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
Otros constructores
 CDATA: caracteres que podrían confundirse
con marcas
<![CDATA[<start> an incorrect element </end>]]>
 Macros tales como el carácter “<”
&lt;
 DTD:
<!DOCTYPE name [markupdeclarations]>
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
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
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
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>
24
DTD: Gramáticas
<!DOCTYPE recursiva [
<!ELEMENT node (leaf | (node,node))>
<!ELEMENT leaf (#PCDATA)>
]>
<node>
<node>
<node> <leaf> 1 </leaf> </node>
<node> <leaf> 2 </leaf> </node>
</node>
<node>
<leaf> 3 </leaf>
</node>
</node>
25
DTD: Esquemas
Esquema relacional:
 R1( A: D1, B: D2, C: D3 )
 R2( C: D3, D: D4 )
R1 R2
A B C
a1
a2
b1
b2
c1
c2
C D
c2
c3
c4
d2
d3
d4
26
DTD: Esquemas
<!DOCTYPE db [
<!ELEMENT db (r1*, r2*)>
<!ELEMENT r1 (a,b,c)>
<!ELEMENT r2 (c,d)>
<!ELEMENT a (#PCDATA)>
<!ELEMENT b (#PCDATA)>
<!ELEMENT c (#PCDATA)>
<!ELEMENT d (#PCDATA)>
]>
<db> <r1> <a> a1 </a> <b> b1 </b> <c> c1 </c> </r1>
<r1> <a> a2 </a> <b> b2 </b> <c> c2 </c> </r1>
<r2> <c> c2 </c> <d> d2 </d> </r2>
<r2> <c> c3 </c> <d> d3 </d> </r2>
<r2> <c> c4 </c> <d> d4 </d> </r2>
</db>
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
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
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
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
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
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
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
34
Espacio de nombres:
Ejemplo1
<table xmlns:SD = http://www.SellsDepartment.hp.org>
...
<SD:people>
<SD:person>
<SD:name> Alan </SD:name>
<SD:age> 42 </SD:age>
<SD:email> alan@abc.com </SD:email>
</SD:person>
…
</SD:people>
...
</table>
35
Espacio de nombres:
Ejemplo2
<table>
...
<people xmlns = “http://www.SellsDepartment.hp.org”>
<person>
<name> Alan </name>
<age> 42 </age>
<email> alan@abc.com </email>
</person>
...
</people>
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
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
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
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
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
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
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
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
/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
/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
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
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
XPath
 Predicados de selección
 Contar nodos coincidentes
 Saltar niveles
 La función “id”
 El operador “|”
 Padre y descendientes
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
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
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
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
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
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” )/>
55
XSLT: Ordenar
<xsl:template match = “/family”>
<xsl:apply-templates select = “person”>
<xsl:sort select = “name”/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match = “person”>
<persona>
<xsl:value-of select = “name”/>
<xsl:value-of select = “age”/>
</persona>
</xsl:template>
<xsl:template match = “*”/>
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Í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
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
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
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
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
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
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

Más contenido relacionado

La actualidad más candente

Materia unidad compiladores
Materia unidad compiladoresMateria unidad compiladores
Materia unidad compiladoresbachispasaca
 
Forma normal de boyce codd y algoritmos de descomposición
Forma normal de boyce codd y algoritmos de descomposiciónForma normal de boyce codd y algoritmos de descomposición
Forma normal de boyce codd y algoritmos de descomposiciónJuan Anaya
 
Sesion 7 2 diseño diagramas de despliegue
Sesion 7 2 diseño   diagramas de despliegueSesion 7 2 diseño   diagramas de despliegue
Sesion 7 2 diseño diagramas de despliegueJulio Pari
 
Estructuras de datos y tipos de datos abstractos
Estructuras de datos y tipos de datos abstractosEstructuras de datos y tipos de datos abstractos
Estructuras de datos y tipos de datos abstractosLuis Lastra Cid
 
Herramienta frame en visual basic
Herramienta frame en visual basicHerramienta frame en visual basic
Herramienta frame en visual basicMony Athuz
 
Programación Orientada a Objetos (POO) y UML
Programación Orientada a Objetos (POO) y UMLProgramación Orientada a Objetos (POO) y UML
Programación Orientada a Objetos (POO) y UMLGabriel Cortez
 
Persistencia de datos en Java
Persistencia de datos en JavaPersistencia de datos en Java
Persistencia de datos en JavaIker Canarias
 
Patrones estructurales
Patrones estructuralesPatrones estructurales
Patrones estructuralesAutentia
 
Particiones EstáTicas
Particiones EstáTicasParticiones EstáTicas
Particiones EstáTicasdanielchecar
 
Diagramas estados
Diagramas estadosDiagramas estados
Diagramas estadosloco8888
 
Tipos de comunicaciones
Tipos de comunicacionesTipos de comunicaciones
Tipos de comunicacionesNixon Maza
 
Fundamentos de programación librería string C++
Fundamentos de programación librería string C++Fundamentos de programación librería string C++
Fundamentos de programación librería string C++Milton Nicolay
 

La actualidad más candente (20)

Base De Datos Tecnologia De Negocios Electronicos
Base De Datos Tecnologia De Negocios ElectronicosBase De Datos Tecnologia De Negocios Electronicos
Base De Datos Tecnologia De Negocios Electronicos
 
Layouts en Android Studio
Layouts en Android StudioLayouts en Android Studio
Layouts en Android Studio
 
Ejercicios uml
Ejercicios umlEjercicios uml
Ejercicios uml
 
Patrones GRASP
Patrones GRASPPatrones GRASP
Patrones GRASP
 
Materia unidad compiladores
Materia unidad compiladoresMateria unidad compiladores
Materia unidad compiladores
 
Forma normal de boyce codd y algoritmos de descomposición
Forma normal de boyce codd y algoritmos de descomposiciónForma normal de boyce codd y algoritmos de descomposición
Forma normal de boyce codd y algoritmos de descomposición
 
Sesion 7 2 diseño diagramas de despliegue
Sesion 7 2 diseño   diagramas de despliegueSesion 7 2 diseño   diagramas de despliegue
Sesion 7 2 diseño diagramas de despliegue
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Estructuras de datos y tipos de datos abstractos
Estructuras de datos y tipos de datos abstractosEstructuras de datos y tipos de datos abstractos
Estructuras de datos y tipos de datos abstractos
 
Herramienta frame en visual basic
Herramienta frame en visual basicHerramienta frame en visual basic
Herramienta frame en visual basic
 
Programación Orientada a Objetos (POO) y UML
Programación Orientada a Objetos (POO) y UMLProgramación Orientada a Objetos (POO) y UML
Programación Orientada a Objetos (POO) y UML
 
Persistencia de datos en Java
Persistencia de datos en JavaPersistencia de datos en Java
Persistencia de datos en Java
 
Patrones estructurales
Patrones estructuralesPatrones estructurales
Patrones estructurales
 
Particiones EstáTicas
Particiones EstáTicasParticiones EstáTicas
Particiones EstáTicas
 
Diagramas estados
Diagramas estadosDiagramas estados
Diagramas estados
 
Diagramas componentes
Diagramas componentesDiagramas componentes
Diagramas componentes
 
Tipos de comunicaciones
Tipos de comunicacionesTipos de comunicaciones
Tipos de comunicaciones
 
Fundamentos de programación librería string C++
Fundamentos de programación librería string C++Fundamentos de programación librería string C++
Fundamentos de programación librería string C++
 
Manual dfd
Manual dfdManual dfd
Manual dfd
 

Destacado

Trabajo bases de datos nativas xml
Trabajo bases de datos nativas xmlTrabajo bases de datos nativas xml
Trabajo bases de datos nativas xmlferrari777
 
Datos semiestructurados Xml
Datos semiestructurados XmlDatos semiestructurados Xml
Datos semiestructurados Xmljosecuartas
 
XML en .NET
XML en .NETXML en .NET
XML en .NETbrobelo
 
Procesamiento de XML en C#
Procesamiento de XML en C#Procesamiento de XML en C#
Procesamiento de XML en C#Jordan-P
 
Fire Bird
Fire BirdFire Bird
Fire Birdlejogu
 
C# Advanced L03-XML+LINQ to XML
C# Advanced L03-XML+LINQ to XMLC# Advanced L03-XML+LINQ to XML
C# Advanced L03-XML+LINQ to XMLMohammad Shaker
 
SEO Mining Lakil Essady Search Congress Barcelona
SEO Mining Lakil Essady Search Congress BarcelonaSEO Mining Lakil Essady Search Congress Barcelona
SEO Mining Lakil Essady Search Congress BarcelonaLakil Essady
 
Manual programacion - java - jsp & xml
Manual   programacion - java - jsp & xmlManual   programacion - java - jsp & xml
Manual programacion - java - jsp & xmlgilhorak
 
Ejercicio - Personal de departamentos (XSD - XML Schema)
Ejercicio - Personal de departamentos (XSD - XML Schema)Ejercicio - Personal de departamentos (XSD - XML Schema)
Ejercicio - Personal de departamentos (XSD - XML Schema)Abrirllave
 
PRESENTACIÓN PROYECTO LOMBRIVAL
PRESENTACIÓN PROYECTO LOMBRIVALPRESENTACIÓN PROYECTO LOMBRIVAL
PRESENTACIÓN PROYECTO LOMBRIVAL2AFI1011
 
PRESENTACIÓN NISNOMAR!
PRESENTACIÓN NISNOMAR!PRESENTACIÓN NISNOMAR!
PRESENTACIÓN NISNOMAR!2AFI1011
 
Organigramas y dep.
Organigramas y dep.Organigramas y dep.
Organigramas y dep.anlonar
 
Tutorial de XML en PDF
Tutorial de XML en PDFTutorial de XML en PDF
Tutorial de XML en PDFAbrirllave
 
PHP Avanzado: PHP, XML y Servicios Web
PHP Avanzado: PHP, XML y Servicios WebPHP Avanzado: PHP, XML y Servicios Web
PHP Avanzado: PHP, XML y Servicios WebRightster
 
10 herramientas importantes de un tecnico de computadoras
10 herramientas importantes de un tecnico de computadoras10 herramientas importantes de un tecnico de computadoras
10 herramientas importantes de un tecnico de computadorasJuan1215
 

Destacado (20)

Trabajo bases de datos nativas xml
Trabajo bases de datos nativas xmlTrabajo bases de datos nativas xml
Trabajo bases de datos nativas xml
 
Datos semiestructurados Xml
Datos semiestructurados XmlDatos semiestructurados Xml
Datos semiestructurados Xml
 
Computo Ubicuo
Computo UbicuoComputo Ubicuo
Computo Ubicuo
 
Bases de Datos Relacionales
Bases de Datos RelacionalesBases de Datos Relacionales
Bases de Datos Relacionales
 
XML Básico DB2
XML Básico DB2XML Básico DB2
XML Básico DB2
 
Datos En La Web - Clase 1
Datos En La Web - Clase 1Datos En La Web - Clase 1
Datos En La Web - Clase 1
 
XML en .NET
XML en .NETXML en .NET
XML en .NET
 
Procesamiento de XML en C#
Procesamiento de XML en C#Procesamiento de XML en C#
Procesamiento de XML en C#
 
Fire Bird
Fire BirdFire Bird
Fire Bird
 
C# Advanced L03-XML+LINQ to XML
C# Advanced L03-XML+LINQ to XMLC# Advanced L03-XML+LINQ to XML
C# Advanced L03-XML+LINQ to XML
 
SEO Mining Lakil Essady Search Congress Barcelona
SEO Mining Lakil Essady Search Congress BarcelonaSEO Mining Lakil Essady Search Congress Barcelona
SEO Mining Lakil Essady Search Congress Barcelona
 
Manual programacion - java - jsp & xml
Manual   programacion - java - jsp & xmlManual   programacion - java - jsp & xml
Manual programacion - java - jsp & xml
 
Ejercicio - Personal de departamentos (XSD - XML Schema)
Ejercicio - Personal de departamentos (XSD - XML Schema)Ejercicio - Personal de departamentos (XSD - XML Schema)
Ejercicio - Personal de departamentos (XSD - XML Schema)
 
PRESENTACIÓN PROYECTO LOMBRIVAL
PRESENTACIÓN PROYECTO LOMBRIVALPRESENTACIÓN PROYECTO LOMBRIVAL
PRESENTACIÓN PROYECTO LOMBRIVAL
 
PRESENTACIÓN NISNOMAR!
PRESENTACIÓN NISNOMAR!PRESENTACIÓN NISNOMAR!
PRESENTACIÓN NISNOMAR!
 
Xml dtd
Xml dtd Xml dtd
Xml dtd
 
Organigramas y dep.
Organigramas y dep.Organigramas y dep.
Organigramas y dep.
 
Tutorial de XML en PDF
Tutorial de XML en PDFTutorial de XML en PDF
Tutorial de XML en PDF
 
PHP Avanzado: PHP, XML y Servicios Web
PHP Avanzado: PHP, XML y Servicios WebPHP Avanzado: PHP, XML y Servicios Web
PHP Avanzado: PHP, XML y Servicios Web
 
10 herramientas importantes de un tecnico de computadoras
10 herramientas importantes de un tecnico de computadoras10 herramientas importantes de un tecnico de computadoras
10 herramientas importantes de un tecnico de computadoras
 

Similar a Bases de Datos XML - Consulta de datos semi-estructurados

Presentación muy chula ApéndiceTecnologíaXML.ppt
Presentación muy chula ApéndiceTecnologíaXML.pptPresentación muy chula ApéndiceTecnologíaXML.ppt
Presentación muy chula ApéndiceTecnologíaXML.pptprofesoralpe4
 
Objeto relacional bases datos 2
Objeto relacional bases datos 2Objeto relacional bases datos 2
Objeto relacional bases datos 2Velmuz Buzz
 
Tutorial de DTD en PDF
Tutorial de DTD en PDFTutorial de DTD en PDF
Tutorial de DTD en PDFAbrirllave
 
Analisis Estructurado
Analisis EstructuradoAnalisis Estructurado
Analisis EstructuradoDain Grillo
 
Analisis Estructurado
Analisis EstructuradoAnalisis Estructurado
Analisis EstructuradoDain Grillo
 
Introduccion a SQL Server 2000
Introduccion a SQL Server 2000Introduccion a SQL Server 2000
Introduccion a SQL Server 2000freddymax
 
D:\Introduccion A Sql 2000 Server
D:\Introduccion A Sql 2000 ServerD:\Introduccion A Sql 2000 Server
D:\Introduccion A Sql 2000 Serverguestb4f410
 
Capítulo 21 (Estándares, lenguajes y diseño de base de datos de objetos) y Ca...
Capítulo 21 (Estándares, lenguajes y diseño de base de datos de objetos) y Ca...Capítulo 21 (Estándares, lenguajes y diseño de base de datos de objetos) y Ca...
Capítulo 21 (Estándares, lenguajes y diseño de base de datos de objetos) y Ca...Liz Ocampo
 
"Meta datos & Google Rich Snippets" por @iplarodriguez
"Meta datos & Google Rich Snippets" por @iplarodriguez"Meta datos & Google Rich Snippets" por @iplarodriguez
"Meta datos & Google Rich Snippets" por @iplarodriguezwebcat
 
TUTORIAL DE ADO.NET MUY BUENO
TUTORIAL DE ADO.NET MUY BUENOTUTORIAL DE ADO.NET MUY BUENO
TUTORIAL DE ADO.NET MUY BUENOiberhack
 
ADO NET Entity FrameWork
ADO NET Entity FrameWorkADO NET Entity FrameWork
ADO NET Entity FrameWorkmascodigo
 

Similar a Bases de Datos XML - Consulta de datos semi-estructurados (20)

Xml
XmlXml
Xml
 
Presentación muy chula ApéndiceTecnologíaXML.ppt
Presentación muy chula ApéndiceTecnologíaXML.pptPresentación muy chula ApéndiceTecnologíaXML.ppt
Presentación muy chula ApéndiceTecnologíaXML.ppt
 
Objeto relacional bases datos 2
Objeto relacional bases datos 2Objeto relacional bases datos 2
Objeto relacional bases datos 2
 
Omar unidad 07 base de datos
Omar unidad 07 base de datosOmar unidad 07 base de datos
Omar unidad 07 base de datos
 
Tutorial de DTD en PDF
Tutorial de DTD en PDFTutorial de DTD en PDF
Tutorial de DTD en PDF
 
Ead aplicaciones prácticas
Ead aplicaciones prácticasEad aplicaciones prácticas
Ead aplicaciones prácticas
 
Analisis Estructurado
Analisis EstructuradoAnalisis Estructurado
Analisis Estructurado
 
Analisis Estructurado
Analisis EstructuradoAnalisis Estructurado
Analisis Estructurado
 
Bd Conceptos Generales
Bd Conceptos GeneralesBd Conceptos Generales
Bd Conceptos Generales
 
Introduccion a SQL Server 2000
Introduccion a SQL Server 2000Introduccion a SQL Server 2000
Introduccion a SQL Server 2000
 
D:\Introduccion A Sql 2000 Server
D:\Introduccion A Sql 2000 ServerD:\Introduccion A Sql 2000 Server
D:\Introduccion A Sql 2000 Server
 
Curso xml
Curso xmlCurso xml
Curso xml
 
Capítulo 21 (Estándares, lenguajes y diseño de base de datos de objetos) y Ca...
Capítulo 21 (Estándares, lenguajes y diseño de base de datos de objetos) y Ca...Capítulo 21 (Estándares, lenguajes y diseño de base de datos de objetos) y Ca...
Capítulo 21 (Estándares, lenguajes y diseño de base de datos de objetos) y Ca...
 
Curso integración Web Semántica
Curso integración Web Semántica Curso integración Web Semántica
Curso integración Web Semántica
 
Intro sql
Intro sqlIntro sql
Intro sql
 
"Meta datos & Google Rich Snippets" por @iplarodriguez
"Meta datos & Google Rich Snippets" por @iplarodriguez"Meta datos & Google Rich Snippets" por @iplarodriguez
"Meta datos & Google Rich Snippets" por @iplarodriguez
 
TUTORIAL DE ADO.NET MUY BUENO
TUTORIAL DE ADO.NET MUY BUENOTUTORIAL DE ADO.NET MUY BUENO
TUTORIAL DE ADO.NET MUY BUENO
 
Base de datos
Base de datosBase de datos
Base de datos
 
Almdedat
AlmdedatAlmdedat
Almdedat
 
ADO NET Entity FrameWork
ADO NET Entity FrameWorkADO NET Entity FrameWork
ADO NET Entity FrameWork
 

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
  • 15. 15 Modelo XML basado en grafos  Expresión XML: <person> <name> Alan </name> <age> 42 </age> <email> alan@abc.com </email> </person>  Expresión SSD (Semi-Structured Data): {person: {name: “Alan”, age: 42, email: “alan@abc.com”}}
  • 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 “<” &lt;  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>
  • 24. 24 DTD: Gramáticas <!DOCTYPE recursiva [ <!ELEMENT node (leaf | (node,node))> <!ELEMENT leaf (#PCDATA)> ]> <node> <node> <node> <leaf> 1 </leaf> </node> <node> <leaf> 2 </leaf> </node> </node> <node> <leaf> 3 </leaf> </node> </node>
  • 25. 25 DTD: Esquemas Esquema relacional:  R1( A: D1, B: D2, C: D3 )  R2( C: D3, D: D4 ) R1 R2 A B C a1 a2 b1 b2 c1 c2 C D c2 c3 c4 d2 d3 d4
  • 26. 26 DTD: Esquemas <!DOCTYPE db [ <!ELEMENT db (r1*, r2*)> <!ELEMENT r1 (a,b,c)> <!ELEMENT r2 (c,d)> <!ELEMENT a (#PCDATA)> <!ELEMENT b (#PCDATA)> <!ELEMENT c (#PCDATA)> <!ELEMENT d (#PCDATA)> ]> <db> <r1> <a> a1 </a> <b> b1 </b> <c> c1 </c> </r1> <r1> <a> a2 </a> <b> b2 </b> <c> c2 </c> </r1> <r2> <c> c2 </c> <d> d2 </d> </r2> <r2> <c> c3 </c> <d> d3 </d> </r2> <r2> <c> c4 </c> <d> d4 </d> </r2> </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
  • 34. 34 Espacio de nombres: Ejemplo1 <table xmlns:SD = http://www.SellsDepartment.hp.org> ... <SD:people> <SD:person> <SD:name> Alan </SD:name> <SD:age> 42 </SD:age> <SD:email> alan@abc.com </SD:email> </SD:person> … </SD:people> ... </table>
  • 35. 35 Espacio de nombres: Ejemplo2 <table> ... <people xmlns = “http://www.SellsDepartment.hp.org”> <person> <name> Alan </name> <age> 42 </age> <email> alan@abc.com </email> </person> ... </people>
  • 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” )/>
  • 55. 55 XSLT: Ordenar <xsl:template match = “/family”> <xsl:apply-templates select = “person”> <xsl:sort select = “name”/> </xsl:apply-templates> </xsl:template> <xsl:template match = “person”> <persona> <xsl:value-of select = “name”/> <xsl:value-of select = “age”/> </persona> </xsl:template> <xsl:template match = “*”/>
  • 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