Upload
rogerio-moraes-de-carvalho
View
505
Download
0
Embed Size (px)
Citation preview
SQLServerDF
Suporte XML nativo noSQL Server 2014/2016
Rogério Moraes de CarvalhoConsultor e instrutor de TI
rogeriom.wordpress.com | @rogeriomc
AgendaSuporte XML nativo no SQL Server 2014/2016
Debate inicial
Suas experiências: XML e SQL Server
XML e tecnologias relacionadas
O que é XML?
XML bem-formado
XML Schema e XML válido
XPath e XQuery
Algumas aplicações de XML
Suporte XML no SQL Server
Tipo de dado XML nativo
XML Schema Collections
Métodos do tipo de dados XML
Cláusula FOR XML
Debate final
Minhas experiências: XML e SQL Server
Suas experiências: XML e SQL ServerDebate inicial
XML sem SQL Server
Suas opiniões
O que você entende por XML?
Quando você usaria XML?
Você acha XML obsoleto?
Que desvantagens você destacaria?
Que vantagens você destacaria?
Casos de uso
Você tem casos de sucesso?
Você tem casos de fracasso?
XML no SQL Server
Suas opiniões
Você acha uma mistura possível?
Quando você usaria XML no SQL Server?
Você acha XML no SQL Server obsoleto?
Que desvantagens você destacaria?
Que vantagens você destacaria?
Casos de uso
Você tem casos de fracasso?
Você tem casos de sucesso?
O que é XML?XML e tecnologias relacionadas
Linguagem de marcação
XML: Extensible Markup Language
Formato texto simples e flexível
Derivado do SGML
Criação e manutenção
W3C: World Wide Web Consortium
Comunidade internacional responsável
pelo desenvolvimento de padrões Web
Responsável pela especificação XML
Exemplo de documento XML
<?xml version="1.0" enconding="ISO-8859-1"?><Contato Id="1" Sexo="Feminino"
DataNascimento="1980-10-29"><PrimeiroNome>Beatrice</PrimeiroNome><Sobrenome>Dias Lima</Sobrenome><Empresa Funcao="Gerente de Marketing">
Grupo Capivara</Empresa><Endereco Tipo="Residencial"
CEP="08830-170" UF="SP"><Logradouro Numero="1507">
Rua João Fernandes</Logradouro><Cidade>Mogi das Cruzes</Cidade>
</Endereco></Contato>
XML bem formadoXML e tecnologias relacionadas
Todo documento XML com uma sintaxe correta
Principais regras para um documento bem formado
Deve ter um elemento raiz, que deve ser único
Todo elemento XML deve ter um marcador de abertura e outro de fechamento
Os marcadores de um elemento diferenciam letras maiúsculas de minúsculas
Elementos XML devem ser aninhados corretamente
Atributos de um elemento não podem ser repetidos
Valores de atributos devem ser delimitados por aspas ou apóstrofos
XML Schema e XML válidoXML e tecnologias relacionadas
XSD: XML Schema Definition
Linguagem baseada em XML para expressar as restrições de documentos XML
Define uma gramática para um conjunto de documentos XML
Um documento XML que satisfaz um XML Schema é denominado XML válido
XPath e XQueryXML e tecnologias relacionadas
XPath
É uma sintaxe para definir partes de um documento XML
Usa expressões de caminho para navegar por documentos XML
Contém uma biblioteca padrão de funções
Recomendação do W3C: XML Path Language (XPath) 2.0 (Second Edition)
XQuery
É a linguagem padrão para consulta de dados XML
XQuery é para XML o que SQL é para bancos de dados relacionais
É construída com base em expressões XPath
Recomendação do W3C: XQuery 1.0: An XML Query Language (Second Edition)
Algumas aplicações de XMLXML e tecnologias relacionadas
Arquivos de configuração
Web.config (aplicações web ASP.NET)
Documentos de software para escritório
Microsoft Office 2007 ou superior (compactados no formato .zip)
OpenDocument - OpenOffice/LibreOffice (compactados no formato .zip)
Imagens vetoriais
SVG (Scalable Vector Graphics)
XML Web Services
Mensagens SOAP
...
Tipo de dado XML nativoSuporte XML no SQL Server
Tipo de dado do SQL Server para armazenar dados XML
Instâncias de dados XML podem ser armazenados em:
Uma coluna do tipo XML
Uma variável do tipo XML
Exemplos
DECLARE @telefone xml = '<Telefone DDD="61">3222-2222</Telefone>';
CREATE TABLE Seguranca.Auditoria (IdAuditoria int PRIMARY KEY, Registro xml);
Sintaxe
xml ( [ CONTENT | DOCUMENT ] xml_schema_collection )
XML Schema CollectionsSuporte XML no SQL Server
O SQL Server fornece armazenamento nativo para dados XML
Através do tipo de dado XML
Com uso de XML Schema Collection é possível associar esquemas XSD
Com uma coluna do tipo xml
Com uma variável do tipo xml
XML Schema Collections
Armazenam XML Schemas importados para o banco de dados
Objetivo dos XML Schema Collections
Validar instâncias XML
Definir tipo para os dados XML armazenados no banco de dados (XML tipado)
Métodos do tipo de dados XMLSuporte XML no SQL Server
Objetivos dos métodosPara consultar uma instância XML armazenada em uma variável ou uma coluna do tipo XML
Cinco métodos do tipo XMLquery()
value()
exist()
modify()
nodes()
Método query() do tipo XMLDescrição
Consulta XQuery em uma instância XML
Retorna um XML não tipado
Sintaxequery('Xquery')
Método value() do tipo XMLDescrição
Consulta XQuery em uma instância XML
Retorna um valor escalar do tipo SQL
Sintaxevalue('Xquery', 'TipoSQL')
Métodos do tipo de dados xmlSuporte XML no SQL Server
Método exist() do tipo xml
Descrição
Consulta XQuery em uma instância XML
Retorna um bit
1: representa true (resultado não vazio)
0: representa false (resultado vazio)
NULL: instância XML nula (valor NULL)
Sintaxe
exist('Xquery')
Método modify() do tipo xml
Descrição
Modifica o conteúdo de uma instância XML
Utiliza XML Data Manipulation Language
XML DML: extensão da Microsoft ao XQuery
Sintaxe
modify('XML DML')
XML DML: insert
Sintaxe
insert
Expressao1
[ as first | as last ] into | after | before
Expressao2
Métodos do tipo de dados xmlSuporte XML no SQL Server
Método modify() do tipo xml
Sintaxe
modify('XML DML')
XML DML: delete
Sintaxe
delete Expressao
XML DML: replace value of
Sintaxe
replace value of
Expressao1
with
Expressao2
Método nodes() do tipo xml
Descrição
Útil para separar conteúdo de uma
instância XML em dados relacionais
Sintaxe
nodes('XQuery') as Tabela(Coluna)
Cláusula FOR XMLSuporte XML no SQL Server
Uma consulta SELECT retorna o resultado como um conjunto de linhas
Opcionalmente, é possível retornar o resultado como XML
Pela especificação da cláusula FOR XML
A cláusula FOR XML pode ser usada em consultas ou subconsultas
Em subconsultas, pode ser usado em instruções INSERT, UPDATE e DELETE
Modos da cláusula FOR XML
RAW: gera um elemento <row> por linha no conjunto de linhas
AUTO: gera um resultado aninhado baseado na instrução SELECT
EXPLICIT: permite maior controle do XML gerado
PATH: permite maior controle do XML gerado, porém mais simples que EXPLICIT
Minhas experiências: XML e SQL ServerDebate final
XML sem SQL Server
Minhas opiniões
O que eu entendo por XML?
Quando eu usaria XML?
Eu acho XML obsoleto?
Que desvantagens eu destacaria?
Que vantagens eu destacaria?
Casos de uso
Eu tenho casos de sucesso?
Eu tenho casos de fracasso?
XML no SQL Server
Minhas opiniões
Eu acho uma mistura possível?
Quando eu usaria XML no SQL Server?
Eu acho XML no SQL Server obsoleto?
Que desvantagens eu destacaria?
Que vantagens eu destacaria?
Casos de uso
Eu tenho casos de fracasso?
Eu tenho casos de sucesso?