Vous êtes sur la page 1sur 51

1

UNIO EDUCACIONAL MINAS GERAIS S/C LTDA FACULDADE DE CINCIAS APLICADAS DE MINAS Autorizada pela Portaria n 577/2000 MEC, de 03/05/2000. BACHARELADO EM SISTEMAS DE INFORMAO

UN
Uberlndia MG 2008

IM

MARSELHA PARANAIBA SAMORA

IN

AS

UTILIZANDO XML PARA A TROCA ELETRNICA DE DADOS

MARSELHA PARANAIBA SAMORA

IM UN

IN

Trabalho de final de curso submetido UNIMINAS como parte dos requisitos para a obteno do grau de Bacharel em Sistemas de Informao.

Orientador: Prof. M.Sc. Francisco Jos Muller.

Uberlndia MG 2008

AS

UTILIZANDO XML PARA A TROCA ELETRNICA DE DADOS

MARSELHA PARANAIBA SAMORA

UTILIZANDO XML PARA A TROCA ELETRNICA DE DADOS

Banca Examinadora:

UN

IM

Uberlndia, 23 de Abril de 2008.

Prof. M.Sc. Francisco Jos Muller Prof. Dr. Mauro Hemerly Gazzani Prof. M.Sc. Slvio Bacal Uberlndia MG 2008

IN

Trabalho de final de curso submetido UNIMINAS como parte dos requisitos para a obteno do grau de Bacharel em Sistemas de Informao.

Orientador: Prof. MSc. Francisco Jos Muller

AS

UN
Dedicatria A todos que me incentivaram a concluir mais esta etapa da minha vida. Em especial, aos meus pais, Eduardo e Helenice, e s minhas irms, Fernanda e Roberta, que acreditaram que este sonho iria se realizar.

IM

IN

AS

AGRADECIMENTOS Em primeiro lugar, agradeo a Deus, divino e misericordioso, pelo dom da vida que me deu, pela luz que nunca se apagou, iluminando os meus passos, e por tudo o que no pode ser expresso com palavras. Especialmente, aos meus pais, Eduardo e Helenice, pela vida e pelo exemplo de luta, o meu agradecimento eterno. Agradeo aos meus amigos Lvia, Anderson, Lidiane e Juliano que, nesta caminhada, embarcaram comigo no meu sonho, incentivando e colaborando com os seus conhecimentos e sabedoria. traduo. confiana e dedicao. deste trabalho. Ao meu amigo, Paulo, pelo comprometimento e empenho na Ao meu orientador, Prof. MSc. Francisco Jos Muller, pelo incentivo, A todos que, direta ou indiretamente, contriburam para a elaborao Finalmente, aos demais componentes da banca examinadora pelo tempo despendido para a leitura e anlise deste trabalho. A todos, muito obrigada.

UN

IM

IN

AS

RESUMO

Para transferir os dados de uma base para outra, pode-se utilizar o EDI (Electronic Data Interchange ou Intercmbio Eletrnico de Dados), que viabiliza a troca de dados de acordo com um padro (Febraban, Edifact, Anfavea e outros) prestabelecido entre as partes (remetente e receptor) ou atravs da replicao de dados, sendo esta uma tecnologia utilizada para multiplicar e duplicar os dados em locais distintos. Este trabalho mostrar outra forma possvel para transferncia entre base de dados distintos, cuja linguagem utilizada XML. Essa linguagem utiliza um plataforma e, conseqentemente, possibilitar o desenvolvimento de estruturas flexveis. Sero apresentadas noes bsicas sobre a linguagem XML e sua utilizao para mediar a troca de dados entre sistemas legados, j que no meio como material de apoio para que as pessoas interessadas nesse assunto possam adquirir conhecimento bsico sobre a linguagem XML e sua utilizao na troca de dados entre sistemas diferentes. acadmico a linguagem XML pouco difundida. Desta forma, este trabalho servir

PALAVRAS-CHAVE: XML, Banco de Dados, SQL Server 2000.

UN

IM

IN

AS

padro que se destaca devido a sua estrutura leve, por ser independente de

ABSTRACT To transfer the data of a base to another we can use the EDI (Electronic Data Interchange), which it makes possible to exchange the data in accordance with a standard system (Febraban, Edifact, Anfavea and others), pre stablished between the parts (sender and reciever) or through the response of data, where this is an utilized technology to multiply and to duplicate the data in distinc places. In the present paper work, it will show another way which its also possible to transfer data between distinct databases using the following language: XML. XML is a independent of its platform and making possible the development of flexible structures. It will be presented basic slight knowledge on language XML and its use to mediate exchange of data between obsolete systems, since this XML language is not spread out among the academic studies. Therefore, this work will serve as a material support to people interested in this issue and they can acquire basic knowledge on XML language and its use in the exchange of data between different systems. language that uses a standard that highlights due to its light structure, for being

KEY WORDS: XML; Database; SQL Server 2000.

UN

IM

IN

AS

LISTA DE FIGURAS Figura 1 - Exemplo de dados de uma aluna...................................................... .......19 Figura 2 - Estrutura XML............................................................................................19 Figura 3 - Exemplo de arquivo no formato XML ................................................ .......20 Figura 4 - Exemplo de elemento ...................................................................... .......21 Figura 5 - Exemplo de atributo ......................................................................... .......22 Figura 6 - Exemplo de comentrio .................................................................... .......23 Figura 7 - Exemplo de entidade ........................................................................ .......24 Figura 8 - Declarao de DTD utilizando ELEMENT......................................... .......25 Figura 9 - Declarao de DTD utilizando Arquivo ............................................. .......26 Figura 10 - Declarao de DTD utilizando |....................................................... .......26 Figura 11 - Declarao de DTD utilizando ........................................................ .......26 Figura 12 - Declarao de DTD utilizando ........................................................ .......26 Figura 13 - Declarao de DTD utilizando ?..............................................................27 Figura 14 - Declarao de DTD utilizando * ..................................................... .......27 Figura 15 - Cabealho esquema ...................................................................... .......28 Figura 16 - Exemplo ElementType ................................................................... .......28 Figura 17 - Exemplo utilizando valor seq ......................................................... .......30 Figura 18 - Exemplo utilizando element ............................................................ .......30 Figura 19 - Exemplo utilizando Attribute............................................................ .......30 Figura 20 - Sintaxe FOR XML (Bento, Reali, Castro,2002) .............................. .......35 Figura 21 - Modo AUTO .................................................................................... .......36 Figura 22 - Modo Auto....................................................................................... .......36 Figura 23 - Modo RAW ..................................................................................... .......37 Figura 24 - Sintaxe OPENXML ......................................................................... .......38 Figura 25 - Criando tabela ................................................................................ .......40 Figura 26 - Inserindo dados na tabela .............................................................. .......41 Figura 27 - Mostrando dados da tabela............................................................. .......41 Figura 28 - Exportando dados .......................................................................... .......42 Figura 29 - Estrutura dos Dados Exportados ................................................... .......43 Figura 30 - rvore de Dados de Cada Nodo..............................................................44 Figura 31 - Processo da Importao ................................................................ .......44 Figura 32 - Tabela temporria .......................................................................... .......45 Figura 33 - Inserindo dados .............................................................................. .......46 Figura 34 - Finalizando Importao .................................................................. .......47 Figura 35 - Resultado da Insero ................................................................... .......47

UN

IM

IN

AS

LISTA DE QUADROS Quadro 1 - Caracterstica XML.......................................................................... .......16 Quadro 2 - Tabela Entidade .............................................................................. .......23 Quadro 3 - Tabela Atributo Content .................................................................. .......29 Quadro 4 - Tabela Atributo dtt:Type .................................................................. .......29 Quadro 5 - Parmetros For XML ...................................................................... .......35 Quadro 6 - Argumentos da Funo Open XML ................................................. .......38 Quadro 7 - Valores Flag .................................................................................... .......38 Quadro 8 - Sintaxe sp.xml prepare documento ................................................. .......39

UN

IM

IN

AS

10

LISTA DE ABREVIATURAS E SMBOLOS DTD Document Type Definitions. SQL Server Microsoft SQL Server. EDI Electronic Data Interchange. SGBD Sistema Gerenciador de Banco de Dados. W3C World Wide Web Consortium. SGML Standard Generalized Markup Language. HTML Hypertext Markup Language. XML eXtensible Markup Language. XSD Schema Definition. CSS - Cascading Style Sheets

