DESARROLLO DE APLICACIONES CON BASES DE DATOS · • Datos semi-estructurados Ælos datos tienen...

23
1 DESARROLLO DE APLICACIONES DESARROLLO DE APLICACIONES CON BASES DE DATOS CON BASES DE DATOS Tema 4 Tema 4 XML Y BASES DE DATOS XML Y BASES DE DATOS DASBD Curso 2006/2007 4. 2 Objetivos Objetivos Presentar los modelos de datos semiestructurados. Dar a conocer la importancia del XML, sus características, sus componentes y su relación con las bases de datos. Conocer que es una base de datos XML. Presentar algunos SGBD que soportan XML.

Transcript of DESARROLLO DE APLICACIONES CON BASES DE DATOS · • Datos semi-estructurados Ælos datos tienen...

Page 1: DESARROLLO DE APLICACIONES CON BASES DE DATOS · • Datos semi-estructurados Ælos datos tienen una cierta estructura pero no toda la información recogida tiene la misma estructura

11

DESARROLLO DE APLICACIONES DESARROLLO DE APLICACIONES CON BASES DE DATOSCON BASES DE DATOS

Tema 4Tema 4

XML Y BASES DE DATOSXML Y BASES DE DATOS

DASBD Curso 2006/2007 4. 2

ObjetivosObjetivos

• Presentar los modelos de datos semiestructurados.• Dar a conocer la importancia del XML, sus

características, sus componentes y su relación con las bases de datos.

• Conocer que es una base de datos XML.• Presentar algunos SGBD que soportan XML.

Page 2: DESARROLLO DE APLICACIONES CON BASES DE DATOS · • Datos semi-estructurados Ælos datos tienen una cierta estructura pero no toda la información recogida tiene la misma estructura

22

DASBD Curso 2006/2007 4. 3

ContenidoContenido

•• IntroducciIntroduccióónnNivel de estructuraciNivel de estructuracióón de datosn de datosBases de datos documentalesBases de datos documentalesIntegraciIntegracióón de datos muy estructurados y poco estructuradosn de datos muy estructurados y poco estructurados

•• XMLXMLEstructura de datos y documentosEstructura de datos y documentosEsquemasEsquemasConsultas y transformaciConsultas y transformacióón n –– XQueryXQuery

•• XML y Bases de DatosXML y Bases de DatosSistemas de bases de datos nativos XMLSistemas de bases de datos nativos XMLIntegraciIntegracióón de XML en otros SGBDn de XML en otros SGBD

DASBD Curso 2006/2007 4. 4

BibliografBibliografííaa

ConnollyConnolly y y BeggBegg (2005)(2005)CapCap. 30. 30

ElmasriElmasri y y NavatheNavathe (2004)(2004)CapCap. 26. 26

SilberschatzSilberschatz et al. (2002)et al. (2002)CapCap. 10. 10

Page 3: DESARROLLO DE APLICACIONES CON BASES DE DATOS · • Datos semi-estructurados Ælos datos tienen una cierta estructura pero no toda la información recogida tiene la misma estructura

33

DASBD Curso 2006/2007 4. 5

IntroducciIntroduccióón n

Nivel de EstructuraciNivel de Estructuracióón de Datosn de Datos

•• Datos Datos estructuradosestructurados representados en un representados en un formato estricto (formato estricto (relaciones/tablasrelaciones/tablas))

•• DatosDatos semisemi--estructuradosestructurados los datos tienen los datos tienen una cierta estructura pero no toda la una cierta estructura pero no toda la informaciinformacióón recogida tiene la misma estructura n recogida tiene la misma estructura ((grafosgrafos))

•• DatosDatos desestructuradosdesestructurados hay una indicacihay una indicacióón n muy limitada del tipo de datos (documentos de muy limitada del tipo de datos (documentos de texto, archivos de video)texto, archivos de video)

DASBD Curso 2006/2007 4. 6

IntroducciIntroduccióón n

Bases de Datos DocumentalesBases de Datos Documentales

•• EstEstáán orientadas a almacenar datos n orientadas a almacenar datos desestructurados desestructurados de tipo texto.de tipo texto.

•• Carecen de una estructura tabular y contienen Carecen de una estructura tabular y contienen informaciinformacióón bibliogrn bibliográáfica y/o el texto completo de los fica y/o el texto completo de los documentos.documentos.

•• Los Los modelosmodelos de de informaciinformacióónn consideranconsideran queque cadacadadocumentodocumento se describe con un se describe con un conjuntoconjunto de de palabraspalabrasclave clave significativassignificativas (llamadas (llamadas ííndicesndices).).

•• Los Los ííndices se utilizan para indexar y resumir el ndices se utilizan para indexar y resumir el contenido de los documentos, ayudando a su gesticontenido de los documentos, ayudando a su gestióón.n.

Page 4: DESARROLLO DE APLICACIONES CON BASES DE DATOS · • Datos semi-estructurados Ælos datos tienen una cierta estructura pero no toda la información recogida tiene la misma estructura

44

DASBD Curso 2006/2007 4. 7

IntroducciIntroduccióón n

IntegraciIntegracióón de Datosn de Datos

•• En la actualidad es una necesidad En la actualidad es una necesidad integrar los datos integrar los datos muy estructurados con los poco estructuradosmuy estructurados con los poco estructurados..

La principal diferencia entre ambos es la forma de manejar los La principal diferencia entre ambos es la forma de manejar los constructores del esquema (nombres de atributos, relaciones y constructores del esquema (nombres de atributos, relaciones y tipos de entidades, etc.)tipos de entidades, etc.)En el caso de los poco estructurados, la informaciEn el caso de los poco estructurados, la informacióón del n del esquema se mezcla con los valores de los datos ya que un esquema se mezcla con los valores de los datos ya que un objeto de datos puede tener diferentes atributos no conocidos objeto de datos puede tener diferentes atributos no conocidos por adelantado. Por eso, estos tipos de datos se conocen como por adelantado. Por eso, estos tipos de datos se conocen como datos datos autodescriptivosautodescriptivos. .

DASBD Curso 2006/2007 4. 8

IntroducciIntroduccióón n

IntegraciIntegracióón de Datosn de Datos

Ejemplo:• Queremos recolectar una lista de referencias bibliográficas

relacionadas a un proyecto de investigación. Algunas pueden ser libros otras informes técnicos, otras números especiales de revistas o actas de congresos.

• Claramente cada uno de estas pueden tener atributos y diferente tipo de información.

• Aún para el mismo tipo de referencia, por ejemplo artículos de congresos, podemos tener diferente información.

• Por ejemplo, una referencia a un artículo puede estar muy completa , con toda la información de los autores, título, actas, número de páginas, y demás, mientras que otra referencia puede no tener toda la información.

