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:
A tabela a seguir NÃO está na 1FN:
Projeto CodProj 11 12 DescProj Alfa Beta CodFunc 1001 1004 1003 NomeFunc Antonio Daniela Claudio CargoFunc Analista Sr Analista Pl Analista Sr

D F MULTIVALORADA

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

SalFunc 1800 1200 1800

DtInicio 02/01/2005 05/01/2005 10/02/2005

Passando para a 1FN:
ProjFunc CodProj 11 11 12 CodFunc 1001 1004 1003 NomeFunc Antonio Daniela Claudio CargoFunc Analista Sr Analista Pl Analista Sr SalFunc 1800 1200 1800 DtInicio 02/01/2005 05/01/2005 10/02/2005 11 12 Projeto CodProj DescProj Alfa Beta

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 11 11 12 CodFunc 1001 1004 1003 NomeFunc Antonio Daniela Claudio CargoFunc Analista Sr Analista Pl Analista Sr SalFunc 1800 1200 1800 DtInicio 02/01/2005 05/01/2005 10/02/2005

Passando para a 2FN:
Funcionario CodFunc 1001 1004 1003 NomeFunc Antonio Daniela Claudio CargoFunc Analista Sr Analista Pl Analista Sr SalFunc 1800 1200 1800 CodProj 11 11 12 ProjFunc CodFunc 1001 1004 1003 DtInicio 02/01/2005 05/01/2005 10/02/2005

MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

3FN – Terceira Forma Normal:
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 1001 1004 1003 NomeFunc Antonio Daniela Claudio CargoFunc Analista Sr Analista Pl Analista Sr SalFunc 1800 1200 1800

D F TRANSITIVA

CodFunc  CargoFunc  SalFunc

Dependência Funcional Transitiva

Passando para a 3FN:
Funcionario CodFunc 1001 1004 1003 NomeFunc Antonio Daniela Claudio CargoFunc Analista Sr Analista Pl Analista Sr CargoSalario CargoFunc Analista Sr Analista Pl SalFunc 1800 1200

MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

FNBC – F N Boyce e Codd:
Condição: Aplica-se a FNBC quando:

D F NÃO TRIVIAL E IRRED. À ESQ.

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: NomeAluno + EndAluno NomeAluno + NrSala NomeAluno + NomeProf Neste exemplo: 3. Encontramos três chaves candidatas 4. Todas são compostas 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:
Condição: Aplica-se a FNBC 1. quando: Encontramos duas ou mais chaves candidatas

D F NÃO TRIVIAL E IRRED. À ESQ.

2. As chaves candidatas apresentam mais de um atributo (são compostas) 3. Todas as chaves candidatas têm um atributo em comum
Cliente CodCli NomeCli C1 Antonio Alves C2 Beatriz Batista C3 Claudia Alves Agencia CodAge NomeAge A1 Amparo A2 Botucatu A3 Campinas Emprestimo CodCli NrEmp C2 E1 C2 E2 C1 E3 C3 E3

CodAge A1 A1 A2 A2

Valor 1000.00 2000.00 1500.00 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 CodAge NrEmp Valor A1 E1 1000.00 A1 E2 2000.00 A2 E3 1500.00 Devedor CodAge NrEmp C2 E1 C2 E2 C1 E3 C3 E3

MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

4FN – Quarta Forma Normal:
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

D F MULTIVALORADA

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

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

Sign up to vote on this title
UsefulNot useful

Master Your Semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master Your Semester with a Special Offer from Scribd & The New York Times

Cancel anytime.