UN

IM

IN

AS

11

SUMRIO 1. INTRODUO 1.1 Cenrio Atual....................................................................................................12 1.2 Identificao do Problema ...............................................................................13 1.3 Objetivo do Trabalho........................................................................................14 1.3.1 Objetivo Geral ............................................................................... .......14 1.3.2 Objetivos Especficos ............................................................................14 1.4 Justificativa para Pesquisa .......................................................................... .......14 1.5 Organizao do Trabalho ............................................................................ .......15 2. XML 2.1 Introduo............................................................................................................16 2.2 Origem da Linguagem XML.................................................................................17 2.3 Definio de XML ................................................................................................18 2.4 Estrutura do Documento XML ..................................................................... .......20 2.5 Elementos ................................................................................................... .......21 2.6 Atributos ..................................................................................................... .......22 2.7 Comentrios ............................................................................................... .......22 2.8 Entidades .................................................................................................... .......23 2.9 Declarao de Entidades ........................................................................... .......24 2.10 Document Type Definition (DTD) ............................................................. .......24 2.10.1 Declarao de uma DTD ............................................................... .......25 2.11XML Schema ..................................................................................... .......27 2.11.1 Sintaxe ........................................................................................... .......28 3. SISTEMAS DE GERENCIAMENTOS DE BANCO DE DADOS (SGBB) E VISO GERAL DE SQL SERVER COM SUPORTE A XML 3.1 Introduo ................................................................................................... .......31 3.2 Conceito ...................................................................................................... .......31 3.3 Recuperao .............................................................................................. .......32 3.4 Integridade .................................................................................................. .......33 3.5 Concorrncia........................................................................................................33 3.6 Segurana ...........................................................................................................34 3.7 SQL Sever com Suporte ao XML.........................................................................34 3.7.1 Executando Templates............................................................................. .......35 4. EXPORTAO E IMPORTO DE DADOS UTILIZANDO SQL SERVER 2000 COM SUPORTE A XML 4.1 Introduo.............................................................................................................40 4.2 Exportao de Dados...........................................................................................40 4.3 Importao de Dados...........................................................................................43 5. CONCLUSO................................................................................................ .......48

UN

IM

IN

AS

12

1. INTRODUO 1.1 Cenrio Atual Com a abertura de novos mercados e a globalizao mundial, as empresas precisam cada vez mais de informaes consistentes para se manterem ativas. Porm, nem sempre essas informaes encontram-se centralizadas em um nico repositrio. Diferentes formas para a estruturao dos dados podem no causar problemas enquanto estes so utilizados apenas pelo prprio sistema que os sistemas, podero surgir problemas de incompatibilidade devido linguagem utilizada ou falta de uma padronizao dos dados. Em uma entrevista no lanamento da BizTalk, Bill Gates afirmou que: estruturou. Entretanto, quando os dados precisam ser transferidos entre diferentes

Um dos principais requisitos para a integrao entre as aplicaes e seus respectivos dados a existncia de um padro comum que possa ser utilizado pelos diversos sistemas. Sero apresentados os conceitos bsicos relativos linguagem XML,

UN

recursos adicionais de formatao e validao de um documento XML utilizando o DTD (Document Type Definitions), definindo suas regras e exemplos de sintaxe. Para exemplificar a utilizao do XML ser utilizado o banco de dados SQL Server 2000, por possuir suporte a XML que ser configurado para trocar dados, importando e exportando arquivo neste formato. A linguagem XML um padro que est sendo usado por diversos fabricantes de software para as mais diversas finalidades, dentre os quais: Oracle SQL Server

IM

IN

Para seduzir mais de um milho de novas empresas para o Comrcio Eletrnico, temos que ajudar as suas aplicaes a falar a linguagem do negcio de forma homognea. At agora, era muito difcil para as empresas fazerem negcio com base na Internet, devido falta de um vocabulrio tcnico nico para descrever os processos funcionais. (HEITLINGER, 2001)

AS

13

MySQL Segundo Abiteboul, Buneman e Suciu (2000), na suposio de que XML

se tornar um formato universal de troca de dados, muitos comerciantes de software esto construindo ferramentas para importao e exportao de dados em XML. Desta forma, este trabalho servir como material de referncia para que as pessoas interessadas neste assunto possam adquirir conhecimento bsico sobre esta linguagem. Alm de servir como material de referncia, a pesquisa mostrar que possvel utilizar XML como uma forma padro de representao e troca de dados nas aplicaes para armazenamento, obtendo-se uma estrutura leve, padronizada e independente de plataformas, o que possibilita o desenvolvimento de estruturas de mediao flexveis.

1.2 Identificao do Problema

A troca de dados entre aplicaes pode ser realizada de diferentes modos, como a utilizao de EDI (Electronic Data Interchange ou Intercmbio Eletrnico de Dados), que viabiliza a troca de dados de acordo com um padro (Febraban, Edifact, Anfavea e outros) pr-estabelecido entre as partes (remetente e

UN

Outra forma de transferncia a utilizao de replicao de dados, sendo

esta uma tecnologia utilizada para multiplicar e duplicar os dados em locais distintos.
A Replicao de Dados uma poderosa e importante tecnologia para manipulao e duplicao de cpias, mantendo e sincronizando-as automaticamente em diferentes locais, de forma que todas as cpias existentes no ambiente trabalhem com as mesmas informaes. (AFONSO, 2006)

IM

receptor).

O EDI foi definido pela padronizao Francesa [Marcillet, 1994], EDIFRANCE, como: transferncia de dados de computador para computador, entre parceiros de negcios [Preston, 1988; Hinge,1988], usando mensagens eletrnicas de dados, estruturados e agrupados, na forma de mensagens padres, desta forma, favorecendo a diminuio de custos, e aumentando a produtividade da companhia, melhorando os procedimentos, e reduzindo custos. Esta uma nova forma de comunicao entre parceiros econmicos, na qual os documentos em papel no so mais necessrios.(MARCONCINI; LIMA, 2007)

IN

AS

14

Este trabalho apresentar para mediar a troca de dados entre aplicaes, a linguagem XML, que simplesmente uma forma de representao de dados que permite uma especificao facilitando a troca de dados entre sistemas diferentes. De acordo com Abiteboul, Buneman e Suciu (2000), XML permite uma especificao que facilita a troca de dados e a reutilizao por mltiplas aplicaes. A vantagem que se ganha em tempo por ser uma linguagem intuitiva, simples e de fcil interpretao, sem depender de aplicao ou sistema operacional, podendo realizar uma busca em diferentes bancos de dados e combin-los conforme necessrio.

1.3.1 Objetivo Geral

O objetivo deste trabalho descrever o processo de troca de dados entre aplicaes, utilizando a linguagem XML.

UN
XML;

simplificada com o uso do XML; Apresentar um exemplo de importao e exportao dos dados.

1.4 Justificativa para Pesquisa

A principal justificativa para a realizao deste projeto apresentar uma linguagem pouco difundida no meio acadmico para a realizao de troca de dados

IM

1.3.2 Objetivos Especficos

Realizar estudos sobre XML, um breve histrico e conceitu-la;

Definir conceitos sobre Banco de Dados; Desenvolver uma viso geral de SQL Server com suporte ao Descrever como a troca de dados entre sistemas pode ser

IN

AS

1.3 Objetivo do Trabalho

15

entre diferentes aplicaes, pois nem sempre o mecanismo utilizado para troca de dados eficaz e econmico. Ao utilizar documentos no formato XML em substituio aos arquivos gerados por meio de processos como o padro EDI ou por replicao de dados, as empresas que pretendem aperfeioar a comunicao eletrnica tero ganhos significativos, pois no formato XML os documentos ficam mais flexveis, logo, podem ser utilizados por vrias aplicaes e manipulados de acordo com a necessidade de cada aplicao para mediar a troca de dados.

1.5 Organizao do Trabalho

No Captulo 1 foi apresentada uma introduo organizao de todo o trabalho, citando os objetivos e a justificativa para sua realizao em linhas gerais. No captulo 2 sero mostradas as definies bsicas de XML. No captulo 3, haver a definio de Sistema Gerenciador de Banco de Dados (SGBD) e uma viso geral do SQL Server com suporte ao XML. Por fim, o captulo 4 ser dividido em duas partes, sendo que a primeira revelar como ser feita a exportao dos dados utilizando SQL Server e a segunda parte como ser a exportao dos dados no Para concluir o trabalho, no captulo 5 ser apresentada a concluso.