• Nuevos tipos de referencias pueden aparecer con el tiempo, por ejemplo referencias a páginas Web o a tutoriales de conferencias, y pueden tener diferentes atributos.

Page 5: DESARROLLO DE APLICACIONES CON BASES DE DATOS · • Datos semi-estructurados Ælos datos tienen una cierta estructura pero no toda la información recogida tiene la misma estructura

55

DASBD Curso 2006/2007 4. 9

XMLXML

•• XMLXML ((eeXXtensibletensible MMarkuparkup LLanguageanguage))• XML es descendiente de SGMLSGML ((Standard Standard GeneralizedGeneralized MarkupMarkup

LanguageLanguage)), que fue creado en los 80, pero que tiene como principal problema su complejidad.

•• HTMLHTML se creó para publicar información en Internet, pero con él solo se puede formatear texto, no describe contenido.

• XML empezó en 1996 como un pequeña versión de SGML para evitar su redundancia, complicación y características confusas. XML se plantea por la necesidad de poder definir y manejar necesidad de poder definir y manejar estructura interna en los documentos HTML.estructura interna en los documentos HTML.

• En 1998 la W3C ya publica su especificación y recomienda su uso.

DASBD Curso 2006/2007 4. 10

•• XMLXML es una es una idea simpleidea simple, no nueva, pero , no nueva, pero tremendamente tremendamente úútiltil porque: porque:

ha llegado en un ha llegado en un momento adecuadomomento adecuado para sacar partido de para sacar partido de diversas tecnologdiversas tecnologíías (Internet, Web, ...)as (Internet, Web, ...)y poder abordar de y poder abordar de nuevas manerasnuevas maneras, m, máás adecuadas y s adecuadas y potentes, problemas importantes:potentes, problemas importantes:

IntegraciIntegracióón de datosn de datos estructurados (tablas relacionales) y poco estructurados (tablas relacionales) y poco estructurados (documentos).estructurados (documentos).Aportar Aportar significado a la websignificado a la web (web sem(web semáántica).ntica).IntegraciIntegracióón de sistemasn de sistemas de informacide informacióón basados en tecnologn basados en tecnologíías as diferentes.diferentes.Hacer una Hacer una web orientada a las aplicacionesweb orientada a las aplicaciones ((web web servicesservices) en vez ) en vez de una web orientada sde una web orientada sóólo a la interaccilo a la interaccióón con personas (HTML).n con personas (HTML).

XMLXML

Page 6: DESARROLLO DE APLICACIONES CON BASES DE DATOS · • Datos semi-estructurados Ælos datos tienen una cierta estructura pero no toda la información recogida tiene la misma estructura

66

DASBD Curso 2006/2007 4. 11

•• XMLXML esesUn lenguaje de Un lenguaje de marcasmarcas (etiquetas delimitadas)(etiquetas delimitadas)para definir nuevos lenguajes (un para definir nuevos lenguajes (un metalenguajemetalenguaje))

•• Con las siguientes Con las siguientes caractercaracteríísticas principalessticas principales::VersVersáátiltil: separa contenido, estructura y presentaci: separa contenido, estructura y presentacióón. Esto permite un n. Esto permite un a visia visióón personalizada de los datos. Los datos pueden ser n personalizada de los datos. Los datos pueden ser presentados a los usuarios a travpresentados a los usuarios a travéés de un s de un browserbrowser donde se pueden donde se pueden presnetarpresnetar de manera personalizada, basada en preferencias o de manera personalizada, basada en preferencias o configuraciconfiguracióón.n.ExtensibleExtensible: se pueden definir nuevas etiquetas: se pueden definir nuevas etiquetasEstructuradoEstructurado: se pueden modelar datos a cualquier nivel de : se pueden modelar datos a cualquier nivel de complejidad complejidad ValidableValidable: cada documento se puede validar frente a un : cada documento se puede validar frente a un DTD/DTD/SchemaSchema, o en su defecto, se puede declarar bien formado. , o en su defecto, se puede declarar bien formado. AbiertoAbierto: : independiente de plataformas, empresas, lenguajes de programaciindependiente de plataformas, empresas, lenguajes de programacióón n o entornos de desarrolloo entornos de desarrollo..SencilloSencillo: f: fáácil de aprender y de usar. cil de aprender y de usar.

XMLXML

DASBD Curso 2006/2007 4. 12

• Otras características adicionales de XML son:Independencia del medio, pudiendo publicar contenidos en múltiples formatos.Los documentos XML son fácilmente procesables y compartibles en Internet. Permite validación de los documentos.Permite composición de los documentos.Puede ser un contenedor de datos. Utilizando DTD o XML Schemas se puede representar eficientemente cualquier dato de forma que puede ser leído por personas o aplicaciones.Internacional: utiliza el conjunto de caracteres UNICODE.Ayuda a descongestionar Internet, ya que gran parte del procesamiento se puede hacer en el cliente.XML no es compatible con HTML, pero los documentos HTMLv4.0 son fácilmente convertibles a XML.

XMLXML

Page 7: DESARROLLO DE APLICACIONES CON BASES DE DATOS · • Datos semi-estructurados Ælos datos tienen una cierta estructura pero no toda la información recogida tiene la misma estructura

77

DASBD Curso 2006/2007 4. 13

• Extensiones del propio XMLAmplían las capacidades del XML original, no son un lenguaje XML en sentido estricto.Se definen de forma similar al XML original, como un subconjunto de SGML.Todas ellas deben ser compatibles entre sí.

• Lenguajes XML (Aplicaciones XML)Lenguajes definidos en base a XML y sus extensiones.Cada lenguaje se define mediante una gramática que consiste en un tipo de documento XML (DTD (document type definition) o XSD XML schema definition)).Pueden ser:

Horizontales: resuelven cierta funcionalidad que es útil en general.– SOAP (Simple Object Access Protocol). Es un protocolo estándar creado por

W·C, que define cómo dos objetos en difrentes procesos pueden comunicarse por medio de intercambio de datos XML. SOAP es uno de los protocolos utilizados en los servicios Web.

Verticales: dirigidos a un sector o utilidad particular.– CML (Chemical Markup Language). Surge para intecambiar información sobre

química a través de internet.

XMLXML

DASBD Curso 2006/2007 4. 14

•• El El ééxito de XML ha originado que se demanden xito de XML ha originado que se demanden nuevas nuevas funcionalidadesfuncionalidades, que se abordan definiendo , que se abordan definiendo extensiones extensiones adicionalesadicionales para:para:

