1. Objetivo
Desenvolver a Versão 1.0 de um Protótipo de
Aplicativo de Banco de Dados (ABD), na 3a Forma Normal (3FN),
no contexto da sua temática escolhida, visando melhorar os tempos
de acesso, em termos de armazenamento e recuperação de
Informações, e reduzir as anomalias de atualizações e
inconsistências.
2. Procedimento
Inicialmente descrevemos o sistema através de uma tabela unica de atributos que podem ser divisíveis, o que constitui a Forma Normal 0:
EMBARCACAO
{ *Emb_Ident, Emb_Proprietario, Emb_Carga, Emb_Local, Emb_Tipo, ....... . .......... .. . . . .Emb_Caracteristicas}
Proseguimos com o processo de normalização. Com o intuito agora de tornar os atributos como sendo indivisíveis, transformamos a descrição a cima para a sua
Embarcacao
{ *Emb_Registro, Emb_Nome, Emb_DataFabricacao, Emb_Pais,
*Emb_NumProprietario, Emb_NomeProprietario, Emb_CNPJProprietario, Emb_CPFProprietario
*Emb_NumCarga, Emb_TipoCarga, Emb_PesoCarga, Emb_PerigoCarga
*Emb_NumPassageiro, Emb_CPFPassageiro, Emb_NomePassageiro
*Emb_NumLocalizador, *Emb_Lat, *Emb_Long, *Emb_Alt, *Emb_Tempo
*Emb_NumTipo, Emb_NomeTipo, Emb_PropositoTipo
*Emb_NumDesc, Emb_Peso, Emb_Largura, Emb_Comprimento, Emb_Altura, Emb_Material, Emb_Propulsao, Emb_MaxTripulacao
}
Para remover uma possível anomalia de atualização e exclusão, é preciso converter uma relação da 1FN para 2FN. Esta requer que todos os atributos não chave contenham informações que se referem a chave inteira, e não somente a parte do registro.Obtemos então a sua
Embarcacao
{ *Emb_Registro, Emb_NumDesc Emb_Nome, Emb_DataFabricacao, Emb_Pais, Emb_Peso, Emb_Largura, Emb_Comprimento, Emb_Altura,Emb_Material, Emb_Propulsao, Emb_MaxTripulacao, *Emb_NumLocalizador,*Emb_Lat, *Emb_Long, *Emb_Alt, *Emb_Tempo }
Proprietario
{ *Pro_Num, Pro_Nome, Pro_CNPJ, Pro_CPF}
Passageiro
{ *Pas_Num, *Pas_CPF, Pas_Nome }
Tipo
{ *Tip_Num, Tip_Nome, Tip_Proposito }
Carga
{ *Car_Num, Car_Tipo, Car_Peso, Car_Perigo }
Para acabar de remover as possíveis anomalias, prosseguimos para a :
Embarcação
{ *Emb_Registro, Emb_NumDesc, Emb_Nome, Emb_DataFabricacao, Emb_Pais}
Descricao
{ *Des_Num, Des_Peso, Des_Largura, Des_Comprimento, Des_Altura, Des_Material, Des_propulsao, Des_MaxTripulacao }
Passageiro
{ *Pas_Num, Pas_CPF, Pas_Nome }
Carga
{ *Car_Num, Car_Tipo, Car_Peso, Car_Perigo }
Localizacao
{ *Loc_Num, *Loc_Latitude, *Loc_Longitude, *Loc_Altitude, *Loc_Tempo }
Proprietario
{ *Pro_Num, Pro_Nome, Pro_CNPJ, Pro_CPF}
Tipo
{ *Tip_Num, Tip_Nome, Tip_Proposito }
Obtivemos então o seguinte protótipo de aplicativo de banco de dados, juntamente com suas 3 tuplas para teste ( Agradecimento ao aluno Jordan Lombardi pelo template de apresentação ) :
3. Conclusão
Concluimos que a obtenção da FN3 foi um sucesso. Em alguns momentos o processo exigiu certo pensamento sobre as consequências de algumas mudanças e desintegração de tabelas em novas entidades. Acredita-se no entanto que a normalização do banco de dados será extremamente util para garantir a ausência de anomalias no produto final. |