MAC - 5853
Desenvolvimento de Sistemas de Computação
Verao 2004/2005
Profs. João Eduardo Ferreira, Fabio Kon e Marcelo Finger
Formas de Persistências de um Banco de Dados Bibliográco
Neste projeto, desenvolveremos um pequeno sistema para avaliar as for- mas de persistência de dados, utilizando como exemplo o mesmo banco de dados bibliográcos desenvolvido na última edição do exame em questão. Os dados, referentes as informações bibliográcas sobre livros, revistas, CDs, vídeos, etc. estarão armazenados em diversos arquivos XML e deverão ser processados pelo seu sistema de forma a serem armazenados no banco de dados. Serão utilizados os modelos Relacional e Orientado a Objetos para armazenamento de dados do sistema a ser desenvolvido.
Cada arquivo XML de entrada pode possuir um número qualquer de entradas dos tipos seguintes descrevendo exemplares de um acervo:
1. livro: incluindo título, autor, editor, editora, ano, ISBN, número de páginas.
2. série de livros: incluindo título da série, organizador e lista de ISBNs dos livros que compõem a série.
3. exemplar de revista: incluindo título, editora, mês, ano, número e volume.
4. revista: incluindo título, editora e lista de pares (número,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ê primeramente deve criar um modelo conceitual de dados que seja capaz de abstrair e interrelacionar corretamente os conceitos de livro, livro-serie, exemplar de livro, revista, vídeo. Reita sobre o conceito de acervo de uma biblioteca. Para representar o modelo conceitual você usará a notação MER-X ou UML.
1
Após criado o modelo conceitual você criará dois modelos físicos para os gerenciadores de dados Relacional e Orientado a Objetos. A implementação dos modelos físicos não deverá impactar os "métodos"para persistência de dados. Em outras palavras, o requisito principal do projeto a ser atendido é fato de que os "métodos de persitência"sejam transparentes aos modelos de dados físicos.
Assim seu sistema deverá ler um ou mais arquivos XML como entrada e
"povoar"os dois modelos físicos de dados. Seu sistema também deverá gerar um conjunto de instruções, na linguagem de acesso aos bancos de dados (Relacional e Objetos).
As instruções de persistência de dados devem ser tanto armazenadas num arquivo texto para posterior consulta quanto realmente submetidas a um banco de dados de sua escolha: MySQL, PostgreSQL, Access, ObjectDB, Java/JDO, Db4, Jasmine, entre outros.
Observe que não se trata apenas de se utilizar de uma biblioteca de seri- ação de objetos em disco. Espera-se que sua solução inclua um gerenciador de dados relacional e um gerenciador de objetos.
Importante observar que o sistema deverá atender às necessidades de extração de dados contidos em arquivos no formato XML para inserí-los nos bancos de dados relacional e objetos. Por questões de escopo do projeto NÃO É NECESSÁRIO que o sistema realize a operação inversa, ou seja, extrair dados do banco de dados e formatá-los em arquivos XML. Para provar que os bancos de dados foram povoados, basta a implementação de consultas nos respectivos bancos de dados.
A implementação deve ser realizada preferencialmente nas linguagens C++, Java ou Smalltalk. Se você preferir desenvolver o sistema em outra linguagem, consulte os professores. O trabalho deve ser desenvolvido em duas fases.
Fase 1 Projeto (prazo: 03/02/2005)
Nesta primeira fase você deve apresentar o projeto de seu sistema. Este projeto deverá conter:
1. Um diagrama detalhando a arquitetura do sistema.
2. O modelo conceitual de dados.
3. Os modelos físicos de dados(Relacional e Objetos).
4. Um conjunto de exemplos e cenários de operação do sistema, mostrando, para cada um dos cenários, quais os comandos a serem enviados para
2
o banco de dados e o devido tratamento do retorno aos comandos en- viados.
Note os seguintes requisitos da primeira fase:
1. No processamento de vários arquivos XML de entrada especicados na linha de comando, cada arquivo deverá ser tratado por um thread distinto. Apresente uma discussão sobre as vantagens e desvantagens de tal procedimento.
2. Para as formas de persistência apresente também uma discussão das vantagens de desvantagens da utilização dos modelos relacionais e ob- jetos.
Fase 2 Implementação (prazo: 18/02/2005)
Na segunda fase você deverá implementar o sistema completo. Deverão ser entregues:
1. O código fonte de seu sistema.
2. Um manual do usuário. Indique também os pré-requisitos de funciona- mento do seu sistema (processadores XML, drivers ODBC, banco de dados, etc. bem como suas respectivas versões).
3. A arquitetura revista de seu sistema, indicando as alterações em relação à fase inicial do projeto.
4. Uma descrição das principais estruturas de dados de seu programa, indicando de que forma elas se relacionam com a arquitetura.
Bancos de Dados Livres
Bancos de dados livres e gratuitos ou versões demostrações podem ser en- contrados nos seguintes endereços:
MySQL: www.mysql.com
PostgreSQL: www.postgresql.org ObjectDB: www.objectdb.com
LinksDB: www.service-architecture.com/products
Informações sobre instalação do PostgreSQL podem ser encontradas a partir de http://malariadb.ime.usp.br/mac439/index.htm na referência
"LINKS".
3