FASAM – Faculdade Sul-Americana Sistemas de Informação

Banco de Dado I

Aluno: Daniel Almeida Fagundes – 05.0343/2008-1 Professor: André

Poderíamos dizer que normalização é um conjunto de regras que o banco deve seguir. Exemplo de normalização de dados. que tenha relação com a tabela de clientes. Nesse caso a tabela telefones teria como chave estrangeira a chave primaria da tabela clientes. Uma relação estará na Primeira forma normal 1FN. Se telefone é um campo na tabela clientes. não devem existir repetições ou campos com mais de um valor. Esses dois objetivos são importantes para reduzir o espaço consumido por um banco de dados e garantir que seus dados sejam guardados de uma forma lógica. Formas Normais O processo de normalização exige a aplicação de uma série de regras sobre as tabelas de um banco de dados. Primeira forma normal Considere a tabela cliente abaixo: . apesar de existirem mais (Aqui serão passadas resumidamente as 3 primeiras formas normais). Os objetivos da normalização são: eliminar dados redundantes (como um mesmo dado em mais de uma tabela) e garantir que as dependências dos dados façam sentido (apenas dados relacionados devem ser guardados na tabela). Na prática são usadas 3 dessas formas normais. Em outras palavras podemos definir que a primeira forma normal não admite repetições ou campos que tenha mais que um valor. Essas regras são chamadas de Formas Normais. Indo mais a fundo. ou seja. A chave primária da nova entidade será obtida pela concatenação da chave primária da entidade inicial e a do grupo repetitivo. então o banco não está na primeira forma normal. a normalização é um processo de organizar os dados de um banco de forma eficiente. Um cliente pode ter mais de um telefone. se e somente se todos os domínios básicos contiverem somente valores atômicos (não contiver grupos repetitivos). c) Criar uma nova entidade com a chave primária da entidade anterior e o grupo repetitivo. os atributos de sua relação devem ser atômicos (único valor). Vamos pegar como exemplo um banco onde temos cliente e telefone. b) Identificar o grupo repetitivo e removê-lo da entidade. 1FN Para um banco estar na primeira forma normal. Uma forma de normalizar para a 1FN seria criando outra tabela. Procedimentos:    a) Identificar a chave primária da entidade. Uma solução para colocar um banco na primeira forma normal é usar Entidade Fraca. para inserir os telefones.

logo ela não está na primeira forma normal. não está na 1ª forma normal Analisando teremos: Todos os clientes possuem Rua. ou seja. e essas informações estão na mesma célula da tabela. deveremos colocar cada informação em uma coluna diferente. Veja o resultado a seguir: Tabela na primeira forma normal . a tabela ainda não está na primeira forma normal. como no exemplo a seguir: Tabela ainda não está na primeira forma normal Mesmo com o ajuste acima. Para normalizar. CEP e Bairro. pois há clientes com mais de um telefone e os valores estão em uma mesma célula. Para normalizar será necessário criar uma nova tabela para armazenar os números dos telefones e o campo-chave da tabela cliente.Cliente Código_cliente Nome Telefone Endereço Agora a tabela com os dados: Tabela desnormalizada.

principalmente quando há poucos casos de repetição. contudo é possível manter a tabela original. . como exemplo o campo telefone ficaria assim: 11-3400-3563 e 19-3500-9650. 2FN Para uma tabela estar na segunda forma normal ela deve estar na 1FN e seus atributos que não fazem parte da chave primária composta devem ter dependência funcional total com a chave. criando tabelas separadas com os dados que dariam mais de uma linha na tabela e relacionando essa nova tabela com a antiga por meio de chave estrangeira. admitindo-se valores duplos em uma mesma coluna. Neste caso a tabela ficaria desnormalizada. mas muitos acabam preferindo assim. Podemos resumidamente dizer que conseguimos alcançar a segunda forma normal deixando uma tabela na 1FN.Tabela na 1ª forma normal No exempo acima foi gerado uma segunda entidade para que a primeira forma normal fosse satisfeita.

