Conheça também: Onmasters . Ofertas . Divulgue! . Vai.la . Geraboleto . Baixa.la . Assista.la . Joga.la
» Início » Desenvolvimento » Banco de dados e SQL » SQL Server 2005 New Features: Os métodos XML - Parte 2 -->
 
Avaliação: | Publicado em: 02/08/2007
SQL Server 2005 New Features: Os métodos XML - Parte 2
Gustavo Maia Aguiar é administrador de Empresas pela Universidade de Brasília (UnB) e pós-graduado em bancos de dados pela Universidade Católica de Brasília (UCB), atua na área de tecnologia de informação desde 2001, exercendo funções de desenvolvedor, analista, administrador de banco de dados (DBA) e administrador de dados (AD). É profissional certificado (MOS, MCDBA, MCAD, MCTS (SQL 2005), MCITP (DB Dev), MCITP (DB Admin), MCT e Itil Certified Professional) e suas áreas de interesse incluem .NET, XML, SQL Server, banco de dados em geral e Business Intelligence. É membro ativo dos fóruns MSDN e TechNet além de moderador da comunidade SQL Server Brasil (Orkut).


O avanço do XML como padrão trouxe aos bancos de dados novas necessidades. Se no passado era importante manipulá-lo na camada de aplicação, hoje é importante não só ter a possibilidade de armazená-lo, mas também possibilitar sua recuperação e manipulação.

Nos artigos anteriores, já foi demonstrado como converter dados relacionais em um formato XML, como trabalhar com um tipo de dados XML nativo e como consultar informações utilizando padrões próprios como a XPath e a XQuery. A etapa natural nesse fluxo (conversão, persistência e recuperação) seria prover formas de manipular estruturas em XML seja na alteração ou na exclusão de seu conteúdo.

A forma mais natural de alterar um documento XML persistido é gerar um novo documento com as alterações necessárias e substituir o conteúdo do documento anterior. Ex:

Documento Atual

<?xml version="1.0"?>
 <Alunos>
  <Aluno Nome="Mara"/>
  <Aluno Nome="Eliana"/>
  <Aluno Nome="Eduardo"/>
 </Alunos>

Se for necessário incluir um novo aluno (Carlos) a esse documento, o resultado final seria:

Documento Alterado

<?xml version="1.0"?>
 <Alunos>
  <Aluno Nome="Mara"/>
  <Aluno Nome="Eliana"/>
  <Aluno Nome="Eduardo"/>
  <Aluno Nome="Carlos"/>
 </Alunos>

Utilizando o raciocínio anterior, o caminho mais natural, seria substituir o conteúdo do documento antigo pelo novo documento que contém a alteração desejada (Carlos). O que se deseja realmente, é que o documento final contemple a alteração (adição do aluno Carlos), mas excluir o documento inteiro para gravar uma nova versão parece ser uma atividade com certa redundância. Proceder dessa forma iria fazer com que os alunos Mara, Eliana e Eduardo fossem excluídos e gravados novamente. Para pequenos documentos isso talvez não faça diferença, mas conforme o tamanho do documento aumenta, excluí-lo e regravá-lo tornar-se inviável.

Se o banco de dados não possuir mecanismos de manipulação do documento XML após sua persistência, não haverá o que fazer senão recuperá-lo, alterá-lo, excluir a versão persistida e gravar a nova versão, mesmo que as versões sejam idênticas em boa parte do seu conteúdo. Nesse caso, o banco de dados seria um mero repositório, e admitida sua incapacidade em lidar com estruturas XML já persistidas, esse seria o único mecanismo de atualização.

Nas versões anteriores ao SQL Server 2005, era necessário utilizar tipos textuais (VARCHAR, NVARCHAR, TEXT e NTEXT) para armazenar documentos XML e nesse caso, embora os comandos UPDATE e UPDATETEXT em conjunto com algumas funções textuais (SUBSTRING, LEFT, RIGHT) tenham flexibilidade, a alternativa com melhor custo benefício era de fato, excluir a versão antiga do documento e gravar a versão nova incorrendo em maiores operações de CPU, memória e I/O.

No SQL Server 2005, o tipo de dados XML, além de prover diversas funcionalidades, como validação de documentos com XML Schema e consulta a documentos com XPath e XQuery, é possível realizar alterações no conteúdo desses documentos de uma forma mais simples e menos onerosa, alterando e (ou) excluindo apenas o fragmento de interesse. Essa manipulação é realizada através do método Modify.

Páginas: « Anterior 1 2 3 4 5 6 7 Próximo »  Próximo: O método Modify »

Este artigo é a parte 2 de 2 da seguinte série:
  1. SQL Server 2005 New Features: Os métodos XML - Parte 1
  2. SQL Server 2005 New Features: Os métodos XML - Parte 2

Muito bom, agora para quem faz uso do 2005 esta belezinha colegas, so fazer uso, isso que estava faltando para que os usuários do 2000 não sofressem tanto em trabalhos com Strings grandes e terem que quebras a variavel Text em uso de procedures para recebe-las como parametros.... valeu e abraços...