Aprovechando XML dentro de la base de datos con SQL Server 2005

1 / 32
About This Presentation
Title:

Aprovechando XML dentro de la base de datos con SQL Server 2005

Description:

XML.Nodes() Shredding. Composici n. Mapeo. FOR XML. Tipos XSD : ... Nodes() Valida una condici n sobre nodos XML, por ejemplo, la existencia de un fragmento XML ... –

Number of Views:239
Avg rating:3.0/5.0
Slides: 33
Provided by: WPic2
Category:

less

Transcript and Presenter's Notes

Title: Aprovechando XML dentro de la base de datos con SQL Server 2005


1
Aprovechando XML dentro de la base de datos con
SQL Server 2005
Adolfo Wiernikadolfo_at_wiernik.net
Microsoft Regional Director - http//msdn.microso
ft.com/isv/rd Mentor Solid Quality Learning -
http//www.solidqualitylearning.com Fundador,
Costa Rica User Group .NET - http//www.crug.net O
rador INETA Latinoamérica - http//www.ineta.org/l
atam Blog - http//www.wiernik.net
2
Series de Webcasts
  • Introducción a SQL Server 2005 para
    desarrolladoreshttps//www115.livemeeting.com/cc/
    msevents/viewRecordings?idMSDN072205BAroleatten
    dpwmsdn072205ba
  • Nuevas características del lenguaje T-SQL en SQL
    Server 2005https//www115.livemeeting.com/cc/msev
    ents/viewRecordings?idMSDN072505BAroleattendpw
    msdn072505ba
  • Aprovechando XML dentro de la base de datos con
    SQL Server 2005https//www115.livemeeting.com/cc/
    msevents/viewRecordings?idMSDN072905BAroleatten
    dpwmsdn072905ba
  • Programando SQL Server 2005 con el CLR
    Integración SQL-CLRhttps//www115.livemeeting.com
    /cc/msevents/viewRecordings?idMSDN080105BArolea
    ttendpwmsdn080105ba
  • Nuevas características en ADO.NET
    2.0https//www115.livemeeting.com/cc/msevents/vie
    wRecordings?idMSDN080505BAroleattendpwmsdn080
    505ba 

3
Agenda
  • XML en la naturaleza Desde 1996 al 2005
  • Por qué XML en el mundo de Bases de Datos?
  • Manipulando XML
  • Mapeo, Composición, Cortar (Shredding)
  • Qué está sucediendo en la industria?
  • Soporte a XML en SQL Server
  • Tipo de dato XML
  • XQUERY
  • Esquemas XML
  • Índices XML
  • Posibles Arquitecturas para manipular datos XML
    en el GBDR
  • FOR XML Y OPENXML

4
XHTML
RDFXML
XFORMS
XPOINTER
HTML
DOM
XQUERY
XSL
XKMS
XML
The Extensible Markup Language (XML) goal is to
enable generic SGML to be served, received, and
processed on the Web in the way that is now
possible with HTML. XML has been designed for
ease of implementation and for interoperability
with both SGML and HTML. Source
http//www.w3.org/TR/2004/REC-xml-20040204/ Extens
ible Markup Language (XML) 1.0 (Third
Edition) W3C Recommendation 04 February 2004
XPATH
SAX
WSDL
SOAP
SGML
XLINK
XAG
DTD
XSD
XDR
SQLXML
XSL/T
MATHML
XBASE
UDDI
5
Contenido Dinámico Separación Vista/Datos
6
XML
Mensajería Arquitectura Orientada a Servicios
7
XML
RSS - Media XML Feed Publicación de Documentos
8
XML
Documentos Etiquetados Metadata - Contexto
9
XML
Recolección de Datos XForms - InfoPath
10
Colaboración en capa intermedia Representación de
datos Esquemas Canónicos
Produccción
CRM
XML
XML
XML
XML
ERP
XML
Inventarios
11
Creación Manipulación Búsqueda
12
Por qué XML en el mundo de Bases de Datos?
  • Auto-describible
  • Importancia del orden
  • Esquemas / Sistema de Tipos
  • Esquemas abiertos / Sin esquema
  • Esquemas opcionales semi-estructurada,
    estructurada
  • Buscable
  • Extendible
  • Representación de datos complejos
  • Árboles, Recursividad, Grafos
  • Información Estructurada altamente regular,
    estructuras homogéneas
  • Información Semi-estructurada heterogénea,
    información esparcida
  • Información Etiquetada documentos/contenido
    etiquetado