UN

IM

formato XML.

IN

AS

16

2. FUNDAMENTOS DA LINGUAGEM XML

2.1 Introduo

XML possui um formato universal de metalinguagem, ou seja, uma linguagem que permite definir novas linguagens atravs da criao customizada de marcadores. Uma linguagem de marcao de texto possui um conjunto de marcadores (conhecidos como tag) que so utilizadas para atribuir determinadas caractersticas a uma informao delimitando os dados. Segundo Ramalho (2002), a XML foi criada para descrever dados, e o seu
foco est na descrio do dado.

Uma das caractersticas marcantes por trs dessa linguagem a possibilidade de manipulao do arquivo texto em diferentes programas e sistemas operacionais, pois seu contedo poder ser feito e visualizado por um simples editor de texto, por exemplo, o bloco de notas do Windows, o que no ocorre com outros tipos de linguagens, que necessitam especificamente de um ambiente prprio para a sua concluso. Seguem no Quadro 01 algumas caractersticas da linguagem XML: Possui padro aberto, no sendo amarrado a nenhum aplicativo ou desenvolvedor. Oferece diversas maneiras de verificar a qualidade e integridade do

UN

documento, usando regras de sintaxe, verificao de links internos (estrutura), comparao com modelos de documentos e definio de tipos de dados. Formado por uma estrutura simples e no ambgua, o XML ideal para ser lido e manipulado por pessoas e aplicativos. Pode ser facilmente combinado com folhas de estilo (CSS) para apresentar os dados na estrutura desejada. Quadro 01 Caractersticas XML (Agnaldo 2003) A XML visa construir documentos flexveis que representam dados

juntamente com seus respectivos significados, sem considerar o formato de sua

IM

Pode armazenar e organizar qualquer tipo de informao.

IN

AS

17

apresentao. Com a padronizao utilizada no documento fica fcil a troca entre banco de dados distintos e principalmente entre os diversos tipos de aplicativos.
Com a XML definem-se facilmente linguagens de marcao (Markup Languages). Usar XML um modo muito flexvel de criar dados autodescritveis e partilhar esses dados via Internet, por Intranets, ou por qualquer outro modo de transporte. (HEITLINGER, 2001).

As indstrias de banco de dados j reconheceram o potencial deste novo formato e muitos dos construtores esto expandindo as suas tecnologias com o intuito de propor repositrios para os dados XML, so exemplos: Oracle, IBM, Microsoft e Sybase. Em entrevista concedida revista Revista Do Linux, diante do empresas, Charles Casanave III afirma entender que: questionamento sobre a avaliao da linguagem XML e seus benefcios s

Dentre as diversas vantagens em utilizar a XML, destacam-se:

mais legveis, mais fceis de documentar e, s vezes, mais fceis de depurar; Interoperabilidade, independente de aplicao ou sistema

UN
operacional;

prprias estruturas rotuladas para armazenar os dados; Extensibilidade de acordo com a necessidade, isto , o usurio

criar suas tags especficas.

2.2 Origem da Linguagem XML

Em 1996, o W3C (World Wide Web Consortium) iniciou um projeto de desenvolvimento de uma linguagem de marcao abrangente, que reunisse a

IM

No requer licena; Os formatos XML so baseados em texto, os que os tornam

Flexibilidade, permitindo que o desenvolvedor possa criar suas

IN

A XML est mudando o mundo da TI e dever alterar o mundo dos negcios. A XML guiar o sucesso do e-commerce mais do que qualquer outra tecnologia. Ela oferece s empresas meios padronizados de intercmbio de informaes de transaes eletrnicas, uma tecnologia padro com a qual integrar suas aplicaes legadas e um ambiente padro para implementar novas aplicaes que podem colaborar com parceiros globais de negcios. (REVISTA DO LINUX, 2008)

AS

18

flexibilidade do SGML (Standard Generalized Markup Language) com a ampla aceitao do HTML (Hypertext Markup Language), para uso atravs da internet. Surgiu ento a XML, um subconjunto da SGML, extensvel como tal, porm de forma muito mais simplificada.
O W3C hospedado pelo Massachusetts Institute of Technology, Laboratory for Computer Science(MIT/LCS), os Estados Unidos; pelo Institut National de Recherche em Informatique et em Automatique (INRIA), na Europa; e pela Universidade de Keio, Campus Shonan Fujisawa, no Japo. Atualmente, ele possui cerca de 50 pessoas trabalhando em tempo integral. (Hoizner, 2001, p.36).

O W3C um grupo composto por organizaes (atualmente mais de 400) criado em 1994 para regulamentao dos padres utilizados na internet, tecnologias, denominadas Web Standards (ou Padres Web) para a criao e a interpretao dos contedos para Web. Sites desenvolvidos segundo esses padres podem ser acessados e visualizados por qualquer pessoa por meio de programas dispositivo utilizado, de maneira rpida e compatvel com os novos padres e tecnologias que surgem com a evoluo da internet. chamados browsers ou navegadores, independentemente da plataforma ou promovendo evoluo e assegurando a sua interoperabilidade. O W3C desenvolve

XML uma abreviao de eXtensible Markup Language, cuja traduo linguagem de marcao extensvel. O seu foco exclusivo o modo como os dados so mostrados e a finalidade criar dados estruturados, ordenando, filtrando e localizando os dados baseados em um arquivo-texto. Desse modo, a XML um conjunto de regras existentes em um arquivo no formato de texto contendo dados estruturados, de forma que sejam produzidos arquivos de fcil gerao e leitura por parte de qualquer aplicao, sem ambigidades.
A XML um padro aberto que permite que dados sejam compartilhados universalmente na Internet atravs de qualquer plataforma que suporte XML. A XML permite que dados estruturados sejam descritos usando um formato de texto. Estes dados podem ser distribudos e trocados no Hypertext Transport Protocol (HTTP), que o protocolo usado na Web. (BENTO, REALI, CASTRO, 2002, p. 573).

UN

IM

2.3 Definio de XML

IN

AS

19

Com isso, evitam-se problemas comuns, como dependncia de uma plataforma especfica e dificuldades na adequao a diferentes tipos de usurios. A W3C descreve a XML como o formato universal para documentos estruturados e dados na Web. A Figura 01 contm dados de uma aluna, Ana Paula, que tem 25 anos e cursa o 8 perodo de Sistema de Informao com matrcula nmero 13012041.
25 anos Ana Paula Sistema de Informao Matrcula 13012041 8 Perodo

Figura 01 Exemplo de dados de uma aluna Quando verificamos a informao da Figura 01, entendemos que se trata dos dados de uma aluna, Ana Paula, com 25 anos, do curso de Sistema de Informao, cursando o 8 perodo com matrcula nmero 13012041. Mas, para entender o XML necessrio definir a estrutura, como mostrada na Figura 02:
<aluna> <idade> 25 </idade>

UN

IM
</aluna>

<nome> Ana Paula </nome>

<curso> Sistema de Informao </curso> <matricula> 13012041 </matricula> <perodo> 8 </perodo>

Dessa forma, quando o parser (analisador XML) encontrar o elemento

<aluna>, o programa saber que os dados so referentes aluna. Parser um

componente do processador XML que analisa as marcaes XML e determina a estrutura dos dados do documento. Na estruturao possvel descrever vrias tags, que so marcadores utilizados para atribuir determinadas caractersticas a uma informao. As tags podem ser utilizadas e criadas conforme a necessidade, por exemplo, as tags

IN

Figura 02 Estrutura XML

AS

20

utilizadas na Figura 02, <nome> e <curso>. J no HTML, as tags que aparecem fazem parte da definio da linguagem.

2.4 Estrutura do Documento XML

Os documentos feitos em XML contm uma estrutura lgica composta por elementos e uma estrutura fsica composta por entidades, comentrios, referncias de caracteres e instrues de processamento, todos indicados por marcaes explcitas no documento. Qualquer linguagem baseada em XML composta por um conjunto de tipos de elementos que servem para definir quais documentos so conhecidos como DTDs, que sero apresentados posteriormente. Com a utilizao de XML para escrever documentos, os projetistas podem adicionar seus prprios elementos de acordo com a aplicao que est sendo modelada, dando importncia ao contedo e estrutura da informao, sem se preocupar com a apresentao. A Figura 03 mostra um exemplo de arquivo XML, contendo dados de um usurio, como nome, e-mail e idade.

