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

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

Embed Size (px)

Citation preview

MODELAGEM EMBANCO DE DADOS

NORMALIZAÇÃO

Prof. Marcos Alexandruk

UNINOVE

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

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

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

© 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

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)

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.

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)

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)

MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

© PROF. MARCOS ALEXANDRUK

TRIVIALIDADE

A 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.

MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

© PROF. MARCOS ALEXANDRUK

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

cidade estadoestado paíscidade país

(cidade determina país de forma transitiva)

MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

© PROF. MARCOS ALEXANDRUK

D F IRREDUTÍVEL À ESQUERDA

O 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!

MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

© PROF. MARCOS ALEXANDRUK

DEPENDÊNCIA MULTIVALORADA

O 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)

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?

2. Como seriam chamadas as outras chaves que NÃO foram definidas como chave primária?

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:

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

Passando para a 1FN:

Projeto

CodProj DescProj CodFunc NomeFunc CargoFunc SalFunc DtInicio

11 Alfa1001 Antonio Analista Sr 1800 02/01/2005

1004 Daniela Analista Pl 1200 05/01/2005

12 Beta 1003 Claudio Analista Sr 1800 10/02/2005

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

Projeto

CodProj DescProj

11 Alfa

12 Beta

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

D F MULTIVALORADA

MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

2FN – Segunda Forma Normal:

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

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

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

ProjFunc

CodProj CodFunc DtInicio

11 1001 02/01/2005

11 1004 05/01/2005

12 1003 10/02/2005

Funcionario

CodFunc NomeFunc CargoFunc SalFunc

1001 Antonio Analista Sr 1800

1004 Daniela Analista Pl 1200

1003 Claudio Analista Sr 1800

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

Passando para a 2FN:

D F IRREDUTÍVEL À ESQUERDA

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.

Funcionario

CodFunc NomeFunc CargoFunc SalFunc

1001 Antonio Analista Sr 1800

1004 Daniela Analista Pl 1200

1003 Claudio Analista Sr 1800

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

Passando para a 3FN:

Funcionario

CodFunc NomeFunc CargoFunc

1001 Antonio Analista Sr

1004 Daniela Analista Pl

1003 Claudio Analista Sr

CargoSalario

CargoFunc SalFunc

Analista Sr 1800

Analista Pl 1200

CodFunc CargoFunc SalFunc

Dependência Funcional Transitiva

D F TRANSITIVA

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:

1. Encontramos três chaves candidatas2. Todas são compostas3. 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)

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

ProjFuncEquip

CodProj CodFunc CodEquip

11 1001 A10

11 1002 A10

11 1001 A20

11 1002 A20

12 1001 A10

12 1001 A20

ProjFunc

CodProj CodFunc

11 1001

11 1002

12 1001

ProjEquip

CodProj CodEquip

11 A10

11 A20

12 A10

12 A20

CodProj CodFunc

CodProj CodEquip

MODELAGEM EM BANCO DE DADOS - NORMALIZAÇÃO

5FN – Quinta Forma Normal:

Condição: Relacionamentos multiplos (ternários ... n-ários).

NÃO está na 5FN:

MatPedReq

Mat Ped Req

10 1001 1

10 1002 2

20 1001 2

10 1001 2

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

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.