13
Por qué XML en el mundo de Bases de Datos?
  • Tipos de Aplicaciones
  • Que Emiten Documentos XML
  • Repositorio de XML
  • XML puede ser luego procesado
  • Que Seleccionan y Emiten Fragmentos XML
  • Retorna algunos nodos de un documento XML
  • Requiere habilidad de poder ver dentro del
    documento XML y extraer los nodos relevantes
    según una expresión de filtro
  • Que Consulta o Transforma Documentos XML
  • Selecciona y combina piezas individuales de un
    XML de entrada
  • Crea nuevas estructuras XML como salida
  • Que Actualiza Documentos XML
  • Requiere procesamiento transaccional?
  • Identificar correctamente el nodo a actualizar
    dentro del documento XML
  • Requiere modificación del esquema de datos?

14
Manipulando XML
  • Mapeo (Relacional ? XML)
  • Identificadores
  • Tipos de datos
  • Valores de datos
  • Esquema
  • Composición
  • Tomar información relacional y transformarla en
    información XML
  • Cortar (Shredding)
  • Tomar información XML y descomponerla en
    información relacional

15
Manipulando XMLComposición Shredding
ltpeoplegtltperson id1 fnameRocky lname
Marciano age40/gtlt/peoplegt
CREATE TABLE T (ID int, ... XML nvarchar(max))
CREATE TABLE T (ID int, fname nvarchar(25),
lname nvarchar(25), age int)
16
Qué está sucediendo en la industria?
  • ISO-ANSI
  • SQL Part 14 XML-Related Specifications
    (SQL/XML)ISO/IEC 9075, August 2002
  • W3C
  • XQUERY - Working Draft September 15th, 2005
  • XPATH 2.0 - Working Draft September 15th, 2005
  • XML SCHEMA
  • Bases de Datos Comerciales
  • Microsoft SQL Server 2000 up
  • Oracle XML DB (9i Release 2 up)
  • IBM DB2 XML Extender, XPERANTO

17
Soporte a XML en SQL Server 2000
18
Soporte a XML en SQL Server 2005
19
Introduciendo el tipo de dato XML en SQL Server
2005
  • Soporta el almacenamiento de fragmentos y
    documentos XML
  • Representación interna binaria optimizada para
    procesamiento de consultas
  • Valida que XML esté bien formado
  • Puede ser tipificado con una colección de
    esquemas de XML
  • Se valida que instancia esté conforme al esquema
    antes de almacenarla
  • Fuerza reglas a través de restricciones sobre
    columnas de tipo XML
  • Se integra completamente con todas las demás
    características de SQL Server

20
XQUERY
21
XQUERY query()
  • Permite la creación de nuevo XML

SELECT T.x.query(declare namespace n
urnexample for s in /ndoc_at_id
123//nsec_at_num gt 3 return
lttopicgtdata(s/nheading)lt/topicgt)FROM T
22
XQUERY value()
  • Extrae un valor de XQuery y lo convierte en un
    tipo de dato de SQL
  • La expresión XQUERY debe retornar un singleton
  • Valor del item es casteado a tipo de dato de SQL