Estructurar documentosEstructurar documentos ((XML XML SchemaSchema).).Enlaces y direccionamientoEnlaces y direccionamiento ((XPathXPath, , XLinkXLink, , XPointerXPointer).).TransformaciTransformacióón y presentacin y presentacióónn (familia (familia XSL, CSS2XSL, CSS2).).ConsultasConsultas ((XQueryXQuery).).ProgramaciProgramacióónn ((DOM, SAXDOM, SAX).).OtrosOtros ((NamespacesNamespaces, , XIncludeXInclude,, XBaseXBase, ...)., ...).

XMLXML

Page 8: DESARROLLO DE APLICACIONES CON BASES DE DATOS · • Datos semi-estructurados Ælos datos tienen una cierta estructura pero no toda la información recogida tiene la misma estructura

88

DASBD Curso 2006/2007 4. 15

XMLXML

Estructura de Datos y DocumentosEstructura de Datos y Documentos

•• La La gramgramááticatica de los lenguajes XML, es decir, la de los lenguajes XML, es decir, la estructura y elementos permitidos en los documentos estructura y elementos permitidos en los documentos XML, se define medianteXML, se define mediante

DTDDTD ((DocumentDocument TypeType DefinitionDefinition))Documento ASCII plano que especifica tanto los elementos que Documento ASCII plano que especifica tanto los elementos que forman un tipo de documento dado, como las relaciones que se forman un tipo de documento dado, como las relaciones que se dan entre ellos.dan entre ellos.

XSDXSD (XML (XML SchemaSchema DefinitionDefinition))Mejoran los DTDMejoran los DTD’’s porque ests porque estáán escritos en XML y permiten n escritos en XML y permiten nuevas caracternuevas caracteríísticas:sticas:

–– definir tipos de datos,definir tipos de datos,–– utilizar espacios de nombreutilizar espacios de nombre–– definir intervalos de valores para los atributos y elementos.definir intervalos de valores para los atributos y elementos.–– caractercaracteríísticas OO ...sticas OO ...

Tienen mayor potencial semTienen mayor potencial semáántico que los DTDntico que los DTD

DASBD Curso 2006/2007 4. 16

•• Un lenguaje XML (DTD/XSD) representa un Un lenguaje XML (DTD/XSD) representa un modelo de modelo de datos jerdatos jeráárquicorquico

Estructura los datos de acuerdo a un determinado Estructura los datos de acuerdo a un determinado ““esquema esquema semsemáánticontico””..

•• Estos lenguajes se definen especificando los Estos lenguajes se definen especificando los elementos elementos y atributos permitidosy atributos permitidos..

Esta especificaciEsta especificacióón se realiza mediante n se realiza mediante reglas gramaticalesreglas gramaticales..Un conjunto concreto y bien formado de tales reglas forman un Un conjunto concreto y bien formado de tales reglas forman un esquema XMLesquema XML (representado por un DTD o un XSD).(representado por un DTD o un XSD).Un esquema XML define un conjunto coherente de documentos, Un esquema XML define un conjunto coherente de documentos, es decir un es decir un tipo de documentostipo de documentos..

•• Ejemplo:Ejemplo:XHTML es el lenguaje HTML reformulado como aplicaciXHTML es el lenguaje HTML reformulado como aplicacióón XML, n XML, y se que se la pry se que se la próóxima generacixima generacióón de HTML. Es una versin de HTML. Es una versióón n mas mas estritaestrita y limpia de HTML..y limpia de HTML..

XMLXML

EsquemasEsquemas

Page 9: DESARROLLO DE APLICACIONES CON BASES DE DATOS · • Datos semi-estructurados Ælos datos tienen una cierta estructura pero no toda la información recogida tiene la misma estructura

99

DASBD Curso 2006/2007 4. 17

•• Ejemplo de Ejemplo de XML XML SchemaSchema

<schema targetNamespace=”http://www.bd.es/schema”xmlns=”http://www.w3.org/2001/XMLSchema”xmlns:bd=”http://www.bd.es/schema” >

<element name=”Articulo” type=”bd:tArticulo” /><complexType name=”tArticulo”>

<element name=”Cabecera” type=”bd:tCabecera”/><element name=”Cuerpo” type=”bd:tCuerpo”/><element name=”Final” type=”bd:tFinal”/>

</complexType><complexType name=”tCabecera”>

<element name=”Titulo” type=”string”/><element name=”Autor” type=”string”/>

</complexType>................

XMLXML

EsquemasEsquemas

DASBD Curso 2006/2007 4. 18

XMLXML

Consultas y TransformaciConsultas y Transformacióón n –– XQueryXQuery

•• XQueryXQuery LanguajeLanguaje (XQL)(XQL)•• Proporciona un modo flexible de Proporciona un modo flexible de consultaconsulta para extraer para extraer

datos de los documentos XML.datos de los documentos XML.Los archivos XML pueden ser Los archivos XML pueden ser reales o virtualesreales o virtuales, es decir, otras , es decir, otras fuentes (hojas de cfuentes (hojas de cáálculo, ASCII, bases de datos, ...) vistas como lculo, ASCII, bases de datos, ...) vistas como datos XML.datos XML.Se pretende que desempeSe pretende que desempeññe un papel similar al SQL en las BD e un papel similar al SQL en las BD relacionales: las colecciones de documentos XML podrrelacionales: las colecciones de documentos XML podráán ser n ser accedidas como si fueran una base de datos.accedidas como si fueran una base de datos.Esta basado en varias propuestas de lenguajes previas (XMLEsta basado en varias propuestas de lenguajes previas (XML--QL, QL, YATL, YATL, LorelLorel, , QuiltQuilt).).Se ha integrado con Se ha integrado con XPathXPath (versi(versióón 2.0).n 2.0).Existe un cierto solape con XSLT.Existe un cierto solape con XSLT.Una consulta puede referir a mUna consulta puede referir a máás de un documento.s de un documento.

Page 10: DESARROLLO DE APLICACIONES CON BASES DE DATOS · • Datos semi-estructurados Ælos datos tienen una cierta estructura pero no toda la información recogida tiene la misma estructura

1010

DASBD Curso 2006/2007 4. 19

•• Una Una consultaconsulta es una expresies una expresióón que:n que:LeeLee una secuencia de fragmentos XML o valores atuna secuencia de fragmentos XML o valores atóómicos ymicos yDevuelveDevuelve una secuencia de fragmentos XML o valores atuna secuencia de fragmentos XML o valores atóómicos.micos.

