XMLs E INTEGRAÇÃO COM BANCOS DE DADOS

Documentos relacionados
5a. Aula - XML

Programação para Internet I 4. XML. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt

XML para transferência de dados Estrutura hierárquica do XML DTDs e XML Schema Consultas de documentos XML: XPath e XQuery Transformação de

Programação para Internet I Aulas 10 e 11

Introdução de XML. Dados da Web. Gerência de Dados da Web. A Web representa, nos dias de hoje, um repositório universal de dados, onde:

XML - Extensible Markup Language

Extensible Markup Language (XML) Júnio César de Lima Cedric Luiz de Carvalho. Instituto de Informática Universidade Federal de Goiás

Série Rações Semanais Xpath e XSLT Rogério Araújo

XML e XSL. Ciência da Computação DESENVOLVIMENTO DE APLICAÇÕES PARA WEB. Claudinei Dias prof.claudinei.dias@gmail.com

XML XML. XML extensible Markup Language HTML. Motivação. W3C: World Wide Web Consortium XML 1.0. Mário Meireles Teixeira DEINF-UFMA

extensible Markup Language (XML) XML é uma linguagem de anotação. XML utiliza tags para descrever informação.

XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA

Conceitos de HTML 5 Aula 1

Modelo para a representação de informações, utilizado por aplicações Web que trabalham com a tecnologia AJAX.

Transformação de documentos XML

Arquivo de retorno Boleto Bancário Formato XML

XSL - extemsible Stylesheet Language. Prof. Antonio Almeida de Barros Jr.

Simbiose entre Tecnologias: XML e Java

Banco de Dados I. Prof. Edson Thizon

Banco de Dados na Web

TECNOLOGIA WEB INTRODUÇÃO CONSTRUÇÃO DE PÁGINAS ESTÁTICAS HTML / XHTML

SimpleXML: Integrando PHP e XML de maneira simples. Anderson Casimiro

XML Básico. Murillo Vasconcelos Henriques B. Castro. 17 de maio de 2011

Tecnologias Internet

Rui Carneiro, Rui Pereira, Tiago Orfão

Linguagem XML (extensible Markup Language)

Escola de Ciência da Informação ECI/UFMG. Eduardo Ribeiro Felipe

MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES DE BANCO DE DADOS RELACIONAIS

EA975 - Laboratório de Engenharia de Software

Manual para utilização da funcionalidade de importar arquivo XML para prestação de contas

Sistemas da Informação. Banco de Dados I. Edson Thizon

INFORMÁTICA. Instruções: Para responder às questões de números 71 e 72, considere o texto a seguir:

XML Schema. Um XML schema descreve a estrutura de um documento XML.

GESTÃO DA CADEIA DE SUPRIMENTOS FORMAS DE TROCA DE INFORMAÇÃO: EDI E XML

INE BDNC. Bancos de Dados XML

CONTEÚDO PROGRAMÁTICO

Definição da Sintaxe Abstrata de Potigol em XML

BCD29008 Banco de dados

<NOME>ABIAS FRANCISCO DE SOUZA</NOME> <CNPJCPF> </CNPJCPF> <NMATRICULA>101264</NMATRICULA>

XML (extensible Markup Language)

BCD29008 Banco de dados

GERÊNCIA DE DADOS SEMI ESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

Universidade Federal da Paraíba CCEN Departamento de Informática Disciplina: Banco de Dados. Aula 1 Introdução a Banco de Dados

José Carlos Ramalho Alda Reis Lopes Pedro Rangel Henriques

Oracle Database 10g: Fundamentos de SQL e PL/SQL

Guia de Bolso HTML e XHTML

Fundamentos de Banco de Dados Aula I. Prof. Kelyn Schenatto

Tecnologia da Informação

DOSSIER DA DISCIPLINA

XHTML 1.0 DTDs e Validação

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

Gerenciamento de Dados XML

