Sei sulla pagina 1di 5

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.

Bacalhau Título Autor Editorial Nome do Leitor Data de


Desenvolvimento
Variável Monte Pérez Gómez,
1001 Murray Spiegel 15/04/2005
complexa McGraw Juan
1004 Visual Basic 5 E. Petroustsos Anaya Ríos Terán, Ana 17/04/2005
Monte
1005 Estatística Murray Spiegel Rocha, Renê 16/04/2005
McGraw
Nancy
Universidade Garcia Roque,
1006 Greenberg e Oracle Corp. 20/04/2005
Oracle Luís
Priya Nathan
Monte Pérez Gómez,
1007 Clipper 5,01 Ramalho 18/04/2005
McGraw Juan

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.

Conforme mostrado na tabela a seguir.

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

Como você pode ver, há alguma redundância característica do 1NF.


A Segunda Forma Normal (2FN) pede que não haja dependências parciais ou, em outras palavras, todos os
atributos não-chave devem depender inteiramente da chave primária.

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

Bacalhau Título Autor Editorial


1001 Variável complexa Murray Spiegel Monte McGraw
1004 Visual Basic 5 E. Petroustsos Anaya
1005 Estatística Murray Spiegel Monte McGraw
1006 Universidade Oracle Nancy Greenberg Oracle Corp.
1006 Universidade Oracle Priya Nathan Oracle Corp.
1007 Clipper 5,01 Ramalho Monte McGraw

A nova tabela conterá apenas dados do leitor.

CodLecto Patern Matern Nomes


r o al
501 Perez Gomez Juan
502 Rios Terã Anna
503 Rocha Rene
504 Garcia Torre Luís

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.

Esta tabela é mostrada abaixo:


Bacalha CodLecto Data de
u r Desenvol
vimento
15/04/200
1001 501 5
17/04/200
1004 502 5
16/04/200
1005 503 5
20/04/200
1006 504 5
18/04/200
1007 501 5

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.

CodLector Paterno Materna Nomes


l
501 Perez Gomez Juan
502 Rios Terã Anna
503 Rocha Rene
504 Garcia Torre Luís

Bacalha CodLect Data de


u or Desenvol
vimento
15/04/200
1001 501 5
17/04/200
1004 502 5
16/04/200
1005 503 5
20/04/200
1006 504 5
18/04/200
1007 501 5

Potrebbero piacerti anche