Вы находитесь на странице: 1из 22

MODELAGEM EM

BANCO DE DADOS

NORMALIZAÇÃO

Prof. Marcos Alexandruk

UNINOVE
MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

NORMALIZAÇÃO

• Conceito introduzido em 1970 por E. F. Codd (1FN)

• Processo matemático formal fundamentado na


teoria dos conjuntos

• Aplica uma série de regras sobre as tabelas de um


banco de dados para verificar se estas foram
corretamente projetadas

© PROF. MARCOS ALEXANDRUK


MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

OBJETIVOS PRINCIPAIS

• Garantir a integridade dos dados, evitando que


informações sem sentido sejam inseridas
• Organizar e dividir as tabelas da forma mais
eficiente possível, diminuindo a redundância e
permitindo a evolução do banco de dados

© PROF. MARCOS ALEXANDRUK


NORMALIZAÇÃO

PARTE 1: CONCEITOS ÚTEIS

• Chaves
• Dependência Funcional (DF)
• Trivialidade
• Transitividade
• D F Irredutível à Esquerda
• Dependência Multivalorada
MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

CHAVES

Chave candidata: atributo ou conjunto de atributos


que são únicos para cada registro.
Cada tabela pode ter uma ou várias chaves deste tipo.

Exemplos: CODIGO, CPF, RG

© PROF. MARCOS ALEXANDRUK


MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

CHAVES

Chave primária: Escolhida entre as chaves candidatas


para ser o identificador principal da tabela.
(PK – Primary Key)

© PROF. MARCOS ALEXANDRUK


MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

CHAVES

Chaves alternativas: São as chaves candidatas que


não foram definidas como chaves primárias.

© PROF. MARCOS ALEXANDRUK


MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

CHAVES

Chave estrangeira: Atributo ou conjunto de atributos


que faz a ligação com a chave primária de outra tabela.
(FK – Foreign Key)

© PROF. MARCOS ALEXANDRUK


MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

DEPENDÊNCIA FUNCIONAL (DF)


Sempre que um atributo X identifica um atributo Y
há entre eles uma dependência funcional.
X é o determinante e Y é o dependente.
Representação:
X  Y (lê-se: X determina Y ou Y é dependente de X)
cidade  estado (estado é dependente de cidade)
estado  país (país é dependente de estado)

© PROF. MARCOS ALEXANDRUK


MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

TRIVIALIDADE
A dependência funcional trivial indica que um
determinante com mais de um atributo pode determinar
seus próprios membros quando isolados.
{banco,agencia}  banco
{banco,agencia}  agencia
A dependência funcional não trivial * indica que um
determinante identifica outro atributo qualquer.
{banco,agencia}  cidade
(cidade não faz parte do determinante)
* Esta DF é a que nos interessa no processo de normalização.

© PROF. MARCOS ALEXANDRUK


MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

TRANSITIVIDADE
Se um atributo X determina Y e se Y determina Z,
Podemos dizer que X determina Z de forma transitiva,
Isto é, existe uma dependência funcional transitiva
X para Z.
cidade  estado
estado  país
cidade  país
(cidade determina país de forma transitiva)

© PROF. MARCOS ALEXANDRUK


MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

D F IRREDUTÍVEL À ESQUERDA
O lado esquerdo de uma dependência funcional é
irredutível à esquerda quando o determinante está na
sua forma mínima, não é possível reduzir a quantidade
de atributos determinantes sem perder a dependência
funcional.
{cidade,estado}  país (Não está na forma irredutível à esquerda*)
* podemos ter somente o estado como determinante

estado  país (Está na forma irredutível à esquerda)

NOTA: Nem sempre estar na forma irredutível à esquerda significa


possuir um determinante com apenas um atributo!

© PROF. MARCOS ALEXANDRUK


MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

DEPENDÊNCIA MULTIVALORADA
O valor de um atributo determina um conjunto de valores
de um outro atributo.
{CPF}  {nome} (um nome para cada CPF)
{CPF}  {dependente} (vários dependentes para
cada CPF)
Uma dependência multivalorada é representada por:
X  Y (X multidetermina Y ou Y é multidependente de X)

© PROF. MARCOS ALEXANDRUK


MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

PARTE 1 – EXERCÍCIOS:
1. Uma escola deseja cadastrar os alunos (idade de 7 a 12 anos).
Tomando como base o seguinte conjunto {codigo,CPF,RG},
qual atributo você escolheria como Chave Primária? Por que?
5. Como seriam chamadas as outras chaves que NÃO foram
definidas como chave primária?

© PROF. MARCOS ALEXANDRUK


NORMALIZAÇÃO

PARTE 2: FORMAS NORMAIS

• 1FN – 1ª Forma Normal


• 2FN – 2ª Forma Normal
• 3FN – 3ª Forma Normal
• FNBC – Forma Normal de Boyce e Codd
• 4FN – 4ª Forma Normal
• 5FN – 5ª Forma Normal
MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

1FN – Primeira Forma Normal: D F MULTIVALORADA

Os atributos da tabela não contêm grupos de repetição (tabelas aninhadas).


A tabela a seguir NÃO está na 1FN:
Projeto
CodProj DescProj CodFunc NomeFunc CargoFunc SalFunc DtInicio
1001 Antonio Analista Sr 1800 02/01/2005
11 Alfa
1004 Daniela Analista Pl 1200 05/01/2005
12 Beta 1003 Claudio Analista Sr 1800 10/02/2005

Passando para a 1FN:

