Normaliza Cao

22
MODELAGEM EM BANCO DE DADOS NORMALIZAÇÃO Prof. Marcos Alexandruk UNINOVE

description

Material de Normalização de banco de dados - Prof. Marcos Alexandruk

Transcript of Normaliza Cao

Page 1: Normaliza Cao

MODELAGEM EMBANCO DE DADOS

NORMALIZAÇÃO

Prof. Marcos Alexandruk

UNINOVE

Page 2: Normaliza Cao

MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

© PROF. MARCOS ALEXANDRUK

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

Page 3: Normaliza Cao

MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

© PROF. MARCOS ALEXANDRUK

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

Page 4: Normaliza Cao

NORMALIZAÇÃO

PARTE 1: CONCEITOS ÚTEIS

• Chaves• Dependência Funcional (DF)• Trivialidade• Transitividade• D F Irredutível à Esquerda• Dependência Multivalorada

Page 5: Normaliza Cao

MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

© PROF. MARCOS ALEXANDRUK

CHAVES

Chave candidata: atributo ou conjunto de atributosque são únicos para cada registro.Cada tabela pode ter uma ou várias chaves deste tipo.

Exemplos: CODIGO, CPF, RG

Page 6: Normaliza Cao

MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

© PROF. MARCOS ALEXANDRUK

CHAVES

Chave primária: Escolhida entre as chaves candidataspara ser o identificador principal da tabela.(PK – Primary Key)

Page 7: Normaliza Cao

MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

© PROF. MARCOS ALEXANDRUK

CHAVES

Chaves alternativas: São as chaves candidatas quenão foram definidas como chaves primárias.

Page 8: Normaliza Cao

MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

© PROF. MARCOS ALEXANDRUK

CHAVES

Chave estrangeira: Atributo ou conjunto de atributosque faz a ligação com a chave primária de outra tabela.(FK – Foreign Key)

Page 9: Normaliza Cao

MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

© PROF. MARCOS ALEXANDRUK

DEPENDÊNCIA FUNCIONAL (DF)Sempre que um atributo X identifica um atributo Yhá 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)

Page 10: Normaliza Cao

MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

© PROF. MARCOS ALEXANDRUK

TRIVIALIDADEA dependência funcional trivial indica que umdeterminante com mais de um atributo pode determinarseus próprios membros quando isolados.

{banco,agencia} banco{banco,agencia} agencia

A dependência funcional não trivial * indica que umdeterminante 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.

Page 11: Normaliza Cao

MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

© PROF. MARCOS ALEXANDRUK

TRANSITIVIDADESe 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 transitivaX para Z.

cidade estadoestado paíscidade país

(cidade determina país de forma transitiva)

Page 12: Normaliza Cao

MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

© PROF. MARCOS ALEXANDRUK

D F IRREDUTÍVEL À ESQUERDAO lado esquerdo de uma dependência funcional éirredutível à esquerda quando o determinante está nasua forma mínima, não é possível reduzir a quantidadede atributos determinantes sem perder a dependênciafuncional.

{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 significapossuir um determinante com apenas um atributo!

Page 13: Normaliza Cao

MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

© PROF. MARCOS ALEXANDRUK

DEPENDÊNCIA MULTIVALORADAO valor de um atributo determina um conjunto de valoresde 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)

Page 14: Normaliza Cao

MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

© PROF. MARCOS ALEXANDRUK

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?

Page 15: Normaliza Cao

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

Page 16: Normaliza Cao

MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

1FN – Primeira Forma Normal:Os atributos da tabela não contêm grupos de repetição (tabelas aninhadas).

Passando para a 1FN:

10/02/20051800Analista SrClaudio1003Beta1205/01/20051200Analista PlDaniela100402/01/20051800Analista SrAntonio1001

Alfa11

DtInicioSalFuncCargoFuncNomeFuncCodFuncDescProjCodProjProjeto

10/02/20051800Analista SrClaudio100312

05/01/20051200Analista PlDaniela100411

02/01/20051800Analista SrAntonio100111

DtInicioSalFuncCargoFuncNomeFuncCodFuncCodProjProjFunc

Beta12Alfa11DescProjCodProj

Projeto

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

D F MULTIVALORADA

Page 17: Normaliza Cao

MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