Bem-vindo ao XML. Apostila de XML

A Web, o Design, o Software Livre e outras histórias... Eduardo Santos -

Introdução e motivação SGBD XML Nativo Consultas em SGBDs XML Prática. Bancos de dados XML. Conceitos e linguagens de consulta

A Linguagem XML (& Markup Languages)

BANCO DE DADOS I Atualizado em 13 de maio de 2009

AULA SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS

Programação para Internet I

Aplicativo para geração automática de páginas de gerenciamento on-line de banco de dados para sites

XML para transferência de dados Estrutura hierárquica do XML DTDs e XML Schema Consultas de documentos XML: XPath e XQuery Transformação de

Dados Semi-Estruturados e XML

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Internet. Gabriela Trevisan Bacharel em Sistemas de Infomação

[DCA: Declaração de Contas Anuais] [Versão 1 / ]

Curso online de. Formação em Front-End. Plano de Estudo

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

FEUP Faculdade de Engenharia da Universidade do Porto XSL. Porto, Maio de Gabriel David FEUP, Maio 2002 XML/XSL

Modelo Lógico: Tabelas, Chaves Primárias e Estrangeiras

Banco de Dados. Prof. Gleison Batista de Sousa Aula 01

Desenvolvimento de Aplicações Distribuídas

Introdução à Tecnologia Web HTML HyperText Markup Language XHTML extensible HyperText Markup Language Estrutura Básica do Documento HTML

Documentos XML 1/20. Exemplo de documento XML:

Transcrição:

Faculdade de Tecnologia de Guaratinguetá. 07, novembro de 2011. XMLs E INTEGRAÇÃO COM BANCOS DE DADOS Abel Vieira, Cleber Lopes, Pedro Lemes saitovieira@gmail.com, cleber.campomori@gmail.com, pedro.lemes@gmail.com Banco de Dados I Prof. Bruno Donizetti Resumo Este artigo tem como objetivo ilustrar os conceitos principais sobre documentos XML (Extensible Markup Language), as variadas maneiras de manipulação de arquivos XML e a possiblidade de integração destes arquivos com os Sistemas Gerenciadores de Banco de Dados (SGBDs), criando sistemas de bancos de dados híbridos. Palavras-chave: XML, SGBD, banco de dados. Introdução A variedade de sistemas existentes no mercado é imensa, sendo escritos em linguagens de programação diversas, utilizando bancos de dados diferentes e, por muitas vezes, os softwares são escritos com base em paradigmas diferentes (paradigma estruturado, orientado a objetos, orientado a eventos, entre outros). Mas pode surgir a necessidade de se integrar dados oriundos de sistemas diferentes. Como integrar sistemas distintos? Documentos XML são utilizados principalmente com esse propósito: a integração entre sistemas distintos, por serem um formato perfeitamente compreendido entre as diversas linguagens de programação devido à sua padronização na forma de representação dos dados. A possibilidade de se transmitir este tipo de documento através da camada HTTP (Internet) ou mesmo a facilidade de integração de documentos XML com SGBDs torna sua extensão maior ainda, podendo integrar sistemas completamente distantes do ponto de vista geográfico ou mesmo tecnológico. 1 XML: Uma visão geral 1.1 O que são linguagens de marcação? As linguagens de marcação ou SGML (Standard Generalized Markup Language) surgiram na década de 60 com a pesquisa da IBM com o objetivo de possibilitar o intercâmbio de documentos e manipulação destes em softwares que possuíssem independência do sistema operacional, criando documentos que não fossem restritos a somente um ambiente e aplicação ou sistema de processamento (parser). SGML é uma meta-linguagem: ela não possui uma semântica definida, porém as várias linguagens de marcação se utilizam dos conceitos fixados por ela. No final da década de 80 a SGML tornou-se um padrão utilizado no mundo inteiro, sendo adotada para intercâmbio e armazenamento de documentos das mais diversas finalidades por várias empresas de grande porte do mundo. Dentro do domínio da SGML encontramos as linguagens XHTML, MathML e várias outras, sendo estas baseadas na linguagem XML (extensible Markup Language). Todas estas têm em comum a capacidade de serem representadas através de elementos denominados tags que são reprensetadas de forma hierárquica e padronizada. 1.2 XML e seu desenvolvimento Quando se deu o grande boom da internet os desenvolvedores começaram a sentir os efeitos das limitações da linguagem HTML. As formas ambíguas de utilização dos elementos HTML também promoveu sua utilização errada e inconsistente. Sendo assim, o World Wide