•• Los principales Los principales tipos de expresionestipos de expresiones son:son:Expresiones Expresiones XPathXPath, para navegar por los documentos., para navegar por los documentos.ConstructoresConstructores de elementos.de elementos.FLWRFLWR (FOR, LET, WHERE, RETURN) para iterar por los elementos (FOR, LET, WHERE, RETURN) para iterar por los elementos de una coleccide una coleccióón.n.CondicionalesCondicionales (IF, THEN ELSE) para construir el resultado en base (IF, THEN ELSE) para construir el resultado en base a alguna condicia alguna condicióón.n.Con Con cuantificadorescuantificadores (SOME, ANY) para chequear la existencia de (SOME, ANY) para chequear la existencia de algalgúún elemento que cumpla una condicin elemento que cumpla una condicióón.n.ListasListas a las que se pueden aplicar operadores (UNION, ...) y a las que se pueden aplicar operadores (UNION, ...) y funciones (AVG,...).funciones (AVG,...).

XMLXML

Consultas y TransformaciConsultas y Transformacióón n –– XQueryXQuery

DASBD Curso 2006/2007 4. 20

•• Ejemplo de consulta Ejemplo de consulta XQueryXQuery::Obtener el aObtener el añño y to y tíítulo de todos los libros publicados por tulo de todos los libros publicados por AddisonAddison--WesleyWesley despudespuéés de 1991s de 1991::

