André Luiz do Vale Soares Banco de Dados

50 

Full text

(1)

Normalização

(2)

Normalização

Conceito introduzido em 1970 por

E.F.Codd (1 FN)

Processo matemático formal

fundamentado na teoria dos conjuntos

Aplica uma série de regras sobre as

(3)

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

(4)

Conceitos Úteis

Chaves

Dependência Funcional (DF)

Trivialidade

Transitividade

DF irredutível à esquerda

(5)

Chaves

Chave Candidata

 Atributo ou conjunto de atributos que são

únicos para cada registro ou tupla

 Cada tabela pode ter uma ou várias chaves

deste tipo

 Exemplo:

(6)

Chaves

Chave Primária

 Escolhida entre as chaves candidatas para

ser o identificador principal da tabela

 Só pode haver uma chave primária para

cada tabela

 A chave primária pode ser composta de um

ou mais atributos

 Exemplo:

(7)

Chaves

Chaves Alternativas

 São as chaves candidatas que não foram

definidas como chave primária

 Exemplo:

 Aluno (RG, CPF, Matricula, Nome,DtNasc,Sexo)  Índices Únicos:

(8)

Chaves

Chaves Estrangeiras

 Atributo ou conjunto de atributos que faz a

ligação com a chave primária de outra tabela

 Exemplo:

 Aluno (RG, CPF, Matricula, Nome,DtNasc,Sexo)  Turma (CodTurma, Aluno)

(9)

Dependência Funcional (DF)

 Sempre que um atributo X identifica ou