SELECT T.x.value( (/ndoc_at_id
123//nsec_at_num gt 3/_at_num)1, int)FROM T
23
XQUERY exist()
  • Retorna 1 si la expresión XQuery retorna al menos
    1 item, sino retorna 0

select from T where T.x.exist(/a/b_at_id42)1
24
sqlcolumn()/sqlvariable()
  • Permite acceso de valores y tipos de SQL al
    contexto de ejecución de la expresión XQuery
  • sqlvariable() accede a variables SQL
  • sqlcolumn() accede el valor de otra columna

declare _at_value int set _at_value42select from T
where T.x.exist(/a/b_at_idsqlvariable(_at_value)
)1
tables T(key int, x xml), S(key int, val
int)select from T join S on T.keyS.keywhere
T.x.exist(/a/b_at_idsqlcolumn(S.val))1
25
Esquemas XML
  • Colecciones de Esquemas XML
  • Se usan para validar instancias de información
    XML almacenadas dentro del tipo de dato XML
  • Utilizadas por el optimizado de consultas
  • Los tipos de datos XSD son mapeados a tipos de
    datos SQL
  • Se almacenan dentro del metadata del sistema
  • No preserva anotaciones

26
Índices XML
XML Data Type
SQL Server 2005
27
Posibles Arquitecturas para manipular datos XML
en el GBDR
Manejando datos XML con una representación
relacional Partiendo datos XML a relacional en la
capa intermedia
  • Beneficios
  • Excelente soporte para información estructurada
  • Altamente integrado con el motor de búsquedas de
    SQL Server
  • Use FOR XML o SQLXML para recomposición de datos
    relacionales
  • Limitaciones
  • No se conserva el orden del documento
  • Difícil de soportar información semi y no
    estructurada
  • Alto costo para composición a XML de información
    relacional

28
Posibles Arquitecturas para manipular datos XML
en el GBDR
Manejando datos XML como nvarchar(max) o
varbinary(max) Procesando en la capa intermedia
con System.Xml
  • Beneficios
  • Provee fidelidad textual
  • No depende de las capacidades de la base de datos
  • Disminución de carga de trabajo sobre el
    servidor, mayor procesamiento en capa intermedia
  • El mejor rendimiento para la inclusión y
    recuperación de documentos
  • Limitaciones
  • Complejidad de codificación para la capa
    intermedia
  • Mayores costos de mantenimiento
  • Imposible de hacer operación CRUD a nivel de nodo
  • Costoso de hacer búsquedas de contenidos dentro
    del XML
  • Validez y formato del XML deben ser validados en
    la capa intermedia

29
Posibles Arquitecturas para manipular datos XML
en el GBDR
Manejando datos XML con el tipo de dato XML
  • Beneficios
  • Información se almacena de forma nativa como XML
  • Tipificada y validada según esquemas XSD
  • Soporte para operaciones CRUD a nivel de nodos
  • Indexado para mejorar rendimiento
  • Preserva el orden y estructura del documento
  • Limitaciones
  • No preserva el orden de atributos, prefijos de
    namespaces, espacio en blanco y declaración de
    XML
  • Máximo nivel soportado de niveles en jerarquía es
    de 128
  • Tamaño máximo soportado 2GB
  • Instancias de XML no pueden ser comparadas entre
    ellas

30
FOR XML y OpenXML
  • Compatible con SQL Server 2000
  • FOR XML
  • Nueva directiva TYPE retorna instancia del tipo
    dato XML
  • Soporte para FOR XML anidados
  • Soporte a nuevos tipos de datos nvarchar(max),
    varbinary(max)
  • Se puede asignar a variable de tipo de dato XML
  • Nuevo modo PATH
  • OpenXML
  • Basado en motor de MSXML 3.0
  • Soporte a nuevos tipo de datos nvarchar(max),
    varbinary(max), XML

31
Conclusiones
  • XML en la naturaleza Desde 1996 al 2005
  • Por qué XML en el mundo de Bases de Datos?
  • Manipulando XML
  • Mapeo, Composición, Cortar (Shredding)
  • Qué está sucediendo en la industria?
  • Soporte a XML en SQL Server
  • Tipo de dato XML
  • XQUERY
  • Esquemas XML
  • Índices XML
  • Posibles Arquitecturas para manipular datos XML
    en el GBDR
  • FOR XML Y OPENXML

32
Gracias
  • adolfo_at_wiernik.net
  • adolfo_at_solidqualitylearning.com
  • Weblog www.wiernik.net
Write a Comment
User Comments (0)
About PowerShow.com