0% acharam este documento útil (0 voto)
19 visualizações16 páginas

Normalização

O documento aborda o conceito de normalização de dados, introduzido por Edgar F. Codd, e suas implicações na eliminação de anomalias em bancos de dados. Ele descreve as formas normais (1FN, 2FN e 3FN) e como aplicá-las para evitar problemas como redundâncias e dependências funcionais. Exemplos práticos são fornecidos para ilustrar a transição de tabelas não normalizadas para estruturas normalizadas.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
19 visualizações16 páginas

Normalização

O documento aborda o conceito de normalização de dados, introduzido por Edgar F. Codd, e suas implicações na eliminação de anomalias em bancos de dados. Ele descreve as formas normais (1FN, 2FN e 3FN) e como aplicá-las para evitar problemas como redundâncias e dependências funcionais. Exemplos práticos são fornecidos para ilustrar a transição de tabelas não normalizadas para estruturas normalizadas.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Normalização

Prof. Luciano
lgmang@[Link]
Conceito
O conceito de normalização foi introduzido pelo
Prof. Edgar F. Codd em 1970. O Analista da
IBM desenvolveu uma série de estudos sobre
como tratar os dados, a fim de eliminar as
anomalias e as suas consequências
desagradáveis para as organizações.

Um modelo desnormalizado pode gerar alguns


problemas do tipo:
– anomalias de atualização (inclusão, alteração e exclusão)
– Grupos repetitivos de dados (multivalorados)
– Redundâncias de dados
– Perdas acidentais de informação
– Dificuldade de representação de fatos
Tabela NÃO Normalizada
PEDIDO
Para o nosso estudo de caso, Num_Pedido
utilizaremos a tabela Não Prazo_Entrega
normalizada de PEDIDO. Nome_Cliente
Endereço
Bairro
Cidade
CNPJ
Inscricao_Estadual
Cód_Produto
Desc_Produto
Unid_Produto
Quant_Produto
Valor_Unit_Produto
Valor_Total_Produto
Valor_Total_Pedido
Cód_vendedor
Nome_Vendedor
Tabela Não Normalizada
(continuação)

PEDIDO
Código do Vendedor: 1791
Nome do Vendedor: Carlos Eduardo
Prazo de Entrega: 20 dias
Num Cliente End CNPJ Insc Est Cód Un Quant Descrição Valor Total Total
Ped. Produto Unit. Produto Pedido

3445 TCA... R. Matos 1111111 111111 45 L 20 Álcool 5,00 100,00 1670,00

3445 TCA... R. Matos 1111111 111111 130 M 2 Tecido 20,00 40,00 1670,00

3445 TCA... R. Matos 1111111 111111 35 Kg 30 Farinha 1,00 30,00 1670,00

3445 TCA... R. Matos 1111111 111111 78 Kg 50 Cimento 30,00 1500,00 1670,00

2610 Lopes... R. 127 2323232 232323 45 L 20 Álcool 5,00 100,00 2030,00

2610 Lopes... R. 127 2323232 232323 78 Kg 47 Cimento 30,00 1410,00 2030,00

2610 Lopes... R. 127 2323232 232323 21 Kg 20 Prego 5,00 100,00 2030,00

2610 Lopes... R. 127 2323232 232323 98 L 15 Tinta Azul 25,00 375,00 2030,00

2610 Lopes... R. 127 2323232 232323 90 L 15 Cola 3,00 45,00 2030,00

5675 Mario... [Link] 7878787 787878 45 L 48 Álcool 5,00 240,00 1910,00

5675 Mario... [Link] 7878787 787878 98 L 35 Tinta Azul 25,00 875,00 1910,00

5675 Mario... [Link] 7878787 787878 43 M 25 Arame 3,00 75,00 1910,00

5675 Mario... [Link] 7878787 787878 51 M 40 Fio elétrico 13,00 520,00 1910,00

5675 Mario... [Link] 7878787 787878 90 L 60 Cola 3,00 180,00 1910,00

5675 Mario... [Link] 7878787 787878 35 Kg 20 Farinha 1,00 20,00 1910,00


Anomalias

De inclusão: ao ser incluído um novo cliente,


o mesmo tem que estar relacionado a uma
venda;

De Exclusão: ao ser excluído um cliente, os


dados referentes as suas compras serão
perdidos;

De Alteração: caso algum fabricante de


produto altere a faixa de preço de um grupo de
produtos, será preciso percorrer toda a tabela
para realizar múltiplas alterações.
Primeira Forma Normal (1FN)

Uma estrutura de dados encontra-se na


primeira forma normal se todas as suas
colunas ocorrerem uma única vez, não
existindo grupos repetitivos, ou seja,
multivalorados.
É preciso identificar a chave primária da
tabela, identificar a(s) coluna(s) que
tem(êm) dados repetidos e removê-la(s),
criar uma nova tabela com a chave
primária para armazenar o dado repetido
e, por fim, criar uma relação entre a
tabela principal e a tabela secundária.
Primeira Forma Normal (1FN)

Exemplo:
CLIENTE
CPF (PK)

Nome EMAIL
Data_Nascimento
email (PK)
Endereço
Bairro CPF (FK)
Cidade
Estado
UF
Primeira Forma Normal (1FN)

Uma estrutura de dados encontra-se na