UN

Na linha 1 da Figura 03 mostrada uma instruo padro, considerada como prlogo, que sempre deve ser inserida no incio de um documento XML.

IM
2 <cadastro> 3 4 5 5 6 7 8 9 10 <usuario> </usuario> <usuario> 11 </usuario> 11 </cadastro>

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

<nome>Alexandre</nome> <email>ale@yahoo.com.br</email> <idade>15</idade>

<nome>Bruno</nome> <email>br@yahoo.com.br<email> <idade>16</idade>

Figura 03 Exemplo de arquivo no formato XML

IN

AS

21

importante ressaltar que, se forem utilizar elementos da lngua portuguesa como acento, cedilha, etc, deve-se usar o cdigo: <?xml version="1.0" encoding="ISO8859-1"?>. Na linha 2 da Figura 03 est o Elemento Principal (root tag), que um documento XML sempre deve ter, sendo que, nesse exemplo, <cadastro>, denominado elemento raiz. Ele importante para receber e organizar as demais marcaes. Sem ele os dados ficam "soltos" pelo cdigo. J os elementos <usuarios>, <nome>, <email> e <idade> da Figura 03 so secundrios de um documento XML, isto , so campos onde sero armazenados os dados. Logo aps os elementos secundrios, o elemento principal

Em todo documento XML obrigatrio o uso de um par de tags para definir o elemento raiz. Pode haver ainda subelementos, os quais so bastante sensveis, pois no reconhecem tags escritas de forma diferente, principalmente porque as tags devem ter incio e trmino. Portanto, toda tag que abre tem que ser fechada, so sensveis a letras maisculas e minsculas, sendo necessariamente iguais.

2.5 Elementos

Os elementos so as formas mais comuns de marcao em XML e so

UN

delimitados pelos sinais de menor (<) e maior (>), envolvendo os dados propriamente ditos, como mostra a Figura 04.
1. 2. 3. 4. 5. 6. 7. 8. </cadastro> <?xml version="1.0" encoding="ISO-8859-1"?> <cadastro> <usuario> <nome>Alexandre</nome> <email>ale@yahoo.com.br</email> <idade>15</idade> </usuario>

IM

Figura 04 Exemplo de elemento

IN

AS

fechado.

22

Os elementos so chamados de tag, podendo ser criados de acordo com a necessidade. No so permitidos espaos entre os elementos e nem entre a barra e o nome do elemento.

2.6 Atributos

Os

atributos

so

qualificadores

dos

elementos

sempre

so

representados como um par nome-valor, sendo que o valor deve, obrigatoriamente, deve estar entre aspas para que o parser ao passar pelo documento possa interpretar que se trata de um valor atribuindo ao elemento. A Figura 05 mostra um exemplo.

Na Figura 05 a idade um atributo do elemento aluna, que possui um valor especificado entre aspas. Normalmente os atributos so utilizados para definir propriedades do

UN

elemento e no o seu contedo. So colocados nas tags de abertura e no de fechamento. Os atributos devem possuir um nome e um valor associado por meio do sinal de igualdade.

2.7 Comentrios

Os comentrios so pores de texto que devem ser ignoradas pelo parser XML. Iniciam sempre com <!-- e terminam com -->, veja na Figura 06.

IM

Figura 05 Exemplo de Atributo

IN

AS

23 <! -- Essa linha no processada pelo Parser -- >

Figura 06 Exemplo de Comentrio As linhas de comentrio podem aparecer em qualquer parte do documento, mas no podem ser colocadas dentro de valores de atributos ou dentro de tags.

2.8 Entidades

As entidades sempre comeam com & (e-comercial) e terminam com; (ponto e vrgula). As entidades so "smbolos" que so produzidos pelo parser em caracteres especiais como til, acento, cedilha, etc, como mostra Quadro 02.
Smbolo da entidade &lt; &gt; &amp; &apos; &quot; Resultado <

IM UN

Quadro 02 Tabela Entidade (Holzner, 2001)

Quando se deseja incluir caracteres especiais como por exemplo o sinal

de < no documento necessrio especificar no documento pois a simples insero deste smbolo ocasionaria erro se no especificar como &lt;, pois o documento ao ser processado entenderia como se fosse uma tag, ento nesse caso, a simples insero deste caracter ocasionaria um erro quando da sua interpretao.

IN
> & ' "

AS

24

2.9 Declaraes de Entidades

As declaraes de entidades permitem que se associe um nome a qualquer fragmento de um documento XML, que pode conter um texto, parte de uma DTD ou uma referncia a um arquivo externo, como uma figura ou qualquer outro tipo de dado binrio. o que mostra a Figura 07.

<!ENTITY UNIMINAS Unio Educacional Minas Gerais>

Figura 07 Exemplo de Entidade Existem trs tipos de entidades: internas, externas e de parmetro. Uma entidade interna aquela em que o valor de substituio armazenado na declarao. Esse tipo de entidade permite a definio de qualquer tipo de abreviatura que ser, durante a etapa de processamento, substituda pelo texto informado. Analisando o exemplo da Figura 07, nota-se que possvel utilizar &UNIMINAS em qualquer parte do documento, uma vez que este ser substitudo por Unio Educacional Minas Gerais.

a arquivos externos, sejam eles textos ou binrios. Se o arquivo for do tipo texto, seu contedo ser inserido no lugar da entidade. Dados binrios no so analisados, podem somente ser referenciados em um atributo e so usados para referenciar figuras e outro contedo no XML no documento. Por fim, as entidades de parmetro permitem especificar um tipo genrico de entidade que pode, depois, servir como tipo base para outras entidades. Por exemplo: se for definida uma entidade chamada endereo, que contm nome da rua e nmero, pode-se especificar um endereo de entrega e um endereo comercial, utilizando-se o endereo anteriormente definido. 2.10 Document Type Definition (DTD) A principal caracterstica da XML a facilidade que ela oferece para que possamos modelar os dados. Assim, podemos especificar os elementos que o

UN

IM

J as entidades externas permitem a um documento XML fazer referncia

IN

AS

25

documento ter. A modelagem dos dados pode ser feita por declarao de tipo de documento, que em ingls quer dizer DTD (Document Type Definition). Assim afirma Serge, Peter e Dan (2000): Uma definio de tipo de documento (DTD) serve como gramtica para o documento XML subjacente e parte da linguagem XML. A DTD permite que sejam includas restries aos documentos XML, para que depois possam ser verificadas pelo processador, a fim de determinar a validade ou no de um documento, especificar quais elementos ou atributos so permitidos no documento XML e em que local do documento eles podem aparecer.

Uma DTD composta por um conjunto de declaraes, as quais podem ser ELEMENT, ATTLIST, ENTITY E NOTATION. Todas as declaraes

