II. | Relatório Técnico |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1. | Objetivo | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Definição de um modelo XML para a base de dados que está sendo criada para a Biblioteca IME. Este modelo deverá ser usado para fazer a carga da nova base de dados, a partir da importação de dados de bases já existentes. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2. | Contexto |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.1. | Modularidade do Sistema de Informatização | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Este trabalho é um sub-projeto que integra o Projeto de Informatização da Biblioteca do IME. O sistema está dividido em módulos, minimizando a dependência entre os grupos de desenvolvimento do projeto.
A definição do modelo XML encaixa-se no Módulo Acervo. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.2. | Bases de Dados | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Os dados do Acervo da Biblioteca encontram-se, no momento, em duas bases de dados: Urge sistematizar o processo de importação de dados das bases existentes para a nova base que está sendo criada.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3. | XML: eXtensible Markup Language | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3.1 | Introdução | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
XML é uma linguagem de marcação, assim como HTML. Basicamente, o que diferencia estas duas linguagens é que a primeira foi criada para descrever dados, enquanto que a segunda foi criada para exibir dados. XML permite que o desenvolvedor crie seus próprios marcadores (estruturas rotuladas tag), daí sua flexibilidade. Há apenas uma primeira linha [ver fig. exemplo 1] que é obrigatória para que o documento seja validado: uma declaração XML que define a versão XML do documento em questão.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3.2 | Estrutura Básica dos Marcadores | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4. | O PROJETO |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4.1 | Uma proposta | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Importação de dados de uma base para outra não é trivial quando lidamos com bases totalmente distintas em sua estruturação.
Nossa solução propõe o uso de analisadores (parsers) e um arquivos XML.
Nosso documento XML descreve um ITEM DE ACERVO da Biblioteca do IME: um exemplar físico de alguma obra. De que forma as informações sobre um item do Acervo estão estruturadas? Não se trata, aqui, de saber quais as relações da base de dados. Antes, é a descrição de um ITEM DE ACERVO a partir de seus elementos (autores, assuntos relacionados, eventos associados, edições, etc), respeitando a hierarquia de registros. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4.2 | Etapas do processo | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Definido o documento XML modelo, o processo todo envolve, basicamente, duas etapas:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5. | Desenvolvimento | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5.1 | Modelo XML | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nosso documento XML é um arquivo.xml, contendo a estrutura de um ITEM DE ACERVO da Biblioteca do IME, juntamente com a Definição do Tipo de Documento (DTD - Document Type Definition). O DTD é descrição estrutural do documento e inclui regras de interpretação para cada uma das informações contidas no mesmo. Ele contém a definição dos elementos e listas de atributos, a cardinalidade dos elementos, a hierarquia dos registros. Por exemplo: ITEM DE ACERVO pode ser PERIÓDICO, NÃO-PERIÓDICO, MULTIMIDIA ou TESE. Cada um deles é um elemento distinto. Determinamos, também pelo DTD, que o item pode ter mais de um ASSUNTO associado, mas apenas uma EDITORA. Suponha que o parser A gere um arquivo itemYYY.xml a partir de dados selecionados numa das bases-origem. Esse arquivo será um documento XML válido apenas se obedecer às definições DTD. A metodologia utilizada foi: |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5.2 | Parser A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Para criar o parser A, é necessário ter acesso à base-origem: saber como extrair, das relações dessa base, os dados necessários para gerar arquivos xml válidos. No caso específico do parser A para a base do IDBIME, utilizamos a seguinte metodologia: Esse último script - o parser A para o IDBME - foi desenvolvido em Java e requer driver para acesso ao servidor postgresql (note que a base-origem, neste momento, é uma cópia da base original do IDBME). |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5.3 | Parser B | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
O desenvolvimento do parser B exige compreensão total da base-destino (a nova base): em que ordem inserir os novos registros?É importante manter a consistência dos dados: ao inserir o livro "Sistemas de Bancos de Dados", preciso associá-lo ao assunto "Bancos de dados". Esse assunto já foi inserido?
A metodologia utilizada foi: Esta apresentação [.pdf] mostra como foi desenvolvido um leitor de arquivos XML (uma classe em Java) que, após analisar seu (do arquivo) contéudo, faz a carga da nova base de dados com as informações obtidas pelo parser. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
6. | Cronograma | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
6.1 | Atividades realizadas | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
7. | Ferramentas | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8. | Conclusão | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
O projeto de um banco de dados envolve dois objetos abstratos: cadastro (estrutura de dados) e processos (o ciclo de informações - info-flow).
A modularização do sistema procura minimizar a dependência entre os módulos, mas é importante compreender o projeto como um todo.
Tratando-se de banco de dados, podemos verificar que há um problema na especialização de generalização: no processo de filtragem (critérios de especialização no banco de dados), pode haver replicação de estruturas de dados. O estudo do XML mostrou as várias possibilidades do uso da linguagem de marcação para a descrição de dados. A existência de APIs para XML (disponíveis em outras linguagens de programação além de Java) reflete as facilidades do uso do XML. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
9. | Bibliografia e Links | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ABITEBOUL, S.; BUNEMAN, P.; SUCIU, D. Data on the web: from relations to semistructured data and XML. California: Morgan Kauffman Publishers, 2000. WALL, L.; CHRISTIANSEN, T.; SCHWARTZ, R.L; POTTER, S. Programming Perl. California: O´Reilly & Associates, 1996. HOLZNER, STEVEN.Inside XML. Indiana: New Riders, 2001. http://perl.about.com/ http://www.activestate.com http://www.cpan.org http://search.cpan.org/~arc (Aaron Crane) http://crazyinsomniac.perlmonk.org/perl/ppm PostgreSQL 7.4.3 Documentation http://www.xml.org Papers about XML (by Ronald Bourret) XML Specification Apache XML Project |