Você está na página 1de 26

UNIVERSIDADE DE SANTIAGO

BD2
Base de Dados 2

Aula Nº 3 (TP)
Docentes: Danielson Alves / Ronaldo Espírito Santo
29 / 10 / 2021
Sumário
Dependências Funcionais
• Conceitos
• Tipos
Normalização
• Conceitos
• Formas Normais
Exemplos
Dependências Funcionais
Seja E uma entidade e, X e Y dois atributos quaisquer de E.
• Dizemosque Y é funcionalmente dependente de X, se e
somente se, cada valor de X tiver associado a ele,
exatamente, um valor de Y.

Representação Simbólica: X Y
Leitura:
• X determina funcionalmente Y.
• Y é funcionalmente dependente de X.
X – atributo determinante Y – atributo dependente
Dependências Funcionais (Exemplo)
Suponha uma entidade Empregado que possui dois
atributos idEmpregado e nome.

Notação:
idEmpregado nome
Leitura:
idEmpregado nome • O atributo nome depende funcionalmente do
idEmpregado (atributo dependente).
•O atributo idEmpregado determina
funcionalmente o nome (atributo determinante).
• Com o número do idEmpregado, pode-se
encontrar o nome do empregado.
Dependências Funcionais
Atributos não chaves – São todos os atributos que
não são considerados como sendo chaves primárias em
uma entidade.

Tipos de Dependências Funcionais:


• Dependência Funcional Total.
• Dependência Funcional Parcial.
• Dependência Funcional Transitiva.
Dependência Funcional Total
Chave Primária Composta – É utilizado quando se possui
dois ou mais atributos (campos) que juntos, sempre, serão
únicos para aquela entidade ( tabela).
Em uma relação com uma chave primária composta, um
atributo não chave que dependa dessa chave, tem que
depender como um todo (Dependência Funcional Total).
•Os atributos idEmpregado e
codigoProjeto, combinados formam uma
chave primária (composta).
•horasTrablhadas depende ao mesmo
tempo do idEmpregado e do codigoProjeto.
Dependência Funcional Parcial
Ocorre quando a chave primária é composta e existe
um atributo da relação que depende somente de parte
desta chave primária composta.
Existe uma dependência funcional, mas somente de uma
parte da chave primária.

•O atributo nomeProjeto é dependente


funcional do codigoProjeto, mas não do
idEmpregado.
Dependência Funcional Transitiva
Ocorre quando um atributo depende não somente da
chave primária da entidade, mas também de um
segundo atributo (ou conjunto de atributos) da entidade,
que não fazem parte da chave primária.

•O atributo nomeEmpresa depende


funcionalmente do idEmpresa, que não é
chave primária.
Atributos Multivalorados
Sãoatributos que podem conter mais de um valor para
um mesmo registo.
Considere a seguinte tabela Pessoa ( codigo, nome,
telefone).

• O atributo telefone para os dois


primeiros registos, têm mais de um
telefone para cada pessoa.
• Desta forma, o atributo Telefone
é multivalorado.
Atributos Compostos
São atributos que podem ser divididos em várias partes
com significados independentes ( Ex: endereço e
nomeCompleto de uma pessoa ).
Considere a seguinte tabela Pessoa ( idPessoa,
nomeCompleto).

•O atributo composto é o
nomeCompleto de uma pessoa.
•Ele poderá ser dividido em dois
atributos (nome e apelido).
Normalização
O Processo de Normalização foi proposto pelo Professor
Dr. Edgar F. Codd (analista da IBM) em 1970.
Ele, então, sujeita um esquema de relação a uma série de
testes para certificar-se de que ele satisfaça certa Forma
Normal (FN).
Ele propôs, originalmente, três formas normais: 1ª, 2ª e 3ª
FNs.
Mais tarde, a 3FN foi revisada, dando origem a uma nova
proposta de Edgar F. Codd e Ray Boyce, denominada de
FNBC (Forma Normal Boyce Codd).
Normalização: Objetivos
Analisaresquemas de relações com base em suas
dependências funcionais e chaves primárias para:
 Minimizar redundâncias dos dados.
 Minimizar anomalias de atualização ( Inserção, Exclusão e
Modificação).

Com isso, pode-se produzir relações menores e melhor


estruturadas que atendam melhor aos testes de forma
normal.
1ª Forma Normal: 1FN
Uma tabela encontra-se na primeira forma normal se:
• Existir uma chave primária.
• Todos os seus atributos estiverem definidos em
domínios que contenham apenas valores atómicos
(valores simples não divisíveis).
• Não possuir tabelas aninhadas, atributos multivalorados
e compostos.
Em caso da existência de repetições, uma nova tabela
deve ser gerada (com 2 chaves primárias: 1 da tabela origem e
outra da nova tabela).
2ª Forma Normal: 2FN
É baseada no conceito de dependência funcional total.
Uma tabela está na 2FN se:
 Ela já estiver na 1FN.
 Todo atributo não chave, for dependente funcional Total
da chave primária (não deve existir dependência funcional
parcial).
Caso contrário deve-se gerar uma nova tabela (o
atributo determinante na tabela origem será a chave
primária na nova tabela).
3ª Forma Normal: 3FN
É baseada no conceito de dependência transitiva.
Uma tabela está na 3FN se:
 Ela já estiver na 2FN.
 Não existir dependência funcional transitiva entre atributos
não chave (nenhum atributo não chave, deve depender
funcionalmente de algum outro atributo que não seja chave
primária).
Caso contrário, deve-se gerar uma nova tabela, que
contenham os atributos não chaves que determinam
funcionalmente os outros atributos não chaves.
Etapas de Normalização: Resumo

1FN
3FN
• Remover
• Tabela Não • Remover • Remover
Dependências
Normalizada Atributos Parciais Dependências
… Multivalorado
2FN Transitivas
s e Compostos
Exemplo 1
Considere uma tabela, com as informações, que mostra as
turmas em que um determinado professor dá aulas.
Professor (
idProfessor,
nomeProfessor,
moradaProfessor,
codigoTurma,
descriçãoTurma
directorTurma,
codigoGrupoDisciplinar,
nomeGrupoDisciplinar,
).
Tabela Professor: Não Normalizada

Assomada
Correção do Exemplo 1: 1FN
A tabela Professor não se encontra na 1FN:
• Sempre que um professor dá aulas em mais que uma
turma é necessário repetir os atributos idProfessor,
nomeProfessor, moradaProfessor, etc.

Passagem para a 1FN:


 Criar uma nova tabela de nome Turmas.
Correção do Exemplo 1: 1FN
Correção do Exemplo 1: 2FN
A tabela Professor está na 2FN.
A tabela Turma não se encontra na 2FN:
 Os atributos directorTurma e descriçãoTurma não
dependem do idProfessor, mas só do codigoTurma.

Passagem para a 2FN:


 Criar uma nova tabela TurmaProfessor.
Correção do Exemplo 1: 2FN
Correção do Exemplo 1: 3FN
As relações Turmas e TurmaProfessor estão na 3FN.
A relação Professor não se encontra na 3FN:
 O atributo nomeGrupoDisciplinar não depende do
idProfessor, mas apenas do codigoGrupoDisciplinar.

Passagem para a 3FN:


 Criar uma nova relação GrupoDisciplinar.
Correção do Exemplo 1: 3FN
Exemplo 2
Normalize a seguinte tabela correspondente a venda de
produtos para um determinado cliente, e no final desenhe
os Modelos de Dados (Conceitual e Lógico).
FIM

Você também pode gostar