<?xml version="1.0" encoding="ISO-8859-1"?> <!ELEMENT cadastro(nome,email)> <!ELEMENT nome (#PCDATA)> <!ELEMENT email (#PCDATA)>

Um ELEMENT define uma tag XML, ou seja, cada declarao ELEMENT

UN
Figura 09.

define um elemento no documento XML. J ATTLIST define uma lista de atributos pertencentes a um determinado elemento, ENTITY define uma entidade e NOTATION declara uma notao. Primeiramente declarado o elemento me, que o cadastro e deve conter os elementos filhos nome e e-mail. O elemento filho nome utiliza a palavrachave #PCDATA e o elemento filho e-mail, #PCDATA. Aps a definio DTD, esse arquivo salvo com o nome, por exemplo, definir.dtd, para depois ser definido como arquivo XML. Com o arquivo DTD pronto, a indicao de qual DTD um documento segue feita no incio do documento, comeando com <--DOCTYPE, como revela a

IM

Figura 08 Declarao de DTD utilizando ELEMENT

IN

iniciam com <! e terminam com >, conforme exemplifica a Figura 08.

AS

2.10.1 Declarao de uma DTD

26 <?xml version="1.0" encoding="ISO-8859-1"?> <!Incluso do documento DTD criado anteriormente--> <!DOCTYPE cadastro SYSTEM "definir.dtd"> <!Montagem do documento XML--> <cadastro> <nome>Marselha</nome> <email>marselha@email.com.br</email> </cadastro>

Figura 09 Declarao de DTD Utilizando Arquivo Quando se declara uma DTD, pode-se utilizar a barra vertical ("|") para dizer que apenas um dos elementos ir aparecer no documento XML, confira na Figura 10.

<!ELEMENT cadastro(nome|email)>

Figura 10 Declarao de DTD Utilizando |

A | utilizada na Figura 10 diz que apenas um dos elementos ir aparecer, ou o elemento nome ou o elemento e-mail. Utiliza-se tambm a vrgula, que serve para ordenar a apario dos elementos. Veja o exemplo da Figura 11.

UN
e asterisco (*).

Os dois elementos, nome e e-mail, da Figura 11 aparecero na ordem

como esto, ou seja, primeiro vem o elemento nome depois o elemento e-mail. Os caracteres utilizados dentro do DTD so: o caractere de adio (+), interrogao (?) O caractere "+" (mais) indica que o elemento ir aparecer uma ou mais

vezes no documento XML, como mostra a Figura 12.


<!ELEMENT cadastro(nome,email+)>

IM

<!ELEMENT cadastro(nome,email)>

Figura 11 Declarao de DTD Utilizando ,

Figura 12 Declarao de DTD Utilizando +

IN

AS

27

J o caractere ? significa que o elemento poder ou no aparecer no documento XML, ou seja, ele opcional, conforme est na Figura 13.
<!ELEMENT cadastro(nome?,email)>

Figura 13 Declarao de DTD Utilizando ? Finalmente, o * indica que o elemento e-mail poder aparecer nenhuma ou vrias vezes no documento XML. Veja a Figura 14.
<!ELEMENT cadastro(nome,email*)>

2.11 XML Schema

extensvel e escrita em XML.

Os esquemas tiveram origem na necessidade de se criar regras de formatao e padronizao do cdigo XML para poder ser integrado nas tarefas de enviar e receber informaes com bases de dados. (CRESPI, 2005)

Entre as principais caractersticas de XML Schema, so citadas: a) Possibilidade de utilizar valores booleanos, nmeros, datas e

UN
elementos; refinable.

horas, URIs, inteiros, nmeros decimais, nmeros reais, intervalos de tempo, etc.; b) Tipos definidos pelos usurios, chamados de Arqutipos. Por

exemplo: definir um tipo chamado EndereoPostal e a partir dele definir dois elementos, EndereoEnvio e EndereoCobrana como sendo deste tipo; c) Agrupamento de atributos, que podem ser aplicados a todos os d) Um modelo de contedo em uma DTD pode ser descrito como fechado, considerando-se que ele descreve exatamente o que pode aparecer no contedo do elemento. A XML Schema admite duas outras possibilidades: open e

IM

IN

A XML Schema, tambm chamada de XML Schema Definition (XSD),

AS

Figura 14 Declarao de DTD Utilizando *

28

Em um modelo de contedo do tipo open, todos os elementos requeridos devem estar presentes, embora no seja considerado um erro se elementos adicionais forem inseridos. J um modelo de contedo refinable admite que elementos adicionais estejam presentes, desde que o esquema defina o que eles so. Em relao validao de documentos, espera-se testar tanto a validao de modelos de contedo quanto a validao de unidades especficas de dados. A primeira testa se a ordem e alinhamento dos elementos esto corretos, enquanto que a segunda verifica se um determinado valor do tipo correto e est de acordo com as regras de validao daquele tipo. Utilizando-se DTD, somente possvel de ser feito o primeiro tipo de validao.

2.11.1 Sintaxe

O cabealho inicial de um documento XML contendo esquema mostrado na Figura 15.

<Schema name="schema" xmlns="urn-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoftcom:datatypes">

Na primeira linha de cdigo da Figura 15 definido o esquema. Ela

UN

informa o nome do Schema (name), o atributo xmlns e o atributo xmlns:dt. O nico atributo que poder mudar o name, ou seja, o nome do schema poder ser outro, observe na Figura 16.
<ElementType name="nome" content="textOnly" dt:type="string"/>

Com o elemento ElemntType, como mostra a Figura 16, define-se os elementos que faro parte do documento XML. Os atributos usados na Figura 16 e os demais atributos que fazem parte do elemento ElementType so:

IM

Figura 15 Cabealho Esquema

Figura 16 Exemplo ElementType

IN

AS

29

Atributo name: define o nome do elemento, no caso, nome; Atributo content: esse atributo define se o elemento ter texto,

elementos, texto com outros elementos, etc. Na Figura 16 o elemento nome poder apenas conter texto. No Quadro 03 ser apresentada uma tabela com outros tipos de atributo content. empty textOnly eltOnly mixed Elemento vazio O elemento poder conter apenas texto O elemento poder conter apenas elementos especificados Poder conter tanto texto quanto outros elementos Quadro 03 Tabela Atributo Content Atributo dt:type: Define que tipo de dados o elemento ir conter.

No exemplo da Figura 16 utilizado o tipo string. Outros tipos comuns que podem ser usados so mostrados no Quadro 04. boolean char date dateTime int number time Valor do tipo booleano Tipo de dados string

O tipo de dados ser uma data

UN
explicitamente.

valor do atributo for open, ento o elemento poder conter elementos filhos alm dos declarados. Se for closed, o elemento poder ter elementos filhos declarados Atributo order: esse atributo poder conter trs valores, one, seq

ou many. O valor one informa que um determinado elemento ter apenas um elemento filho, enquanto que o valor seq exige que os elementos apaream na seqncia especificada, como mostra a Figura 17:

IM

O valor ser data e hora

Define o tipo de dados como sendo um inteiro O tipo de dados um nmero O tipo de dados em formato de hora Quadro 04 Tabela Atributo dt:type Atributo model: poder conter dois valores (open e closed). Se o

IN

AS

30

<ElementType name="cadastro" order:"seq"> <element type="nome"/> <element type="email/> <element type="tel"/> </ElementType> <?xml version="1.0"?> <cadastro> <nome>Marselha</nome> <email>marselha@xmlbr.com.br</email> <tel>3333333</tel> </cadastro>

Figura 17 Exemplo utilizando valor seq

J o valor many permite que os elementos apaream em qualquer ordem O element define os elementos filhos de outro elemento. Na Figura 18 h um elemento cadastro e dentro dele existem dois elementos filhos (nome e e-mail). Esses dois so definidos por element, conforme a Figura 18.

UN
comentrio.

O attribute usado para atribuir um atributo a um elemento. Na Figura 19

foi declarado o atributo dinheiro ao elemento pagamento.


<Attribute name="dinheiro" dt:type="string"/> <ElementType name="pagamento" content="textOnly" dt:type="string"> <description>Comentrio qualquer</description>

O elemento description mostrado na Figura 19 serve para inserir um

IM

<ElementType name="cadastro"content="eltOnly" model="closed"> <element type="nome"/> <element type="email"/>

Figura 18 Exemplo utilizando element

Figura 19 Exemplo Utilizando Attribute

IN

ou no apaream, ou seja, so opcionais.

AS

31

3 - Sistema de Gerenciamento de Banco de Dados (SGBD) e viso geral de SQL Server com suporte a XML

3.1 Introduo

Neste captulo ser descrita uma viso geral sobre Banco de Dados e SQL Server com suporte a XML, j que o XML foi crescendo tanto que surgiu a necessidade de junt-lo ao Banco de Dados. Primeiro ser apresentada uma noo de Banco de Dados e, em seguida, ser explicado como este oferece suporte XML. Para a tomada de decises dentro de uma empresa, os gerentes precisam buscar informaes corretas e organizadas, portanto, a necessidade de se obter um banco de dados indispensvel. Atravs de Sistema de Banco de Dados pode-se obter o

compartilhamento de dados, eliminao de duplicao, redundncia e inconsistncia controlada e suporte a transaes, permitindo integridade e segurana.
Tais sistemas precisam incorporar no apenas vrias verificaes e controles para reduzir a probabilidade de falhas, mas tambm, e mais significativamente, um extenso conjunto de procedimentos para recuperao de falhas que inevitavelmente iro ocorrer, apesar daquelas verificaes e controles. (DATE, 1988, p.1)

Neste trabalho ser utilizado o Sistema Gerenciador Banco de Dados

UN
3.2 Conceitos

(SGBD) da Microsoft SQL Server 2000, pois de fcil compreenso e possui uma estrutura simples.