2FN – Segunda Forma Normal:Condição: Chave Primária (PK) composta por mais de uma coluna.

10/02/20051800Analista SrClaudio100312

05/01/20051200Analista PlDaniela100411

02/01/20051800Analista SrAntonio100111

DtInicioSalFuncCargoFuncNomeFuncCodFuncCodProjProjFunc

Todas as colunas que não fazem parte da PK dependem de todas ascolunas que compõem a PK.

10/02/2005100312

05/01/2005100411

02/01/2005100111

DtInicioCodFuncCodProjProjFunc

1800Analista SrClaudio1003

1200Analista PlDaniela1004

1800Analista SrAntonio1001

SalFuncCargoFuncNomeFuncCodFuncFuncionario

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

Passando para a 2FN:

D F IRREDUTÍVEL À ESQUERDA

Page 18: Normaliza Cao

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.

1800Analista SrClaudio1003

1200Analista PlDaniela1004

1800Analista SrAntonio1001

SalFuncCargoFuncNomeFuncCodFuncFuncionario

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

Passando para a 3FN:

Analista SrClaudio1003

Analista PlDaniela1004

Analista SrAntonio1001

CargoFuncNomeFuncCodFuncFuncionario

1200Analista Pl

1800Analista Sr

SalFuncCargoFuncCargoSalario

CodFunc CargoFunc SalFunc

Dependência Funcional Transitiva

D F TRANSITIVA

Page 19: Normaliza Cao

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 candidatas2. As chaves candidatas apresentam mais de um atributo (são compostas)3. Todas as chaves candidatas têm um atributo em comum

Vamos assumir que um professor está associado a mais de uma escola e uma sala.

Aluno(NomeAluno,EndAluno,NomeEscola,NrSala,NomeProf)

Exemplo:

Chaves Candidatas:

NomeAluno + EndAlunoNomeAluno + NrSalaNomeAluno + NomeProf

Neste exemplo:

3. Encontramos três chaves candidatas4. Todas são compostas5. Todas compartilham um mesmo atributo

Aplicando a FNBC: A tabela Aluno será dividida em duas tabelas: uma que contêmtodos os atributos que descrevem o aluno e outra que contêm os atributos quedesignam um professor em uma determinada escola e número de sala.

Aluno(NomeAluno,EndAluno,NomeEscola,NrSala)Professor(NomeEscola,NrSala,NomeProf)

Page 20: Normaliza Cao

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 candidatas2. As chaves candidatas apresentam mais de um atributo (são compostas)3. Todas as chaves candidatas têm um atributo em comum

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

Claudia AlvesC3Beatriz BatistaC2Antonio AlvesC1

NomeCliCodCliCliente

CampinasA3BotucatuA2AmparoA1

NomeAgeCodAgeAgencia

1000.00E1C2A1

1500.00E3C3A21500.00E3C1A22000.00E2C2A1

ValorNrEmpCodCliCodAgeEmprestimo

ValorNrEmpCodAge1000.00E1A1

1500.00E3A22000.00E2A1

Emprestimo

E3C1E3C3

E2C2E1C2

NrEmpCodAgeDevedor

Page 21: Normaliza Cao

MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

4FN – Quarta Forma Normal:Uma tabela não deve possuir mais de uma D F Multivalorada.

Passando para a 4FN:

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

D F MULTIVALORADA

A20100112A10100112A20100211A20100111A10100211A10100111CodEquipCodFuncCodProj

ProjFuncEquip

100112100211100111CodFuncCodProj

ProjFunc

A2012A1012A2011A1011CodEquipCodProj

ProjEquip

CodProj CodFunc

CodProj CodEquip

Page 22: Normaliza Cao

MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

5FN – Quinta Forma Normal:Condição: Relacionamentos multiplos (ternários ... n-ários).

NÃO está na 5FN:

2100110210012021002101100110

ReqPedMatMatPedReq

100120100210100110PedMat

MatPed

210012100211001

ReqPedPedReq

220210110

ReqMatMatReq

Está na 5FN:

A tabela está na 5FN quando o seu conteúdo NÃO puder ser reconstruídoAtravés da junção das tabelas secundárias.

1º passo: Decompor a tabela através da operação de projeção.2º passo: Reconstruir a tabela através da junção.