MAC - MAC5853 Desenvolvimento de Sistemas de Computa¸ c˜ ao
Primeiro Semestre de 2004
Carregador de Banco de Dados Bibliogr´ afico
Neste projeto, desenvolveremos um pequeno sistema para carregar dados bibliogr´aficos em um banco de dados. Os dados, referentes a informa¸c˜oes bibliogr´aficas sobre livros, revistas, CDs, v´ıdeos, etc. estar˜ao armazenados em diversos arquivos XML e dever˜ao ser processados pelo seu sistema de forma a serem armazenados no banco de dados. Alternativamente, o sistema dever´a tamb´em ser capaz de extrair as informa¸c˜oes de um banco de dados e gerar arquivos XML correspondentes ao seu conte´udo.
Cada arquivo XML de entrada pode possuir um n´umero qualquer de entradas dos tipos seguintes descrevendo exemplares de um acervo:
1. livro: incluindo t´ıtulo, autor, editor, editora, ano, ISBN, n´umero de p´aginas.
2. s´erie de livros: incluindo t´ıtulo da s´erie, organizador e lista de ISBNs dos livros que comp˜oem a s´erie.
3. exemplar de revista: incluindo t´ıtulo, editora, mˆes, ano, n´umero e volume.
4. revista: incluindo t´ıtulo, editora e lista de pares (n´umero,volume).
5. CDs: incluindo t´ıtulo, autor, editora, ano e lista dos t´ıtulos das faixas.
6. v´ıdeo: incluindo t´ıtulo, autor, editora, ano e formato (VHS, mini-DV, DVD, etc).
Neste trabalho vocˆe ir´a implementar um sistema que dever´a ler um ou mais arquivos XML como entrada e popular um banco de dados com os dados correspondentes. O tradutor dever´a gerar um conjunto de instru¸c˜oes, na linguagem SQL de acesso a banco de dados, de forma a prover o com- portamento esperado. Estas instru¸c˜oes SQL devem ser tanto armazenadas num arquivo texto para posterior consulta quanto realmente submetidas a um banco de dados de sua escolha (MySQL, PostgreSQL, Access, etc), re- ceber as respostas e format´a-las em um arquivo de respostas; a submiss˜ao
1
das instru¸c˜oes SQL poder´a ser feita usando ODBC, JDBC ou outro formato que vocˆe preferir.
No banco de dados, os itens do tipo s´erie de livros dever˜ao conter re- ferˆencias diretas aos itenslivrosque comp˜oem a s´erie. O mesmo deve ocorrer na rela¸c˜ao entrerevista eexemplar de revista.
Ficar´a a seu crit´erio definir tanto o formato utilizado nos arquivos XML quanto o modelo de dados no banco de dados.
Al´em de permitir a inser¸c˜ao de dados XML no banco de dados, o sistema oferecer´a tamb´em a op¸c˜ao de gerar arquivos XML como backup. Dever´a ser oferecida op¸c˜oes para colocar toda a sa´ıda em um ´unico arquivo ou para gerar um arquivo XML para cada um dos quatro tipos de m´ıdia (livro, revista, CD ou v´ıdeo).
Para tanto, vocˆe dever´a proceder em duas fases.
Fase 1 — Projeto (prazo: 1,5 semanas)
Nesta primeira fase vocˆe deve apresentar o projeto de seu sistema. Este projeto dever´a conter:
1. Descri¸c˜ao do sistema a ser implementado, detalhando a ativa¸c˜ao do sistema, os formatos de entrada e de sa´ıda.
2. Um conjunto de exemplos e cen´arios de opera¸c˜ao do sistema, mos- trando, para cada um dos cen´arios, quais os comandos SQL a serem enviados para o banco de dados e qual a resposta a ser gerada pelo sistema.
3. Uma descri¸c˜ao de quais tipos de entradas ser˜ao aceit´aveis pelo seu sistema e quais entradas ser˜ao consideradas incorretas. Neste ´ultimo caso, deve-se especificar qual ser´a o comportamento do sistema.
4. Um diagrama detalhando a arquitetura do sistema.
Note o seguinte requisito extra: no processamento de v´arios arquivos XML de entrada especificados na linha de comando, cada arquivo dever´a ser tratado por um thread distinto. Apresente uma discuss˜ao no material entregue nesta primeira fase sobre as vantagens e desvantagens de tal pro- cedimento.
Fase 2 — Implementa¸c˜ao (prazo: 2,5 semanas)
Na segunda fase vocˆe dever´a implementar o sistema completo. Dever˜ao ser entregues:
2
1. O c´odigo fonte de seu sistema.
2. Um manual do usu´ario. Indique tamb´em os pr´e-requisitos de funcio- namento do seu sistema (processadores XML, drivers ODBC, banco de dados, etc. bem como suas respectivas vers˜oes). Complementar os cen´arios de funcionamento apresentado na fase anterior com as ins- tru¸c˜oes SQL geradas pelo sistema e a resposta obtida.
3. A arquitetura revista de seu sistema, indicando as altera¸c˜oes em rela¸c˜ao
`
a fase inicial do projeto.
4. Uma descri¸c˜ao das principais estruturas de dados de seu programa, indicando de que forma elas se relacionam com a arquitetura.
5. Modelo de dados (diagrama Entidade-Relacionamento) e seu respec- tivo modelo f´ısico implementado (esquema).
Bancos de Dados Livres
Bancos de dados livres e gratuitos podem ser encontrados nos seguintes endere¸cos:
MySQL: www.mysql.com
Postgresql: www.postgresql.org
3