Trabalho 1: Engenharia reversa de banco de dados relacional
Objetivos
O objetivo geral deste trabalho é exercitar o processo de construção de um modelo conceitual a partir do modelo lógico de um banco de dados existente (engenharia reversa de modelos). Como objetivos específicos, tem-se: examinar exemplos reais de aplicações de bancos de dados, utilizar ferramentas CASE (Computer Aided Software Engineering) para trabalho com bancos de dados e conhecer a linguagem SQL através de exemplos.
Metodologia
- Este trabalho será realizado individualmente ou em duplas.
- Cada dupla deve escolher um software de código-aberto que utilize banco de dados. Alguns exemplos são:
- ferramentas para fóruns de discussão (p.ex.: phpBB, etc.);
- gerenciadores de conteúdo Web (p.ex.: WordPress ou outras ferramentas no site OpenSourceCMS);
- gerenciadores de projetos (p.ex.: dotProject, ferramentas listadas em Java-source.net, etc.);
- Wiki's que usam SGBDs (p.ex.: ferramentas listadas no site WikiMatrix);
- gerenciadores de coleções (p.ex. Open Media Collectors Database, etc.);
- ou qualquer outro software de código-aberto que use BD, como por exemplo Verbos, etc.
- Cada dupla deve confirmar a aplicação escolhida com a professora, por e-mail. Não será permitido mais de um trabalho com a mesma aplicação. Aplicativos já escolhidos: WordPress (V. Losekan e Jorge Titoneli), phpBB (Fabrício Severo e Pablo Flores), DotProject (Carine Wontroba e Débora Oliveira), myBB (Fabiano Azevedo?).
- Antes de iniciar o processo de engenharia reversa, estudar a seção 5.3 do Heuser (Engenharia Reversa de Modelos Relacionais). Deve-se utilizar essa seção como referência para as etapas seguintes, seguindo seus passos sempre que possível.
- Consultar a documentação e o código do software escolhido, buscando identificar o esquema do banco de dados. Geralmente há um arquivo com comandos SQL que implementam o esquema. Você pode também instalar o aplicativo para melhor analisá-lo.
- Verificar cada tabela do esquema com relação às formas normais 1FN, 2FN e 3FN. Se houver tabelas que não atendam aos requisitos dessas formas normais, busque identificar motivos para isso e/ou elaborar alternativa normalizada.
- A partir do esquema do banco, gerar um modelo conceitual (ER ou ER estendido) equivalente, com entidades, atributos, relacionamentos e cardinalidades mínimas e máximas. Esse modelo será representado na forma de um diagrama.
- Pode-se utilizar ferramentas que auxiliam na engenharia reversa, como por exemplo o DBDesigner.
Instruções para entrega
- O trabalho deve ser inserido no portfolio de cada aluno até dia 10/10/08.
- Este componente do portfolio deve ser estruturado conforme as instruções gerais para portfolios. A seção "Resultado" deverá conter no mínimo:
- o diagrama ER gerado, em formato para visualização (PDF, JPG, etc.)
- o resultado da verificação das formas normais, indicando a forma normal em que se encontra cada tabela e incluindo observações caso existam tabelas desnormalizadas