Bancos de dados (ou bases de dados) so conjuntos de dados com uma estrutura regular que organizam informaes. Um banco de dados normalmente agrupa dados utilizados para um mesmo fim. De acordo com Date (1991), um banco de dados uma coleo de dados operacionais armazenados, usados pelos sistemas de aplicaes de uma empresa especfica.

IM

IN

AS

32 [...] empresa um termo genrico e conveniente para designar uma organizao comercial, cientifica, tcnica ou de outra natureza que seja razoavelmente independente. (DATE, 1991, p.10)

Um banco de dados usualmente mantido e acessado por meio de um software conhecido como Sistema de Gerenciamento de Banco de Dados (SGBD). O conceito de Sistema de Gerenciamento de Banco de Dados (SGBD) o armazenamento completo de descries de dados, seus relacionamentos e forma de acesso. Ele permite que cada usurio visualize dados de forma diferente provendo um ambiente adequado e eficiente para a recuperao de dados e o desenvolvimento de programas aplicativos.
O sistema de banco de dados basicamente um sistema de manuteno de registros por computador ou seja, um sistema cujo objetivo global manter as informaes e torn-las disponveis quando solicitadas. (DATE, 1991, p.05)

o termo Sistema Gerenciador de Bancos de Dados deve ser aplicado ao software com a capacidade de manipular bancos de dados de forma geral.

A recuperao dos dados em um sistema de banco de dados consiste em reaver a base completa em um estado que se saiba estar correto, aps alguma falha ter ocorrido e ter deixado a base atual incorreta ou, pelo menos, suspeita. As possveis causas para ter-se que recuperar o banco de dados so

UN

erros, como a falha do prprio sistema de banco de dados, por erro de programao em uma aplicao, erro no sistema operacional ou falha no hardware, dentre outros .
A recuperao em um sistema de banco de dados significa, essencialmente, recuperar o prprio banco de dados: isto , restaurar o banco de dados a um estado que se saiba estar correto aps alguma falha ter deixado o estudo atual incorreto. (DATE, 1991, p.1)

A recuperao se baseia principalmente na proteo dos dados, assegurando que qualquer informao j contida no banco possa ser reconstruda a

IM

3.3 Recuperao

IN

O termo banco de dados deve ser aplicado apenas aos dados, enquanto

AS

33

partir de alguma outra informao armazenada redundantemente, em algum outro lugar do sistema.

3.4 Integridade

Para obter os benefcios propostos preciso seguir algumas normas a fim de garantir a integridade dos dados e a normalizao fundamental para o sucesso do projeto.
O termo integridade utilizado em contextos de bancos de dados com o significado de preciso; correo ou validade. (DATE, 1991, p. 32)

A integridade de uma tabela conseguida atravs das Primary Keys ou Uniques, que garantem no ocorrer duplicidade dos dados, e conhecida como integridade de entidade. J a integridade referencial baseia-se na relao entre duas tabelas aparecendo a chave Foreign Key, em que a chave primria de uma tabela inserida em outra. A falta de integridade pode causar falhas possveis de serem vistas depois de muito tempo, causando transtorno para a correo de lacunas e valores duplicados, inseridos de forma incorreta.

3.5 Concorrncia

UN
ocorrncia:

Ocorre quando vrias pessoas tentam efetuar mudanas no banco de

dados ao mesmo tempo. Por isso, necessrio haver o controle dessa ocorrncia, para prevenir que uma pessoa sobrescreva as modificaes que outras pessoas realizaram no mesmo registro. Existem duas formas comuns para gerenciar a - Pessimista: As linhas que sero modificadas permanecero bloqueadas at a liberao para que outra pessoa faa a sua modificao. Um exemplo o controle de estoque. - Otimista: Feita de acordo com a leitura dos dados, mas somente quando eles esto sendo atualizados.

IM

IN

AS

34

O usurio enxerga uma nica ao, mas, na realidade, executado um conjunto de procedimentos pelo Banco de Dados, dependendo de quatro propriedades conhecidas como ACID: - Atomicidade: Todas as aes que compem a transao devem ser concludas com sucesso, para que sejam efetivadas (commit). Caso contrrio, se acontecer alguma falha, a transao deve ser desfeita (rollback). - Consistncia: O status da implementao deve ser feito na ntegra. - Isolamento: Cada transao funciona independente uma da outra, sem interferncia. - Durabilidade: Os resultados de uma transao so permanentes, podendo ser desfeitos somente aps outra transao.

3.6 Segurana

O passo inicial a ser dado ter certeza de que o banco est totalmente seguro, isto , todos os processos adotados para o banco de dados devem ser seguros. O primeiro item de segurana o login, por isso, as senhas devem ser longas e complexas, assegurando que no podero ser vistas por da segurana de senhas, o SQL tambm possui validao de permisses, contas de usurio e cargos do banco de dados.

UN

3.7 SQL Server com Suporte ao XML

A Microsoft, quando do lanamento do SQL Server, afirmou que o

gerenciador de banco de dados pode armazenar facilmente XML e recuperar dados no mesmo formato, capacitando a integrao aplicao-a-aplicao com maior flexibilidade na Web (SCHIAVANI, 2008). Com tal afirmao, visou a ampliao do aplicativo no mercado corporativo. Para executar query na importao e exportao de arquivos XML,

existem 2 tipos de templates: Templates de querys via XPATH;

IM

pessoas erradas, pois sero criptografadas e difcil reverter esse processo. Alm

IN

AS

35

Templates de query usando SQL. Neste trabalho ser utilizado o template de query usando SQL. Segundo Bento, Reali e Castro (2002), os templates so documentos XML bem-formados que contm uma ou mais declaraes do SQL ou de uma ou mais queries XPath..

3.7.1 Executando Templates

pois atravs do SQL os dados so recuperados da forma que se deseja. Na recuperao de dados no formato XML, utiliza-se a clusula FOR XML da declarao SELECT e especifica-se o formato do documento que ser retornado. A Figura 20 mostra a sintaxe FOR XML.

FOR XML mode [,XMLDATA] [, ELEMENTS] [,BINARY BASE64]

Figura 20 Sintaxe FOR XML (Bento, Reali, Castro, 2002) Ao utilizar a clusula FOR XML necessrio especificar quais parmetros para a consulta sero utilizados. O Quadro 05 mostra detalhadamente cada parmetro.
Parmetro

UN
Mode XMLDATA ELEMENTS BINARY BASE 64

Quadro 05 Parmetros FOR XML (Bento, Reali, Castro, 2002)

IM
Descrio

Especifica o formato do documento XML que est sendo retornado. Pode ser RAW, AUTO ou EXPLICIT. Especifica que um esquema XML dever ser retornado. O esquema includo no incio do documento XML que ser retornado. Especifica que as colunas so retornadas como subelementos ao invs de atributos ao elemento da linha. Isto usado somente no modo AUTO. Especifica que os dados sejam retornados no formato codificado base64 para recuperar dados binrios.

IN

AS

Para executar o template de query no ser necessrio utilizar Schema,

36

Para especificar a hierarquia dos dados, utilizam-se os modos RAW, AUTO e EXPLICIT. No modo AUTO, cada linha que retornada pela consulta representada por um elemento XML com o mesmo nome da tabela de origem, como mostra a Figura 21.
Select * from DADOS_ALUNA for XML AUTO Resultado: <DADOS_ALUNA matricula="1020" nome="Marselha" sobrenome="Samora"/> <DADOS_ALUNA matricula="1030" nome="Livia" sobrenome="Giuliani"/> <DADOS_ALUNA matricula="1040" nome="Lidiane" sobrenome="Melo"/>

Com o modo AUTO, ainda podemos utilizar ELEMENTS. Para cada registro retornado uma tag com o nome da tabela aberta e fechada. Dentro dessa tag cada campo da tabela retornado como uma tag e os valores dela so o contedo do campo para aquele registro. Nesse caso, cada coluna representada por um elemento filho, veja na Figura 22.

UN

IM
<DADOS_ALUNA> <matricula>1020</matricula> <nome>Marselha</nome> <sobrenome>Samora</sobrenome> </DADOS_ALUNA> <DADOS_ALUNA> <matricula>1030</matricula> <nome>Livia</nome> <sobrenome>Giuliani</sobrenome> </DADOS_ALUNA> <DADOS_ALUNA> <matricula>1040</matricula> <nome>Lidiane</nome> <sobrenome>Melo</sobrenome> </DADOS_ALUNA>

Figura 22 Modo AUTO e ELEMENTS

IN

AS