<<bibbib>>{{forfor $b $b inin docdoc("http://("http://www.bn.comwww.bn.com//bib.xmlbib.xml")/")/bibbib//bookbookwherewhere $b$b//publisherpublisher="="AddisonAddison--WesleyWesley" " andand $b/$b/@year@year>1991>1991

returnreturn<<bookbook yearyear="{ $b/="{ $b/@year@year }">}">{ $b/{ $b/titletitle }}</</bookbook>>

}}</</bibbib>>

XMLXML

Consultas y TransformaciConsultas y Transformacióón n –– XQueryXQuery

Page 11: DESARROLLO DE APLICACIONES CON BASES DE DATOS · • Datos semi-estructurados Ælos datos tienen una cierta estructura pero no toda la información recogida tiene la misma estructura

1111

DASBD Curso 2006/2007 4. 21

XMLXML

Otras Extensiones Otras Extensiones –– XPathXPath

•• XML XML PathPath LanguageLanguage ((XPathXPath)) es un lenguaje es un lenguaje declarativo para declarativo para localizar nodos y fragmentoslocalizar nodos y fragmentos (texto, (texto, elementos, atributos ...) en el elementos, atributos ...) en el áárbol de un documento rbol de un documento XML.XML.

•• Es utilizado por otras normas paraEs utilizado por otras normas paraDireccionamiento (Direccionamiento (XLinkXLink, , XPointerXPointer y XSLT)y XSLT)““Pattern matchingPattern matching”” (XSLT y XQuery)(XSLT y XQuery)

•• Se basa en el Se basa en el XPathXPath Data Data ModelModel::Un documento XML se representa como un Un documento XML se representa como un áárbol jerrbol jeráárquicorquico con con siete tipos de nodos (rasiete tipos de nodos (raííz, elemento, texto, atributo, espacio de z, elemento, texto, atributo, espacio de nombres, instruccinombres, instruccióón de procesamiento y comentario).n de procesamiento y comentario).

•• Conceptos importantes:Conceptos importantes:CaminosCaminos de localizacide localizacióónn / libro / capitulo / / libro / capitulo / parrafoparrafoPredicadosPredicados

DASBD Curso 2006/2007 4. 22

XMLXML

Otras Extensiones Otras Extensiones –– XPathXPath

•• Ejemplos Ejemplos XPathXPath::

Seleccionar nombres de ingredientes de receta que se utiliza Seleccionar nombres de ingredientes de receta que se utiliza media taza:media taza:

//ingrediente[@cantidad='0.5' //ingrediente[@cantidad='0.5' andand @unidad=taza]/@nombre@unidad=taza]/@nombre

Seleccionar todos los capSeleccionar todos los capíítulos ptulos púúblicos que tengan algblicos que tengan algúún n ppáárrafo que contenga algrrafo que contenga algúún elemento con atributo n elemento con atributo hrefhref::

////capitulo[parrafocapitulo[parrafo/*[/*[@href@href]][]][@public@public='si']='si']

Seleccionar todos los capSeleccionar todos los capíítulos ptulos púúblicos que tengan algblicos que tengan algúún n ppáárrafo importante o un aprrafo importante o un apééndice:ndice:

////capitulo[parrafocapitulo[parrafo/[@importante=/[@importante=‘‘sisi’’]]|//apendice ]]|//apendice

Page 12: DESARROLLO DE APLICACIONES CON BASES DE DATOS · • Datos semi-estructurados Ælos datos tienen una cierta estructura pero no toda la información recogida tiene la misma estructura

1212

DASBD Curso 2006/2007 4. 23

XMLXML

Otras Extensiones Otras Extensiones –– XSLXSL

•• XSLXSL ((eeXXtensibletensible SStylesheettylesheet LLanguageanguage) no s) no sóólo permite lo permite definir el estilodefinir el estilo a aplicar a cada elemento XML. Tambia aplicar a cada elemento XML. Tambiéén n es un lenguaje de programacies un lenguaje de programacióón para n para transformar transformar documentos XMLdocumentos XML..

El resultado puede ser un documento HTML, WML (para WAP), El resultado puede ser un documento HTML, WML (para WAP), texto plano, RTF, PDF, o incluso otro documento XML.texto plano, RTF, PDF, o incluso otro documento XML.Utiliza Utiliza XPathXPath para referir partes de documentos XML.para referir partes de documentos XML.

áárbol XMLrbol XMLoriginaloriginal áárbol XMLrbol XML

resultanteresultante

transformacitransformacióón XSLn XSL formateado XSLformateado XSL

DASBD Curso 2006/2007 4. 24

XMLXML

Otras Extensiones Otras Extensiones –– XSLXSL

•• Una Una hoja de estilo XSLhoja de estilo XSL es una serie de es una serie de reglasreglas que determinan que determinan ccóómo va a ocurrir la transformacimo va a ocurrir la transformacióón.n.

•• Cada regla se compone de un Cada regla se compone de un patrpatróón de localizacin de localizacióónn ((patternpattern) y ) y una una plantillaplantilla ((templatetemplate).).

<<xsl:templatexsl:template match="/">match="/"><HTML><HTML><BODY><BODY><<xsl:forxsl:for--eacheach selectselect="/LIBROS/LIBRO">="/LIBROS/LIBRO">TTíítulo:tulo:<<xsl:valuexsl:value--ofof selectselect="TITULO"/><BR/>="TITULO"/><BR/>Autor:Autor:<<xsl:valuexsl:value--ofof selectselect="AUTOR"/><BR/>="AUTOR"/><BR/>Precio:Precio:<<xsl:valuexsl:value--ofof selectselect="PRECIO"/> pesetas<BR/>="PRECIO"/> pesetas<BR/></</xsl:forxsl:for--eacheach>></BODY></BODY></HTML></HTML></</xsl:templatexsl:template>>

Page 13: DESARROLLO DE APLICACIONES CON BASES DE DATOS · • Datos semi-estructurados Ælos datos tienen una cierta estructura pero no toda la información recogida tiene la misma estructura

1313

DASBD Curso 2006/2007 4. 25

•• ¿¿QuQuéé sonson las Bases de Datos XML?las Bases de Datos XML?Un Un documento XMLdocumento XML es una BD porquees una BD porque

Almacena informaciAlmacena informacióón (documentos).n (documentos).Responde a un esquema (DTD, XML Responde a un esquema (DTD, XML SchemaSchema))Tiene lenguajes de consulta (Tiene lenguajes de consulta (XPahXPah, , XQueryXQuery))y APIy API’’s de Programacis de Programacióón (SAX, DOM, JDOMn (SAX, DOM, JDOM……))

EjemplosEjemplos de posibles BD XML:de posibles BD XML:Fichero de configuraciFichero de configuracióón de una aplicacin de una aplicacióónnPlantilla de un faxPlantilla de un faxFormulario para solicitar dietas de viajesFormulario para solicitar dietas de viajesTemario de una asignaturaTemario de una asignaturaTodos los informes de un departamentoTodos los informes de un departamento

En general, una BD XML es una BD almacenada o En general, una BD XML es una BD almacenada o gestionada en forma de documentos XML.gestionada en forma de documentos XML.

XML y Bases de DatosXML y Bases de Datos

DASBD Curso 2006/2007 4. 26

•• ¿¿PorquPorquéé surgen las BD XML?surgen las BD XML?Necesidad de Necesidad de almacenar y recuperar datos poco estructuradosalmacenar y recuperar datos poco estructuradoscon la eficiencia de las BD convencionales.con la eficiencia de las BD convencionales.Aparecen dos clases de SGBD que soportan documentos XMLAparecen dos clases de SGBD que soportan documentos XML

XMLXML--EnabledEnabled: : desglosan un documento XML en su correspondiente modelo relacional o de objetos.XML Nativos: XML Nativos: respetan la estrcutura de documento, permiten hacer consultas sobre dicha estrcutura y recuperan el documento tal y como fue insertado originalmente

En una BD XML es posible caracterizar tres tipos de archivos En una BD XML es posible caracterizar tres tipos de archivos XMLXML::

Centrados en Centrados en DatosDatos..Centrados en Centrados en DocumentosDocumentos..HHííbridosbridos (mezcla partes de los dos tipos anteriores, BD XML (mezcla partes de los dos tipos anteriores, BD XML nativa).nativa).

XML y Bases de DatosXML y Bases de Datos

Page 14: DESARROLLO DE APLICACIONES CON BASES DE DATOS · • Datos semi-estructurados Ælos datos tienen una cierta estructura pero no toda la información recogida tiene la misma estructura

1414

DASBD Curso 2006/2007 4. 27

•• Centrados en DatosCentrados en DatosMuchos elementosMuchos elementos de datos de pequede datos de pequeñño tamao tamañño.o.Con estructura regular y bien definida.Con estructura regular y bien definida.Datos Datos muy estructuradosmuy estructurados o o semisemi--estructuradosestructurados..Usados como mecanismo de intercambio o para mostrar datos en la Usados como mecanismo de intercambio o para mostrar datos en la webweb..Dirigidos a Dirigidos a utilizaciutilizacióón n automautomááticatica (por m(por mááquinas).quinas).Ejemplos: Facturas, Pedidos.Ejemplos: Facturas, Pedidos.

•• Centrados en DocumentosCentrados en DocumentosPocos elementosPocos elementos..Con grandes cantidades de texto.Con grandes cantidades de texto.Con estructuras impredecibles en tamaCon estructuras impredecibles en tamañño y contenido.o y contenido.Datos Datos poco estructuradospoco estructurados..Orientados a ser interpretadas por Orientados a ser interpretadas por humanoshumanos..Enfocados a sistemas documentales y de gestiEnfocados a sistemas documentales y de gestióón de contenidos.n de contenidos.Ejemplos: Libros, Informes.Ejemplos: Libros, Informes.

XML y Bases de Datos XML y Bases de Datos –– tipos de archivostipos de archivos

DASBD Curso 2006/2007 4. 28

•• Ejemplo de archivo centrado en datosEjemplo de archivo centrado en datosDatos de MatrDatos de Matríícula de Alumnoscula de Alumnos

<?xml version="1.0" encoding="ISO-8859-1"?><matricula xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:noNamespaceSchemaLocation="prueba.xsd"><personal>

<dni>52945813C</dni><nombre>Jose Perez García</nombre><titulacion>Ingeniería Informática (Plan 1998)</titulacion><curso>2004/2005</curso> <domicilios><domicilio tipo="familiar"><direccion>C/ Principal nº1</direccion>

</domicilio><domicilio tipo="habitual"><direccion>C/ Secundaria nº2</direccion>

</domicilio></domicilios>

</personal> <pago><tipo_matricula>Ordinaria</tipo_matricula>

</pago>…

</matricula>

XML y Bases de Datos XML y Bases de Datos –– tipos de archivostipos de archivos

Page 15: DESARROLLO DE APLICACIONES CON BASES DE DATOS · • Datos semi-estructurados Ælos datos tienen una cierta estructura pero no toda la información recogida tiene la misma estructura

1515

DASBD Curso 2006/2007 4. 29

XML y Bases de Datos XML y Bases de Datos –– tipos de archivostipos de archivos

<?xml version="1.0" encoding="ISO-8859-1"?><xs:schema

xmlns:xs="http://www.w3.org/2001/XMLSchema" xml:lang="ES">

<xs:element name="matricula" type="tMatricula"/> <xs:complexType name="tMatricula"><xs:sequence><xs:element name="personal" type="tPersonal"/><xs:element name="pago" type="tPago"/></xs:sequence></xs:complexType> <xs:complexType name="tPersonal"><xs:all><xs:element name="dni" type="xs:string"/><xs:element name="nombre" type="xs:string"/><xs:element name="titulacion" type="xs:string"/><xs:element name="curso_academico"

type="xs:string"/><xs:element name="domicilios" type="tDomicilio"/></xs:all></xs:complexType>

<xs:complexType name="tPago"><xs:all><xs:element name="tipo_matricula"

type="xs:string"/></xs:all></xs:complexType> <xs:complexType name="tDomicilio"><xs:sequence><xs:element name="domiclio"

maxOccurs="unbounded"><xs:complexType><xs:all><xs:element name=“direccion"

type="xs:string"/></xs:all></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:schema>

•• Ejemplo de archivo centrado en datosEjemplo de archivo centrado en datosXMLXML--SchemaSchema para Matrpara Matríícula de Alumnoscula de Alumnos

DASBD Curso 2006/2007 4. 30

•• Ejemplo de archivo centrado en documentosEjemplo de archivo centrado en documentosLibro El QuijoteLibro El Quijote

<?xml version="1.0" encoding="ISO-8859-1"?>…<libro titulo=“El Quijote”>

<introduccion>…</introduccion><capitulo numero=“1”>

En un lugar de la Mancha de cuyo nombre no quiero acordarme, no ha mucho tiempo vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor. Una olla de algo mas de vaca que carnero, salpicón por las noches, duelos y quebrantos los sábados, lantejas los viernes, algún palomino de añadidura los domingos, consumían las tres partes de su hacienda. El resto de ella concluían sayo de velarte, calzas de velludo para las fiestas, con sus pantuflos de lo mismo, y los días de entresemana se honraba con su vellorí de lo mas fino. Tenia en su casa una ama que pasaba de los cuarenta y una sobrina que no llegaba a los veinte, y un mozo de campo y plaza que así ensillaba el rocín como tomaba la podadera. Frisaba la edad de nuestro hidalgo delos cincuenta años. Era de complexión recia , seco de carnes, enjuto de rostro, gran madrugador y amigo de la caza. Quieren decir que tenia el nombre de Quijada o Quesada, que en esto hay alguna diferencia en los autores que deste caso escriben; aunque por conjeturas verisímiles, se deja entender que se llamaba Quijana. Pero esto importa poco a nuestro cuento; basta que la narración del no salga un punto de la verdad …

</capitulo></libro>

XML y Bases de Datos XML y Bases de Datos –– tipos de archivostipos de archivos

Page 16: DESARROLLO DE APLICACIONES CON BASES DE DATOS · • Datos semi-estructurados Ælos datos tienen una cierta estructura pero no toda la información recogida tiene la misma estructura

1616

DASBD Curso 2006/2007 4. 31

XML y Bases de Datos XML y Bases de Datos –– almacenamientoalmacenamiento

•• Existen varias aproximaciones para organizar y Existen varias aproximaciones para organizar y almacenar documentos XMLalmacenar documentos XML de cara a su consulta y de cara a su consulta y recuperacirecuperacióón:n:

Usar un SGBD para almacenar los Usar un SGBD para almacenar los documentos XML como documentos XML como textotexto..

Se almacenan documentos XML completos como textos muy Se almacenan documentos XML completos como textos muy largos en columnas de tipos carlargos en columnas de tipos caráácter largo (SGBD objetocter largo (SGBD objeto--relacional) o en objetos de clase texto (SGBDrelacional) o en objetos de clase texto (SGBD--OO).OO).

Usar un SGBD para Usar un SGBD para almacenar los elementos XMLalmacenar los elementos XML de los de los documentos como elementos de datos.documentos como elementos de datos.

Si todos los documentos XML tienen una estructura basada en un Si todos los documentos XML tienen una estructura basada en un DTD/DTD/SchemaSchema, es posible volcar sus partes a estructuras , es posible volcar sus partes a estructuras relacionales o a objetos de un SGBD.relacionales o a objetos de un SGBD.

DiseDiseññar un nuevo Sistema de BD para almacenar documentos ar un nuevo Sistema de BD para almacenar documentos XML de forma directa (XML de forma directa (BD XML nativaBD XML nativa).).Generar los documentos XML como Generar los documentos XML como capa de interfazcapa de interfaz de datos de datos almacenados en BD tradicionales (relacionales u OO).almacenados en BD tradicionales (relacionales u OO).

DASBD Curso 2006/2007 4. 32

XML y Bases de Datos XML y Bases de Datos –– almacenamientoalmacenamiento

•• Almacenar documentos XML completosAlmacenar documentos XML completos..Se utilizan bases de datos relacionales, objetoSe utilizan bases de datos relacionales, objeto--relacionales o de relacionales o de objetos puras para representar documentos XML.objetos puras para representar documentos XML.Se almacena el documento completo en una columna de tipo Se almacena el documento completo en una columna de tipo Binario Largo (Binario Largo (BLOBBLOB).).Sirve para documentos estSirve para documentos estááticos que no se modifican casi ticos que no se modifican casi nunca y cuando lo hacen se vuelven a grabar completamente.nunca y cuando lo hacen se vuelven a grabar completamente.No necesita mapeo.No necesita mapeo.El documento permanece El documento permanece ííntegro.ntegro.Limita las bLimita las búúsquedas por contenido y la indexacisquedas por contenido y la indexacióón.n.

Page 17: DESARROLLO DE APLICACIONES CON BASES DE DATOS · • Datos semi-estructurados Ælos datos tienen una cierta estructura pero no toda la información recogida tiene la misma estructura

1717

DASBD Curso 2006/2007 4. 33

XML y Bases de Datos XML y Bases de Datos –– almacenamientoalmacenamiento

•• Almacenar elementos XMLAlmacenar elementos XML..Se utilizan BD tradicionales para asociar cada elemento de cada Se utilizan BD tradicionales para asociar cada elemento de cada documento XML con alguna estructura de la BD.documento XML con alguna estructura de la BD.Se plantea un problema importante de Se plantea un problema importante de MapeoMapeo(correspondencia) entre los elementos XML y las estructuras de (correspondencia) entre los elementos XML y las estructuras de la BD.la BD.

Los desajustes se deben a Los desajustes se deben a modelo de datos diferentesmodelo de datos diferentes::–– XML => JerXML => Jeráárquicorquico–– SGBD => Relacional / ObjetosSGBD => Relacional / Objetos

Las ventajas vienen de que se pueden aprovechar las capacidades Las ventajas vienen de que se pueden aprovechar las capacidades del SGBD donde se almacenan:del SGBD donde se almacenan:

–– BBúúsquedas, indexaciones, optimizaciones, etc.squedas, indexaciones, optimizaciones, etc.

La principal desventaja es que La principal desventaja es que la integridad del documento no se la integridad del documento no se mantienemantiene..

DASBD Curso 2006/2007 4. 34

XML y Bases de Datos XML y Bases de Datos –– almacenamientoalmacenamiento

•• Mapeo y TraducciMapeo y Traduccióónn..Mapeo Mapeo basado en Tablasbasado en Tablas..

Modela el documento XML en un conjunto de tablas en un modelo Modela el documento XML en un conjunto de tablas en un modelo relacional.relacional.Los atributos XML se almacenan en una columna de una tabla.Los atributos XML se almacenan en una columna de una tabla.Para recuperar un documento XML se debe realizar un proceso de Para recuperar un documento XML se debe realizar un proceso de serializaciserializacióónn..Distintos esquemas XML pueden generar el mismo esquema de Distintos esquemas XML pueden generar el mismo esquema de BD relacional.BD relacional.

Mapeo Mapeo basado en Interrelaciones entre Objetosbasado en Interrelaciones entre Objetos..Cada tipo de elemento XML de mCada tipo de elemento XML de máás alto nivel se modela como una s alto nivel se modela como una clase de objetos.clase de objetos.Los atributos XML se modelan como atributos de las clases.Los atributos XML se modelan como atributos de las clases.

Page 18: DESARROLLO DE APLICACIONES CON BASES DE DATOS · • Datos semi-estructurados Ælos datos tienen una cierta estructura pero no toda la información recogida tiene la misma estructura

1818

DASBD Curso 2006/2007 4. 35

““Las bases de datos XML nativas son BD que Las bases de datos XML nativas son BD que almacenan XML usando un formato que permite un almacenan XML usando un formato que permite un procesamiento mprocesamiento máás rs ráápidopido”” ((DBXml GroupDBXml Group))

•• Almacenan la informaciAlmacenan la informacióón en formato nativo.n en formato nativo.•• No traducen el XML a estructuras relacionales u objetos.No traducen el XML a estructuras relacionales u objetos.•• Sus esquemas permiten reglas de almacenamiento e Sus esquemas permiten reglas de almacenamiento e

indexaciindexacióón.n.•• Todos los documentos son accesibles mediante una URL.Todos los documentos son accesibles mediante una URL.•• Mantienen el modelo XML intacto.Mantienen el modelo XML intacto.

XML y Bases de DatosXML y Bases de Datos

Sistemas de BD Nativos XMLSistemas de BD Nativos XML

DASBD Curso 2006/2007 4. 36

XML y Bases de DatosXML y Bases de Datos

Sistemas de BD Nativos XMLSistemas de BD Nativos XML•• Crean Crean modelos lmodelos lóógicosgicos en XML.en XML.•• MapeanMapean los modelos al mecanismo de almacenamiento los modelos al mecanismo de almacenamiento

correspondiente. correspondiente. •• Las Las operacionesoperaciones con los documentos se realizan con los documentos se realizan en XMLen XML..•• Dan un mayor nivel de abstracciDan un mayor nivel de abstraccióón al programador.n al programador.•• Dependencia del esquema.Dependencia del esquema.

Gestionan documentos como colecciones de datos.Gestionan documentos como colecciones de datos.No todas necesitan un esquema para almacenar documentos.No todas necesitan un esquema para almacenar documentos.

Problemas de integridad Problemas de integridad intraintra--documento.documento.Los esquemas se definen con DTD o con XML Los esquemas se definen con DTD o con XML SchemaSchema (W3C).(W3C).

•• No usan un mecanismo concreto de almacenamiento fNo usan un mecanismo concreto de almacenamiento fíísico.sico.Depende de cada producto.Depende de cada producto.

•• La unidad mLa unidad míínima de almacenamiento es un documento XML.nima de almacenamiento es un documento XML.•• Existen retos pendientes para la integridad global de la BDExisten retos pendientes para la integridad global de la BD

Integridad referencial Integridad referencial interinter--documento.documento.Restricciones semRestricciones semáánticas nticas interinter--documento.documento.

Page 19: DESARROLLO DE APLICACIONES CON BASES DE DATOS · • Datos semi-estructurados Ælos datos tienen una cierta estructura pero no toda la información recogida tiene la misma estructura

1919

DASBD Curso 2006/2007 4. 37

XML y Bases de DatosXML y Bases de Datos

Sistemas de BD Nativos XMLSistemas de BD Nativos XML

•• VentajasVentajasNo necesitan mapeos adicionales.No necesitan mapeos adicionales.Conservan la integridad de los documentos.Conservan la integridad de los documentos.Permiten almacenar documentos heterogPermiten almacenar documentos heterogééneos en la misma neos en la misma coleccicoleccióón.n.

•• ÁÁmbito de Usombito de UsoDocumentos con anidamientos profundos.Documentos con anidamientos profundos.Importancia de preservar la integridad de los documentos.Importancia de preservar la integridad de los documentos.Sistemas con XML orientado a los documentos.Sistemas con XML orientado a los documentos.BBúúsquedas de contenido.squedas de contenido.

•• ÁÁreas de Aplicacireas de AplicacióónnPortales de informaciPortales de informacióón corporativa.n corporativa.CatCatáálogos de Datos.logos de Datos.Almacenamiento de informaciAlmacenamiento de informacióón mn méédica.dica.BD de personalizaciBD de personalizacióón.n.

DASBD Curso 2006/2007 4. 38

XML y Bases de DatosXML y Bases de Datos

Sistemas de BD Nativos XMLSistemas de BD Nativos XML -- productosproductos

•• Algunos Algunos productos comercialesproductos comerciales::4 Suite4 SuitedbXMLdbXMLVirtuosoVirtuosoxx--HiveHive/DB/DBeXisteXistBirdStepBirdStep RDM XMLRDM XMLTotalXMLTotalXMLOpenLinkOpenLinkTaminoTamino

Page 20: DESARROLLO DE APLICACIONES CON BASES DE DATOS · • Datos semi-estructurados Ælos datos tienen una cierta estructura pero no toda la información recogida tiene la misma estructura

2020

DASBD Curso 2006/2007 4. 39

XML y Bases de DatosXML y Bases de Datos

Sistemas de BD Nativos XMLSistemas de BD Nativos XML -- productosproductos

•• 4Suite4SuiteCCóódigo Abierto.digo Abierto.NNúúcleo formado por cleo formado por herramientas para herramientas para procesamiento XML.procesamiento XML.Contiene un Servidor de Contiene un Servidor de Consultas con mConsultas con múúltiples ltiples mméétodos de acceso.todos de acceso.Contiene un Repositorio de Contiene un Repositorio de Documentos XML sobre BD Documentos XML sobre BD orientada a objetos.orientada a objetos.Soporte para concurrencia, Soporte para concurrencia, gestigestióón de transacciones y n de transacciones y control de accesos.control de accesos.Soporta accesos remotos vSoporta accesos remotos víía a HTTP, HTTP, RPCsRPCs, FTP y CORBA., FTP y CORBA.

•• dbXMLdbXMLAlmacena e indexa Almacena e indexa colecciones de documentos colecciones de documentos en formato nativo o en formato nativo o mapeadomapeado..Sistema de almacenamiento Sistema de almacenamiento Propietario.Propietario.Sistema de compresiSistema de compresióón de n de documentos en flujos de documentos en flujos de caracteres optimizados.caracteres optimizados.Lenguaje de Consulta basado Lenguaje de Consulta basado en en XpathXpath y y XQueryXQuery..Ofrece un servidor HTTP para Ofrece un servidor HTTP para acceder a los documentos.acceder a los documentos.Puede usarse XML/RPC, Puede usarse XML/RPC, servicios servicios webweb y JSP.y JSP.Existe un motor de eventos Existe un motor de eventos que permite filtrar el flujo de que permite filtrar el flujo de entrada/salida.entrada/salida.

DASBD Curso 2006/2007 4. 40

XML y Bases de DatosXML y Bases de Datos

Sistemas de BD Nativos XMLSistemas de BD Nativos XML -- productosproductos

•• TaminoTamino XML ServerXML Server•• CaracterCaracteríísticas principales:sticas principales:

Almacenamiento nativo XMLAlmacenamiento nativo XMLRiqueza de tipos de datos multimedia (audio, video, imagen)Riqueza de tipos de datos multimedia (audio, video, imagen)Consultas basadas en Consultas basadas en XPathXPathBBúúsqueda y Recuperacisqueda y Recuperacióón de textos completosn de textos completosDefiniciDefinicióón de datos extensible (cambios dinn de datos extensible (cambios dináámicos)micos)Salidas Salidas multimulti--canal (HTML, WML, PDF, ..)canal (HTML, WML, PDF, ..)ConsolidaciConsolidacióón de datos (acceso a datos externos)n de datos (acceso a datos externos)Extensiones para integraciExtensiones para integracióón (EJB, CORBA, DOM, ERP, n (EJB, CORBA, DOM, ERP, ServletsServlets, ..), ..)RendimientoRendimientoEscalabilidadEscalabilidadFiabilidadFiabilidadDisponibilidadDisponibilidad

Page 21: DESARROLLO DE APLICACIONES CON BASES DE DATOS · • Datos semi-estructurados Ælos datos tienen una cierta estructura pero no toda la información recogida tiene la misma estructura

2121

DASBD Curso 2006/2007 4. 41

XML y Bases de DatosXML y Bases de Datos

Sistemas de BD Nativos XMLSistemas de BD Nativos XML -- productosproductos

•• TaminoTamino XML ServerXML ServerConceptualmente tiene tres capas:Conceptualmente tiene tres capas:

Servicios Centrales (Servicios Centrales (CoreCore ServicesServices), ), ejej: almacenamiento: almacenamientoServicios Funcionales (Servicios Funcionales (EnablingEnabling ServicesServices), ), ejej: consolidaci: consolidacióónnServicios de Terceros (Servicios de Terceros (SolutionsSolutions), ), ejej: publicaci: publicacióón electrn electróónicanica

DASBD Curso 2006/2007 4. 42

XML y Bases de DatosXML y Bases de Datos

Sistemas de BD Nativos XMLSistemas de BD Nativos XML -- productosproductos

•• TaminoTamino XML ServerXML Server•• ArquitecturaArquitectura::

TaminoTamino XML ServerXML ServerXML Data Store NativoXML Data Store NativoData Data MapMapXX--NodeNodeXX--TensionTensionTaminoTamino ManagerManager

OtrosOtrosTaminoTamino SchemaSchema EditorEditorTaminoTamino InteractiveInteractive InterfaceInterfaceTaminoTamino XX--PlorerPlorerTaminoTamino WebDAVWebDAV ServerServerAPIsAPIsTaminoTamino XX--ApplicationApplication

Page 22: DESARROLLO DE APLICACIONES CON BASES DE DATOS · • Datos semi-estructurados Ælos datos tienen una cierta estructura pero no toda la información recogida tiene la misma estructura

2222

DASBD Curso 2006/2007 4. 43

XML y Bases de DatosXML y Bases de Datos

IntegraciIntegracióón de XML en otros SGBDn de XML en otros SGBD•• SGBD con SGBD con extensiextensióón para XMLn para XML::

OracleOracle (8i en adelante)(8i en adelante)IBM DB2IBM DB2Microsoft SQL Server 2000 (en adelante)Microsoft SQL Server 2000 (en adelante)INFORMIXINFORMIX

•• InclusiInclusióón de n de XML en SQLXML en SQL::Nueva parte del estNueva parte del estáándar para crear y manipular documentos ndar para crear y manipular documentos XML.XML.ISO/IEC 9075ISO/IEC 9075--1414: XML: XML--Related Specifications (Related Specifications (SQL/XMLSQL/XML).).

Nuevo tipoNuevo tipo predefinido.predefinido.Nuevos operadoresNuevos operadores predefinidos para crear y manipular valores de predefinidos para crear y manipular valores de tipo XML.tipo XML.Reglas para Reglas para mapearmapear tablas, esquemas y cattablas, esquemas y catáálogos a documentos logos a documentos XML.XML.

DASBD Curso 2006/2007 4. 44

XML y Bases de DatosXML y Bases de Datos

IntegraciIntegracióón de XML en otros SGBDn de XML en otros SGBD• ORACLE

CapacidadesAlmacenamiento de documentos XML como columnas.Acceso a documentos XML en fuentes externas.Mapeo de elementos de documentos XML a tablas y columnas.En la versión 9i se incluye un nuevo tipo de dato (XMLType) para manejo nativo de XML.

HerramientasSQL XML para Java: clases Java para la inserción de datos XML y generar documentos XML partiendo de SQL.Servlet Java XQL: pasa consultas SQL a XML y posteriormente a HTML mediante hojas de estilo.

Page 23: DESARROLLO DE APLICACIONES CON BASES DE DATOS · • Datos semi-estructurados Ælos datos tienen una cierta estructura pero no toda la información recogida tiene la misma estructura

2323

DASBD Curso 2006/2007 4. 45

XML y Bases de DatosXML y Bases de Datos

IntegraciIntegracióón de XML en otros SGBDn de XML en otros SGBD•• IBM DB2 IBM DB2 ((DB2DB2 XML ExtenderXML Extender))

PermitePermite almacenaralmacenar los documentos XML como:los documentos XML como:Datos carDatos caráácter en una cter en una úúnica columna.nica columna.MapeandoMapeando a ma múúltiples tablas y columnasltiples tablas y columnasArchivos externos.Archivos externos.

Pudiendo Pudiendo recuperarrecuperar::Documento completo.Documento completo.Elementos individuales.Elementos individuales.Atributos del documento.Atributos del documento.

•• Microsoft SQL ServerMicrosoft SQL ServerSoporte para esquemas XMLSoporte para esquemas XMLEjecuciEjecucióón de consultas con n de consultas con XPathXPathObtener y escribir datos XMLObtener y escribir datos XMLObtenciObtencióón de datos en documentos XML (n de datos en documentos XML (““FOR XMLFOR XML””))Escritura de documentos XML mediante Escritura de documentos XML mediante OpenXMLOpenXML, que crea , que crea una imagen en memoria.una imagen en memoria.