define um atributo Y, há entre eles uma DEPENDÊNCIA FUNCIONAL

 Para cada valor de X, há somente um de Y

 X é o determinante e Y é o dependente

 Representação:

 X  Y (lê-se: X determina Y ou Y é dependente de

(10)

Dependência Funcional (DF)

Exemplos:

 Estado País

 Cidade  Estado

 {Rua, Bairro}  CEP

 Disciplina  Curso

(11)

Trivialidade

A dependência funcional trivial indica

que um determinante com mais de um

atributo pode determinar seus próprios

membros quando isolados.

Exemplos:

 {banco,agencia}  banco

(12)

Trivialidade

A dependência funcional não trivial

indica que um determinante identifica

outro atributo qualquer.

Exemplos:

 {banco,agencia}  cidade

(13)

Transitividade

 Se um atributo X determina Y e se Y

determina Z, então podemos dizer que X

determina Z de forma TRANSITIVA, ou seja, existe uma dependência funcional transitiva de X para Z.

 Exemplos:

 Cidade  Estado  Estado  País

Então:

(14)

DF Irredutível à Esquerda

 O lado esquerdo de uma dependência funcional é

IRREDUTÍVEL À ESQUERDA quando o determinante está na sua forma mínima, ou seja, não é possível reduzir a quantidade de atributos determinantes sem perder a dependência funcional.

 Exemplo:

 {Estado, Cidade}  País

Podemos ter apenas o estado como determinante:

 Estado  País

(15)

Dependência Multivalorada

O valor de um atributo determina um

conjunto de valores de um outro

atributo.

Exemplo:

 CPF  Nome (um Nome para cada CPF)

 CPF   Dependente (vários Dependentes

para cada CPF)

Comum ocorrer ao se deixar tabelas na

(16)

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

(17)

1FN

 Uma relação está na 1FN se todos os seus atributos

são MONOVALORADOS e ATÔMICOS.

 Ao encontrarmos um atributo multivalorado,

devemos:

 Criar ou outro atributo que individualize a informação que

está multivalorada

OU

 Cria uma nova relação para representar a associação do

(18)

1FN

Exemplo:

 Aluno (Matricula, Nome, {Telefone})

Passando para a 1FN:

 Aluno (Matricula,Nome)

 Matrícula  Nome

 Aluno_Telefones (Matricula,Telefone)

(19)

1FN

Exemplo:

 Disciplina (Código, Matrícula, Ano, Período,

{Nota})

Passando para a 1FN:

 Disciplina (Código, Matrícula, Ano, Período,

Avaliação, Nota)

 {Código, Matrícula, Ano, Período, Avaliação} 

(20)

1FN

Exemplo:

 Aluno (Matricula, Nome_Completo(Nome,

Sobrenome))

Passando para a 1FN:

(21)

2FN

 Uma relação está na 2FN quando:

1. Está na 1FN

2. Todos os atributos não primos dependerem

funcionalmente de TODA a chave primária

 Não pode haver dependência parcial da

(22)

2FN

Uma relação cuja chave primária é

composto por um único atributo já

está na 2FN

Exemplo:

 Turma (Matricula, CodDisciplina,

Nome_Aluno)

Não está na 2FN, pois

(23)

2FN

Matricula CodDisciplina Nome_Aluno

1234 EST006 José da Silva Borges

1234 EST004 José da Silva Borges

9876 EST002 Maria Fonseca Perez

9876 EST006 Maria Fonseca Perez

9876 EST004 Maria Fonseca Péres

(24)

2FN

Solução:

 Retirar dependências parciais da chave

primária:

(25)

3FN

Uma relação está na 3FN quando:

1. Está na 2FN

2. Todos os atributos não primos

dependerem diretamente da chave primária

Não pode haver dependência

(26)

3FN

Exemplo:

 Disciplina (Sigla, Nome_Disc, CodCurso,

Nome_Curso)

Não está na 3FN, pois

 Sigla  CodCurso

e

(27)

3FN

Sigla Nome_Disciplina CodCurso Nome_Curso

EST001 Banco de Dados II 012 Tecnologia em Proc. De Dados

EST002 Algoritmos e Programação 013 Licenciatura em Proc. De Dados

NOR004 Ensino à Distância 005 Pedagogia

MED015 Anatomia 051 Medicina

EST014 Inteligência Artificial 012 Tecnologia Eletrônica

(28)

3FN

Solução:

 Retirar dependências transitivas da chave

primária, criando novas relações com os atributos não primos dependentes diretos da chave primária como chaves primárias destas novas relações:

(29)

3FN

Sigla Nome_Disciplina CodCurso EST001 Banco de Dados II 012

EST002 Algoritmos e Programação 013

NOR004 Ensino à Distância 005

MED015 Anatomia 051

EST014 Inteligência Artificial 012

• Disciplina

CodCurso Nome_Curso

012 Tecnologia em Proc. De Dados

013 Licenciatura em Proc. De Dados

005 Pedagogia

051 Medicina

(30)

3FN

Exemplo:

 Vendedor (Código, Nome,

{Cliente(CPF,Nome_Cliente)}) Não está na 3FN, pois

 CPF  Nome_Cliente

Além disso, um vendedor pode ter vários

clientes, sendo então os atributos “CPF” e “Nome_Cliente” multivalorados com

(31)

3FN

Solução:

 Retirar dependências parciais da chave

primária e decompor “Vendedor”:

 Vendedor (Código, Nome)  Cliente (CPF, Nome_Cliente)

(32)

FNBC

 Uma relação está na FNBC quando:

1. Está na 2FN

2. Todos os atributos não primos dependerem

diretamente da chave primária

 Toda relação que está na FNBC está na

3FN. Contudo, uma relação que está na 3FN não necessariamente está na FNBC.

 É mais rígida e mais forte que a 3FN.

 Uma relação está na FNBC se todo

(33)

FNBC

Aplica-se FNBC quando:

 Encontramos duas ou mais chaves

candidatas

 As chaves candidatas apresentam mais

de um atributo (são compostas)

 Todas as chaves candidatas têm um

(34)

FNBC: Exemplo

Unidade Curso Professor

EST EAD Marcos Seixas

EST LTP Mário Carvalho

EST BDI André Soares

ENS EAD Maria Mello

ENS BDI André Soares

MED LTP Felipe Moreira

(35)

FNBC: Exemplo

DFs:

 {Unidade, Curso}  Professor

 Professor  Curso

Chaves Candidatas:

 (Unidade, Curso)

(36)

FNBC: Solução

Professor Curso Marcos Seixas EAD

Mário Carvalho LTP

André Soares BDI

Maria Mello EAD

Felipe Moreira LTP

• Disciplina

Unidade Professor

EST Marcos Seixas

EST Mário Carvalho

EST André Soares

ENS Maria Mello

ENS André Soares

MED Felipe Moreira

(37)

4FN

Uma relação está na 4FN quando:

1. Está na 3FN

2. Não possuir mais de uma DEPENDÊNCIA

(38)

4FN: Exemplo

Disciplina Aluno Curso

EST001 1000 012

EST001 1200 012

EST001 4400 012

EST001 1000 025

EST001 1200 025

EST001 4400 025

EST002 2000 089

EST002 2500 089

EST003 4400 089

Turma (Disciplina, {Aluno},{Curso})

(39)

4FN

“Turma” não está na 4FN, pois possui

2 dependências multivaloradas:

 Disciplina   Aluno

e

(40)

Passando para a 4FN

Disciplina Aluno EST001 1000

EST001 1200

EST001 4400

EST002 2000

EST002 2500

EST003 4400

• Disciplina_Aluno

Disciplina Curso EST001 012

EST001 025

EST002 089

EST003 089

(41)

5FN

Uma relação está na 5FN quando:

1. Seu conteúdo não puder ser reconstruído

a partir de junções de tabelas menores que não possuam a mesma chave

primária

(42)

5FN - Exemplo

Marca Vendedor Veículo Ford João Carro Ford João Caminhão Ford Mário Caminhão Fiat Mário Carro Chevrolet Felipe Carro Chevrolet João Carro Chevrolet João Caminhão

Marca Vendedor Ford João Ford Mário Fiat Mário Chevrolet Felipe Chevrolet João

Marca Veículo Ford Carro Ford Caminhão Fiat Carro Chevrolet Carro Chevrolet Caminhão Vendedor Veículo

João Carro João Caminhão Mário Carro Mário Caminhão Felipe Carro

T

(43)

5FN - Exemplo

Marca Vendedor Ford João Ford Mário Fiat Mário Chevrolet Felipe Chevrolet João

Marca Veículo Ford Carro Ford Caminhão Fiat Carro Chevrolet Carro Chevrolet Caminhão Vendedor Veículo

João Carro João Caminhão Mário Carro Mário Caminhão Felipe Carro

T1 T2 T3

Reconstruindo T a partir da junção de T1, T2 e T3:

• T1.Marca = T3.Marca &

• T1.Vendedor = T2.Vendedor &

(44)

5FN - Exemplo

Marca Vendedor Ford João Ford Mário Fiat Mário Chevrolet Felipe Chevrolet João

Marca Veículo Ford Carro Ford Caminhão Fiat Carro Chevrolet Carro Chevrolet Caminhão Vendedor Veículo

João Carro João Caminhão Mário Carro Mário Caminhão Felipe Carro

T1 T2 T3

Marca Vendedor Veículo

T’

(45)

5FN - Exemplo

Marca Vendedor Ford João Ford Mário Fiat Mário Chevrolet Felipe Chevrolet João

Marca Veículo Ford Carro Ford Caminhão Fiat Carro Chevrolet Carro Chevrolet Caminhão Vendedor Veículo

João Carro João Caminhão Mário Carro Mário Caminhão Felipe Carro

T1 T2 T3

Marca Vendedor Veículo

T’

(46)

5FN - Exemplo

Marca Vendedor Ford João Ford Mário Fiat Mário Chevrolet Felipe Chevrolet João

Marca Veículo Ford Carro Ford Caminhão Fiat Carro Chevrolet Carro Chevrolet Caminhão Vendedor Veículo

João Carro João Caminhão Mário Carro Mário Caminhão Felipe Carro

T1 T2 T3

Marca Vendedor Veículo

T’

(47)

5FN - Exemplo

Marca Vendedor Ford João Ford Mário Fiat Mário Chevrolet Felipe Chevrolet João

Marca Veículo Ford Carro Ford Caminhão Fiat Carro Chevrolet Carro Chevrolet Caminhão Vendedor Veículo

João Carro João Caminhão Mário Carro Mário Caminhão Felipe Carro

T1 T2 T3

Marca Vendedor Veículo

T’

(48)

5FN - Exemplo

Marca Vendedor Ford João Ford Mário Fiat Mário Chevrolet Felipe Chevrolet João

Marca Veículo Ford Carro Ford Caminhão Fiat Carro Chevrolet Carro Chevrolet Caminhão Vendedor Veículo

João Carro João Caminhão Mário Carro Mário Caminhão Felipe Carro

T1 T2 T3

Marca Vendedor Veículo

T’

(49)

5FN - Exemplo

Marca Vendedor Ford João Ford Mário Fiat Mário Chevrolet Felipe Chevrolet João

Marca Veículo Ford Carro Ford Caminhão Fiat Carro Chevrolet Carro Chevrolet Caminhão Vendedor Veículo

João Carro João Caminhão Mário Carro Mário Caminhão Felipe Carro

T1 T2 T3

Marca Vendedor Veículo Ford João Carro Ford João Caminhão Ford Mário Caminhão Fiat Mário Carro Chevrolet Felipe Carro Chevrolet João Carro Chevrolet João Caminhão

T

Marca Vendedor Veículo Ford João Carro Ford João Caminhão Ford Mário Carro Ford Mário Caminhão Fiat Mário Carro Chevrolet Felipe Carro Chevrolet João Carro Chevrolet João Caminhão

T’

Não é possível reconstruir T a partir de T1,

(50)

Exercícios

Normalize as seguintes relações até a 5FN:

 Turma(cod_professor,cod_disciplina,nome_professor,

nome_disciplina,cod_curso,nome_curso)

 cod_curso → nome_curso

 cod_professor → nome_professor  cod_disciplina → nome_disciplina

 Aluno(matricula,nome,sexo,cod_curso,nome_curso,area,

{telefone},{email})

 cod_curso → {nome_curso,area}

 Empresa(CNPJ,nome,{socio(CPF,nome_socio)})

Figure

Updating...

References

Updating...

Download now (50 página)