Figura 21 Modo AUTO

37

J o modo Raw transforma cada fileira no resultado ajustado em um elemento de XML com a fileira genrica do identificador. Cada valor da coluna que no NULO traado a um atributo do elemento de XML em que o nome do atributo o mesmo que o nome da coluna. A Figura 23 um exemplo.

TAG

<row matricula="1020" nome="Marselha" sobrenome="Samora"/> <row matricula="1030" nome="Livia" sobrenome="Giuliani"/> <row matricula="1040" nome="Lidiane" sobrenome="Melo"/>

Enfim, utilizando o modo EXPLICIT pode-se controlar por completo como

UN

o documento XML ser retornado, no entanto, devem-se fornecer mais informaes para especificar a estrutura do documento XML. Portanto, para que isso ocorra as consultas SELECT precisam ser escritas num formato conhecido como tabela universal, podendo ento ser gerado o XML desejado. O SQL Server fornece a funo utilizada no T-SQL para criar documentos XML. De acordo com Bento, Reali e Castro (2002), o OPENXML cria uma visualizao de conjuntos de linhas de um documento XML na memria. A sintaxe da funo OPENXML representada como na Figura 24.

IM

IN

ATRIBUTO

Figura 23 Modo RAW

AS

38

OPENXML(idoc int [in],rowpattern nvarchar[in],[flags byte[in]]) [WITH (SchemaDeclaration | TableName)]

Figura 24 Sintaxe OPENXML O Quadro 06 mostra os argumentos da funo OPENXML:


Idoc Rowpattem Flags SchemaDeclaration TableName O manuseio do documento da representao interna de um documento XML criado pelo sp_xml_preparedocumnet. O padro XPath usado para identificar os ns a serem processados como linhas. conjunto de linhas relacional. Configura o mapeamento que dever ser usado entre os dados XML e o A definio de esquema do formulrio.

O nome da tabela quando uma declarao de esquema no usada. Fornece um formato de conjunto de linhas usando tanto um esquema de declarao quanto a especificao uma tabela existente. Se a clusula opcional WITH no especificada, os resultados so retornados no formato de tabela destacada.

WITH clause

Quadro 06 Argumentos da funo OPENXML (Bento, Reali, Castro 2002) No argumento Flag define-se um valor, como mostra o Quadro 07.

UN
0 1 2 3

Para criar uma representao interna de um documento XML a ser analisado sintaticamente utilizada a store procedure sp_xml_preparedocument,

IM
Valor

IN
Descrio

Usa o mapeamento default (atributos). Retorna valores de atributos. Retorna valores de elementos. Retorna valores de atributos e elementos.

Quadro 07 Valores Flag

AS

39

que usa o analisador sinttico MSXML. Ele retorna um instrumento para acessar a representao do conjunto de linhas do documento, que armazenada no cach interno do SQL Server. Se ocorrer sucesso, retorna 0 e se ocorrer erro, retorna > 0. A sintaxe para a store procedure sp_xml_preparedocument mostrada no Quadro 08.
Hdoc Xmltext XPath Um inteiro que o instrumento para o documento recm-criado. O documento XML como um parmetro de texto (char, nchar, varchar, text, ntext). Se for NULL, uma representao interna de um documento XML vazio ser criada. O namespace que usado nas expresses XPath no OPENXML. O valor padro <root xmlns:mp=urn:schemas-microsoft-com:xml-metaprop>.

Quadro 08 Sintaxe sp_xml_preparedocument Assim que terminar de utilizar a store procedure

linhas da memria utilizando a store procedure sp_xml_removedocument.

UN

IM

IN

sp_xml_preparedocument, necessrio remover a representao do conjunto de

AS

40

4. Exportao e Importao de Dados Utilizando SQL Server 2000 com suporte a XML

4.1 Introduo

Para que um sistema A desenvolvido em ASP com banco de dados SQL Server possa enviar alguns dados para alimentar um sistema B desenvolvido em outra linguagem de programao e outro tipo de banco de dados, necessrio um padro para que ambas as aplicaes possam entender que tipo de dados est sendo passado. Este trabalho apresenta um material de apoio ao meio acadmico a fim de proporcionar um conhecimento bsico da linguagem XML utilizando a importao e exportao de dados entre sistemas legados. Ser apresentado um caso de como so feitas a exportao e importao dos dados utilizando SQL Server 2000, o que, como visto nos captulos anteriores, oferece suporte integrado a XML, sendo flexvel, de alto desempenho e fcil de ser usado tanto por desenvolvedores de Web quanto por programadores de banco de dados.

4.2 Exportao de Dados

Para exemplificar a exportao e importao de dados foi criada uma

UN

tabela chamada DADOS_ALUNA e os campos pertencentes a esta tabela so matrcula, nome e sobrenome, conforme a Figura 25.

IM

IN

Figura 25 Criando tabela

AS

41

A insero de dados na tabela existente se d com a execuo do comando Insert com os determinados valores de cada campo, como mostra a Figura 26.

Figura 26 Inserindo dados na tabela Foi utilizado o comando SELECT * para mostrar o contedo da tabela DADOS_ALUNA, revelando todos os campos pertencentes tabela e, para visualizar somente o campo nome, foi utilizado o comando select nome. Veja a Figura 27.

UN
Figura 27 Mostrando dados da tabela

IM

IN

AS

42

Para a exportao do arquivo no formato XML, ser utilizada a clusula FOR XML do SELECT ao final da instruo. A clusula FOR XML uma instruo contida no SQL Server que oferece suporte ao XML. Para selecionar os parmetros de FOR XML ser utilizado o modo AUTO e ELEMENTS para o tipo de pesquisa desejado. Utilizando o modo AUTO cada linha que retornada pela consulta representada como um elemento XML com o mesmo nome da tabela de origem e os campos da tabela so retornados como elementos filhos. Para salvar o arquivo em um diretrio especfico utilizaremos a Stored Procedure estendida xp_cmdshell que permite a execuo de comandos do sistema operacional de dentro da Database, como revela a Figura 28.

EXEC master..XP_CMDSHELL 'BCP "SELECT * FROM Northwind..dados_aluna as dados_aluna FOR XML AUTO, ELEMENTS " QUERYOUT C:\SAIDA.XML -S. -T -c'

UN

O arquivo que foi gerado na exportao, conforme mostra a Figura 28, foi

salvo no diretrio C:\ com o nome de SAIDA.XML, onde posteriormente ser utilizado para a importao dos dados. A estrutura do arquivo exportado mostrada na Figura 29.

IM

Figura 28 Exportando dados

IN

AS

43

Figura 29 Estrutura dos Dados Exportados 4.3 Importao de Dados

Para realizar a importao dos dados, utiliza-se o banco de dados j A fim de demonstrar posteriormente o resultado inserido, iremos executar truncate table de modo que limpe todos os dados da tabela dados_aluna, porque aps a concluso da importao dos dados ser executado um select para mostrar os dados inseridos.

UN
formatados.

A importao dos dados exige que o documento fique armazenado na

memria na forma de uma rvore. Essa rvore representa os dados de cada nodo que o SQL Server 2000 ter que interpretar para preparar a linha de leitura. Usa-se a stored procedure sp_xml_preparedocument para fazer o parse do documento XML e transform-lo em uma estrutura de rvore em memria. A rvore similar ao DOM, pois s podero ser processados os documentos que esto vlidos e bem Depois que o documento passa pela stored procedure

SP_XML_PREPAREDOCUMENT, o SQL interpreta os dados na forma de uma rvore, veja a Figura 30.

IM

existente, dados_aluna, que receber os dados importados do arquivo SAIDA.XML.

IN

AS

<dados_aluna> <matricula>1020</matricula> <nome>Lidiane</nome> <sobrenome>Melo</sobrenome> </dados_aluna> <dados_aluna> <matricula>1030</matricula> <nome>Anderson</nome> <sobrenome>Rodrigues</sobrenome> </dados_aluna> <dados_aluna> <matricula>1040</matricula> <nome>Patricia</nome> <sobrenome>Soares</sobrenome> </dados_aluna> <dados_aluna> <matricula>1050</matricula> <nome>Livia</nome> <sobrenome>Giuliane</sobrenome> </dados_aluna>

44
DADOS_A LUNA

MATRICU LA

NOME

SOBREN OME

1020

1030

1040

MARSELH A

LIVIA

LIDIANE

SAMORA

GIULIANI

