Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE FEDERAL DE GOIA´S – UFG CAMPUS CATALA˜O – CaC DEPARTAMENTO DE CIEˆNCIA DA COMPUTAC¸A˜O – DCC Bacharelado em Cieˆncia da Computac¸a˜o Projeto Final de Curso Armazenamento de Dados XML: Te´cnicas de Benchmark para avaliac¸a˜o Autor: Na´dia Fe´lix Felipe da Silva Orientador: Ms. Ma´rcio de Souza Dias Catala˜o - 2007 Na´dia Fe´lix Felipe da Silva Armazenamento de Dados XML: Te´cnicas de Benchmark para avaliac¸a˜o Monografia apresentada ao Curso de Bacharelado em Cieˆncia da Computac¸a˜o da Universidade Federal de Goia´s Campus Catala˜o como requisito parcial para obtenc¸a˜o do t´ıtulo de Bacharel em Cieˆncia da Computac¸a˜o A´rea de Concentrac¸a˜o: Banco de Dados Orientador: Ms. Ma´rcio de Souza Dias Catala˜o - 2007 S. Fe´lix Felipe da, Na´dia Armazenamento de Dados XML: Te´cnicas de Benchmark para avaliac¸a˜o/Ms. Ma´rcio de Souza Dias- Catala˜o - 2007 Nu´mero de paginas: 134 Projeto Final de Curso (Bacharelado) Universidade Federal de Goia´s, Campus Catala˜o, Curso de Bacharelado em Cieˆncia da Computac¸a˜o, 2007. Palavras-Chave: 1. Dados semi-estruturados. 2. XML. 3. Benchmarks Na´dia Fe´lix Felipe da Silva Armazenamento de Dados XML: Te´cnicas de Benchmark para avaliac¸a˜o Monografia apresentada e aprovada em de Pela Banca Examinadora constitu´ıda pelos professores. Ms. Ma´rcio de Souza Dias – Presidente da Banca Ms. Ma´rcio Antoˆnio Duarte Wisner Antoˆnio Marques A` minha famı´lia, em e special meus pais, que souberam entender minha auseˆncia. Aos meus amigos e meu orientador Ma´rcio de Souza Dias. AGRADECIMENTOS Primeiramente agradec¸o infinitamente a Deus, pelo dom e grac¸a da vida, tenho con- victa certeza que sem Ele seria imposs´ıvel concluir este trabalho. Agradec¸o incessante- mente aos meus pais, Dioclemar e Iva, irma˜os e aos meus sobrinhos Ana Ju´lia e Joa˜o Antoˆnio, pela certeza de que frutos seriam colhidos, bastaria para isso dedicac¸a˜o. Agradec¸o tambe´m ao meu orientador Ma´rcio de Souza Dias, por abdicar muitas vezes de horas de descanso e por ter me dado todo suporte necessa´rio a conclusa˜o deste. E´ inevita´vel citar ainda os amigos Joa˜o Luiz, Liliane, Clayton, Wellington, Francilene, Luiz Carlos e Leonardo, fontes de apoio e insentivo na busca cont´ınua pelas respostas necessa´rias a este trabalho. Agradec¸o ainda a` professora Cristiane de Fa´tima dos Santos, pelo apoio e decisa˜o pelo tema deste projeto. Aos amigos e colegas de trabalho da Unimed Catala˜o pelo apoio, em especial ao meu grande amigo Adercley. Se torna dif´ıcil citar todos os nomes, uma vez que, pela grac¸a de Deus, foram va´rias as pessoas que estiveram ao meu lado, me consolando nos momentos dif´ıceis e me incen- tivando quando necessa´rio. Obrigado a todos pelo apoio. Esta vito´ria na˜o e´ minha, e´ nossa. ”Nada te perturbe, nada te espante... Tudo passa. A pacieˆncia tudo alcanc¸a! A quem tem Deus nada falta.” Santa Tereza D’a´vila. ”A vida e´ para no´s o que concebemos dela. Para o ru´stico cujo campo lhe e´ tudo, esse campo e´ um impe´rio. Para o Ce´sar cujo impe´rio lhe ainda e´ pouco, esse impe´rio e´ um campo. O pobre possui um impe´rio; o grande possui um campo. Na verdade, na˜o possu´ımos mais que as nossas pro´prias sensac¸o˜es; nelas, pois, que na˜o no que elas veˆem, temos que fundamentar a realidade da nossa vida.” Fernando Pessoa RESUMO Silva, N. Armazenamento de Dados XML: Te´cnicas de Benchmark para avaliac¸a˜o. Curso de Cieˆncia da Computac¸a˜o, Campus Catala˜o, UFG, Catala˜o, Brasil, 2007, 134p. A Internet vem gradativamente ganhando destaque ao ser usada como ve´ıculo de intercaˆmbio de informac¸o˜es. Teˆm sido objeto de estudo de grandes cieˆntistas, os quais buscam melhorar esse intercaˆmbio, tornando o mais leve e eficieˆnte. Os dados produzidos neste contexto sa˜o conhecidos por apresentar caracter´ısticas semi-estruturadas, ou seja, uma informalidade na sua organizac¸a˜o. Um tipo de dado semi-estruturado e de grande aceitac¸a˜o neste cena´rio e´ o XML (eXtensible Markup Language), um formato que caminha para ser considerado um padra˜o nesse meio, sendo fortemente utilizado por aplicac¸o˜es diversas, como intercaˆmbio e integrac¸a˜o de dados. Com o aparecimento da XML surge a necessidade de prover meios para manipulac¸a˜o e armazenamento desse tipo de informac¸a˜o, uma vez que sa˜o dados com caracter´ısticas particulares e diferenciadas, na˜o podendo simplesmente ser aplicados te´cnicas de gerenciamento com Bancos de Dados tradicionais sem algum pre´-processamento. Deste modo, este trabalho busca estabelecer o Estado da Arte do armazenamento de dados XML, os tipos de bancos de dados existentes, suas particularidades, vantagens e desvantagens, e tambe´m apresentar ao leitor as ferramentas existentes no mercado para a realizac¸a˜o de uma ana´lise comparativa automatizada entre Bancos de Dados XML, utilizando te´cnicas de avaliac¸a˜o e de softwares de benchmarks (softwares voltados a testar o desempenho de um sistema por meio de comparac¸o˜es e me´tricas estabelecidas). Palavras-Chaves: Dados semi-estruturados, XML, Benchmarks i Suma´rio 1 Introduc¸a˜o 1 2 Armazenamento de Informac¸o˜es - Definic¸o˜es 4 2.1 Carater´ısticas Fundamentais acerca dos Bancos de Dados . . . . . . . . . . 5 2.1.1 Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.2 Informac¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.3 Banco de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1.4 Arquitetura do Sistema de Banco de Dados . . . . . . . . . . . . . 10 2.1.5 Linguagens de Banco de Dados . . . . . . . . . . . . . . . . . . . . 13 3 Histo´rico e Desenvolvimento dos Bancos de Dados 17 3.1 Do surgimento da Escrita a` automac¸a˜o do processo de armazenamento . . 17 3.1.1 Processamento manual de dados (papel e la´pis) . . . . . . . . . . . 17 3.1.2 Surgimento dos Computadores, carto˜es perfurados e ma´quinas eletro- mecaˆnicas para ordenar e tabular registros . . . . . . . . . . . . . . 18 3.1.3 Fitas magne´tivas, Sistemas de Arquivos . . . . . . . . . . . . . . . . 20 3.1.4 Os primeiros SGBD’s da De´cada de 70 - Modelos Hiera´rquicos, Mo- delo em Redes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.1.5 Meados da De´cada de 80 - Modelo Relacional . . . . . . . . . . . . 24 3.1.6 Final da De´cada de 80 ate´ atual . . . . . . . . . . . . . . . . . . . . 25 3.2 A internet no contexto de armazenamento de informac¸o˜es . . . . . . . . . . 27 3.2.1 Uma mudanc¸a de paradigma . . . . . . . . . . . . . . . . . . . . . . 28 3.2.2 Linguagens de Marcac¸a˜o no Contexto de Armazenamento . . . . . . 31 3.3 Bancos de Dados para documentos XML . . . . . . . . . . . . . . . . . . . 34 4 Dados - Sua Representac¸a˜o, sua estruturac¸a˜o e a utilizac¸a˜o de XML 36 4.1 Classificac¸a˜o de Dados apartir de sua representac¸a˜o Estrutural . . . . . . . 37 4.1.1 Dados Estruturados . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.1.2 Dados Na˜o Estruturados . . . . . . . . . . . . . . . . . . . . . . . . 38 4.1.3 Dados Semi - Estruturados . . . . . . . . . . . . . . . . . . . . . . . 38 ii 4.2 A estrutura de um documento XML . . . . . . . . . . . . . . . . . . . . . . 41 4.3 DTD(Document Type Definition) . . . . . . . . . . . . . . . . . . . . . . . 43 4.4 XML Schema Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.4.1 Representac¸a˜o - A´rvores XML . . . . . . . . . . . . . . . . . . . . . 48 4.5 Documentos Centrados em Dados e Documentos Centrados em Documentos 49 4.6 Banco de Dados para documentos XML . . . . . . . . . . . . . . . . . . . 50 4.6.1 Banco de Dados Relacional habilitado para receber dados XML . . 51 4.6.2XML Native Databases ou (Sistemas de Banco de Dados Nativos em XML) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 4.6.3 Caracter´ısticas de SGBDs XML Nativos . . . . . . . . . . . . . . . 60 4.6.4 Principais Vantagens em trabalhar com bancos de dados relacionais 67 4.6.5 Principais Desvantagens em trabalhar com bancos de dados rela- cionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 4.6.6 Principais Vantagens em trabalhar com Banco de Dados XML . . . 69 4.6.7 Principais Desvantagens em trabalhar com Banco de Dados XML . 69 5 Benchmark em Bancos de Dados XML 71 5.1 Benchmark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 5.1.1 XOO7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 5.1.2 XMach-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 5.1.3 XBench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 5.1.4 XMark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 5.1.5 MBench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 5.1.6 XCheck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.1.7 Um comparativo entre os Benchmarks apresentados . . . . . . . . . 87 5.2 Bancos de Dados escolhidos para o Estudo de Caso . . . . . . . . . . . . . 89 5.2.1 BD nativo escolhido: eXist . . . . . . . . . . . . . . . . . . . . . . . 92 5.2.2 BD com suporte a XML escolhido: Oracle 9i . . . . . . . . . . . . . 93 5.2.3 XCheck - o benchmark escolhido . . . . . . . . . . . . . . . . . . . . 93 5.2.4 Concluso˜es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 5.2.5 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 6 Conclusa˜o 100 Refereˆncias 103 Apeˆndices 108 iii A XCheck 109 A.1 Descric¸a˜o do processo de instalac¸a˜o . . . . . . . . . . . . . . . . . . . . . . 109 A.1.1 Fase de ana´lise dos dados . . . . . . . . . . . . . . . . . . . . . . . 119 A.2 Como adaptar o XCheck para receber outros BD’s . . . . . . . . . . . . . . 119 B eXist 121 B.1 Descric¸a˜o do processo de Instalac¸a˜o . . . . . . . . . . . . . . . . . . . . . . 121 B.2 Alguns conceitos sobre eXist . . . . . . . . . . . . . . . . . . . . . . . . . . 121 C Oracle XML 126 C.1 Descric¸a˜o do Processo de Instalac¸a˜o . . . . . . . . . . . . . . . . . . . . . . 127 C.2 Alguns conceitos sobre Oracle . . . . . . . . . . . . . . . . . . . . . . . . . 131 iv LISTA DE ABREVIATURAS E SIGLAS XML - eXtensible Markup Languagem BD - Banco de Dados DBA - Administrador de Banco de Dados SGBD - Sistema Gerenciador de Banco de Dados DBMS - Database Management System DDL - Data Definition Language DML - Data Manipulation Language SQL - Structured Query Language ISAM - Indexed Sequential Access Method VSAM - Virtual Storage Access Method IMS - Information Menagement Systems OO - Orientado ao Objeto DARPA - Defense Advanced Research Projects Agency TCP - Transmission Control Protocol IP - Internet Protocol GML - Generalized Markup Language SGML - Standard Generalized Markup Language HTML - HyperText Markup Language W3C - World Wide Web Consortium DTD - Document Type Definition XSD - XML Schema language CLOB - Character Large Objects XQL - XML Query Language XPATH - XML Path Language SUT - System Under Test GNU - General Public Licence CPU - Central Processing Unit GPL - General Public Licence LGPL - Lesser General Public Licence v Lista de Figuras 2.1 O Dado processado gera Informac¸a˜o . . . . . . . . . . . . 6 2.2 Acesso ao banco de Dados . . . . . . . . . . . . . . . . . . 7 2.3 Sistema Gerenciador de Banco de Dados . . . . . . . . . . 9 2.4 Os treˆs n´ıveis da arquitetura . . . . . . . . . . . . . . . . . 11 2.5 Arquitetura Detalhada do Sistema . . . . . . . . . . . . . . 13 3.1 Carto˜es Perfurados . . . . . . . . . . . . . . . . . . . . . . 19 3.2 Ma´quina de Carto˜es Perfurados . . . . . . . . . . . . . . . 19 3.3 Modelo de Banco de Dados Hiera´rquico . . . . . . . . . . . 22 3.4 Modelo de Banco de Dados em Rede . . . . . . . . . . . . 23 3.5 Modelo de Banco de Dados Relacional . . . . . . . . . . . 25 3.6 Arquitetura tradicional de banco de dados Cliente/Servidor 29 3.7 Arquitetura de Aplicac¸a˜o com Base na WEB . . . . . . . . 30 3.8 Evoluc¸a˜o dos Bancos de Dados ate´ a necessidade de Bancos de Dados especiais para documentos XML[Santiago, 2004] 35 4.1 Tipos de Dados e exemplos . . . . . . . . . . . . . . . . . 39 4.2 Exemplo de um documento XML . . . . . . . . . . . . . . 41 4.3 Exemplo de uma DTD . . . . . . . . . . . . . . . . . . . . 43 4.4 Exemplo de um XML Schema . . . . . . . . . . . . . . . . 46 4.5 Documento XML . . . . . . . . . . . . . . . . . . . . . . . 46 4.6 DTD para Documento XML . . . . . . . . . . . . . . . . . 47 4.7 XML Schema para Documento XML . . . . . . . . . . . . 47 4.8 Exemplo de um documento Centrado em Dados . . . . . . 49 4.9 Exemplo de um documento Centrado em Documentos . . . 50 vi 4.10 Representac¸a˜o do documento XML com o uso de grafos . . 53 4.11 Abordagem em Grafo . . . . . . . . . . . . . . . . . . . . . 54 4.12 Tabela de ro´tulo . . . . . . . . . . . . . . . . . . . . . . . . 54 4.13 Granularidade Grande . . . . . . . . . . . . . . . . . . . . 56 4.14 Granularidade pequena . . . . . . . . . . . . . . . . . . . . 56 4.15 Granularidade Me´dia . . . . . . . . . . . . . . . . . . . . . 57 4.16 Nı´veis de Granularidade . . . . . . . . . . . . . . . . . . . 58 4.17 Trecho de um documento XML . . . . . . . . . . . . . . . 63 4.18 Consulta Xpath . . . . . . . . . . . . . . . . . . . . . . . . 63 4.19 A consulta XPath representada no Grafo . . . . . . . . . . 64 5.1 Estrutura de um Benchmark . . . . . . . . . . . . . . . . . 73 5.2 Estrutura hiera´rquica do documento de teste gerado pelo gerador de dados XML - [Rahm, 2000]. . . . . . . . . . . . 78 5.3 DTD de controle de documentos para XMarch-01, . . . . 79 5.4 Componentes da Arquitetura Benchmark XMach . . . . . 80 5.5 Tempo me´dio gasto pela CPU para execuc¸a˜o das Consultas 98 A.1 Instalac¸a˜o do XCheck . . . . . . . . . . . . . . . . . . . . . 112 A.2 Estrutura arquivo engines.xml . . . . . . . . . . . . . . . . 113 A.3 Arquivo experiment . . . . . . . . . . . . . . . . . . . . . . 114 A.4 Status que o programa da´ apo´s o comando $./XCheck.pl - run example . . . . . . . . . . . . . . . . . . . . . . . . . . 114 A.5 Alterando o arquivo experiment . . . . . . . . . . . . . . . 116 A.6 Interac¸o˜es realizadas pelo Xcheck para chegar ao resultado 117 A.7 Arquivo experiment adaptado ao Oracle . . . . . . . . . . 120 B.1 Instalac¸a˜o BD Exist . . . . . . . . . . . . . . . . . . . . . 121 B.2 Organizac¸a˜o Hiera´rquica das colec¸o˜es . . . . . . . . . . . . 123 B.3 Tela de criac¸a˜o de colec¸o˜es no Banco de Dados XML eXist. 123 B.4 Armazenamento dos documentos aluno.xml e curso.xml no Banco de Dados eXist . . . . . . . . . . . . . . . . . . . . 124 vii B.5 Documento curso.xml apo´s armazenado no banco de dados 125 C.1 Arquitetura do Oracle XML DB . . . . . . . . . . . . . . . 127 C.2 Instalador Oracle . . . . . . . . . . . . . . . . . . . . . . . 128 C.3 Produto a escolher para a instalac¸a˜o . . . . . . . . . . . . 128 C.4 opc¸o˜es para a instalac¸a˜o . . . . . . . . . . . . . . . . . . . 129 C.5 Criac¸a˜o do BD . . . . . . . . . . . . . . . . . . . . . . . . 129 C.6 Instalac¸a˜o do Componente XML . . . . . . . . . . . . . . . 130 C.7 Resumo da instalac¸a˜o . . . . . . . . . . . . . . . . . . . . . 130 C.8 Tela de status de configurac¸a˜o . . . . . . . . . . . . . . . . 131 C.9 Criac¸a˜o da Tabela Aluno no Oracle . . . . . . . . . . .. . 132 C.10 Criac¸a˜o da Tabela Curso no Oracle . . . . . . . . . . . . . 132 C.11 Inserir dados na tabela aluno . . . . . . . . . . . . . . . . 132 viii Lista de Tabelas 3.1 Principais Diferenc¸as entre XML e HTML . . . . . . . . . 33 4.1 Algumas diferenc¸as entre dados Semi-Estruturados e Estru- turados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.2 abordagem grafo . . . . . . . . . . . . . . . . . . . . . . . 55 4.3 Comparac¸a˜o entre Banco de Dados Relacional e Banco Da- dos XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 5.1 Paraˆmetros de gerac¸a˜o de documentos . . . . . . . . . . . 80 5.2 Banco de dados suportados pelo XCheck de forma padra˜o . 87 5.3 Resumo de Benchmarks para Bancos de Dados XML . . . 88 5.4 Alguns Bancos de dados XML nativos existentes . . . . . . 91 5.5 Bancos de dados com suporte a XML . . . . . . . . . . . . 92 ix Lista de Algoritmos x Cap´ıtulo 1 Introduc¸a˜o A necessidade de organizar e gerenciar a informac¸a˜o faz com que na˜o baste que um dado seja simplesmente armazenado, e´ indispensa´vel que posteriormente a isso tal dado possa ser consultado com semaˆntica correta e em tempo ha´bil. Faz parte do campo de ac¸a˜o dos Sistemas Gerenciadores de Bancos de Dados administrar a infomac¸a˜o de maneira a assegurar a integridade do que esta´ guardado. Neste contexto, justifica-se a constante pra´tica dos estudiosos e pesquisadores da a´rea de Banco de Dados em buscar formas de aprimorar esses sistemas com intuito de garantir que as informac¸o˜es estara˜o de fato seguras e ao alcance dos seus devidos usua´rios. O sucesso nos resultados obtidos por parte de estudiosos da a´rea ja´ e´ vivenciado e veˆm sendo aprimorado mediante as necessidades que va˜o surgindo no coditiano, conforme ja´ dito anteriormente. E uma das mu- danc¸as de paradigmas mais impactantes nesse contexto de armazenamento de informac¸o˜es surge a partir do aumento do fluxo de informac¸a˜o que trafega pela Internet. Esse fluxo crescente justifica-se pela diversidade de aplicac¸o˜es que tra- balham dados conforme a pol´ıtica da sua empresa, ou seja, na Internet passam a trafegar dados que possuem uma natureza heterogeˆnea, uma estrutura na˜o esta´vel e na˜o ta˜o r´ıgida e suscet´ıvel a mudanc¸as (Dados Semi-Estruturados tratados em Cap´ıtulos seguintes) [Moraes, 2001]. Da- dos advindos da Internet na˜o podem ser armazenados em Banco de Da- 1 dos tradicionais, onde a informac¸a˜o e a forma de organizac¸a˜o ja´ sa˜o pre´- determinadas, com uma representac¸a˜o r´ıgida e esta´vel, sem que haja antes algum tipo de processamento. Neste trabalho, onde o foco e´ a Tecnologia de armazenamento de in- formac¸a˜o e dados cuja estrutura na˜o e´ pre´-determinada, sera´ mostrado conceitos e modelos de Banco de Dados preparados e espec´ıficos para re- ceber tais tipos. A abordagem feita sera´ delineada para dois segmentos, sendo o primeiro o armazenamento de dados semi-estruturados, levando em considerac¸a˜o especificamente a Linguagem XML (eXtensible Markup Language), por ser um formato que e´ bastante usado para intercaˆmbio de informac¸o˜es e portanto necessita ser armazenado. E a segunda abordagem sera´ voltada para especificac¸a˜o de ferramentas automatizadas que possibilitem escolher entre as va´rias opc¸o˜es de Bancos de Dados ja´ existentes no mercado para trabalhar Dados XML. Tal estudo sera´ realizado no intuito de retratar duas frentes de pesquisa destinadas a obter uma soluc¸a˜o para o problema de armazenamento de dados semi-estruturados, como exposto a seguir, [Moraes, 2001]: • Sera´ mostrado o ponto de vista dos cientistas que acreditam na Adaptac¸a˜o dos Bancos de Dados ja´ existentes e predominantes no mercado para receber dados XML, que sa˜o denominados Banco de Dados habilitados ou com suporte a` dados XML. • E ainda sera´ exposto a proposta dos estudiosos que apostam na consol- idac¸a˜o de Bancos de dados espec´ıficos para Documentos XML, chama- dos Banco de Dados Nativos XML. Como objetivo desse Trabalho, embasado nos dois modelos de Banco de Dados citados sera´ feita uma ana´lise comparativa acerca desses dois tipos de Sistemas Gerenciadores de Banco de Dados existentes para XML. Para isso abordaremos a te´cnica de Benchmark, ou seja, a aplicac¸a˜o de softwares para a avaliac¸a˜o de Banco de Dados XML. 2 Utilizando de pesquisas em livros e sites da Internet relacionados ao tema, o trabalho e´ dividido nos seguintes Cap´ıtulos: O primeiro e presente Cap´ıtulo destina-se a uma Introduc¸a˜o ao tema, situando o leitor desta em qual contexto vislumbra estar este trabalho. O Segundo Cap´ıtulo contempla definic¸o˜es importantes ao entendimento desde trabalho. Ou seja, neste cap´ıtulo e´ mostrado aspectos relevantes e conceitos sobre bancos de dados em geral. No Terceiro Cap´ıtulo sera´ apresentado um breve Histo´rico acerca da Tecnologia de Armazenamento de Dados, desde a necessidade de se guardar a informac¸a˜o ate´ a necessidade de melhorar as te´cnicas e o padra˜o de intercaˆmbio e tra´fego de informac¸a˜o na Internet. No Quarto Cap´ıtulo sera˜o abordados aspectos quanto a representac¸a˜o de um dado, a classificac¸a˜o, as formas de armazenamento, as te´cnicas de guarda, entre outras caracter´ısticas. Como o foco e´ o dado XML, estare- mos ainda apresentando pontos relevantes quanto a estrutura de um Dado XML, te´cnicas de busca, tipos de banco de dados existentes, primeiros modelos e formas de representac¸a˜o, etc. No Quinto Cap´ıtulo apo´s uma abordagem teo´rica do padra˜o XML e da apresentac¸a˜o de Bancos de Dados XML, sera´ abordado formas do admi- nistrador do Banco de Dados (DBA) estar optanto entre qual te´cnica e´ a melhor diante da situac¸a˜o em que ele se encontra. Para conseguir tal feito, neste cap´ıtulo sa˜o apresentados te´cnicas de Benchmark, sendo que, para exemplificar seu uso sa˜o escolhidos dois Ban- cos de Dados, um do tipo Espec´ıfico a Documentos XML e o outro com Suporte para documentos XML (eXist e Oracle respectivamente). Estes testes sa˜o feitos com um Benchmark eleito, o XCheck. E por fim sera˜o feitas concluso˜es acerca das experieˆncias vivenciadas com este trabalho. 3 Cap´ıtulo 2 Armazenamento de Informac¸o˜es - Definic¸o˜es Cresce com o passar dos anos o nu´mero e a variabilidade das informac¸o˜es que esta˜o dispon´ıveis aos usua´rios por meio eletroˆnico. E em va˜o seriam estas informac¸o˜es caso na˜o fosse poss´ıvel seu armazenamento para seu pos- terior acesso. Desta forma, os Bancos de Dados (BD’s) definidos como Sistemas Computadorizados que proporcionam meios para armazenamento e proces- samento de tais dados [Date, 2004], tornaram-se um componente essencial no cotidiano da sociedade moderna. A partir do momento que a comu- nidade acadeˆmica e empresarial admite a importaˆncia de aumentar as po- tencialidades de Sistemas para o gereˆnciamento das Informac¸o˜es, passa a existir um enorme esforc¸o para simplificar o uso desses bancos de dados de forma a acomodar e integrar fontes de informac¸o˜es de naturezas di- versas, com o intuito de garantir aos usua´rios seguranc¸a, confiabilidade e maximizac¸a˜o de ganhos de tempo e consequeˆntemente lucros. Dentro deste contexto, faz-se necessa´rio um entendimento a cerca dos termos e das caracter´ısticas dos Bancos de Dados de maneira geral. Sendo este cap´ıtulo, destinado a apresentar termos te´cnicos com os quais o leitor deve estar familiarizado. 4 2.1 Carater´ısticas Fundamentais acerca dos Bancos de Dados E´ comum surgirem atividades que envolvam alguma interac¸a˜o com um banco de dados no dia a dia de qualquer ser humano, como por exemplo, ao realizar uma reserva em um hotel, ao fazeralguma transac¸a˜o banca´ria, ao pegar emprestado um livro em uma biblioteca, dentre va´rias outras situac¸o˜es cotidianas. Tais situac¸o˜es sa˜o exemplos de aplicac¸o˜es de bancos de dados, onde tradicionalmente a maior parte dos dados que sa˜o armazena- dos e acessados esta˜o em formato textual ou nume´rico. Pore´m, em outros contextos e´ poss´ıvel ter dados com formatos diferentes, como imagens e sons, com caracter´ısticas pro´prias de cada contexto. Essas situac¸o˜es dispertam a comunidade acadeˆmica para estudos cada vez mais aprofundados de tecnologias que viabilizem o uso dos BD’s nas suas formas de manipulac¸a˜o. 2.1.1 Dados Dados sa˜o valores que representam conceitos, instruc¸o˜es, fatos sobre eventos ou alguma aplicac¸a˜o, de modo formalizado [Navathe e Elmasri, 2000]. Sa˜o a parte mais preciosa de um sistema, pois sa˜o a representac¸a˜o conven- cional de fatos, conceitos ou instruc¸o˜es de forma apropriada para comu- nicac¸a˜o e processamento por meios automa´ticos. Sa˜o registros organizados de transac¸o˜es e que representam um conjunto de s´ımbolos sem qualquer significado em si mesmos, desta forma, e´ necessa´rio que possa ser feito al- gum processamento ou interpretac¸a˜o (mecaˆnica ou humana) para que um dado possua um significado . O valor do dado por si so´ na˜o constitui um conhecimento u´til, na˜o fornece interpretac¸a˜o sobre os eventos, nem qualquer base para ac¸a˜o. E´ necessa´rio que os dados sejam armazenados para que possam ser enta˜o processados ou interpretados, principalmente se tal interpretac¸a˜o depen- 5 der de recursos temporais (dados guardados de maneira cronolo´gica, ou histo´rica) ou da avaliac¸a˜o de mais de uma pessoa [Navathe e Elmasri, 2000]. 2.1.2 Informac¸a˜o Ja´ foi falado anteriormente que um dado na˜o possui valor semaˆntico por si so´, entretando um dado trabalhado gera informac¸a˜o [Date, 2004]. Ou seja, a partir de um dado registrado 1, e´ poss´ıvel interpretar e proces- sar tal dado por pessoas ou por meios automatizados, e esse resultado (a informac¸a˜o obtida) e´ o que dara´ sentido a uma aplicac¸a˜o. Faz-se ainda importante dizer que e´ a informac¸a˜o que permite a tomada de deciso˜es, sendo que o significado dos dados ou a informac¸a˜o obtida apartir de dados armazenados, como ilustra a Figura 2.1 [Navathe e Elmasri, 2000], e´ o que fara´ com que o profissional ou a aplicac¸a˜o obtenha eˆxito nos resul- tados. Desta forma, a qualidade dos resultados obtidos apartir do uso das in- formac¸o˜es geradas depende tambe´m do meio de armazenamento, sendo que este meio deve possibilitar que [Date, 2004]: • Os dados armazenados estejam organizados; • Estejam dispon´ıveis no tempo certo e de forma correta; • E que possam estar acess´ıveis a`s pessoas certas, com seguranc¸a. Figura 2.1: O Dado processado gera Informac¸a˜o 1O termo registro e´ bastante usado em Banco de Dados para referenciar um dado armazenado, ou seja, um dado passa a ser um registro quando armazenado em algum sistema [Date, 2004] 6 Tais caracter´ısticas citadas anteriormente sa˜o implementadas em Sis- temas denominados Banco de Dados, tratados com maior atenc¸a˜o na sec¸a˜o a seguir. 2.1.3 Banco de Dados Um Banco de Dados e´ uma colec¸a˜o de dados relacionados, de tal forma que se possa recupera´-los quando necessa´rio. Estes dados represen- tam informac¸o˜es do mundo real e podem ser manipulados por usua´rios espec´ıficos, [Takai et al., 2005] Geralmente quando se fala em um Banco de dados, se estabelece uma aplicac¸a˜o a qual estara´ acessando a Informac¸a˜o presente no banco de dados, uma camada de acesso e o Banco de dados em si, conforme Figura 2.2 a seguir: Figura 2.2: Acesso ao banco de Dados De acordo com [Navathe e Elmasri, 2000], os Bancos de Dados possuem algumas propriedades, dentre elas destacam-se: • Um banco de dados representa algum aspecto do mundo real, ou seja, uma parte da rotina de uma empresa, ou de alguma organizac¸a˜o, cu- 7 jos dados precisam ser armazenados ( conforme citado na Figura 2.2, tendo em vista que e´ uma aplicac¸a˜o de cunho real). Imagina-se isso fisicamente e organiza de forma cronolo´gica ou na˜o o seu armazena- mento. Ha´ autores, como em [Martins, 2003], que chamam essa parte do mundo real de minimundo (miniword) ou Universo de Discurso (UoD, Universe of Discurse). • Os dados para se relacionar devem seguir uma lo´gica, dados aleato´rios, sem uma lo´gica na interac¸a˜o na˜o podem ser referenciados como um Banco de Dados. Essa lo´gica e´ garantida exatamente pela carac- ter´ıstica anterior, visto que, se o Banco de dados e´ baseado em algum aspecto do mundo real, ele segue uma lo´gica e possui semaˆntica, ou seja, na˜o sa˜o meros dados, sa˜o dados em um contexto, o que o carac- teriza, apo´s alguns processamentos, uma informac¸a˜o armazenada. • Todo Banco de Dados teˆm um objetivo espec´ıfico, portanto, deve ficar claro quais sa˜o seus usua´rios, quais as restric¸o˜es de acesso, quais as aplicac¸o˜es estabelecidas. Sendo assim, um Banco de Dados tem sempre uma fonte de alimentac¸a˜o, uma relativa interac¸a˜o com o mundo real, o minimundo e um grupo de usua´rios [Navathe e Elmasri, 2000]. Observando a Figura 2.2 e´ poss´ıvel verficar que a fonte de alimentac¸a˜o e´ uma aplicac¸a˜o, e´ ela quem comunica diretamente com o mundo real. A camada de acesso faz a conecc¸a˜o entra a camada de aplicac¸a˜o e o BD e pode se fazer necessa´ria ou na˜o. O BD ainda possibilita que os dados estejam atualizados a todo instante, ou seja, operac¸o˜es de inserc¸a˜o, remoc¸a˜o e consultas sa˜o facilitadas e sa˜o coordenadas por um software gestor, o SGBD. O Sistema de Gerenciamento de Bancos de Dados (SGBD) ou DBMS (Database Management System), como mostra a Figura 2.3 e´ quem coordena o Banco de Dados, e por consequeˆncia a organizac¸a˜o. O SGBD e´ composto por softwares e aplicativos que dinamizam as operac¸o˜es de 8 inserc¸a˜o, consulta e atualizac¸a˜o de forma que usua´rios na˜o autorizados na˜o tenham acesso a componentes cr´ıticos do sistema [Date, 2004]. Ou seja, o principal objetivo de um SGBD e´ proporcionar um ambiente tanto conve- niente quanto eficieˆnte para recuperac¸a˜o e armazenamento das informac¸o˜es no Banco de Dados. Na Figura 2.3 e´ poss´ıvel observar que o SGBD e´ composto por um Banco de Dados, ou seja, um armaze´m de informac¸o˜es, sendo este por sua vez composto pelos dados. Figura 2.3: Sistema Gerenciador de Banco de Dados [Navathe e Elmasri, 2000] O SGBD proveˆ um controle das informac¸o˜es e operac¸o˜es pertinentes no Banco de Dados. Logo, ao comparar o enfoque de Banco de Dados com o do armazenamento tradicional feito com arquivos e´ poss´ıvel visualizar diferenc¸as que manifestam na comunidade acadeˆmica o desejo de conti- nuar inovando com SGBD’s. Para que fique mais claro, a seguir algumas diferenc¸as sa˜o apresentadas [Date, 2004]. • No processamento de arquivos cada usua´rio define e implementa os arquivos necessa´rios para a aplicac¸a˜o espec´ıfica. Embora em muitos casos, usem de dados em comum, usua´rios diversos mante´m arquivos 9 separados, atualizando-os somente para uso pro´prio. Isso faz com que haja trabalho redundante e desperd´ıcio de memo´ria. Em se tratando dos Bancos de Dados, um u´nico reposito´rio e´ mantido, sendo que apo´s definido passa a ser acessado por diversos usua´rios. • O Sistema de Banco de Dados possui uma relativa descric¸a˜o dos dados, as restric¸o˜es de acesso e a estrutura do Banco de Dados. Essa definic¸a˜o e´ armazenada no cata´logo2 do sistema, que conte´m informac¸o˜es como a estrutura de cada arquivo, o tipo de formato de armazenamento de cada ite´m de dados e va´rias restric¸o˜es relativas aos dados. As in- formac¸o˜esarmazenadas no cata´logo sa˜o chamadas de metadados e descrevem a estrutura fundamental do Banco de Dados. Isso faz com que a inconcisteˆncia e as divergeˆncias geradas no caso dos arquivos se- jam corrigidas nos Bancos de Dados, uma vez que e´ estabelecido um padra˜o e uma certa organizac¸a˜o com relac¸a˜o ao acesso e armazena- mento da informac¸a˜o. • Outra importante propriedade dos Sistemas de Banco de Dados e´ o Compartilhamento de Dados e Processamento de Transac¸o˜es de Multiusa´rio, onde como o pro´prio nome coloca, os SGBDs possibili- tam a va´rios usua´rios terem acesso a um mesmo reposito´rio de dados ao mesmo tempo, com ferramentas que permitam que a informac¸a˜o armazenada esteja correta, na˜o se corrompa e na˜o seja redundante, o que na˜o acontece com o Sistema de Processamento de Arquivos. 2.1.4 Arquitetura do Sistema de Banco de Dados Uma das caracter´ısticas que trazem destaque aos Bancos de Dados e´ o fato de fornecerem n´ıveis de abstrac¸a˜o, ou seja, tal te´cnica possibilita que detalhes na˜o interessantes a todos usua´rios sejam revelados. De acordo com a arquitetura proposta por ANSI/SPARC - Study Group on Data 2Um espac¸o na memo´ria para armazenamento espec´ıfico de dados da estrutura do Banco de Dados [Date, 2004] 10 Base Management Systems [Stanley, ] e´ poss´ıvel visualizar treˆs n´ıveis dessa arquitetura, observe a Figura 2.4: Figura 2.4: Os treˆs n´ıveis da arquitetura [Date, 2004] 1. Nı´vel interno: Tambe´m conhecido como n´ıvel de armazenamento, e´ o mais pro´ximo do meio de armazenamento f´ısico. E´ aquele que se preocupa com o modo como os dados sa˜o fisicamente armazenados dentro do sistema. 2. Nı´vel externo: Tambe´m conhecido como n´ıvel lo´gico do usua´rio, e´ o n´ıvel mais pro´ximo dos usua´rios, e´ aquele que se preocupa com o modo como os dados sa˜o vistos por usua´rios individuais. Nesse n´ıvel usa-se muito o termo viso˜es, que se refere a` permissa˜o de acesso que cada usua´rio possui. 3. Nı´vel conceitual: Tambe´m conhecido como n´ıvel lo´gico de comu- nidade, ou ainda somente como n´ıvel lo´gico, e´ um n´ıvel ”indireto”entre os outros dois. O n´ıvel externo se preocupa com as percepc¸o˜es dos usua´rios individuais, enquanto o n´ıvel conceitual esta´ preocupado com uma percepc¸a˜o do grupo de usua´rios (os usua´rios que acessam o Banco de Dados como um todo). Mas se faz importante lembrar que a maior parte dos usua´rios na˜o esta´ interessada no Banco de Dados inteiro, mas somente em alguma parte 11 restrita dele, desta forma havera´ muitas viso˜es externas distintas, cada qual consistindo em uma representac¸a˜o mais ou menos abstrata de alguma parte do banco de dados completo, e havera´ exatamente uma visa˜o con- ceitual, consistindo em uma representac¸a˜o igualmente abstrata do Banco de Dados em sua totalidade. Do mesmo modo, havera´ uma ”visa˜o in- terna”representando o modo como o Banco de Dados esta´ armazenado internamente. Os n´ıveis interno e conceitual sa˜o n´ıveis implementados por meio dos Modelos de Banco de Dados [Takai et al., 2005]. Nos modelos de Bancos de Dados existentes faz-se necessa´rio definir a sua estrutura (tipos de dados, relacionamentos e restric¸o˜es que devem exis- tir entre os mesmos). Tais modelos podem ser classificados como modelos de mais alto n´ıvel ou conceituais (que esta˜o pro´ximos do modo como muitos usua´rios percebem os dados) a ate´ o mais baixo n´ıvel (modelos que definem a forma como os dados sa˜o armazenados com detalhes)[Date, 2004]. Dentro dos va´rios modelos existentes 3 e´ importante definir a diferenc¸a entre a estrutura (descric¸a˜o) do banco de dados e os dados em si (o que sera´ armazenado). A descric¸a˜o do banco de dados e´ chamada de Esquema de banco de dados [Navathe e Elmasri, 2000]. E este e´ definido durante o projeto do Banco de dados, podendo ser alterado poucas vezes em BDs tradicionais. Pore´m os dados em si podem mudar com relativa frequ¨eˆncia, sofrendo alterac¸o˜es de acordo com cada usua´rio 4. A seguir na Figura 2.5 e´ apresentado a arquitetura detalhada de um Sistema de Banco de dados. Observe a importaˆncia do Administrador do Banco de Dados (DBA) e do Sistema de Gereˆnciamento de Banco de Dados (SGBD), pois e´ o SGBD sobre as coordenadas do DBA que determina os acessos: 3Estaremos falando desses modelos de Banco de Dados de forma cronolo´gica no Cap´ıtulo 2 4Mais adiante, sera´ poss´ıvel ver que esta e´ uma das necessidades de aprimoramento reveladas com o surgimento da internet, devido a grande diversidade dos tipos de dados da WEB. 12 Figura 2.5: Arquitetura Detalhada do Sistema [Date, 2004] 2.1.5 Linguagens de Banco de Dados Um sistema de banco de dados proporciona dois tipos de linguagens: uma espec´ıfica para os esquemas do banco de dados e outra para expressar consultas e atualizac¸o˜es [Navathe e Elmasri, 2000]. Linguagem de Definic¸a˜o de Dados Um esquema de dados e´ especificado por um conjunto de definic¸o˜es expressas por uma linguagem especial chamada linguagem de definic¸a˜o de dados (Data Definition Language) ou DDL. O resultado da compilac¸a˜o dos paraˆmetros DDL’s e´ armazenado em um conjunto de tabelas que cons- tituem um arquivo especial chamado direto´rio de dados ou diciona´rio de 13 dados [Santiago, 2004]. Um diciona´rio de dados e´ um arquivo de metadados, ou seja, um arquivo que possui informac¸o˜es a respeito dos dados a serem armazenados. Em um sistema de banco de dados, esse arquivo ou direto´rio e´ consultado antes que o dado real seja modificado e isso e´ feito em tempo de execuc¸a˜o. A estrutura de memo´ria e o me´todo de acesso usados pelo Banco de Dados sa˜o especificados por um conjunto de definic¸o˜es em um tipo espe- cial de DDL chamado Linguagem de Definic¸a˜o e Armazenamento de Dados (Data Storage and Definition Language). O resultado da compilac¸a˜o dessas definic¸o˜es e´ um conjunto de instruc¸o˜es para especificar os detalhes de im- plementac¸a˜o dos esquemas do banco de dados (os detalhes normalmente sa˜o ocultados dos usua´rios) [Navathe e Elmasri, 2000]. Linguagem de Manipulac¸a˜o dos Dados Sa˜o va´rias formas de manipulac¸a˜o de dados tais como: • A recuperac¸a˜o das informac¸o˜es armazenadas no Banco de dados, ou seja e´ realizada uma consulta , que por sua vez e´ uma solicitac¸a˜o para recuperac¸a˜o de informac¸o˜es; • Inserc¸a˜o de novas informac¸o˜es no Banco de dados; • A remoc¸a˜o de informac¸o˜es do Banco de dados; • A modificac¸a˜o das informac¸o˜es do Banco de dados; Sendo assim, e´ necessa´rio ter uma linguagem para facilitar tais formas de manipulac¸a˜o, o que e´ garantido com o uso da Linguagem de Manipulac¸a˜o de Dados ou a (DML). Sa˜o classificadas segundo dois tipos [Navathe e Elmasri, 2000]: • DML procedurais - Exigem que o usua´rio especifique quais dados sa˜o necessa´rios e como obteˆ-los. • DML na˜o procedurais - Exigem que o usua´rio especifique quais dados sa˜o necessa´rios, sem especificar como obteˆ-los. 14 As DML’s na˜o procedurais sa˜o normalmente mais fa´ceis de aprender e de usar. Entretanto, como o usua´rio na˜o especifica como obter os dados, essas linguagens podem gerar co´digo menos eficieˆnte que os gerados por linguagens procedurais. Sendo enta˜o, uma consulta uma solicitac¸a˜o para recuperac¸a˜o de in- formac¸o˜es, a parte de uma DML responsa´vel pela recuperac¸a˜o de informac¸o˜es e´ chamada de linguagem de consultas (query language), [Navathe e Elmasri, 2000]. SQL Uma DML procedural bastante conhecida e´ a SQL, ou Structured Query Language ou Linguagem de Consulta Estruturada. Foi originalmente de- senvolvida pela IBM, quando ainda era chamada Sequel 2 [Silberschatz, 1999]. Normalmente, os diversos SGBDs relacionais implementamverso˜es da SQL que possuem algumas pequenas diferenc¸as entre si. Dentre os mecanismos para consulta aos dados, as principais funciona- lidades oferecidas pela SQL sa˜o [Silberschatz, 1999]: • Ordenac¸a˜o dos resultados por um determinado campo da tabela; • Junc¸o˜es entre tabelas, ou seja, permite consultas a fontes diferentes; • Func¸o˜es de agregac¸a˜o, que permitem que sobre os valores de uma de- terminada coluna da tabela, sejam realizadas operac¸o˜es. As principais func¸o˜es oferecidas sa˜o: soma, me´dia, ma´ximo valor, mı´nimo valor e contagem; • Consultas aninhadas, um mecanismo para especificac¸a˜o de condic¸o˜es que representem a existeˆncia de valores de campos em outros campos de outras tabelas. E´ semelhante a`s junc¸o˜es; • Operac¸o˜es de conjuntos, que veˆem os resultados de consultas como conjuntos, realizando operac¸o˜es de unia˜o, intersec¸a˜o e subtrac¸a˜o. SQL oferece tambe´m, recursos para a inserc¸a˜o de dados, exclusa˜o, junc¸a˜o, 15 criac¸a˜o de tabelas, restric¸o˜es de seguranc¸a, definic¸a˜o de viso˜es [Silberschatz, 1999]. Ela e´ utilizada basicamente para consultas a dados organizados se- gundo um esquema relacional, o que requer uma estrutura definida previamente. 16 Cap´ıtulo 3 Histo´rico e Desenvolvimento dos Bancos de Dados 3.1 Do surgimento da Escrita a` automac¸a˜o do processo de armazenamento Neste cap´ıtulo sera´ feita uma recapitulac¸a˜o ra´pida do histo´rico e evoluc¸a˜o dos Me´todos de Armazenamento de Informac¸o˜es e os Bancos de Dados, visto que tal tecnologia passou por va´rias gerac¸o˜es, e se conserva apri- morando suas func¸o˜es e se especificando a cada aplicac¸a˜o. Neste trabalho, vamos dividir a Histo´ria dos Bancos de dados em algu- mas gerac¸o˜es distintas. 3.1.1 Processamento manual de dados (papel e la´pis) A primeira fase do Armazenamento de dados e´ caracterizada pelo sur- gimento da escrita ate´ 1900. Segundo [Carabajal, 2006] a escrita ale´m de servir como forma de comunicac¸a˜o, veio de uma necessidade de guardar informac¸o˜es para que pudessem ser usadas posteriormente, e mesmo antes com os hieroglifos, o armazenamento ja´ era feito atrave´s de marcas (os homens ao voltar de uma cac¸ada marcavam os lugares pelos quais eles passavam para facilitar sua volta) ou mesmo atrave´s de desenhos (desenhos feitos em rochas eram marcas para que os descendentes dos homens da 17 e´poca viessem a conhecer sua cultura, uma forma de guardar informac¸o˜es para serem usadas no futuro). O homem evoluiu e a necessidade de guardar o trajeto realizado na floresta na˜o soou mais como um problema, a automac¸a˜o dos processos In- dustriais, a Revoluc¸a˜o das Ma´quinas trouxe consigo a necessidade agora de armazenar dados para agilizar tarefas cotidianas, maximizando os ganhos e o lucro do homem. Surgem os armazenamentos f´ısicos, grandes salas des- tinadas ao arquivamento e guarda de documentos necessa´rios ao processo e constituic¸a˜o da histo´ria. A dif´ıcil tarefa dos responsa´veis pela guarda dos documentos fisicos ali- nhada a` necessidade de processamento, faz com que equipamentos para facilitar tal rotina fossem desenvolvidos. 3.1.2 Surgimento dos Computadores, carto˜es perfurados e ma´quinas eletro-mecaˆnicas para ordenar e tabular registros Apartir da necessidade de processamento e automac¸a˜o do processo de guarda de informac¸o˜es, surgem os primeiros computadores [Junior, 2006] baseados em transistores, o que permitiu que a computac¸a˜o comec¸asse a fazer parte da vida de algumas empresas que decidiram investir em proces- samento de dados. A princ´ıpio a ide´ia era trabalhar os dados e simples- mente processa´-los (gravar e gerar relato´rios) sem qualquer transformac¸a˜o. Com os ganhos trazidos por um processamento eletroˆnico, vieram tambe´m tentativas de melhorar os benef´ıcios trazidos por tal te´cnica, surge os carto˜es perfurados [Junior, 2006]. Os carto˜es perfurados (placas perfuradas para guardar informac¸o˜es) foi um ha´bido iniciado entre 1801 e 1805, por Joseph Marie Jacquard, um matema´tico franceˆs, que usou tal artif´ıcio para controlar a produc¸a˜o de tecido a partir de padro˜es descritos em carto˜es per- furados (informac¸o˜es acerca do processo eram armazenadas para se manter um padra˜o na confeccc¸a˜o dos tecidos, na ma´quina de tecelagem). A ma´quina conseguia ler esses carto˜es, conforme um dispositivo encon- 18 trava um furo no carta˜o, e o atravessava, e com isso era cumprida uma determinada instruc¸a˜o. [Meirelles, 2002]. Na Figura 3.1, e´ poss´ıvel visu- alizar como era o formato de um carta˜o perfurado: Figura 3.1: Carto˜es Perfurados [Oliveira, 2000] Em 1890, Herman Hollerith usou a tecnologia dos carto˜es perfurados e sugeriu automatizar o procedimento do censo demogra´fico dos EUA1. Hollerith formou uma companhia para produzir ma´quinas que registravam dados em carto˜es, os ordenava e tabulava. Esta companhia se tornou a IBM. Ate´ 1955, muitas companhias tinham andares inteiros para guardar carto˜es perfurados e processavammilhares de registros a cada noite [Azevedo, 2006]. A seguir na Figura 3.2 e´ poss´ıvel visualizar como eram essas ma´quinas: Figura 3.2: Ma´quina de Carto˜es Perfurados [Azevedo, 2006] Os Carto˜es perfurados ainda na˜o garantiam seguranc¸a o suficieˆnte para os dados, e na˜o davam suporte para um armazenamento eficaz, ale´m da grande demanda de espac¸o f´ısico para a guarda dos mesmos. Empresas 1Hollerith obteve o resultado do censo em 6 semanas, enquanto a forma anterior ao procedimento proposto por ele demorava cerca de dez anos [Junior, 2006] 19 especializadas da a´rea incentivaram estudos, o que garantiu o desenvolvi- mento de te´cnicas de armazenamento mais eficazes. A sec¸a˜o a seguir con- textualiza o surgimento das Fitas Magne´ticas e Sistemas de Arquivos. 3.1.3 Fitas magne´tivas, Sistemas de Arquivos Na sequeˆncia, nas de´cadas de 40 e 50 aproximadamente, a empresa UNI- VAC (Universal Automated Computer) desenvolveu uma fita magne´tica capaz de armazenar o equivalente a 10 mil carto˜es. A ma´quina UNIVAC I constru´ıda por esta empresa, ficou conhecida do pu´blico americano por apo´s ca´lculos e armazenamentos de dados, prever em uma eleic¸a˜o para a presideˆncia (em 1952) a vito´ria do candidato Eisenhower [Meirelles, 2002]. O fato da UNIVAC proporcionar aos usua´rios, computadores capazes de armazenar programas, veio fazer com que mais tarde na De´cada de 60, surgisse a programac¸a˜o baseada em processos. Isto auxiliou os usua´rios nas operac¸o˜es realizadas diariamente com o uso dessas ma´quinas. Por exemplo, programas de adic¸a˜o eram organizados em func¸a˜o do processo de adic¸a˜o usado pela ma´quina: carregando os registradores com nu´meros, executando a instruc¸a˜o de adic¸a˜o, se preocupando principalmente com overflow 2 e underflow 3, mas na˜o se preocupando se os resultados eram armazenados para uso posterior [Figueiredo, 2003]. Devido a necessidade de conservar a informac¸a˜o, a maioria dos progra- mas passou a usar o armazenamento em disco [Figueiredo, 2003]. Contudo, os dados gravados em disco ficaram logo dif´ıceis de organizar e adminis- trar. Essa situac¸a˜o levou os profissionais a criar pacotes de programas cuja finalidade era facilitar a manipulac¸a˜o do armazenamento em disco. Surgi- ram, enta˜o, os chamados sistemas de arquivo [Figueiredo, 2003]. Com eles, os programadores podiam criar arquivos, armazenar dados e leˆ-los mais 2Estouro de pilha ou transbordamento de dados, sobrecarga de um registro, ou seja quando se excede a quantidade ma´xima de armazenamento de um registro [Moraes, 2001] 3Quando se tenta retirar algo que na˜o existe, ou seja quando se tenta remover uma informac¸a˜o de um registro vazio[Moraes, 2001] 20 tarde para ana´lise e apresentac¸a˜o. Os aplicativos ainda eram geralmente organizados em func¸a˜o do modelo baseado em processos, e o aparecimento de linguagens de n´ıvel mais elevado, especialmente do COBOL, resultou no desenvolvimento de grandes programas de aplicac¸a˜o comercial. Embora esses primeiros sistemas de arquivo auxiliassem o programador, os me´todos de acesso aos dados eram ainda primitivos. O acesso ao dado era aleato´rio e requeria que o aplicativo soubesse a localizac¸a˜o f´ısica dos dados no disco. Os enderec¸os exigiam algoritmos de hashing4. Desenvolver algoritmos de hashing com uma distribuic¸a˜o boa e uniforme era uma habilidade importante, especialmente quando diferentes drives de discos exigiam diferentes algoritmos. Essa dificuldade fez surgir o primeiro recurso importante independente da implementac¸a˜o: o arquivo indexado que em vez de exigir que o aplicativo fornecesse a localizac¸a˜o exata de um segmento de dados gravado, somente uma chave simbo´lica era necessa´ria [Meirelles, 2002]. Dentre os sistemas de arquivos mais usados estavam os sistemas ISAM (Indexed Sequencial Access Method) e VSAM (Virtual Sequential Access Method), que rodam em equipamentos de grande porte. Esses sistemas, embora escassos, ainda sa˜o usados em algumas empresas para armazenar dados histo´ricos (relato´rios acessados com pouqu´ıssima frequeˆncia, mas que precisam ser guardados por uma questa˜o burocra´tica) [Figueiredo, 2003]. Nesta fase descrita, o processamento era orientado ao arquivo, sendo que era necessa´rio que o arquivo fosse lido sequ¨encialmente, e a inserc¸a˜o de um novo dado era feita gravando-se os novos registros no arquivo principal. Tal operac¸a˜o demandava tempo e se o arquivo fosse grande ocasionava processamento desnecessa´rio. A busca incessante por te´cnicas de armazenamento mais eficazes per- durou e a de´cada de 70 inaugura Sistemas Gerenciadores de Dados. 4Te´cnica de Consulta para encontrar um enderec¸o de memo´ria [Moraes, 2001] 21 3.1.4 Os primeiros SGBD’s da De´cada de 70 - Modelos Hiera´rquicos, Modelo em Redes Os primerios Sistemas Gerenciadores de Bancos de Dados surgiram com a demanda de maior processamento, visto que, na˜o era o bastante as fa- cilidades trazidas pelos sistemas de arquivos indexados, era necessa´rio um sistema capaz de coordenar todos os ”arquivos”, ou seja, os registros ar- mazenados, e na˜o deixar estas atividades para o usua´rio. Os pesquisadores partiram da natureza muito das vezes hiera´rquica dos dados, considerando registros como uma a´rvore, onde um registro podia ter um subregistro e assim sucessivamente, ou seja, existia um arquivo deno- minado ascendente e o outro descendente, estabelecendo uma hierarquia, caracterizando assim os SGBD’s hiera´rquicos [Meirelles, 2002]. Figura 3.3: Modelo de Banco de Dados Hiera´rquico [Takai et al., 2005] Conforme observado na Figura 3.3, cada tipo de registos, ou seja cada no´ da arvore esta´ associado a outros por relac¸o˜es de 1 para N, em que do lado N das relac¸o˜es esta˜o os filhos, as quais podem ser vistas como relac¸o˜es pai e filhos. Neste modelo na˜o existem ligac¸o˜es entre elementos da a´rvore ao mesmo n´ıvel ou n´ıveis diferentes nem com elementos em diferentes ramos. Apenas existem ligac¸o˜es entre cada elemento e o seu superior (ou pai). Neste modelo, se um dado registo tiver de pertencer a mais que um ramo da a´rvore, tera´ que ser duplicado, podendo isto causar inconsisteˆncia na informac¸a˜o e uma redundaˆncia de dados. 22 O mais conhecido dos SGBD’s hiera´rquicos e´ o IMS (Information Ma- nagement Systems ) da IBM. O problema desses tipos de sistemas e´ que em va´rios casos na˜o era poss´ıvel armazenar dados de forma hiera´rquica. Um exemplo de uma situac¸a˜o como esta, e´ no caso de um produto, que pode ser comprado de va´rios fornecedores e um mesmo fornecedor pode fabricar va´rios produtos [Navathe e Elmasri, 2000]. Como soluc¸a˜o ao problema apresentado anteriormente, foi projetado os Sistemas de Bancos de Dados em Rede. O primeiro a surgir foi o CODASYL. Neste modelo os dados tambe´m podiam ser representados em forma de a´rvore, pore´m um registro descendente podia ter qualquer nu´mero de ascendentes. Vale lembrar que em ambos os casos citados, a sua imple- mentac¸a˜o era facilitada pelo uso de ponteiros [Navathe e Elmasri, 2000]. Figura 3.4: Modelo de Banco de Dados em Rede [Date, 2004] O modelo de rede foi desenvolvido aproximadamente na mesma altura do modelo relacional tendo sido utilizado em produtos comerciais antes deste u´ltimo [Jackson, 1999]. Neste modelo, a informac¸a˜o e´ armazenada de forma semelhante ao modelo hiera´rquico, no entanto, ao contra´rio deste, cada elemento que constitui a estrutura pode ter ligac¸o˜es com va´rios ele- mentos ao mesmo n´ıvel ou em n´ıveis diferentes, existindo relac¸o˜es um para muitos, muitos para um ou muitos para muitos. Este modelo permite que a navegac¸a˜o ate´ chegar a um determinado elemento na˜o necessite de passar por todos os n´ıveis, podendo tomar atalhos. Desta forma, a informac¸a˜o 23 esta´ organizada num grafo. Tal como o modelo hiera´rquico, este mode- lo caiu agora em desuso, existindo no entanto ainda em aplicac¸o˜es mais antigas. A Figura 3.4 representa o modelo de rede. Entretanto, os dois Modelos apresentados anteriormente ainda sofriam de deficieˆncias tais como complexidade para efetuar consultas, acessos por meio de links ou ponteiros dentre outras, o que fez com que pesquisadores continuassem na batalha por um modelo que facilitasse a vida dos projetis- tas. O modelo Relacional aparece como meio de superar as deficieˆncias dos Modelos apresentados anteriormente. 3.1.5 Meados da De´cada de 80 - Modelo Relacional Um estudo realizado por um pesquisador da a´rea de Banco de dados, chamado Edgar Frank Codd veio formalizar a base para futuros desenvolve- dores, ou seja, por meio de um trabalho teo´rico de representac¸a˜o de rela- cionamentos de dados complexos, Codd veio tornar mais simples a estru- tura resultante, atrave´s do me´todo denominado normalizac¸a˜o [Silva, 2001]. A normalizac¸a˜o consistia em separar armazenamento e recuperac¸a˜o de dados. Esse esforc¸o culminou com o desenvolvimento de um novo tipo de banco de dados - O Relacional [Meirelles, 2002]. Apartir da normalizac¸a˜o do Banco de Dados, o modelo relacional mudou a visa˜o antes centrada nas ”estruturas de dados e nas operac¸o˜es f´ısicas”, para a modelagem dos dados no ambiente em que os dados se inserem. O foco do processo passou a ser visto de um n´ıvel mais elevado, abstrain- do detalhes de como implementar os aplicativos necessa´rios para o bom fun- cionamento do sistema e potencializando o dado em si, suas carater´ısticas, suas futuras formas de interpretac¸a˜o, que e´ o que realmente interessa para o uua´rio final. O banco de dados passa a ser definido apartir de um esquema, apartir de uma estrutura [Silva, 2001]. Sendo assim, os Bancos de Dados Relacionais consistem em um conjunto de tabelas, que conte´m linhas e colunas e se relacionam entre si, delimi- 24 tados por uma estrutura r´ıgida. Cada tabela possui va´rias colunas e cada uma das colunas tem um nome u´nico. Elas possuem ainda colunas que sa˜o definidas como campos chaves e possibilitam a conexa˜o entre elas. E´ poss´ıvel realizar consultas por meio de linguagens como a SQL (Structured Query Language), sendo que toda consulta feita resulta tambe´m em uma tabela [Navathe e Elmasri, 2000]. Figura 3.5: Modelo de Banco de Dados Relacional [Date, 2004] 3.1.6 Final da De´cada de 80 ate´ atual A busca pela melhora da performace nos Bancos de Dados ja´ existentes fez surgir um novo modelo queatendesse tambe´m a comunidade daqueles que ale´m de armazenar textos e registro cotidianos precisavam armazenar imagens, e dados mais complexos. • Modelo Orientado a Objetos: Posteriormente ao modelo Rela- cional que normalmente armazena somente dados, surge o Banco de Dados Orientado a Objetos (O.O.), que possui a caracter´ıstica de armazenar na˜o so´ dados, mas tambe´m me´todos, ou seja procedimen- tos manipuladores destes dados. Estes na˜o armazenam tabelas, nem 25 a´rvores, mas sim estados de objetos [Navathe e Elmasri, 2000]. Os sistemas de gerenciamento de Banco de Dados Orientado a Objetos cresceram fora das pesquisas durante o comec¸o da metade dos anos 80, buscando ter sustentac¸a˜o da gereˆncia da base de dados para objetos gra´fico-estruturados. O termo “sistema de banco de dados orientado a objetos”surgiu por volta de 1985. • Objeto-relacionais: Apo´s o surgimento dos Bancos de Dados Ori- entados a Objetos, surge tambe´m um banco de dados que mescla as facilidades dos BD’s Relacionais e dos BD’s O.O’s, sendo enta˜o chama- dos de Banco de Dados Objeto-Relacionais. Estes foram criados a partir da necessidade de se ampliar os conceitos do modelo orientado a objetos para o modelo relacional, ou seja, es- tender o modelo relacional para lidar com aplicac¸o˜es novas. Sa˜o geral- mente usados em aplicac¸o˜es para objetos complexos, tais como ima- gens, mapas, imagens geradas por sate´lite, previsa˜o do tempo, projetos de engenharia, biologia, projeto genoma, etc [Navathe e Elmasri, 2000]. Nesse contexto, os Bancos de Dados Objeto-relacionais fazem uso de alguns conceitos do modelo de dados orientados a objeto dentro do modelo relacional. Alguns exemplos de caracter´ısticas presentes nas linguagens orientadas a objetos e abordadas nos modelos objeto- relacionais sa˜o: a abstrac¸a˜o de dados, heranc¸a de dados e func¸o˜es, representac¸a˜o de atributos multivalorados dentro de uma tabela, den- tre outros [Abiteboul, 2003]. Os Bancos de Dados ate´ aqui apresentados atendem a uma comunidade, cujas as exigeˆncias se restringem a acomodar bem, dados que possuem uma estrutura representacional bem definida [Figueiredo, 2003]. Pore´m, atentos a` ascensa˜o da internet, ao crescimento e particularidade dos dados, os cientistas se motivaram a desenvolver sistemas de armazenamento que atendem a esta clientela, que integrem a informac¸a˜o de forma a facilitar 26 seu manuseio. 3.2 A internet no contexto de armazenamento de in- formac¸o˜es A Internet evoluiu a partir da Arpaneth, que foi um projeto do final da de´cada de 60 sob o patroc´ınio da Ageˆncia de Projetos de Pesquisa Avanc¸ada do Departamento de Defesa dos Estados EUA (DARPA), para conectar to- das as diversas redes do governo e acadeˆmicas dos Estados Unidos, em uma u´nica rede, com protocolo de comunicac¸a˜o comum TCP/IP (Transmission Control Protocol/ Internet Protocol) 5. Paralelo a este trabalho desenvolvido pela Ageˆncia DARPA, o cientista da computac¸a˜o Theodore Nelson implementava uma forma de estruturar a informac¸a˜o, permitindo que documentos de texto referenciem outros doc- umentos e arquivos, tal mecaˆnismo de acesso e´ chamado de hipertexto, e era feito por meio de links ou ligac¸o˜es entre tais documentos. Mais tarde por volta de 1990 Tim Berners-Lee aprimorou os conceitos desenvolvidos por Ted Nelson (como era chamado o Theodore Nelson), contribuindo com a ide´ia do browser 6, onde os links propostos por Ted foram implementados, ou seja, por meio de um browser gra´fico que podesse integrar todos os diferentes tipos de informac¸o˜es em uma u´nica janela. Isto facilitou ao usua´rio final que ganhou a praticidade de na˜o ter que usar todos os comandos e procedimentos separados que precisavam usar antes. O empenho e dedicac¸a˜o dos cieˆntistas anteriormente citados e de outros contribuintes do processo de aprimoramento sofrido pela Internet trouxe 5O modelo TCP/IP - como muitos outros modelos de protocolos - pode ser visto como um grupo de camadas, em que cada uma resolve um grupo de problemas da transmissa˜o de dados, fornecendo um servic¸o bem definido para os protocolos da camada superior. Estas camadas mais altas esta˜o mais perto do usua´rio (camada de aplicac¸a˜o), lidam com dados mais abstratos e confiam nos protocolos das camadas mais baixas para traduzir dados em um formato que pode eventualmente ser transmitido fisicamente. 6Um navegador (tambe´m conhecido como web browser ou simplesmente browser, termos em ingleˆs). O termo browser vem do verbo to browse que significa olhar pa´ginas de um livro, revista, etc, pore´m o termo neste caso refere-se a`s pa´ginas da internet 27 um sucesso indescrit´ıvel a Internet, fazendo com que sua diversidade, sua heterogeneidade e o crescimento ”desordenado”dos dados despertasse a comunidade cient´ıfica da a´rea de Banco de Dados para o estudo e a especi- ficac¸a˜o de uma base que atendesse tambe´m a esta aplicac¸a˜o. A justificativa para tal estudo vem da pro´pria natureza dos dados, e da constante necessidade de intercaˆmbio de informac¸o˜es geradas no mundo do business-to-business7 e e-commerce8. Cada empresa adota sua pro´pria pol´ıtica de transporte de dados, gerando consequentemente dificuldade quanto a quesitos de portabilidade e integrac¸a˜o entre sistemas. No cena´rio proposto pelos BD’s tradicionais, fazia-se necessa´rio que os dados apresentassem a mesma estrutura. Ou seja, BD’s tradicionais pedem um esquema pre´-definido, uma estrutura r´ıgida, enquanto que os dados no ambiente web sa˜o diversificados e na˜o possuem essa estrutura r´ıgida, sendo denominados semi-estruturados [Mello, 2003a]. Enta˜o, ha´ a necessidade de realizar a comunicac¸a˜o entre essas duas abordagens de troca de in- formac¸a˜o, sendo esta necessidade uma parte integrante do objetivo desse trabalho. 3.2.1 Uma mudanc¸a de paradigma Em comparac¸a˜o com sistemas convencionais de gerenciamento de banco de dados, a comunicac¸a˜o com dados na Web apresenta uma mudanc¸a essen- cial de paradigma. A abordagem padra˜o de dados e´ baseada em uma ar- quitetura cliente/servidor. O cliente, pessoa ou programa, emite uma con- sulta que e´ processada. Por sua vez, o servidor responde a esta consulta [Figueiredo, 2003]. Observe a Figura : 7Come´rcio Eletroˆnico feito entre Empresas [Garber, 2004] 8Come´rcio realizado via internet, ou seja come´rcio eletroˆnico [Garber, 2004] 28 Figura 3.6: Arquitetura tradicional de banco de dados Cliente/Servidor [Mello, 2003a] Ja´ no contexto Web, considera-se uma abordagem de ”mu´ltiplas ca- madas”. A camada mais baixa consiste de fontes de dados, tambe´m chamadas de servidores. Estes podem ser servidores de banco de dados convencionais, podem ser tambe´m sistemas legados9, servidores de arquivos ou qualquer aplicac¸a˜o que produza dados. A camada mais alta, ou seja a camada do Cliente, consiste em interfaces ou aplicac¸o˜es com o usua´rio. Entre a camada do Cliente e a camada do servidor podem haver camadas intermedia´rias, frequentemente chamadas de Middleware, ou seja sa˜o camadas que transformam, integram ou adi- cionam valor aos dados [Abiteboul, 2003]. Observe a Figura : 9Sistemas existentes, que foram desenvolvidos no passado, com me´todos de ana´lise e programac¸a˜o obsoletos, pouco documentados, usando linguagens ultrapassadas [Figueiredo, 2003]. 29 Figura 3.7: Arquitetura de Aplicac¸a˜o com Base na WEB [Abiteboul, 2003] No n´ıvel mais simples, na˜o ha´ camadas intermedia´rias e a interac¸a˜o e´ diretamente entre clientes e servidores. Os dados fluem dos servidores para os clientes, enquanto consultas sa˜o mandadas na direc¸a˜o inversa. O proces- samento da consulta no lado do servidor consiste em traduzir a consulta parao modelo de dados pro´prio do servidor. O resultado e´ novamente processado para modelo de dados de lo´gica comum, de forma que o cliente possa entendeˆ-lo. Pesquisadores de Banco de Dados interessados em integrac¸a˜o de dados trabalham no entendimento do Middleware. Uma abordagem e´ o data warehousing. O middleware importa dados da fonte e os armazena em um banco de dados intermedia´rio especialmente constru´ıdo (o warehouse), que e´ consultado pelo cliente. A principal dificuldade com esta abordagem e´ manter o banco de dados em dia quando as fontes sa˜o atualizadas. Uma segunda abordagem e´ um Sistema Mediador, onde as consultas do cliente sa˜o transformadas e traduzidas junto a` fonte de dados. Resultados parciais de va´rias fontes sa˜o integrados pelo mediador em tempo real, isto resolve o problema de atualizac¸o˜es, mas aumenta a carga para comunicac¸a˜o e atualizac¸o˜es [Abiteboul, 2003]. Houveram va´rias tentativas que foram se aperfeic¸oando na arte de inte- 30 grar dados num ambiente ta˜o dinaˆmico quanto e´ a internet. O surgimento de tecnologias como as linguagens de Marcac¸a˜o tais como a GML (Generalized Markup Language- Linguagem de Marcac¸o˜es Gene´ricas), a SGML ( Standard Generalized Markup Language - Linguagem Padra˜o de Marcac¸o˜es Gene´ricas) e posteriormente a XML ( EXtensible Markup Lan- guage ou, em portugueˆs, Linguagem extens´ıvel de formatac¸a˜o). Vieram melhorar as formas de representac¸a˜o e manipulac¸a˜o de dados semi-estruturados, como sera˜o abordados nas sec¸o˜es seguintes. 3.2.2 Linguagens de Marcac¸a˜o no Contexto de Armazenamento O surgimento das Linguagens de Marcac¸a˜o foi marcante na de´cada de 90, com o aparecimento da Web. Estas linguagens permitem a construc¸a˜o de padro˜es pu´blicos e abertos que veˆm sendo criados para se tentar maiores avanc¸os no tratamento da informac¸a˜o; elas minimizam o problema de trans- fereˆncia de um formato de representac¸a˜o de um documento para outro, e liberam a informac¸a˜o das tecnologias de informac¸a˜o proprieta´rias. Sendo assim considera-se todo documento como constitu´ıdo de treˆs com- ponentes, claramente distintos e separados: (a) conteu´do, (b) estrutura e (c) estilo (ou formatac¸a˜o). O conteu´do e´ a informac¸a˜o propriamente dita, a estrutura define como se da´ a organizac¸a˜o da informac¸a˜o, ou das ide´ias, no documento e o estilo define o visual de apresentac¸a˜o das informac¸o˜es ao usua´rio. Neste trabalho, na˜o estamos preocupados com o estilo, ou seja com a apresentac¸a˜o das informac¸o˜es, mas sim com o conteu´do e a estrutura desse documento, por isso a seguir sera´ apresentado algumas linguagens que teˆm em seu contexto a carater´ıstica de se preocupar com o dado em si, na˜o com a apresentac¸a˜o: • SGML (Generalized Markup Language) A SGML foi proposta em 1986 para permitir a definic¸a˜o de documentos de acordo com sua estrutura e conteu´do, independente de sua apresentac¸a˜o [Iso, 1986]. O intercaˆmbio e troca de dados seria favorecido se a SGML obtivesse 31 eˆxito com isso, e o armazenamento passaria a usar das facilidades de tal implementac¸a˜o. E´ uma linguagem gene´rica para a descric¸a˜o da estrutura lo´gica de documentos, permitindo a definic¸a˜o de linguagens espec´ıficas, ou seja geradas a partir das regras definidas por ela, o que fez com que padra˜o SGML desse origem a outros padro˜es que surgiram com a demanda do WWW (World Wide Web) por novos recursos. A linguagem SGML e´ um padra˜o muito poderoso e geral, tendo sido utilizada em ramos como o da publicac¸a˜o te´cnica, indu´strias far- maceˆuticas, companhias aeroespaciais, automotivas e de telecomu- nicac¸o˜es. Mas apesar dos benef´ıcios que podem ser ganhos usando SGML, sua base de usua´rios foi limitada a grandes empresas, pois se trata de uma linguagem muito complexa e extensa, fazendo com que os custos com implementac¸a˜o na˜o sejam ta˜o triviais [Iso, 1986]. Para remediar os problemas enfrentados pela SGML, surge enta˜o um subconjunto da SGML, o XML (Extensible Markup Language) tratado a seguir. • XML(Extensible Markup Language) A Web, devido ainda na˜o possuir um padra˜o barato e acess´ıvel a todos, precisava descobrir um meio de estabelecer um padra˜o para transmissa˜o de dados sem uma estrutura pre´-definida e sem a com- plexidade da SGML, fato ja´ afirmado no to´pico anterior. Partindo dessa premissa, o trabalho conjunto de um grande nu´mero de em- presas (Oracle, IBM, Compaq, Xerox, Microsoft, dentre outras) e de pesquisadores (MIT - USA, INRIA - Franc¸a, Universidade de Keio - Japa˜o) reunidos noWorld Wide Web Consortium (W3C) 10 em 1996, com o objetivo de criar um formalismo para facilitar a troca de da- 10O´rga˜o que desenvolve tecnologias (especificac¸o˜es, diretrizes, programas e ferramentas) para conduzir a Internet ao seu potencial ma´ximo, funciona como um fo´rum para informac¸a˜o, come´rcio, comunicac¸a˜o e entendimento coletivo [W3C, 1996] 32 dos na Web, veio culminar com o surgimento da XML (eXtensible Markup Language) [W3C, 1996]. A XML e´ uma linguagem de marcac¸a˜o, assim como aHypertext Markup Language (HTML). A principal diferenc¸a entre essas duas lingua- gens de marcac¸a˜o e´ o enfoque, a HTML e´ voltada a` apresentac¸a˜o e a XML permite a associac¸a˜o de tags definidas pelo usua´rio para des- cric¸a˜o de conteu´do, algumas diferenc¸as sa˜o mostradas na Tabela 3.1. Neste sentido, enquanto os elementos HTML sa˜o pre´-definidos e, por- tanto, na˜o podem ser alterados, na XML e´ permitido que sejam criados conforme a necessidade da aplicac¸a˜o, provendo assim, extensibilidade [Martins, 2003]. Outro ponto que tambe´m diferencia HTML de XML e´ o fato de que em documentos HTML, como a preocupac¸a˜o e´ somente com a apresen- tac¸a˜o na˜o e´ poss´ıvel fazer consultas e isso tambe´m motivou os desen- volvedores da XML a criar uma linguagem que permitisse consultas com o ma´ximo de eficieˆncia poss´ıvel, o que aproxima o documento XML de um Banco de Dados. Tabela 3.1: Principais Diferenc¸as entre XML e HTML [Heuser et al., 2005] XML HTML Descreve uma unidade de informac¸a˜o Apresenta uma unidade de informac¸a˜o Foca no que o Dado Significa Foca na Apresentac¸a˜o do dado Troca de Dados entre Aplicac¸o˜es Apresentac¸a˜o do dado Apo´s a unia˜o de diversas empresas e entidades educacionais, em 10 fevereiro de 1998 veˆm a tona enta˜o, a publicac¸a˜o da recomendac¸a˜o para versa˜o 1.0 da linguagem XML, atualmente encontra - se na versa˜o 1.1 [W3C, 1996]. Embora o propo´sito original da iniciativa da XML fosse a definic¸a˜o de uma linguagem de marcac¸a˜o voltada para o ambiente Web, esta 33 linguagem tambe´m se mostrou uma forma interessante para a repre- sentac¸a˜o de dados estruturados11 e semi-estruturados 12, tornando-se um importante meio de representac¸a˜o no transporte e interoperabili- dade dos dados [W3C, 1996]. Devido a essa caracter´ıstica, cada vez mais empresas da a´rea de nego´cios eletroˆnicos e financ¸as veˆm aderindo a` utilizac¸a˜o de tecnologias associadas a` XML. Como essas aplicac¸o˜es exigiam um controle de seguranc¸a e maior grau de confiabilidade, na˜o demorou muito para que os documentos XML (ou seja, documentos escritos segundo as regras desta linguagem) recebessem atenc¸a˜o das principais ferramentas gerenciadoras de banco de dados, os SGBDs. Os SGBDs adaptados para tratar documentos XML sa˜o chamados de XML habilitados, enquanto os SGBDs desenvolvidos com a finali- dade de lidar com documentos XML sa˜o chamados de XML nativos [Martins, 2003]. 3.3 Bancos de Dados para documentos XML Em 1998, comec¸am a surgir comercialmente os primeiros bancos de Da- dos para armazenamento de documentos XML. Apo´s o despertar dos de- senvolvedorespara o crescimento de tais dados na Web veio a necessidade de tratar estes dados e armazena´-los em um reposito´rio espec´ıfico de forma a facilitar sua manipulac¸a˜o. O XML e´ uma linguagem de marcac¸a˜o que trabalha com dados semi- estruturados (tratado no pro´ximo Cap´ıtulo), sendo que do pondo de vista de um Banco de Dados, um documento XML e´ uma colec¸a˜o de dados. Pore´m na˜o tem em muitos casos uma estrutura ta˜o r´ıgida quanto a exigida pelos BD’s relacionais por exemplo, combinando linguagem natural com uma certa linha de rigidez [Figueiredo, 2003]. Como ja´ citado anteriormente, os SGBDs adaptados para tratar do- 11Dados com uma estrutura r´ıgida de organizac¸a˜o, melhor apresentados no pro´ximo Cap´ıtulo 12Uma estrutura na˜o ta˜o r´ıgida de organizac¸a˜o, tambe´m detalhado no pro´ximo Cap´ıtulo 34 cumentos XML sa˜o chamados de XML habilitados, enquanto os SGBDs desenvolvidos com a finalidade de lidar com documentos XML sa˜o chama- dos de XML nativos [Martins, 2003]. Estes tipos de Sistemas de Banco de Dados sera˜o melhor apresentados no cap´ıtulo seguinte, onde tambe´m sera´ abordado a tecnologia XML. Sendo assim, neste Cap´ıtulo foram abordados algumas das gerac¸o˜es e momentos pelos quais os principais Bancos de Dados passaram e a neces- sidade de ampliar ou mesmo apresentar novos Bancos de Dados nesta lista para tratar de dados com caracter´ısticas na˜o ta˜o r´ıgidas e na˜o ta˜o formais (os dados semi-estruturados). Tal tentativa sera´ constantemente abordada neste trabalho, visto que este e´ o objetivo do mesmo. Em alguns momentos foram citados exemplos de dados que trafegam pela internet, e portanto merecem um tratamento especial, devido a na- tureza heterogenea e citada no para´grafo anterior. Na Figura 3.8 e´ apresentado um esboc¸o da evoluc¸a˜o pela qual os Bancos de Dados passaram ate´ chegar no foco deste trabalho, ou seja, o tratamento especial que se deve dar a dados cuja natureza e´ heterogeˆnea e os Bancos de Dados especiais para trabalharem com o padra˜o XML. Figura 3.8: Evoluc¸a˜o dos Bancos de Dados ate´ a necessidade de Bancos de Dados especiais para documentos XML[Santiago, 2004] 35 Cap´ıtulo 4 Dados - Sua Representac¸a˜o, sua estruturac¸a˜o e a utilizac¸a˜o de XML O sucesso da Internet culminando com o seu crescimento veio justificar a necessidade de encontrar mecanismos para viabilizar o armazenamento, o acesso e atualizac¸a˜o destes dados, visto que os mesmos na˜o podem ser consultados atrave´s de te´cnicas tradicionais de Bancos de Dados. Isto se da´ devido uma estrutura heterogeˆnea, na qual dados advindos de fontes distintas, de naturezas diversas se cruzam diariamente, impossibilitanto te´cnicas tradicionais de manipulac¸a˜o de dados. Este cap´ıtulo destina-se a abordar conceitos relevantes acerca do as- pecto prepresentacional do dado, relatando caracter´ısticas interessantes e primordiais na definic¸a˜o da estrutura representacional, na existeˆncia ou na˜o de padro˜es que estes dados precisam seguir para garantir o sucesso das operac¸o˜es realizadas no armazenamento em um determinado reposito´rio de dados. Consequentemente sera˜o abordados tambe´m conceitos acerca da linguagem XML, uma linguagem para representac¸a˜o de dados, que sera´ apresentada neste cap´ıtulo e podendo tambe´m ajudar na tecnologia de Banco de Dados, dinamizando o acesso e integrando fontes de dados. 36 4.1 Classificac¸a˜o de Dados apartir de sua representac¸a˜o Estrutural Manipular um dado constitui-se em va´rios passos, dentre tais e´ necessa´rio a princ´ıpio entender a sua natureza e a forma de representa´-lo, visto que em bases de dados eletroˆnicas pode-se distinguir formas de representac¸a˜o espec´ıficas para cada aplicac¸a˜o e de acordo com cada banco de Dados, enta˜o definir as operac¸o˜es relevantes para o usua´rio. O modelo de dados e´ primordial para a definic¸a˜o da forma como sera´ armazenados dados. Pore´m e´ necessa´rio definir que tipo de dados pode ser guardado em cada base de dados, tomando cuidados com relac¸a˜o a` estrutura. Nas sec¸o˜es seguintes sera˜o abordados aspectos quanto a classificac¸a˜o dos dados, sua representac¸a˜o (sua estrutura) e suas caracter´ısticas particulares [Mello, 2003a]: 4.1.1 Dados Estruturados OsDados Estruturados sa˜o dados que seguem ummodelo pre´ definido (definic¸a˜o a priori), ou seja, na sua representac¸a˜o sa˜o regidos por regras, esta˜o subordinados a manter um padra˜o imposto por um esquema (um conceito abordado no Cap´ıtulo 2) definido antes do conhecimento dos dados [Mello, 2003a]. Um esquema pode prever quais elementos sa˜o encontrados nos documentos, a ordem em que estes elementos podem aparecer, a hierar- quizac¸a˜o destes elementos, o tipo de dados do conteu´do destes elementos, entre outros. Um exemplo disso sa˜o os Bancos de Dados Relacionais, que seguem a descric¸a˜o do banco de dados definida durante o seu projeto, o qual fornece uma estrutura, ou seja, a forma como os dados sera˜o armazenados [Hunter et al., 2003]. Isto limita o usua´rio na inserc¸a˜o e dificulta a integrac¸a˜o de BD’s dife- rentes, visto que de acordo com o seu respectivo programador, cada Banco 37 de Dados e´ regido por seu esquema. 4.1.2 Dados Na˜o Estruturados Ao contra´rio dos dados estruturados, os dados na˜o estruturados na˜o apresentam qualquer padra˜o, na˜o podem ser armazenados de acordo com um esquema. Exemplo de tais dados sa˜o as imagens, o texto livre, etc [Mello, 2003a]. E para este trabalho so´ sera˜o citados, uma vez que na˜o faz parte do escopo deste. 4.1.3 Dados Semi - Estruturados Dados semi-estruturados possuem caracter´ısticas intermedia´rias em relac¸a˜o aos tipos definidos nas sec¸o˜es anteriores a esta, ou seja, esta cate- goria traz consigo uma representac¸a˜o na˜o completamente r´ıgida, nem ta˜o pouco completamente sem estrutura. Sa˜o classificados assim por possuirem uma Representac¸a˜o Estrutural Heterogeˆnea [Hunter et al., 2003]. O exemplo mais pra´tico e conhecido de dados com essa caracter´ıstica heterogeˆnea citada sa˜o os dados contidos na web, onde fontes de origens diversas, com padro˜es diferentes sa˜o lanc¸ados neste mundo virtual que e´ a internet. Outro ponto que merece ser mencionado em relac¸a˜o a estes dados e´ que sa˜o considerados auto-descritivos, pois possuem uma representac¸a˜o na qual o esquema esta´ presente no pro´prio dado, sendo assim o esquema na˜o e´ pre´-definido, como no caso dos Dados Estruturados. Esquemas para Dados Semi-estruturados sa˜o definidos apo´s a existeˆncia dos mesmos. E por possuirem esta representac¸a˜o auto-descritiva, os valores e a estrutura em muitos casos se confundem. Outra caracter´ıstica desse tipo de representac¸a˜o de dados, e´ a sua Estru- tura Irregular. Na internet, por exemplo, onde existem formas diferentes de representar o mesmo objeto, com campos diversos e na˜o padronizados, operac¸o˜es de armazenar ou acessar grandes bases de dados podem se tornar 38 dispendiosas e desgastantes, ale´m de alterar a semaˆntica dos dados, caso na˜o haja te´cnicas de armazenamento eficazes. Tomando como exemplo uma base de curr´ıculos de todos colaboradores de uma multinacional, aspectos individuais de cada um, como a escola- ridade, experieˆncia, conhecimento em idiomas poderiam em muitos casos serem campos que na˜o seriam preenchidos e consequentemente estes cam- pos ficariam em branco, trazendo desperd´ıcio de memo´ria e aumento do tempo de resposta a` alguma requisic¸a˜o feita pelo usua´rio. Ale´m disso, con- siderando ainda bases de dados de diferentes etnias e culturas diferentes, este seria outro fator que tornaria dif´ıcil a integrac¸a˜o dessas bases, onde todas as filiais teriam que seguir o mesmo padra˜o.
Compartilhar