2 Web Consortium, ou W3C, começou a desenvolver uma forma de representação que fosse extensível como a SGML e estruturalmente rígida, como o HTML. Tem início assim o extensible Markup Language ou Liguagem de Marcação Extensível, o XML. Os objetivos principais do XML são a separação de conteúdo na formatação sem se importar com aparência, legibilidade tanto para sistemas computadorizados quanto para seres humanos, extensibilidade na criação de elementos (tags) e criação de estruturas de validação (Definição de Tipo de Documento, DTD). 1.3 Estrutura de um documento XML Um documento XML pode possuir as seguintes estruturas: elementos (nomes dados para as estruturas representadas no documento XML, entre os caracteres < e >), atributos (características dos elementos representados, indicadas juntamente com a indicação dos elementos na abertura das tags), comentários (indicações nos documentos XML que não são processadas), instruções de processamento ou PIs (indicações que definem a maneira como o processador XML deve interpretar o documento XML), entidades (são utilizadas para representação de caracteres especiais como & e <> utilizados com freqüência nos textos do documento, além de delimitar conteúdo proveniente de arquivos externos; devem ser definidas na DTD) e instruções CDATA (que delimitam qualquer conteúdo que deve ser ignorado pelo analisador sintático que interpreta o arquivo XML). <?xml version="1.0"?> <!-- This represents an Address Book --> <addressbook id = 1> <person> <name> <family>wallace</family> <given>bob</given> </name> <e-mail>bwallace@megacorp.com</e-mail> </person> </addressbook> Figura 1: Fragmento de documento XML Fonte: XML Tutorials for Programmers, IBM No XML acima, <addressbook>, <person>, <name>, <family>, <given> e <email> são os elementos deste trecho XML. Repare que o fragmento XML possui um elemento-pai, <addressbook>, sendo este o elemento root. Todo documento XML devidamente formatado deve possuir um elemento root. O conjunto de dados XML que possuem elementos superiores e inferiores e que se situa entre tags é chamado nó. <!-- This represents an Address Book --> é um comentário neste trecho de documento XML. <addressbook id = 1> é um elemento com uma característica associada a ele, neste caso, a característica id, sendo este um atributo com valor igual a 1. <?xml version="1.0"?> representa uma instrução de processamento do arquivo XML que indica a versão. Nela ainda poderia ser incluída a língua na qual o arquivo XML está escrito, através da indicação encoding, por exemplo. Para representar caracteres próprios da XML no conteúdo dos nós, devemos utilizar as entidades. Segundo o tutorial da IBM, existem cinco entidades pré-fixadas no padrão XML. Caracter Entidade representativa < < & & > > &apos; " Tabela 1: Correspondência entre caracteres ilegais e suas entidades.