ProjFunc Projeto
CodProj CodFunc NomeFunc CargoFunc SalFunc DtInicio CodProj DescProj
11 1001 Antonio Analista Sr 1800 02/01/2005 11 Alfa
11 1004 Daniela Analista Pl 1200 05/01/2005 12 Beta
12 1003 Claudio Analista Sr 1800 10/02/2005
MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

2FN – Segunda Forma Normal: D F IRREDUTÍVEL À ESQUERDA

Condição: Chave Primária (PK) composta por mais de uma coluna.


Todas as colunas que não fazem parte da PK dependem de todas as
colunas que compõem a PK.
A tabela a seguir NÃO está na 2FN:

ProjFunc
CodProj CodFunc NomeFunc CargoFunc SalFunc DtInicio
11 1001 Antonio Analista Sr 1800 02/01/2005
11 1004 Daniela Analista Pl 1200 05/01/2005
12 1003 Claudio Analista Sr 1800 10/02/2005

Passando para a 2FN:


Funcionario ProjFunc
CodFunc NomeFunc CargoFunc SalFunc CodProj CodFunc DtInicio
1001 Antonio Analista Sr 1800 11 1001 02/01/2005
1004 Daniela Analista Pl 1200 11 1004 05/01/2005
1003 Claudio Analista Sr 1800 12 1003 10/02/2005
MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

3FN – Terceira Forma Normal: D F TRANSITIVA

Não há dependências funcionais transitivas.


Cada coluna não PK depende DIRETAMENTE da PK.

A tabela a seguir NÃO está na 3FN:


Funcionario
CodFunc NomeFunc CargoFunc SalFunc CodFunc  CargoFunc  SalFunc
1001 Antonio Analista Sr 1800
1004 Daniela Analista Pl 1200
1003 Claudio Analista Sr 1800 Dependência Funcional Transitiva

Passando para a 3FN:


Funcionario CargoSalario
CodFunc NomeFunc CargoFunc CargoFunc SalFunc
1001 Antonio Analista Sr Analista Sr 1800
1004 Daniela Analista Pl Analista Pl 1200
1003 Claudio Analista Sr
MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

FNBC – F N Boyce e Codd: D F NÃO TRIVIAL E IRRED. À ESQ.

Condição: Aplica-se a FNBC quando:


1. Encontramos duas ou mais chaves candidatas
2. As chaves candidatas apresentam mais de um atributo (são compostas)
3. Todas as chaves candidatas têm um atributo em comum
Exemplo:
Vamos assumir que um professor está associado a mais de uma escola e uma sala.
Aluno(NomeAluno,EndAluno,NomeEscola,NrSala,NomeProf)

Chaves Candidatas: Neste exemplo:


NomeAluno + EndAluno 3. Encontramos três chaves candidatas
NomeAluno + NrSala 4. Todas são compostas
NomeAluno + NomeProf 5. Todas compartilham um mesmo atributo
Aplicando a FNBC: A tabela Aluno será dividida em duas tabelas: uma que contêm
todos os atributos que descrevem o aluno e outra que contêm os atributos que
designam um professor em uma determinada escola e número de sala.

Aluno(NomeAluno,EndAluno,NomeEscola,NrSala)
Professor(NomeEscola,NrSala,NomeProf)
MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

FNBC – F N Boyce e Codd: D F NÃO TRIVIAL E IRRED. À ESQ.

Condição: Aplica-se a FNBC


1. quando:
Encontramos duas ou mais chaves candidatas
2. As chaves candidatas apresentam mais de um atributo (são compostas)
3. Todas as chaves candidatas têm um atributo em comum

Cliente Agencia Emprestimo


CodCli NomeCli CodAge NomeAge CodAge CodCli NrEmp Valor
C1 Antonio Alves A1 Amparo A1 C2 E1 1000.00
C2 Beatriz Batista A2 Botucatu A1 C2 E2 2000.00
C3 Claudia Alves A3 Campinas A2 C1 E3 1500.00
A2 C3 E3 1500.00

Aplicando a FNBC: A tabela Emprestimo será dividida em duas tabelas: uma que
contém todos os atributos que descrevem o Emprestimo e outra que contém os
atributos do Devedor (ou cliente_emprestimo).

Emprestimo Devedor
CodAge NrEmp Valor CodAge NrEmp
A1 E1 1000.00 C2 E1
A1 E2 2000.00 C2 E2
A2 E3 1500.00 C1 E3
C3 E3
MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

4FN – Quarta Forma Normal: D F MULTIVALORADA

Uma tabela não deve possuir mais de uma D F Multivalorada.


A tabela a seguir NÃO está na 4FN:
ProjFuncEquip
CodProj CodFunc CodEquip
11 1001 A10
11 1002 A10 CodProj  CodFunc
11 1001 A20
11 1002 A20 CodProj  CodEquip
12 1001 A10
12 1001 A20

Passando para a 4FN:


ProjFunc ProjEquip
CodProj CodFunc CodProj CodEquip
11 1001 11 A10
11 1002 11 A20
12 1001 12 A10
12 A20
MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

5FN – Quinta Forma Normal:


Condição: Relacionamentos multiplos (ternários ... n-ários).
1º passo: Decompor a tabela através da operação de projeção.
2º passo: Reconstruir a tabela através da junção.
A tabela está na 5FN quando o seu conteúdo NÃO puder ser reconstruído
Através da junção das tabelas secundárias.
NÃO está na 5FN: Está na 5FN:
MatPedReq MatPed PedReq MatReq
Mat Ped Req Mat Ped Ped Req Mat Req
10 1001 1 10 1001 1001 1 10 1
10 1002 2 10 1002 1002 2 10 2
20 1001 2 20 1001 1001 2 20 2
10 1001 2

Вам также может понравиться