André Luiz do Vale Soares Banco de Dados

Livre

0
0
50
1 year ago
Preview
Full text

  Normalização

André Luiz do Vale Soares

Banco de Dados

  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 tabelas de um banco de dados para

verificar se estas foram corretamente 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 Conceitos Úteis 

  Chaves 

  Dependência Funcional (DF) 

  Trivialidade 

  Transitividade 

  DF irredutível à esquerda 

  

Dependência Multivalorada 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: 

  Aluno (RG, CPF, Matricula, Nome,DtNasc,Sexo) 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  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: 

  Aluno_I1 (RG) 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) 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:

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

  X Dependência Funcional (DF) 

  Exemplos: 

  Estado  País 

  Cidade  Estado 

  {Rua, Bairro}  CEP 

  Disciplina  Curso 

  {Disciplina, Ano, Período, Aluno}  Media 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 Trivialidade 

  A dependência funcional não trivial indica que um determinante identifica outro atributo qualquer.

   Exemplos:

   {banco,agencia}  cidade

   Esta é a DF que nos interessa ! 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 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 OBS.: Nem sempre estar na forma irredutível à esquerda 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

  • – 1

  • – 2
  • – 3
  • – Forma Normal de Boyce e Codd
  • – 4

  5FN ª

  

  ª Forma Normal

  4FN

  

   FNBC

  ª Forma Normal

  3FN

  

  ª Forma Normal

  2FN

  

  ª Forma Normal

  1FN

  Formas Normais 

  Forma Normal

  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 atributo com a relação (passo 6 do algoritmo de mapeamento de esquema ER para Relacional)

  1FN 

  Exemplo: 

  Aluno (Matricula, Nome, {Telefone}) Passando para a 1FN: 

  Aluno (Matricula,Nome) 

   Nome Matrícula 

  Aluno_Telefones (Matricula,Telefone) 

  Matrícula   Telefone

  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}

  1FN 

  Exemplo: 

  Aluno (Matricula, Nome_Completo(Nome, Sobrenome)) Passando para a 1FN: 

  

Aluno (Matricula, Nome, Sobrenome)

  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

chave primária, ou seja, a DF dos atributos que compõem a chave primária para os que

  2FN 

  Uma relação cuja chave primária é composto por um único atributo já está na 2FN

   Exemplo:

   Turma (Matricula, CodDisciplina, Nome_Aluno)

  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

  • Turma

  2FN 

  Solução: 

  Retirar dependências parciais da chave primária: 

  

Turma (Matricula, CodDisciplina)

  Aluno (Matricula, Nome_Aluno)

  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 TRANSITIVA da chave primária !

  3FN 

  Exemplo: 

  Disciplina (Sigla, Nome_Disc, CodCurso, Nome_Curso) Não está na 3FN, pois 

   CodCurso Sigla e 

  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

  • Disciplina

  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:

   Disciplina (Sigla, Nome_Disciplina,CodCurso)

  CodCurso Nome_Curso 012 Tecnologia em Proc. De Dados 013 Licenciatura em Proc. De Dados 005 Pedagogia

  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

  • Disciplina
  • Curso

  3FN 

  Exemplo: 

  Vendedor (Código, Nome, {Cliente(CPF,Nome_Cliente)}) Não está na 3FN, pois 

   Nome_Cliente CPF Além disso, um vendedor pode ter vários clientes, sendo então os atributos “CPF” e

  3FN 

  Solução: 

  Retirar dependências parciais da chave primária e decompor “Vendedor”: 

  Vendedor (Código, Nome) 

  Cliente (CPF, Nome_Cliente) 

  

Vendedor_Cliente (Código, CPF) 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. 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 atributo em comum FNBC: Exemplo Unidade Curso Professor EST EAD Marcos Seixas EST LTP Mário Carvalho EST BDI André Soares ENS EAD Maria Mello

  • Cursos
FNBC: Exemplo DFs: 

  {Unidade, Curso}  Professor 

  Professor  Curso 

  Chaves Candidatas: 

  (Unidade, Curso) 

  (Unidade, Professor) FNBC: Solução Professor Curso Marcos Seixas EAD Mário Carvalho LTP André Soares BDI Maria Mello EAD

  • Disciplina
  • Curso

  Unidade Professor EST Marcos Seixas EST Mário Carvalho EST André Soares ENS Maria Mello

  4FN 

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

  Está na 3FN 2. Não possuir mais de uma DEPENDÊNCIA MULTIVALORADA !

  4FN: Exemplo Disciplina Aluno

  Curso EST001 1000 012 EST001 1200 012 EST001 4400 012 EST001 1000 025 EST001 1200 025 EST001 4400 025

  

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

Na 1FN, 2FN e 3FN: Turma (Disciplina, Aluno, Curso)

  4FN 

  “Turma” não está na 4FN, pois possui 2 dependências multivaloradas: 

  Disciplina   Aluno e 

  Disciplina   Curso Passando para a 4FN Disciplina Aluno EST001 1000 EST001 1200 EST001 4400 EST002 2000

  • Disciplina_Aluno
  • Disciplina_Curso

  Disciplina Curso EST001 012 EST001 025 EST002 089 EST003 089

  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

  

Utilizada em mapeamentos n-ários

  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

  Marca Veículo Ford Carro Ford Caminhão

  Vendedor Veículo João Carro João Caminhão

  T T1 T2 T3

  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 &

  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’

  Ford João Carro Ford João Caminhão

  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’

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

  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’

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

  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’

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

  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’

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

  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

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

  Não é possível reconstruir T a partir de T1, T2 e T3 !

T’

T

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

Novo documento