.:: ELC119 - Fundamentos de Bancos de Dados ::.

Aluno: Lucas Antunes Tambara
Matrícula: 2710246
E-mail: ltambara@inf.ufsm.br
Disciplina: Fundamentos de Bancos de Dados (ELC119)
Semestre: 2/2008

.:: Trabalho 01::.

Alunos: Lucas Antunes Tambara (2710246) e Vinícius Stein Dani (2711169).

Título: Engenharia reversa de bancos de dados relacionais.

Data: 12/10/2008.

Motivação: Exercitar as técnicas de engenharia reversa de bancos de dados relacionais usando um software de código aberto.

Enunciado:
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.

Descrição:
Foi escolhido o software Plogger 1.0b3 por se mostrar eficiente em suas funcionalidades mesmo se valendo de um banco de dados tão enxuto.

Resultados:

Esquema do banco de dados:
O banco de dados do Plogger é simples e eficiente. Ele consiste originalmente em oito tabelas, mas verificou-se que a tabela plogger_tag e alguns campos da tabela plogger_pictures (campos com o prefixo “EXIF_”) não eram usados nesta versão (possivelmente eles podem ter sido usados em alguma versão mais atual) e foram removidos da nossa análise.
A tabela plogger_collections armazena dados sobre as coleções do usuário, a plogger_albums armazena dados sobre os álbuns que fazem parte de uma coleção, a plogger_pictures guarda informações sobre as fotos que compõe um álbum ou que serão utilizadas como thumbnails, a plogger_thumbnail_config possui dados sobre esses thumbnails thumbnails usados nas imagens do sistema, a plogger_comments armazena os comentários das fotos. As tabelas plogger_config e plogger_tag2picture guardam dados de configurações do sistema.

Diagrama:


Formas normais:
Observou-se que as relações entre as tabelas já se encontram na normalizadas (terceira forma normal).

Relacionamentos:
Relação 01
Cardinalidade mínima: 1:1 (porque ao iniciar o programa ele já inicia com uma coleção e um álbum).
Cardinalidade máxima: 1:N (porque uma coleção pode possuir vários álbuns).
Relação 02
Cardinalidade mínima: 1:0 (ao instalar o programa, o mesmo inicia com uma coleção contendo um álbum vazio).
Cardinalidade máxima: 1:N (um álbum contém várias fotos).
Relação 03
Cardinalidade mínima: 1:0 (uma coleção pode não ter thumbnail inicialmente).
Cardinalidade máxima: 1:1 (uma coleção pode ter no máximo um thumbnail).
Relação 04
Cardinalidade mínima: 1:1 (ao criar um álbum, deve-se atribuir ao mesmo uma imagem a qual será seu thumbnail).
Cardinalidade máxima: 1:1 (um álbum só pode possuir um thumbnail).
Relação 05
Cardinalidade mínimo: 1:1 (não há foto sem, ao menos, um thumbnail).
Cardinalidade máxima: 1:N (uma imagem pode conter vários thumbnails).
Relação 06:
Cardinalidade mínima: 1:0 (uma foto pode não ter comentários).
Cardinalidade máxima: 1:N (uma foto pode conter vários comentários atrelados a ela).
Relação 07:
Cardinalidade mínima: 1:1 (ao criar um álbum, deve-se atribuir ao mesmo uma imagem a qual será seu thumbnail).
Cardinalidade máxima: 1:1 (um álbum só pode possuir um thumbnail).


Reflexão: Com este trabalho, pode-se exercitar as técnicas de engenharia reversa de bancos de dados relacionais e também analisar casos reais de aplicação de bancos de dados em softwares.

Download: PDF, XML.