3 Fonte: XML Tutorials for Programmers, IBM. Quando um trecho de código possui muitos caracteres ilegais para o XML devemos utilizar as definições CDATA, o que faz com que o analisador XML (parser) ignore estes caracteres naquele trecho. Toda instrução CDATA começa com a definição <![CDATA[ e termina com ]]>. 2 Definições de dados na XML 2.1 Definições de tipo de documento DTD, ou Document Type Definition (Definição de Tipo de Documento), é um conjunto de declarações de marcação que definem uma lista de elementos e atributos permitidos dentro do documento XML. Um exemplo de uma DTD, retirado do site W3Schools.com, segue abaixo. <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> Figura 3: Bloco DTD de um documento XML Fonte: W3Schools.com Este trecho DTD define um documento XML que pode ser os atributos <note>, <to>, <from>, <heading> e <body>. O bloco DTD ainda mostra que o elemento <note> é hierarquicamente superior aos demais elementos, sendo estes filhos de <note>. 2.2 Boa formação Um documento XML declarado em boa formação é aquele que segue a sintaxe correta de construção, apesar de não necessitar de um DTD, o documento tem que respeitar as regras de sintaxe, tais como, as entidades, atributos, marcadores e herança. 2.3 Validade Enquanto um documento XML que segue a sintaxe correta é considerado um XML com boa formação, o chamado de válido, é aquele que além de ter boa formação, contém referências ao DTD, com suas entidades e atributos declarados e regras gramaticais especificadas. Essa validação é feita conforme as especificações da W3 Organization, porém, não existe um controle como são definidos as entidades e atributos. 2.4 Atributos do tipo ID e IDREF Os atributos de tipo ID e IDREF seguem um preceito similar com outras instâncias, sendo ID um valor atrelado a um atributo que é um identificador válido, definido como referência única para demais elementos. 2.5 XML Schema XML Schema é o sucessor do DTD, publicado como uma recomendação da W3C em Maio de 2001, é uma das várias linguagens de esquema xml, atualmente o mais utilizado, e com seus documentos referidos como tipo.xsd. Como os outros esquemas, o XSD pode ser utilizado para expressar a formação de suas regras aos quais os documentos XML precisam seguir para serem considerados válidos, porém, também em sua criação, o XSD tem como intenção de determinar que a validade do documento produzisse uma coleção de informações

4 aderindo à um específico tipo de dados. Tal quais informações puderam ser úteis para o desenvolvimento de softwares de processamento de documentos XML, porém, não o esquema não está longe de criticismos. 3 Manipulando dados em arquivos XML Vamos tratar de duas tecnologias vastamente utilizadas para manipulação de arquivos XML: o xpath e o xquery. 3.1 xpath xpath é uma tecnologia da família XML e provê a funcionalidade de selecionar e filtrar dados provenientes de um ou mais arquivos XML. xpath também é o elemento principal da XLST (XLS Transformation), uma linguagem utilizada para transformação dos documentos XML para outros formatos sem alterar o conteúdo original destes. xpath utiliza-se dos conceitos de Regular Expressions para localização de nós, seja unitaariamente ou um conjunto de nós, em um documento XML, que é tratado com uma árvore de nós. Os principais operadores xpath são / e //, além de curingas, como o *. Através de uma notação parecida com indicação de caminhos o xpath é capaz de realizar consultas dentro de estruturas XML. Com um pacote de expressões e funções pré-definidas, ainda é capaz de processar expressões numéricas, igualdade, relacionais e booleanas. xpath não é escrito em XML, possuindo uma linguagem própria. xpath é um padrão W3C. Expressão Ação nome_do_nó Seleciona todos os nós abaixo de nome_do_nó / Seleciona o nó root // Seleciona os nós filhos pertencentes ao nó atualmente selecionado. Seleciona o nó atual.. Seleciona o nó hieranquicamente superior ao nó atual @atributo Seleciona atributos com nome atributo * Seleciona qualquer elemento nó @* Seleciona qualquer atributo Tabela 2: Algumas das principais expressões do xpath Fonte: Adaptado de W3Schools.com 3.2 xquery xquery é uma poderosa tecnologia de consulta a documentos XML que possui alguns recursos similares a linguagens de programação. A possbilidade de manipulação de dados em documentos XML isolados a partir do xquery o faz competir com o padrão XSLT. xquery aceita inclusive expressões xpath, já que sua base vem do xpath 2.0. xquery consegue acessar arquivos XML através de uma indicação de localização expressa como uma URL através de funções específicas. Através de expressões xpath, xquery acessa os elementos do documento XML. É capaz de tratar dos mesmos tipos de expressões que xpath. xquery também utiliza informações provenientes do XML Schema. Possui ainda um pacote de funções pré-definidas e sintaxe muito similar a várias linguagens de programação graças às expressores FLOWR (for, let, where e return). Vejamos o seguinte exemplo extraído de QUINTELA (2008, p.14).