MELO

Figura 30 rvore de dados de cada nodo O processo que o documento percorrer para que seja realizada a importao mostrado na Figura 31.

UN
interpreta a

O OPENXML vai ler os dados j devidamente formatados, pois ele no estrutura de nodos. Por esse motivo usamos o

SP_XML_PREPAREDOCUMENT para converter o documento em um padro que o SQL Server 2000 possa ler e interpretar.

IM
Figura 31 Processo da Importao (Jernimo, 2008)

IN

AS

45

Ao ser recebido, o documento processado usando cdigo TransactSQL. Normalmente, o cdigo Transact-SQL implementado em forma de uma stored procedure e a string XML passada como um parmetro. Como a estrutura de rvore do documento XML mantida em memria, deve-se usar a stored procedure sp_xml_removedocument para liberar a memria quando essa rvore no for mais necessria. Para fazer a importao, ser criada uma tabela temporria com o nome de tmpFileLines para armazenar os dados que sero inseridos. Ser utilizado o comando xp_cmdshell para buscar o arquivo no local C:\SAIDA.XML e, em seguida, para mostrar os dados, ser executado um select na tabela temporria, assim como na Figura 32.

UN

A fim de continuar a importao ser definida a varivel @strXMLText contendo os dados do arquivo SAIDA.XML, que ser importado. Quando inicializa a leitura na tabela temporria para armazenar os dados na varivel @strXMLText executado um CASE para verificar se a primeira vez que est passando na tabela para insero (se no, apenas concatenado os dados). Logo em seguida,

IM
Figura 32 Tabela temporria

IN

AS

46

utilizaremos o comando SET para atribuir o valor varivel @strXMLText e, por fim, ser apagada a tabela temporria, pois no ser mais utilizada, como traz a Figura 33.

Na string XML que foi atribuda para a varivel @strXMLText, obrigatoriamente deve-se ter uma tag ROOT (neste caso, a tag <ROOT>), pois o parser no identificar um documento vlido e informar um erro.

UN
criado.

Para finalizar a importao ser definida a varivel @hDoc, o id interno

que representa o XML na memria. Logo em seguida, ser feita a preparao do documento. Quando executamos sp_xml_preparedocument (uma System Stored Procedure), o XML checado e se houver algum tipo de erro o identificador no A clusula WITH (que faz parte da funo OPENXML()) serve para colocar um tipo de dado do SQL Server nos dados que esto sendo extrados do XML, como exemplificado na Figura 34.

IM

IN

Figura 33 Inserindo dados

AS

47

DECLARE @hDoc int EXEC sp_xml_preparedocument @hDoc OUTPUT, @strXMLText INSERT INTO dados_aluna SELECT * FROM OPENXML(@hDOC, '/ROOT/dados_aluna', 3) WITH ( matricula int, nome varchar(20), sobrenome varchar(20) ) EXEC sp_xml_removedocument @hdoc

Figura 34 Finalizando Importao

Para mostrar o resultado ser executado o comando select. Veja a Figura 35.

UN

A Figura 35 mostra os dados da insero atravs da importao do

arquivo SAIDA.XML.

IM
Figura 35 Resultado da Insero

IN

AS

48 5. CONCLUSO

A busca por tecnologias tem como um dos principais objetivos a manuteno das atividades nas empresas. A organizao das informaes um fator determinante para as tomadas de decises dentro de uma empresa e isso depende de uma estrutura padronizada para que os gerentes possam buscar e encontrar as informaes corretas. Este trabalho apresentou um mtodo para a troca de informaes entre diferentes aplicaes utilizando a linguagem XML. Constatou-se, com este estudo, que a troca de dados foi eficaz em todos os procedimentos realizados, pois todos os dados inseridos foram propagados sem perda de contedo, em um processo rpido e de fcil implementao. No decorrer deste trabalho foi desenvolvido um estudo de caso para apresentar exportao e importao, construindo uma tabela no banco de dados SQL Server. Sugere-se para trabalhos futuros que se possam utilizar vrias tabelas para a exportao e importao de dados utilizando XML. A escolha do banco de dados SQL Server se deve ao fato deste possuir suporte a XML, ser um produto da Microsoft que tem ampla documentao e por ser utilizado por muitas empresas e tambm pelo meio acadmico. O SQL Server a utilizao da XML so simples e as dvidas so sanadas rapidamente utilizando o Books Online, uma documentao interna oferecida pelo SQL Server. A utilizao da linguagem XML para troca de dados mostrou-se eficaz devido existncia de uma estrutura padronizada, por ser independente de plataforma e de fcil entendimento, o que foi apresentado neste trabalho durante todo o processo de importao e exportao dos dados. Sua facilidade na implementao se deve ao fato da XML permitir estruturas flexveis no desenvolvimento, possibilitando a definio do documento. Portanto, este trabalho apresentou um estudo de caso que ser compreendido com facilidade por estudantes e por outras pessoas que gostariam de conhecer um pouco sobre os conceitos bsicos da XML e como so feitas a exportao e importao utilizando esta linguagem. Diante dos benefcios conseguidos, a exportao e importao de dados utilizando a linguagem XML

UN

IM

mostrou-se bastante eficaz na sua implementao, uma vez que suas funes para

IN

AS

49

podem ser consideradas uma forma vivel e de grande utilidade para pessoas interessadas neste assunto.

UN

IM

IN

AS

50

Bibliografia Bsica HEITLINGER, em: 19 out. 2007. ABITEBOUL, Serge; BUNEMAN, Peter; SUCIU, Dan. Gerenciando dados na Web. Trad. de Mnica Crdia. Rio de Janeiro: Campus, 2000. MARCONCINI BITTAR, Rita C. S.; LIMA, Paulo Correa, A UTILIZAO DO EDI INTEGRAO ENTRE OS PARCEIROS DE NEGCIOS. Disponvel em: http://www.abepro.org.br/biblioteca/ENEGEP1997_T7306.PDF. Acesso em: 10 set. 2007. AFONSO, nov. 2007. Lindiomar. Replicao Paulo. O guia prtico da XML. Disponvel em:

http://centroatl.pt/titulos/tecnologias/imagens/oguiapraticoda-xml-excerto.pdf. Acesso

IN
ao XML

AS
de Dados. parte 01/03.

(ELETRONIC

DATA

INTERCHANGE)

COMO

UMA

FERRAMENTA

DE

Disponvel

em:

http://www.si.uniminas.br/TFC/monografias/Afonso-Monografia.pdf. Acesso em: 20

RAMALHO, Jos Antnio. XML teoria e prtica. So Paulo: Berkeley Brasil, 2002. AGNALDO. Introduo Disponvel em:

(http://www.50minutos.com.br/?cat=31). Acesso em: 10 dez. 2007.

UN
25 Jan. 2008.

REVISTA LINUX. O Linux Livre. Disponvel em: http://augustocampos.net/revista-

do-linux/022/entrevista.html. Acesso em: 10 jan. 2008.

CRESPI, Rodrigo. Importao de arquivos XML com SQL Server 2000. Disponvel em: http://www.juliobattisti.com.br/artigos/windows/importxmlsql2k.asp. Acesso em:

DATE, C. J. Bancos de Dados. Trad. Newton Dias de Vasconcelos. Revisor tcnico Nelson Luiz Correa Rebelo. Rio de Janeiro: Campus, 1998.

IM

51

DATE, C. J. Introduo a Sistemas de Bancos de Dados, Trad. 4 ed. Origina de Contexto. Rio de Janeiro: Campus, 1991. BENTO, Andra Barbosa; REALI, Claudia; CARNEIRO DE CASTRO, Lineu. Projetando e administrando Banco de Dados SQL Server 2000 como servidor enterprise .Net. Rio de Janeiro: Alta Books, 2002. HOLZNER, Steven. Desvendando XML. Trad. Daniel Vieira. Rio de Janeiro: Campus, 2001. SCHIAVANI, Jos Luiz, Microsoft lana SQL Server 2000 no Brasil. Disponvel em: https://www.microsoft.com/brasil/pr/sql2k_br.htm. Acesso em: 10 jan. 2008. JARDEL VOGT, Jernimo. Fev. 2008. Usando OPENXML Parte 1. Disponvel em:

http://www.devmedia.com.br/articles/viewcomp.asp?comp=4208&hl= Acesso em: 01

UN

IM

IN

AS

Vous aimerez peut-être aussi