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

Capa de enlace de datos
Capa de enlace de datosCapa de enlace de datos
Capa de enlace de datos
Jorge Arroyo
 
Administración de configuraciones de seguridad en windows server con group po...
Administración de configuraciones de seguridad en windows server con group po...Administración de configuraciones de seguridad en windows server con group po...
Administración de configuraciones de seguridad en windows server con group po...
Miguel de la Cruz
 
Simuladores de red
Simuladores de redSimuladores de red
Simuladores de red
oscarmanuuel
 
Configuración Script Usuarios Masivos Windows Server 2012 R2
Configuración Script Usuarios Masivos Windows Server 2012 R2Configuración Script Usuarios Masivos Windows Server 2012 R2
Configuración Script Usuarios Masivos Windows Server 2012 R2
cyberleon95
 
Modelo OSI
Modelo OSIModelo OSI
Modelo OSI
Comdat4
 
Introduction to metadata management
Introduction to metadata managementIntroduction to metadata management
Introduction to metadata management
Open Data Support
 
actividades de soporte casos
actividades de soporte   casosactividades de soporte   casos
actividades de soporte casos
TgestionaBlog
 
Historia de la tecnologia de base de datos
Historia de la tecnologia de base de datosHistoria de la tecnologia de base de datos
Historia de la tecnologia de base de datos
ralbarracin
 

La actualidad más candente (20)

Asegurando la calidad del dato en mi entorno de business intelligence
Asegurando la calidad del dato en mi entorno de business intelligenceAsegurando la calidad del dato en mi entorno de business intelligence
Asegurando la calidad del dato en mi entorno de business intelligence
 
Capa de enlace de datos
Capa de enlace de datosCapa de enlace de datos
Capa de enlace de datos
 
Administración de configuraciones de seguridad en windows server con group po...
Administración de configuraciones de seguridad en windows server con group po...Administración de configuraciones de seguridad en windows server con group po...
Administración de configuraciones de seguridad en windows server con group po...
 
Métodos predictivos y Descriptivos - MINERÍA DE DATOS
Métodos predictivos y Descriptivos - MINERÍA DE DATOSMétodos predictivos y Descriptivos - MINERÍA DE DATOS
Métodos predictivos y Descriptivos - MINERÍA DE DATOS
 
Presentacion cableado estructurado
Presentacion cableado estructuradoPresentacion cableado estructurado
Presentacion cableado estructurado
 
Simuladores de red
Simuladores de redSimuladores de red
Simuladores de red
 
Configuración Script Usuarios Masivos Windows Server 2012 R2
Configuración Script Usuarios Masivos Windows Server 2012 R2Configuración Script Usuarios Masivos Windows Server 2012 R2
Configuración Script Usuarios Masivos Windows Server 2012 R2
 
Modelo OSI
Modelo OSIModelo OSI
Modelo OSI
 
Introduction to metadata management
Introduction to metadata managementIntroduction to metadata management
Introduction to metadata management
 
NoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradasNoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradas
 
Consultas sql
Consultas sqlConsultas sql
Consultas sql
 
Arquitectura de un sistema de informacion
Arquitectura de un sistema de informacionArquitectura de un sistema de informacion
Arquitectura de un sistema de informacion
 
Conclusiones sobre bases de datos
Conclusiones sobre bases de datosConclusiones sobre bases de datos
Conclusiones sobre bases de datos
 
Examen final de redes
Examen final de redesExamen final de redes
Examen final de redes
 
actividades de soporte casos
actividades de soporte   casosactividades de soporte   casos
actividades de soporte casos
 
Técnicas mineria de datos
Técnicas mineria de datosTécnicas mineria de datos
Técnicas mineria de datos
 
Routing Estático
Routing EstáticoRouting Estático
Routing Estático
 
Bd no sql conceptos basicos
Bd no sql conceptos basicosBd no sql conceptos basicos
Bd no sql conceptos basicos
 
Redes conmutadas
Redes conmutadasRedes conmutadas
Redes conmutadas
 
Historia de la tecnologia de base de datos
Historia de la tecnologia de base de datosHistoria de la tecnologia de base de datos
Historia de la tecnologia de base de datos
 

Destacado

Trabajo bases de datos nativas xml
Trabajo bases de datos nativas xmlTrabajo bases de datos nativas xml
Trabajo bases de datos nativas xml
ferrari777
 
XML en .NET
XML en .NETXML en .NET
XML en .NET
brobelo
 
Fire Bird
Fire BirdFire Bird
Fire Bird
lejogu
 
Manual programacion - java - jsp & xml
Manual   programacion - java - jsp & xmlManual   programacion - java - jsp & xml
Manual programacion - java - jsp & xml
gilhorak
 
PRESENTACIÓN NISNOMAR!
PRESENTACIÓN NISNOMAR!PRESENTACIÓN NISNOMAR!
PRESENTACIÓN NISNOMAR!
2AFI1011
 
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
Juan1215
 

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

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
profesoralpe4
 
Objeto relacional bases datos 2
Objeto relacional bases datos 2Objeto relacional bases datos 2
Objeto relacional bases datos 2
Velmuz Buzz
 
Analisis Estructurado
Analisis EstructuradoAnalisis Estructurado
Analisis Estructurado
Dain Grillo
 
Introduccion a SQL Server 2000
Introduccion a SQL Server 2000Introduccion a SQL Server 2000
Introduccion a SQL Server 2000
freddymax
 
D:\Introduccion A Sql 2000 Server
D:\Introduccion A Sql 2000 ServerD:\Introduccion A Sql 2000 Server
D:\Introduccion A Sql 2000 Server
guestb4f410
 
ADO NET Entity FrameWork
ADO NET Entity FrameWorkADO NET Entity FrameWork
ADO NET Entity FrameWork
mascodigo
 

Similar a Bases de Datos XML (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

  • 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