5 Figura 5: Exemplo de emprego do xquery Fonte: QUINTELA (2008, p. 14-15) A expressão xquery no segundo bloco abre este arquivo com a instrução xquery doc() e faz uma consulta xpath nesse arquivo aberto. Logo, o processador xquery devolve o resultado gravado em um outro arquivo XML, denominado result.xml, com os resultados retornados com a expressão xpath. Podemos obter o mesmo resultado através de expressões FLOWR, confomr exemplo abaixo retirado de QUINTELA (2008, p. 14). Figura 6: Consulta a um arquivo XML utlizando expressões FLOWR xquery Fonte: QUINTELA (2008, p. 14-15) 4 XML e banco de dados Bancos de dados, segundo Date (2000) são: "sistema de manutenção de registros por computador (...) cujo objetivo global é manter as informações e torná-las disponíveis quando solicitadas. Sistemas gerenciadores de bancos de dados constituídos por um conjunto de dados associado a um conjunto de programas que dão acesso a esses dados e têm por objetivo garantir a segurança das informações armazenadas contra eventuais problemas com o sistema, além de impedir tentativas de acesso não autorizadas. Se os dados são

6 compartilhados por diversos usuários, o sistema deve evitar a ocorrência de resultados anômalos (SILBERSCHATZ, A.; KORTH, H.; SUDARSHAN, S., 1999). Para o grau de desempenho requerido, os Sistemas Gerenciadores de Bancos de Dados implementam algumas características que todas as transações terão que possuir conhecidas como propriedades ACID (acrônimo formado pelas letras iniciais de quatro Características: atomicidade, consistência, isolamento, e durabilidade). Assim, um sistema de banco de dados deve garantir segurança, integridade e eficiência. Os sistemas nativos em XML permitem implementação sobre modelos relacionais, hierárquicos, orientados a objetos ou até mesmo na utilização de formatos proprietários de armazenamento. Basicamente a diferenciação de um banco de dados nativo em XML dos demais é que a menor unidade de armazenamento não é uma linha na tabela (tupla) como nos bancos de dados relacionais. Nos sistemas nativos em XML a menor unidade lógica é o próprio documento XML, devendo este, ser mantido intacto, e ao ser recuperado deve estar idêntico a quando foi armazenado. Com a crescente necessidade de trocas de informações, o padrão XML permitiu o surgimento de um padrão "aberto" para o intercâmbio de dados. Outra característica importante da XML é a sua portabilidade podendo ser usada sem adaptações entre diferentes plataformas de hardware e software. Considerando o uso da XML como forma para o armazenamento em bancos de dados, devem ser consideradas todas as tecnologias que o envolvem como XSL, XSD, linguagens para consulta como XPath, Xquery e XQL, e analisadores DOM e SAX, dentre outras. A partir da adoção mais ampla da XML e o surgimento de novas necessidades que precisavam ser atendidas, novos padrões baseados em XML foram criados: XPath, SAX, (Simple API for XML), DOM (Document Object Model), XQuery, dentre outros. Cada um deles ocupa-se de uma necessidade que não foi atendida diretamente pela XML. Assim cada nova necessidade pode ter uma solução mais específica desenvolvida, sem fazer com que o padrão em si torne-se muito complexo, contrário, portanto, ao conceito primordial da XML. Portanto, a separação clara entre estrutura e conteúdo é um dos pontos principais da XML destacando-se também quando se pensa em XML como formato de armazenamento de dados. Considerações Finais XML, ou extensbile Markup Language, é uma poderosa ferramenta que consegue combinar flexibilidade na implementação e rigidez em sua estrutura. Documentos XML podem ser interpretados pela grande maioria das linguagens de programação e até mesmo ser integrados à bancos de dados. Isso o torna ideal para o transporte de dados entre diferentes sistemas, sendo muito utilizado para integração entre diferentes bases de dados. É importante lembrar que XML é um padrão reconhecido pelo W3C. Existem várias tecnologias que auxiliam no tratamento de dados escritos em arquivos XML, como o xpath e o xquery, tecnologias validadas pelo W3C e que ainda estão evoluindo. Referências Bibliográficas Laboratório Multimídia de Materiais Didáticos Aplicados à Música. Tutorial de XML. Disponível em: < http://www.clem.ufba.br/tuts/xml/default.htm>. Acesso em: 06 nov. 2011. W3Schools.com. Introduction to DTD. Disponível em: <http://www.w3schools.com/dtd/dtd_intro.asp>. Acesso em: 06 nov. 2011.

