Slide 1 - Unilivros

Propaganda
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?
2. 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
11
Alfa
12
Beta
CodFunc
NomeFunc
CargoFunc
SalFunc
DtInicio
1001
Antonio
Analista Sr
1800
02/01/2005
1004
Daniela
Analista Pl
1200
05/01/2005
1003
Claudio
Analista Sr
1800
10/02/2005
Passando para a 1FN:
ProjFunc
CodProj
CodFunc
NomeFunc
CargoFunc
Projeto
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
CodFunc
NomeFunc
1001
Antonio
1004
1003
CargoFunc
ProjFunc
SalFunc
CodProj
CodFunc
Analista Sr
1800
11
1001
02/01/2005
Daniela
Analista Pl
1200
11
1004
05/01/2005
Claudio
Analista Sr
1800
12
1003
10/02/2005
DtInicio
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
1001
Antonio
Analista Sr
1800
1004
Daniela
Analista Pl
1200
1003
Claudio
Analista Sr
1800
CodFunc  CargoFunc  SalFunc
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
NomeAluno + NrSala
NomeAluno + NomeProf
1. Encontramos três chaves candidatas
2. Todas são compostas
3. 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
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
11
1001
A20
11
1002
A20
12
1001
A10
12
1001
A20
CodProj  CodFunc
CodProj  CodEquip
Passando para a 4FN:
ProjFunc
CodProj CodFunc
11
1001
11
1002
12
1001
ProjEquip
CodProj CodEquip
11
A10
11
A20
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:
Mat
10
10
20
10
MatPedReq
Ped
1001
1002
1001
1001
Req
1
2
2
2
Está na 5FN:
MatPed
Mat
Ped
10
1001
10
1002
20
1001
PedReq
Ped
Req
1001
1
1002
2
1001
2
MatReq
Mat
Req
10
1
10
2
20
2
Download