SlideShare una empresa de Scribd logo
Lenguajes de Marcas y SGILenguajes de Marcas y SGI
UT 7: XML (III).
Almacenamiento de información.
CFGS «Administración de Sistemas
Informáticos en Red»
CIFP Juan de Colonia (Burgos)
David H. Martín Alonso
– Curso 2010/2011 –
Mayo de 2011 CIFP Juan de Colonia
XML (III): ALMACENAMIENTO DE INFORMACIÓN.
ContenidosContenidos
Introducción
SQL Server
Mayo de 2011 CIFP Juan de Colonia
XML (III): ALMACENAMIENTO DE INFORMACIÓN.
3/16
XQueryXQuery
XML Query
• Lenguaje de consulta sobre documentos XML.
→ Funcionalidad comparable a SQL.
– Estándar W3C.
• Lenguaje procedimental + expresiones XPath.
– No es XML, no tiene espacio de nombres, no validable...
– Procedimental: variables, condicionales, bucles, funciones...
• Instrucciones FLWOR
– For, Let, Where, Order by, Return !!!
– Procesadores: AltovaXML, saxonb-xquery (Saxon/Java)
■Introducción
□SQL Server
doc('nombres.xml')/grupo/nombre[1]
for $alu in doc('alumnos.xml')/grupo/alumno
where $alu/edad > 20
order by $alu/apellidos
return $alu/nombre
Mayo de 2011 CIFP Juan de Colonia
XML (III): ALMACENAMIENTO DE INFORMACIÓN.
4/16
Modelo relacional / Modelo XMLModelo relacional / Modelo XML
• Los sistemas gestores de bases de datos son el
software esencial en el que se apoyan la mayoría de
las aplicaciones para el almacenamiento y acceso a
sus datos.
– Gestión común de la información de una organización para
evitar duplicidades, mejorando eficacia y reduciendo costes.
– Las bases de datos actuales se basan en el modelo
relacional: estructuras tabulares interrelacionadas.
– El lenguaje SQL, a pesar de la variedad de dialectos es el
lenguaje estándar de configuración, acceso y control.
• XML es un modelo de organización de datos muy
extendido para usos muy variados entre los que
destacan la comunicación entre aplicaciones o la
transformación y representación de los datos.
– Estructura de datos en árbol, jerárquica.
– Estructura de datos integrada en el propio documento.
• ¿Son compatibles los sistemas de bases de datos
relacionales con las aplicaciones XML?
■Introducción
□SQL Server
Mayo de 2011 CIFP Juan de Colonia
XML (III): ALMACENAMIENTO DE INFORMACIÓN.
5/16
Dos enfoques:Dos enfoques:
• Sistemas de BBDD compatibles con XML.
– Modelo relacional, almacenamiento de datos en tablas.
Aprovechamos la eficiencia de los motores relacionales
– Acceso mediante SQL.
– Soporte de entrada/salida en XML.
– Conversiones, reformateo de entradas/salidas
• Sistemas de BBDD con soporte XML nativo.
– Modelo XML, almacenamiento de documentos.
– Almacenamiento de datos en formato nativo.
Evita conversiones
– Acceso mediante lenguajes XML: XPath, XQuery.
■Introducción
□SQL Server
Mayo de 2011 CIFP Juan de Colonia
XML (III): ALMACENAMIENTO DE INFORMACIÓN.
6/16
XML en SQL ServerXML en SQL Server
• Soporte XML ¿nativo?
– Almacenamiento colateral: relacional y XML
– Modelos muy distintos, coexistencia ajustada.
– Servidor: adaptaciones para el motor relacional.
– Cliente: ampliación de la API de acceso (SQL y .NET).
– Integración con las herramientas.
• Consultas que producen XML (MS SQLServer 2000)
– SELECT con la cláusula FOR XML.
– SQLXML: mapeado a vista XML
Esquema relacional/tablas ↔ Esquema XML/XPath
• Importación desde XML
– Expresiones XPath → tuplas
• Almacenamiento nativo XML (MS SQLServer 2005)
– Como documentos completos: columnas tipo XML
BLOBs: Large Binary Objects
– Modos: XML tipado (con esquema XML) o no tipado
– Transact SQL con soporte XQuery/XPath integrado.
□Introducción
■SQL Server
Mayo de 2011 CIFP Juan de Colonia
XML (III): ALMACENAMIENTO DE INFORMACIÓN.
7/16
SELECT … FOR XMLSELECT … FOR XML
SELECT DNI,NOMBRE FROM ALUMNOS FOR XML AUTO, TYPE;
<ALUMNOS DNI="13456234A" NOMBRE="Román Fernández" />
<ALUMNOS DNI="9674562U" NOMBRE="Laura Ubierna" />
<ALUMNOS DNI="72367890G" NOMBRE="Pedro Albacete" />
…
SELECT DNI,NOMBRE FROM ALUMNOS FOR XML AUTO, ELEMENTS;
…
SELECT DNI,NOMBRE FROM ALUMNOS FOR XML RAW, TYPE;
…
SELECT DNI,NOMBRE FROM ALUMNOS FOR XML RAW, ELEMENTS;
…
• Modos
– XML AUTO: jerarquía simple usando nombre de tabla.
– XML RAW: jerarquía simple de elementos row (fila).
• Formatos
– TYPE: Datos como atributos XML.
– ELEMENTS: Datos como elementos hijo.
□Introducción
■SQL Server
Mayo de 2011 CIFP Juan de Colonia
XML (III): ALMACENAMIENTO DE INFORMACIÓN.
8/16
El tipo XML: tipado/no tipadoEl tipo XML: tipado/no tipado
– Podemos almacenar 1 documento (1 raíz) o elementos.
• XML sin tipo
– Almacena XML bien formado o fragmentos.
CREATE TABLE mitabla ( …
misdatosxml XML NOT NULL);
• XML con tipo
– Controla entradas XML bien formadas y válidas.
– Incorporamos un XML Schema definido previamente:
CREATE XML SCHEMA COLLECTION mischema AS '…'
– Agregamos un atributo para guardar XML.
CREATE TABLE mitabla ( …
misdatosxml XML (mischema) NOT NULL);
– Ahí podemos detallar si admitimos documento o elementos.
… XML (DOCUMENT mischema)
… XML (CONTENT mischema)
– Podemos definir restricciones con funciones de usuario.
Transact SQL + XQuery/XPath
□Introducción
■SQL Server
Mayo de 2011 CIFP Juan de Colonia
XML (III): ALMACENAMIENTO DE INFORMACIÓN.
9/16
Consultas XMLConsultas XML
□Introducción
■SQL Server
INSERT INTO mitabla (misdatosxml)
VALUES ('<grupo>
<nombre>Juan Pérez</nombre>
<nombre>Marta Sánchez</nombre>
</grupo>');
CREATE TABLE mitabla (
id INT IDENTITY,
misdatosxml XML NOT NULL);
SELECT misdatosxml.query('/grupo/nombre')
FROM mitabla;
SELECT misdatosxml.value('(/grupo/nombre)[1]','nvarchar(60)')
FROM mitabla;
Mayo de 2011 CIFP Juan de Colonia
XML (III): ALMACENAMIENTO DE INFORMACIÓN.
Ejemplo: SQL Server / XQueryEjemplo: SQL Server / XQuery
INSERT INTO mitabla (misdatosxml)
VALUES ('<papelería>
<cliente xml:id="u1"><n>Juan</n><a>Manzano</a></cliente>
<cliente xml:id="u2"><t>D.</t><n>Luis</n><a>Manzano</a></cliente>
<cliente xml:id="u3" marca="x1"><n>Adolfo</n><a
marca="x2">Jambrina</a></cliente>
<cliente xml:id="u4"><n>Francisco</n><a>Alto</a></cliente>
<cliente xml:id="u5"><n>José</n><a>Mata</a></cliente>
<cliente xml:id="u6"><t>Dr.</t><n>Martín</n><a>Mora</a></cliente>
<cliente xml:id="u7"
marca="x3"><t>Dª.</t><n>Petra</n><a>Masa</a></cliente>
<cliente xml:id="u8"><t>Dª.</t><n>María</n><a>Lucas</a></cliente>
</papelería>');
WITH XMLNAMESPACES('http://yo.mio.es' AS ns1)
SELECT id AS '@fila', misdatosxml.query('
for $i in //cliente[t]
order by $i/a[1],$i/n[1]
return <nombre>{data($i/a)}, {data($i/n)}</nombre>
') AS 'genéricos/papel'
FROM mitabla
WHERE misdatosxml.exist('/papelería')=1
FOR XML PATH('comercio'), ROOT('ns1:grupos');
Mayo de 2011 CIFP Juan de Colonia
XML (III): ALMACENAMIENTO DE INFORMACIÓN.
11/16
MySQL y XMLMySQL y XML
□Introducción
□SQL Server
• mysql y mysqldump con la opcion --xml
– Producen salidas en formato XML
– Análogo a MS SQL Server con FOR XML y RAW
– Jerarquía: resultset/row/field
+ database/table_structure en mysqldump
• Se puede almacenar un documento XML
– tipo BLOB
– Funciones XQuery: ExtractValue(), UpdateXML()
• Tanto en SQL Server como en MySQL podemos
construir el texto XML concatenando cadenas...
XML (III): ALMACENAMIENTO DE INFORMACIÓN.
Mayo de 2011 CIFP Juan de Colonia
Probar los ejemplos anteriores para SQL Server y
montar ejemplos propios.
Buscar por grupos información sobre otros gestores y
tratar de hacer un ranquin de aplicación a «XML
nativo».
Actividad I: BBDD con XMLActividad I: BBDD con XML
Mayo de 2011 CIFP Juan de Colonia
XML (III): ALMACENAMIENTO DE INFORMACIÓN.
¿Conclusiones?¿Conclusiones?
● Sería interesante disponer de una buen
integración entre bases de datos y documentos
en formato XML.
● Los modelos relacional y jerárquico son
radicalmente distintos y la «transparencia» real
es difícil de conseguir.
● Para extraer información de
estructuras XML disponemos del
lenguaje XQuery que también
incorpora expresiones XPath.
Mayo de 2011 CIFP Juan de Colonia
XML (III): ALMACENAMIENTO DE INFORMACIÓN.
ReferenciasReferencias
Boag, S et al. (2010, W3C Recommendation) XQuery 1.0
http://www.w3.org/TR/xquery/
W3Schools (WWW) XQuery Tutorial
http://www.w3schools.com/xquery/
Gabillaud, J. (2009, ENI). SQL Server 2008. SQL, Transact SQL.
ISBN: 978-2-7460-4911-6.
Boulanger, T. y Lecomte, S. (2009, ENI). XML práctico: bases esenciales,
conceptos y casos prácticos. ISBN: 978-2-7460-4958-1.
Bibliografía actualizada en delicious:
http://www.delicious.com/dhmartin/LM-ASIR
Mayo de 2011 CIFP Juan de Colonia
XML (III): ALMACENAMIENTO DE INFORMACIÓN.
LicenciaLicencia
Este material está disponible bajo una Licencia Creative Commons,
http://creativecommons.org/licenses/by-nc-sa/3.0/es/
Mayo de 2011 CIFP Juan de Colonia
XML (III): ALMACENAMIENTO DE INFORMACIÓN.
¿Dudas o cuestiones?¿Dudas o cuestiones?

Más contenido relacionado

PDF
LM-UT5: DTD, XML Schema
PDF
LM-UT6: Transformaciones XML
PDF
Oracle Características y tipos de datos
PPTX
Historia del sql .....mela
ODP
PRESENTACIÓN SQL
PPS
DOCX
Codigo para crear la base de datos
PDF
Datos En La Web - Clase 2
LM-UT5: DTD, XML Schema
LM-UT6: Transformaciones XML
Oracle Características y tipos de datos
Historia del sql .....mela
PRESENTACIÓN SQL
Codigo para crear la base de datos
Datos En La Web - Clase 2

La actualidad más candente (16)

PPT
Unidad iv ddl
PDF
Introducción al mundo NoSQL
PDF
Bd relacionales
PPT
Software libre, web semántica y archivos
PPT
Persistencia de un modelo de objetos
PDF
Tutorial de DTD en PDF
PPT
Presentacion PL/SQL
PDF
Chuleta de DTD
PPTX
PPTX
Tema IV elementos de SQL
PDF
Bases de datos sql
PPT
Oracle xmldb
PPTX
Lenguaje transact-sql
PDF
Migración de Base de Datos con SQL Developer
PPT
Ead aplicaciones prácticas
Unidad iv ddl
Introducción al mundo NoSQL
Bd relacionales
Software libre, web semántica y archivos
Persistencia de un modelo de objetos
Tutorial de DTD en PDF
Presentacion PL/SQL
Chuleta de DTD
Tema IV elementos de SQL
Bases de datos sql
Oracle xmldb
Lenguaje transact-sql
Migración de Base de Datos con SQL Developer
Ead aplicaciones prácticas
Publicidad

Destacado (9)

PPTX
Base de datdos orientadas a objetos
PPTX
Base de datos orientada a objetos
PPT
Bdoo base de datos orientada a objetos
PDF
Base De Datos Orientada A Objetos
DOCX
Base de datos orientada a objetos
PPTX
Bases de datos orientado a objetos
PPTX
Base de Datos Orientada a Objetos
PPTX
Base de Datos Orientada a Objetos
PPTX
Base de datos-objeto-relacional
Base de datdos orientadas a objetos
Base de datos orientada a objetos
Bdoo base de datos orientada a objetos
Base De Datos Orientada A Objetos
Base de datos orientada a objetos
Bases de datos orientado a objetos
Base de Datos Orientada a Objetos
Base de Datos Orientada a Objetos
Base de datos-objeto-relacional
Publicidad

Similar a LM-UT7: Almacenamiento XML (20)

PPTX
Ramirez liliana base_de_datos
PDF
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
PPTX
Procesando XML de estruturas complejas con SSIS
PPTX
Base de Datos
PDF
Base de Datos Avanzado I.pdf
PDF
Base de Datos Avanzado I.pdf
PPTX
Almacenamiento de documentos xml
PPTX
Base de Datos1
PDF
Tema 2
PDF
Procesamiento de XML en C#
PPTX
Base de datos jennifer garcia montiel
PDF
Bases de datos NoSQL - Huancayo - 2010
ODP
Trabajo bases de datos nativas xml
ODP
Trabajo bases de datos xml
PDF
Seguridad en MLOps.pdf
PPTX
Bases de datos
PPT
Presentcion grupo 4 ib
PPT
Base de Datos
PPT
Base de Datos
Ramirez liliana base_de_datos
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
Procesando XML de estruturas complejas con SSIS
Base de Datos
Base de Datos Avanzado I.pdf
Base de Datos Avanzado I.pdf
Almacenamiento de documentos xml
Base de Datos1
Tema 2
Procesamiento de XML en C#
Base de datos jennifer garcia montiel
Bases de datos NoSQL - Huancayo - 2010
Trabajo bases de datos nativas xml
Trabajo bases de datos xml
Seguridad en MLOps.pdf
Bases de datos
Presentcion grupo 4 ib
Base de Datos
Base de Datos

Más de David Martin (17)

PDF
PLE UT10
PDF
Taller: «Gráficos en el Aula»
PDF
IW-UTXX: Programación web en PHP con bases de datos
PDF
LM-UT8: Sistemas de Gestión empresarial
PDF
LM-UT3: CSS
PDF
LM-UT2: HTML
PDF
LM-UT1: Lenguajes de marcas
PDF
LM-UT4: Sindicación de contenidos
ODP
Inkscape
PDF
La Aldea Global
PDF
Plataformas web
PDF
Ple Ut8
PDF
Burgo Red
PDF
Ethnet
PDF
Ociburgo
PDF
Fundicar
PDF
Eth100
PLE UT10
Taller: «Gráficos en el Aula»
IW-UTXX: Programación web en PHP con bases de datos
LM-UT8: Sistemas de Gestión empresarial
LM-UT3: CSS
LM-UT2: HTML
LM-UT1: Lenguajes de marcas
LM-UT4: Sindicación de contenidos
Inkscape
La Aldea Global
Plataformas web
Ple Ut8
Burgo Red
Ethnet
Ociburgo
Fundicar
Eth100

Último (20)

PDF
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
PDF
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
DOCX
2 GRADO UNIDAD 5 - 2025.docx para primaria
DOCX
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
PDF
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
PDF
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
PDF
Salcedo, J. et al. - Recomendaciones para la utilización del lenguaje inclusi...
DOCX
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
DOCX
V UNIDAD - SEGUNDO GRADO. del mes de agosto
PDF
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
PDF
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
PDF
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
PDF
biología es un libro sobre casi todo el tema de biología
DOCX
V UNIDAD - PRIMER GRADO. del mes de agosto
PDF
Lección 6 Escuela Sab. A través del mar rojo.pdf
PDF
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
PDF
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
PDF
DI, TEA, TDAH.pdf guía se secuencias didacticas
PDF
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
PDF
ciencias-1.pdf libro cuarto basico niños
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
2 GRADO UNIDAD 5 - 2025.docx para primaria
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
Salcedo, J. et al. - Recomendaciones para la utilización del lenguaje inclusi...
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
V UNIDAD - SEGUNDO GRADO. del mes de agosto
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
biología es un libro sobre casi todo el tema de biología
V UNIDAD - PRIMER GRADO. del mes de agosto
Lección 6 Escuela Sab. A través del mar rojo.pdf
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
DI, TEA, TDAH.pdf guía se secuencias didacticas
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
ciencias-1.pdf libro cuarto basico niños

LM-UT7: Almacenamiento XML

  • 1. Lenguajes de Marcas y SGILenguajes de Marcas y SGI UT 7: XML (III). Almacenamiento de información. CFGS «Administración de Sistemas Informáticos en Red» CIFP Juan de Colonia (Burgos) David H. Martín Alonso – Curso 2010/2011 –
  • 2. Mayo de 2011 CIFP Juan de Colonia XML (III): ALMACENAMIENTO DE INFORMACIÓN. ContenidosContenidos Introducción SQL Server
  • 3. Mayo de 2011 CIFP Juan de Colonia XML (III): ALMACENAMIENTO DE INFORMACIÓN. 3/16 XQueryXQuery XML Query • Lenguaje de consulta sobre documentos XML. → Funcionalidad comparable a SQL. – Estándar W3C. • Lenguaje procedimental + expresiones XPath. – No es XML, no tiene espacio de nombres, no validable... – Procedimental: variables, condicionales, bucles, funciones... • Instrucciones FLWOR – For, Let, Where, Order by, Return !!! – Procesadores: AltovaXML, saxonb-xquery (Saxon/Java) ■Introducción □SQL Server doc('nombres.xml')/grupo/nombre[1] for $alu in doc('alumnos.xml')/grupo/alumno where $alu/edad > 20 order by $alu/apellidos return $alu/nombre
  • 4. Mayo de 2011 CIFP Juan de Colonia XML (III): ALMACENAMIENTO DE INFORMACIÓN. 4/16 Modelo relacional / Modelo XMLModelo relacional / Modelo XML • Los sistemas gestores de bases de datos son el software esencial en el que se apoyan la mayoría de las aplicaciones para el almacenamiento y acceso a sus datos. – Gestión común de la información de una organización para evitar duplicidades, mejorando eficacia y reduciendo costes. – Las bases de datos actuales se basan en el modelo relacional: estructuras tabulares interrelacionadas. – El lenguaje SQL, a pesar de la variedad de dialectos es el lenguaje estándar de configuración, acceso y control. • XML es un modelo de organización de datos muy extendido para usos muy variados entre los que destacan la comunicación entre aplicaciones o la transformación y representación de los datos. – Estructura de datos en árbol, jerárquica. – Estructura de datos integrada en el propio documento. • ¿Son compatibles los sistemas de bases de datos relacionales con las aplicaciones XML? ■Introducción □SQL Server
  • 5. Mayo de 2011 CIFP Juan de Colonia XML (III): ALMACENAMIENTO DE INFORMACIÓN. 5/16 Dos enfoques:Dos enfoques: • Sistemas de BBDD compatibles con XML. – Modelo relacional, almacenamiento de datos en tablas. Aprovechamos la eficiencia de los motores relacionales – Acceso mediante SQL. – Soporte de entrada/salida en XML. – Conversiones, reformateo de entradas/salidas • Sistemas de BBDD con soporte XML nativo. – Modelo XML, almacenamiento de documentos. – Almacenamiento de datos en formato nativo. Evita conversiones – Acceso mediante lenguajes XML: XPath, XQuery. ■Introducción □SQL Server
  • 6. Mayo de 2011 CIFP Juan de Colonia XML (III): ALMACENAMIENTO DE INFORMACIÓN. 6/16 XML en SQL ServerXML en SQL Server • Soporte XML ¿nativo? – Almacenamiento colateral: relacional y XML – Modelos muy distintos, coexistencia ajustada. – Servidor: adaptaciones para el motor relacional. – Cliente: ampliación de la API de acceso (SQL y .NET). – Integración con las herramientas. • Consultas que producen XML (MS SQLServer 2000) – SELECT con la cláusula FOR XML. – SQLXML: mapeado a vista XML Esquema relacional/tablas ↔ Esquema XML/XPath • Importación desde XML – Expresiones XPath → tuplas • Almacenamiento nativo XML (MS SQLServer 2005) – Como documentos completos: columnas tipo XML BLOBs: Large Binary Objects – Modos: XML tipado (con esquema XML) o no tipado – Transact SQL con soporte XQuery/XPath integrado. □Introducción ■SQL Server
  • 7. Mayo de 2011 CIFP Juan de Colonia XML (III): ALMACENAMIENTO DE INFORMACIÓN. 7/16 SELECT … FOR XMLSELECT … FOR XML SELECT DNI,NOMBRE FROM ALUMNOS FOR XML AUTO, TYPE; <ALUMNOS DNI="13456234A" NOMBRE="Román Fernández" /> <ALUMNOS DNI="9674562U" NOMBRE="Laura Ubierna" /> <ALUMNOS DNI="72367890G" NOMBRE="Pedro Albacete" /> … SELECT DNI,NOMBRE FROM ALUMNOS FOR XML AUTO, ELEMENTS; … SELECT DNI,NOMBRE FROM ALUMNOS FOR XML RAW, TYPE; … SELECT DNI,NOMBRE FROM ALUMNOS FOR XML RAW, ELEMENTS; … • Modos – XML AUTO: jerarquía simple usando nombre de tabla. – XML RAW: jerarquía simple de elementos row (fila). • Formatos – TYPE: Datos como atributos XML. – ELEMENTS: Datos como elementos hijo. □Introducción ■SQL Server
  • 8. Mayo de 2011 CIFP Juan de Colonia XML (III): ALMACENAMIENTO DE INFORMACIÓN. 8/16 El tipo XML: tipado/no tipadoEl tipo XML: tipado/no tipado – Podemos almacenar 1 documento (1 raíz) o elementos. • XML sin tipo – Almacena XML bien formado o fragmentos. CREATE TABLE mitabla ( … misdatosxml XML NOT NULL); • XML con tipo – Controla entradas XML bien formadas y válidas. – Incorporamos un XML Schema definido previamente: CREATE XML SCHEMA COLLECTION mischema AS '…' – Agregamos un atributo para guardar XML. CREATE TABLE mitabla ( … misdatosxml XML (mischema) NOT NULL); – Ahí podemos detallar si admitimos documento o elementos. … XML (DOCUMENT mischema) … XML (CONTENT mischema) – Podemos definir restricciones con funciones de usuario. Transact SQL + XQuery/XPath □Introducción ■SQL Server
  • 9. Mayo de 2011 CIFP Juan de Colonia XML (III): ALMACENAMIENTO DE INFORMACIÓN. 9/16 Consultas XMLConsultas XML □Introducción ■SQL Server INSERT INTO mitabla (misdatosxml) VALUES ('<grupo> <nombre>Juan Pérez</nombre> <nombre>Marta Sánchez</nombre> </grupo>'); CREATE TABLE mitabla ( id INT IDENTITY, misdatosxml XML NOT NULL); SELECT misdatosxml.query('/grupo/nombre') FROM mitabla; SELECT misdatosxml.value('(/grupo/nombre)[1]','nvarchar(60)') FROM mitabla;
  • 10. Mayo de 2011 CIFP Juan de Colonia XML (III): ALMACENAMIENTO DE INFORMACIÓN. Ejemplo: SQL Server / XQueryEjemplo: SQL Server / XQuery INSERT INTO mitabla (misdatosxml) VALUES ('<papelería> <cliente xml:id="u1"><n>Juan</n><a>Manzano</a></cliente> <cliente xml:id="u2"><t>D.</t><n>Luis</n><a>Manzano</a></cliente> <cliente xml:id="u3" marca="x1"><n>Adolfo</n><a marca="x2">Jambrina</a></cliente> <cliente xml:id="u4"><n>Francisco</n><a>Alto</a></cliente> <cliente xml:id="u5"><n>José</n><a>Mata</a></cliente> <cliente xml:id="u6"><t>Dr.</t><n>Martín</n><a>Mora</a></cliente> <cliente xml:id="u7" marca="x3"><t>Dª.</t><n>Petra</n><a>Masa</a></cliente> <cliente xml:id="u8"><t>Dª.</t><n>María</n><a>Lucas</a></cliente> </papelería>'); WITH XMLNAMESPACES('http://yo.mio.es' AS ns1) SELECT id AS '@fila', misdatosxml.query(' for $i in //cliente[t] order by $i/a[1],$i/n[1] return <nombre>{data($i/a)}, {data($i/n)}</nombre> ') AS 'genéricos/papel' FROM mitabla WHERE misdatosxml.exist('/papelería')=1 FOR XML PATH('comercio'), ROOT('ns1:grupos');
  • 11. Mayo de 2011 CIFP Juan de Colonia XML (III): ALMACENAMIENTO DE INFORMACIÓN. 11/16 MySQL y XMLMySQL y XML □Introducción □SQL Server • mysql y mysqldump con la opcion --xml – Producen salidas en formato XML – Análogo a MS SQL Server con FOR XML y RAW – Jerarquía: resultset/row/field + database/table_structure en mysqldump • Se puede almacenar un documento XML – tipo BLOB – Funciones XQuery: ExtractValue(), UpdateXML() • Tanto en SQL Server como en MySQL podemos construir el texto XML concatenando cadenas...
  • 12. XML (III): ALMACENAMIENTO DE INFORMACIÓN. Mayo de 2011 CIFP Juan de Colonia Probar los ejemplos anteriores para SQL Server y montar ejemplos propios. Buscar por grupos información sobre otros gestores y tratar de hacer un ranquin de aplicación a «XML nativo». Actividad I: BBDD con XMLActividad I: BBDD con XML
  • 13. Mayo de 2011 CIFP Juan de Colonia XML (III): ALMACENAMIENTO DE INFORMACIÓN. ¿Conclusiones?¿Conclusiones? ● Sería interesante disponer de una buen integración entre bases de datos y documentos en formato XML. ● Los modelos relacional y jerárquico son radicalmente distintos y la «transparencia» real es difícil de conseguir. ● Para extraer información de estructuras XML disponemos del lenguaje XQuery que también incorpora expresiones XPath.
  • 14. Mayo de 2011 CIFP Juan de Colonia XML (III): ALMACENAMIENTO DE INFORMACIÓN. ReferenciasReferencias Boag, S et al. (2010, W3C Recommendation) XQuery 1.0 http://www.w3.org/TR/xquery/ W3Schools (WWW) XQuery Tutorial http://www.w3schools.com/xquery/ Gabillaud, J. (2009, ENI). SQL Server 2008. SQL, Transact SQL. ISBN: 978-2-7460-4911-6. Boulanger, T. y Lecomte, S. (2009, ENI). XML práctico: bases esenciales, conceptos y casos prácticos. ISBN: 978-2-7460-4958-1. Bibliografía actualizada en delicious: http://www.delicious.com/dhmartin/LM-ASIR
  • 15. Mayo de 2011 CIFP Juan de Colonia XML (III): ALMACENAMIENTO DE INFORMACIÓN. LicenciaLicencia Este material está disponible bajo una Licencia Creative Commons, http://creativecommons.org/licenses/by-nc-sa/3.0/es/
  • 16. Mayo de 2011 CIFP Juan de Colonia XML (III): ALMACENAMIENTO DE INFORMACIÓN. ¿Dudas o cuestiones?¿Dudas o cuestiones?