7 DEITEL, H. M. C#: como programar. São Paulo: Makrom Books, 2003. IBM. XML Tutorials for Programmers. IBM XML Technology Group. Disponível em: < http://www.ic.unicamp.br/~celio/inf533/docs/ibm_xml_tutorial.pdf>. Acesso em: 06 nov. 2011. W3Schools.com. xpath Introduction. Disponível em: < http://www.w3schools.com/xpath/xpath_intro.asp>. Acesso em: 07 nov. 2011. QIUNTELA, T., RIBEIRO, T. M. R. F., FERNANDES, P. N. M. Processador xquery + SPARQL. Braga, Portugal: Conselho de Cursos de Engenharia, Universidade do Minho, 2008. Bibliografia Consultada Wikipedia. XML. Disponível em: <http://pt.wikipedia.org/wiki/xml>. Acesso em: 06 nov. 2011. Wikipedia. SGML. Disponível em: < http://pt.wikipedia.org/wiki/sgml>. Acesso em: 06 nov. 2011. Instituto de Computação da Unicamp. Introdução a Linguagens de Marcação: HTML, XHTML, SGML, XML. Prof. Célio Guimarães. Disponível em: < http://www.ic.unicamp.br/~celio/inf533/docs/markup.html>. Acesso em: 06 nov. 2011. IBM. XML Tutorials for Programmers. IBM XML Technology Group. Disponível em: < http://www.ic.unicamp.br/~celio/inf533/docs/ibm_xml_tutorial.pdf>. Acesso em: 06 nov. 2011. Techmundo. O que é XML? Disponível em: < http://www.tecmundo.com.br/1762-o-que-exml-.htm>. Acesso em: 06 nov. 2011. VAZQUEZ, F. xpath sem traumas. MSDN Magazine, versão online. Disponível em: < http://www.microsoft.com/brasil/msdn/tecnologias/visualc/xpath.mspx>. Acesso em: 06 e 07 nov. 2011. Mozilla Developer Network. xpath. Disponível em: <https://developer.mozilla.org/pt/xpath>. Acesso em: 06 e 07 nov. 2011. Universidade Federal de Santa Catarina (UFSC). xpath e xquery. Material de aula da professora Carina F. Dorneles. Disponível em: < http://www.inf.ufsc.br/~ronaldo/ine5454/13- XPathXQuery.pdf>. Acesso em: 06 e 07 nov. 2011. Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio). Consultas em XML - xquery. Material de aula da professora Marco A. Casanova. Disponível em: < http://www.inf.puc-rio.br/~casanova/inf2328-topicos-webbd/modulo0-xml/modulo2bxml-consultas-xquery.pdf>. Acesso em: 06 e 07 nov. 2011.