primeira forma normal se todas as suas
colunas ocorrerem uma única vez, não
existindo grupos repetitivos, ou seja,
multivalorados.
Os grupos repetitivos, se houverem,
devem ser extraídos, criando-se uma nova
tabela derivada da primeira, na qual
deverá possuir uma chave primaria
composta. Veja o exemplo a seguir:
Primeira Forma Normal (1FN)

Ao aplicarmos a 1FN sobre a tabela PEDIDO,


obtemos mais uma tabela chamada
ITEM_DE_PEDIDO, contendo os campos
repetitivos e a chave composta.
PEDIDO
Num_Pedido (PK)
ITEM_DE_PEDIDO
Prazo_Entrega
Num_Pedido (FK)
Nome_Cliente
Cód_Produto
Endereço
Bairro Desc_Produto
Cidade Unid_Produto
CNPJ Quant_Produto
Valor_Unit_Produto
Inscricao_Estadual
Valor_Total_Produto
Valor_Total_Pedido
Cód_vendedor
Nome_Vendedor
Dependência Funcional

No modelo matemático, diz-se que Y=F(X), se para cada valor


de X existe um, e somente um, valor correspondente de Y.
No modelo de dados, vamos encontrar a dependência funcional
quando um atributo depende apenas da chave primaria.
Assim, considerando a tabela “FUNCIONARIO”, cuja chave
primaria e o NUMERO DE MATRICULA, tem-se que:
NOME = f (MATRICULA);
SALARIO = f (MATRICULA);
CARGO = f (MATRICULA);
DATA DE NASCIMENTO = f (MATRICULA)
Deste modo, dado um valor de matricula do funcionário, existe
apenas um conjunto de informações sobre um funcionário que
se relacione com aquela matricula. Este conjunto individualiza
ou particulariza cada um dos funcionários.
Dependência Funcional
Total e Parcial

A dependência funcional parcial é a


dependência funcional de um atributo em
relação a uma parte da chave primaria da
entidade, caso ela seja composta por mais de
um atributo.
Se uma entidade “E1” possui como chave
primaria a concatenação dos atributos A e B, e
um atributo C depende funcionalmente apenas
de B, então diz-se que o atributo C depende
parcialmente da chave primaria.
Dependência Funcional
Total e Parcial
Exemplo: CONTA
N_CONTA
COD_AGENCIA

CIDADE_AGENCIA
GERENTE_AGENCIA
SALDO

Neste caso, a CIDADE_AGENCIA e GERENTE_AGENCIA


dependem apenas do COD_AGENCIA, ou seja, de parte
da chave primaria. Portanto, Dependência Funcional
Parcial.

Por outro lado, o campo SALDO depende de toda a chave


primaria. Portanto, Dependência Funcional Total.
Dependência Funcional Transitiva

A dependência funcional transitiva existe


quando um ou mais atributos, que não fazem
parte da chave primária, dependem de outro
atributo que também não pertence a chave
primária.

Na entidade PEDIDO, os campos ENDEREÇO,


CIDADE, UF, CNPJ, INSCRIÇÃO ESTADUAL são
dependentes transitivos do campo CLIENTE.
Assim como o campo NOME DO VENDEDOR é
dependente transitivo do campo CODIGO DO
VENDEDOR.
Segunda Forma Normal (2FN)

Uma estrutura de dados encontra-se na


segunda forma normal se já estiver na
primeira forma normal (1FN) e se todas as
suas colunas que não são chave primaria não
apresentarem a anomalia da dependencia
funcional parcial em relação a chave primaria.
Nesse caso, deve-se criar uma nova estrutura
de dados que contenha os atributos que
dependem de parte da chave primaria,
eliminando-se essa dependência funcional
parcial.
Segunda Forma Normal (2FN)

A tabela ITEM_DE_PEDIDO apresenta uma chave


primária concatenada e podemos notar que os campos
UNID_PRODUTO, DESC_PRODUTO e VALOR_UNIT_
PRODUTO dependem de forma parcial do campo
CODIGO_PRODUTO.

Tabela na 1FN Aplicando a 2FN sobre a


tabela ITEM_DE_PEDIDO.
ITEM_DE_PEDIDO
Num_Pedido (PK)(FK)
Código_Produto (PK) ITEM_DE_PEDIDO PRODUTO
Desc_Produto Num_Pedido (PK)(FK) Codigo_Produto (PK)
Unid_Produto Codigo_Produto (PK)(FK)
Desc_Produto
Quant_Produto
Quant_Produto Unid_Produto
Valor_Unit_Produto
Valor_Total_Produto Valor_Unit_Produto
Valor_Total_Produto
Terceira Forma Normal (3FN)
Uma estrutura de dados encontra-se na terceira forma
normal se já estiver na segunda forma normal (2FN) e
se não existir anomalia da dependência transitiva.

Tabela na 2FN Aplicando a 3FN


PEDIDO PEDIDO
Num_Pedido (PK) Num_Pedido (PK) CLIENTE
Prazo_Entrega Prazo_Entrega Código_Cliente(PK)
Nome_Cliente Valor_Total_Pedido
Endereço Nome_Cliente
Codigo_Cliente (FK) Endereço
Bairro Codigo_Vendedor (FK) Bairro
Cidade Cidade
CNPJ CNPJ
Insc_Estadual VENDEDOR INSC_ESTADUAL
Valor_Total_Pedido Codigo_Vendedor
Cód_vendedor
Nome_Vendedor
Nome_Vendedor

Você também pode gostar