Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Exemplo de Normalização de Biblioteca
Exemplo de Normalização de Biblioteca
O exercício a seguir tenta afirmar o conhecimento de normalização com um exemplo simplificado de um banco
de dados para uma pequena biblioteca.
Esta tabela não atende ao requisito da Primeira Forma Normal (1FN) de ter apenas campos atômicos, uma vez
que o nome do leitor é um campo que pode (e deve ser) decomposto em sobrenome paterno, sobrenome
materno e prenomes.
1NF
Bacalhau Título Autor Editorial Paterno Materna Nomes Data de
l Desenvolv
imento
Variável Monte
1001 Murray Spiegel Perez Gomez Juan 15/04/2005
complexa McGraw
1004 Visual Basic 5 E. Petroustsos Anaya Rios Terã Anna 17/04/2005
Monte
1005 Estatística Murray Spiegel Rocha Rene 16/04/2005
McGraw
Universidade Nancy Oracle
1006 Garcia Torre Luís 20/04/2005
Oracle Greenberg Corp.
Universidade Oracle
1006 Priya Nathan Garcia Torre Luís 20/04/2005
Oracle Corp.
Monte
1007 Clipper 5,01 Ramalho Perez Gomez Juan 18/04/2005
McGraw
Atualmente em nossa tabela temos várias dependências parciais se considerarmos o código do livro como um
atributo chave.
Por exemplo, o título é completamente identificado pelo código do livro, mas o nome do leitor não tem realmente
dependência desse código, então esses dados devem ser movidos para outra tabela.
2FN
Criamos uma tabela para conter os dados do leitor e também tivemos que criar a coluna CodLector para
identificar cada um de forma única.
No entanto, essa nova disposição da base de dados precisa de outra tabela para manter as informações de
quais livros são emprestados a quais leitores.
Para a Terceira Forma Normal (3FN), a relação deve estar em 2FN e, além disso, os atributos não-chave
devem ser mutuamente independentes e completamente dependentes da chave primária.
Lembre-se também que dissemos que isso significa que as colunas na tabela devem conter apenas
informações sobre a entidade definida pela chave primária e, portanto, as colunas na tabela devem conter
dados sobre apenas uma coisa.
Em nosso exemplo em 2FN, a primeira tabela retém informações sobre o livro, autores e editores, portanto,
devemos criar novas tabelas para atender aos requisitos do 3FN.
3FN
Bacalhau Título
1001 Variável complexa
1004 Visual Basic 5
1005 Estatística
1006 Universidade Oracle
1007 Clipper 5,01
CodAutor Autor
801 Murray Spiegel
802 E. Petroustsos
Nancy
803 Greenberg
804 Priya Nathan
806 Ramalho
CodEditorial Editorial
901 Monte McGraw
902 Anaya
903 Oracle Corp.
Embora tenhamos criado novas tabelas para que cada uma tenha apenas informações sobre uma entidade,
também perdemos informações sobre qual autor escreveu qual livro e as editoras correspondentes, então
devemos criar outras tabelas que relacionem cada livro com seus autores e editoras.
Bacalhau codAutor
1001 801
1004 802
1005 801
1006 803
1006 804
1007 806
Bacalhau codEditorial
1001 901
1004 902
1005 901
1006 903
1007 901
E o restante das tabelas não precisa de modificação.