porém não depende de N_pedido que é a chave primária da tabela. então não é necessário que ele exista na tabela de produtos. pois se houver alteração no nome do produto teremos que alterar em todos os registros da tabela venda. portanto não está na segunda forma normal. Se o nome do produto já existe na tabela produtos. A chave primária da nova entidade será o atributo do qual os atributos do qual os atributos removidos são funcionalmente dependentes. Isto gera problemas com a manutenção dos dados. Exemplo de segunda forma normal Considere a tabela vendas abaixo: Vendas N_pedido Código_produto Produto Quant Valor_unit Subtotal Agora a tabela com os dados: Tabela não está na segunda forma normal Analisando teremos: O nome do produto depende do código do produto. A segunda forma normal trata destas anomalias e evita que valores fiquem em redundâcia no banco de dados. Para normalizar esta tabela teremos de criar a tabela Produto que ficará com os atributos Código_produto e produto e na tabela Venda manteremos somente os . Procedimentos:   a) Identificar os atributos que não são funcionalmente dependentes de toda a chave primária.Uma tabela está na Segunda Forma Normal 2FN se ela estiver na 1FN e todos os atributos não chave forem totalmente dependentes da chave primária (dependente de toda a chave e não apenas de parte dela). b) Remover da entidade todos esses atributos identificados e criar uma nova entidade com eles.

código_produto. Uma tabela está na Terceira Forma Normal 3FN se ela estiver na 2FN e se nenhuma coluna não-chave depender de outra coluna não-chave. Exemplo de normalização na terceira forma normal Considere a tabela abaixo: . Não deve existir dependência funcional com nenhum outro atributo que não seja a chave. valor_unit e subtotal. A chave primária da nova entidade será o atributo do qual os atributos removidos são funcionalmente dependentes. a tabela precisa primeira estar na 2FN (o que significa que obviamente também está na 1FN) e ter os atributos de suas relações com dependências funcionais apenas da chave.atributos N_pedido. Veja o resultado abaixo: Tabela na segunda forma normal Tabela na 2ª forma normal Conforme visto na Primeira forma normal. 3FN Para estar na terceira forma normal. Procedimentos:   a) Identificar todos os atributos que são funcionalmente dependentes de outros atributos não chave. quant. quando aplicamos normalização é comum gerar novas tabelas a fim de satisfazer as formas normais que estão sendo aplicadas. b) Removê-los. Na terceira forma normal temos de eliminar aqueles campos que podem ser obtidos pela equação de outros campos da mesma tabela.

a normalização torna a tabela mais otimizada e sem anomalias. desta forma a coluna subtotal depende de outras colunas não-chave.Tabela não está na terceira forma normal Considerando ainda a nossa tabela Venda. pois o subtotal é o resultado da multiplicação Quant X Valor_unit. . como no exemplo a seguir: Tabela na terceira forma normal Conforme visto nos post primeira forma normal e segunda forma normal. Veja também o post Normalização de dados e as formas normais. veremos que a mesma não está na terceira forma normal. Para normalizar esta tabela na terceira forma normal teremos de eliminar a coluna subtotal.

.907.3472.8 '0.8492.'03/.342.. 3472./..3472.39 '.. .80:7  %.1472.-0.4:3.4":. 4314720..  438/07.-0.3472.907.3472..1472./0503/0/04:97.4243400254.-0.9.894348548957207.%. ... 54848:-949.07.34089E3.8.34089E3.7089.3472.9070248/0023.F4708:9.1472.9.2. .3472.7.07.8:-949.2082.-0.4/0/..8  ..3.1472.0802. 907.2:95.0702486:0.3488.7.834 .2-F24 5489472.8:-949./4/.-0.9.080:3/.49473.3/4.0  !.9.1472..81472.4:3.07.1472.3/.907.47*:39 /089.07.3.83472. .1472./480.4:3.3472.

Sign up to vote on this title
UsefulNot useful