SlideShare uma empresa Scribd logo
Base de Dados
Normalização e Desenho de Base de Dados
Relacionais
2018/2019
Sumário
• Desenho Relacional
• Dependências Funcionais
• Formas Normais (1FN, 2FN e 3FN)
• Exercícios
O que é um “bom” modelo?
• Um modelo que represente fielmente a realidade
• Capaz de responder às funcionalidades que se pretendem
• Pretende-se modelos que garantam:
• Redundancia minima
• Facilidade de manutenção
• Estabilidade face a futuras alterações
Dados redundantes
• Considere a relação EmpregadoDepartamento
idEmp Nome Categoria Salário Depto TelDepto LocalDepto
10 José Silva Programador 2500 1 213334555 Lisboa
20 Maria Costa Analista 5000 2 224446888 Porto
30 João Fonseca Operador 600 1 213334555 Lisboa
40 Ana Faria Analista 5200 4 275222333 Covilhã
Dados redundantes
• Considere a relação EmpregadoDepartamento
idEmp Nome Categoria Salário Depto TelDepto LocalDepto
10 José Silva Programador 2500 1 213334555 Lisboa
20 Maria Costa Analista 5000 2 224446888 Porto
30 João Fonseca Operador 600 1 213334555 Lisboa
40 Ana Faria Analista 5200 4 275222333 Covilhã
Se apagarmos este número
deixamos de conhecer o
departamento do empregado 30
Duplicado mas não redundante
Dados redundantes
• Considere a relação EmpregadoDepartamento
idEmp Nome Categoria Salário Depto TelDepto LocalDepto
10 José Silva Programador 2500 1 213334555 Lisboa
20 Maria Costa Analista 5000 2 224446888 Porto
30 João Fonseca Operador 600 1 213334555 Lisboa
40 Ana Faria Analista 5200 4 275222333 Covilhã
Se apagarmos este número
deixamos de conhecer o
departamento do empregado 30
Duplicado mas não redundante
Se apagarmos esta informação
continuamos a conhecer os dados
do departamento 1
Dados redundantes
Implicações da Redundância de Dados
• Redundância de dados tem implicações na coerência e integralidade
dos dados.
Implicações da Redundância de Dados
• Redundância de dados tem implicações na coerência e integralidade
dos dados.
• 3 problemas típicos:
Implicações da Redundância de Dados
• Redundância de dados tem implicações na coerência e integralidade
dos dados.
• 3 problemas típicos:
• Inserção: ocorre quando factos independentes não podem ser inseridos de
forma independente na base de dados
Implicações da Redundância de Dados
• Redundância de dados tem implicações na coerência e integralidade
dos dados.
• 3 problemas típicos:
• Inserção: ocorre quando factos independentes não podem ser inseridos de
forma independente na base de dados
• Eliminação: ocorre quando, ao eliminar um item, obriga à eliminação de
outros itens independentes
Implicações da Redundância de Dados
• Redundância de dados tem implicações na coerência e integralidade
dos dados.
• 3 problemas típicos:
• Inserção: ocorre quando factos independentes não podem ser inseridos de
forma independente na base de dados
• Eliminação: ocorre quando, ao eliminar um item, obriga à eliminação de
outros itens independentes
• Modificação: ocorre quando a atualização de um item implica a alteração de
outros itens independentes
Anomalias de inserção
• Inserir um novo empregado
idEmp Nome Categoria Salário Depto TelDepto LocalDepto
10 José Silva Programador 2500 1 213334555 Lisboa
20 Maria Costa Analista 5000 2 224446888 Porto
30 João Fonseca Operador 600 1 213334555 Lisboa
40 Ana Faria Analista 5200 4 275222333 Covilhã
Anomalias de inserção
• Inserir um novo empregado
• Implica inserir toda a informação do departamento
idEmp Nome Categoria Salário Depto TelDepto LocalDepto
10 José Silva Programador 2500 1 213334555 Lisboa
20 Maria Costa Analista 5000 2 224446888 Porto
30 João Fonseca Operador 600 1 213334555 Lisboa
40 Ana Faria Analista 5200 4 275222333 Covilhã
Anomalias de inserção
• Inserir um novo empregado
• Implica inserir toda a informação do departamento
• Atenção para não criar inconsistência com informação departamento
existente
idEmp Nome Categoria Salário Depto TelDepto LocalDepto
10 José Silva Programador 2500 1 213334555 Lisboa
20 Maria Costa Analista 5000 2 224446888 Porto
30 João Fonseca Operador 600 1 213334555 Lisboa
40 Ana Faria Analista 5200 4 275222333 Covilhã
Anomalias de inserção
• Inserir um novo empregado
• Implica inserir toda a informação do departamento
• Atenção para não criar inconsistência com informação departamento
existente
• Não é possivel criar um departamento sem empregados
idEmp Nome Categoria Salário Depto TelDepto LocalDepto
10 José Silva Programador 2500 1 213334555 Lisboa
20 Maria Costa Analista 5000 2 224446888 Porto
30 João Fonseca Operador 600 1 213334555 Lisboa
40 Ana Faria Analista 5200 4 275222333 Covilhã
Anomalias de eliminação
• Eliminar único empregado de um departamento
idEmp Nome Categoria Salário Depto TelDepto LocalDepto
10 José Silva Programador 2500 1 213334555 Lisboa
20 Maria Costa Analista 5000 2 224446888 Porto
30 João Fonseca Operador 600 1 213334555 Lisboa
40 Ana Faria Analista 5200 4 275222333 Covilhã
Anomalias de eliminação
• Eliminar único empregado de um departamento
• Implica perda de informação sobre departamento
idEmp Nome Categoria Salário Depto TelDepto LocalDepto
10 José Silva Programador 2500 1 213334555 Lisboa
20 Maria Costa Analista 5000 2 224446888 Porto
30 João Fonseca Operador 600 1 213334555 Lisboa
40 Ana Faria Analista 5200 4 275222333 Covilhã
Anomalias de modificação
• Alterar um atributo de um departamento
idEmp Nome Categoria Salário Depto TelDepto LocalDepto
10 José Silva Programador 2500 1 213334555 Lisboa
20 Maria Costa Analista 5000 2 224446888 Porto
30 João Fonseca Operador 600 1 213334555 Lisboa
40 Ana Faria Analista 5200 4 275222333 Covilhã
Anomalias de modificação
• Alterar um atributo de um departamento
• Implica atualizar o mesmo atributo em todos os empregados do
departamento
idEmp Nome Categoria Salário Depto TelDepto LocalDepto
10 José Silva Programador 2500 1 213334555 Lisboa
20 Maria Costa Analista 5000 2 224446888 Porto
30 João Fonseca Operador 600 1 213334555 Lisboa
40 Ana Faria Analista 5200 4 275222333 Covilhã
Solução: decomposição da relação
• Podemos evitar as anomalias decompondo a relação
EmpregadoDepartamento(idEmp, Nome, Categoria, Salario, Depto,
TelDepto, LocalDepto)
• Nas relações
Empregado(idEmp, Nome, Categoria, Salario, Dep)
Departamento(Dep, TelDep, LocalDep)
Teoria da normalização (Edgar Codd): define processo de estruturar tabelas
numa BD de forma a minimizar redundância com base no conceito de
dependência funcional
Solução: decomposição da relação
• Podemos evitar as anomalias decompondo a relação
EmpregadoDepartamento(idEmp, Nome, Categoria, Salario, Depto,
TelDepto, LocalDepto)
• Nas relações
Empregado(idEmp, Nome, Categoria, Salario, Dep)
Departamento(Dep, TelDep, LocalDep)
Teoria da normalização (Edgar Codd): define processo de estruturar tabelas
numa BD de forma a minimizar redundância com base no conceito de
dependência funcional
Solução: decomposição da relação
• Podemos evitar as anomalias decompondo a relação
EmpregadoDepartamento(idEmp, Nome, Categoria, Salario, Depto,
TelDepto, LocalDepto)
• Nas relações
Empregado(idEmp, Nome, Categoria, Salario, Dep)
Departamento(Dep, TelDep, LocalDep)
Teoria da normalização (Edgar Codd): define processo de estruturar tabelas
numa BD de forma a minimizar redundância com base no conceito de
dependência funcional
Dependências Funcionais
• Consideremos a relação
Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone)
• Podemos descrever as seguintes dependências entre atributos
i) Um dado CC determina um único tuplo da relação Morada
(i.e. valores únicos para Nome, Endereco, Cidade, CodPosta, Telefone)
ii) Dados os atributos Endereço e Cidade todos os tuplos da relação morada têm
o mesmo CodPostal
iii) A um dado CodPostal corresponde um único valor do atributo Cidade
As dependências descritas (i, ii, iii) são dependências lógicas
Dependências Funcionais
• Consideremos a relação
Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone)
• Podemos descrever as seguintes dependências entre atributos
i) Um dado CC determina um único tuplo da relação Morada
(i.e. valores únicos para Nome, Endereco, Cidade, CodPosta, Telefone)
ii) Dados os atributos Endereço e Cidade todos os tuplos da relação morada têm
o mesmo CodPostal
iii) A um dado CodPostal corresponde um único valor do atributo Cidade
As dependências descritas (i, ii, iii) são dependências lógicas
Dependências Funcionais
• Consideremos a relação
Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone)
• Podemos descrever as seguintes dependências entre atributos
i) Um dado CC determina um único tuplo da relação Morada
(i.e. valores únicos para Nome, Endereco, Cidade, CodPosta, Telefone)
ii) Dados os atributos Endereço e Cidade todos os tuplos da relação morada têm
o mesmo CodPostal
iii) A um dado CodPostal corresponde um único valor do atributo Cidade
As dependências descritas (i, ii, iii) são dependências lógicas
Dependências Funcionais
• Consideremos a relação
Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone)
• Podemos descrever as seguintes dependências entre atributos
i) Um dado CC determina um único tuplo da relação Morada
(i.e. valores únicos para Nome, Endereco, Cidade, CodPosta, Telefone)
ii) Dados os atributos Endereço e Cidade todos os tuplos da relação morada têm
o mesmo CodPostal
iii) A um dado CodPostal corresponde um único valor do atributo Cidade
As dependências descritas (i, ii, iii) são dependências lógicas
Dependências Funcionais
• Consideremos a relação
Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone)
• Podemos descrever as seguintes dependências entre atributos
i) Um dado CC determina um único tuplo da relação Morada
(i.e. valores únicos para Nome, Endereco, Cidade, CodPosta, Telefone)
ii) Dados os atributos Endereço e Cidade todos os tuplos da relação morada têm
o mesmo CodPostal
iii) A um dado CodPostal corresponde um único valor do atributo Cidade
As dependências descritas (i, ii, iii) são dependências lógicas
Dependências funcionais
• É um tipo de dependência lógica (outros: multivalor, de junção)
• Dependências funcionais são determinadas pela semântica do
contexto que estamos a modelar
• Não podem ser determinadas a partir de um conjunto de tuplos
• Um conjunto de tuplos permite apenas verificar se esta dependência é
verdadeira
• Uma dependência functional é uma generalização da noção de chave
Dependências funcionais
• É um tipo de dependência lógica (outros: multivalor, de junção)
• Dependências funcionais são determinadas pela semântica do
contexto que estamos a modelar
• Não podem ser determinadas a partir de um conjunto de tuplos
• Um conjunto de tuplos permite apenas verificar se esta dependência é
verdadeira
• Uma dependência functional é uma generalização da noção de chave
Dependências funcionais
• É um tipo de dependência lógica (outros: multivalor, de junção)
• Dependências funcionais são determinadas pela semântica do
contexto que estamos a modelar
• Não podem ser determinadas a partir de um conjunto de tuplos
• Um conjunto de tuplos permite apenas verificar se esta dependência é
verdadeira
• Uma dependência funcional é uma generalização da noção de chave
Dependência funcional - Definição
• Dado 𝑅(𝐴1, 𝐴2, … , 𝐴𝑛)
• Existe dependência funcional entre X e Y (subconjuntos de atributos
de R)
𝑋 ⟶ 𝑌 (lê-se X determina Y e Y depende de X)
Em qualquer instante, qualquer tuplo de R com mesmo valor de X tem
obrigatóriamente o mesmo valor de Y.
Dependência funcional - Definição
• Dado 𝑅(𝐴1, 𝐴2, … , 𝐴𝑛)
• Existe dependência funcional entre X e Y (subconjuntos de atributos
de R)
𝑋 ⟶ 𝑌 (lê-se X determina Y e Y depende de X)
Em qualquer instante, qualquer tuplo de R com mesmo valor de X tem
obrigatóriamente o mesmo valor de Y.
Dependência funcional - Exemplo
Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone)
CC ⟶ Nome
CC ⟶ Endereço
CC ⟶ Cidade
CC ⟶ CodPostal
CC ⟶ Telefone
Endereço, Cidade ⟶ CodPostal
CodPostal ⟶ Cidade
Dependência funcional - Chaves
• Chave (candidata)
• 𝑅(𝐴1, 𝐴2, … , 𝐴𝑛) e 𝑋 ⊆ {𝐴1, 𝐴2, … , 𝐴𝑛}
• X é chave de R
i) ∀𝑖 𝑋 ⟶ 𝐴𝑖 𝑖 = 1,2, … , 𝑛 X determina funcionalmente todos os atributos de R
ii) ∄𝑦⊂𝑋∶ ∀𝑖 𝑌 ⟶ 𝐴𝑖 𝑖 = 1,2, … , 𝑛
Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone)
CC é a única chave da relação Morada
• Super-chave: conjunto X que satisfaz i) mas não ii)
Qualquer conjunto que contenha atributo CC
não existe um subconjunto de X que
determina todos os atributos de R
Dependência funcional - Chaves
• Chave (candidata)
• 𝑅(𝐴1, 𝐴2, … , 𝐴𝑛) e 𝑋 ⊆ {𝐴1, 𝐴2, … , 𝐴𝑛}
• X é chave de R
i) ∀𝑖 𝑋 ⟶ 𝐴𝑖 𝑖 = 1,2, … , 𝑛 X determina funcionalmente todos os atributos de R
ii) ∄𝑦⊂𝑋∶ ∀𝑖 𝑌 ⟶ 𝐴𝑖 𝑖 = 1,2, … , 𝑛
Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone)
CC é a única chave da relação Morada
• Super-chave: conjunto X que satisfaz i) mas não ii)
Qualquer conjunto que contenha atributo CC
não existe um subconjunto de X que
determina todos os atributos de R
Dependência funcional - Chaves
• Chave (candidata)
• 𝑅(𝐴1, 𝐴2, … , 𝐴𝑛) e 𝑋 ⊆ {𝐴1, 𝐴2, … , 𝐴𝑛}
• X é chave de R
i) ∀𝑖 𝑋 ⟶ 𝐴𝑖 𝑖 = 1,2, … , 𝑛 X determina funcionalmente todos os atributos de R
ii) ∄𝑦⊂𝑋∶ ∀𝑖 𝑌 ⟶ 𝐴𝑖 𝑖 = 1,2, … , 𝑛
Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone)
CC é a única chave da relação Morada
• Super-chave: conjunto X que satisfaz i) mas não ii)
Qualquer conjunto que contenha atributo CC
não existe um subconjunto de X que
determina todos os atributos de R
Propriedades básicas das DFs
• Unicidade
se as DFs 𝑓: X ⟶ 𝑌 e 𝑔: X ⟶ 𝑌 então 𝑓 = 𝑔
• Reflexibilidade
se 𝑋 ⊆ 𝑌 então Y ⟶ 𝑋
• Transitividade
se X ⟶ 𝑌 e Y ⟶ 𝑍 então X ⟶ 𝑍
• União
se X ⟶ 𝑌 e X ⟶ 𝑍 então X ⟶ 𝑌𝑍
Propriedades básicas das DFs
• Unicidade
se as DFs 𝑓: X ⟶ 𝑌 e 𝑔: X ⟶ 𝑌 então 𝑓 = 𝑔
• Reflexibilidade
se 𝑋 ⊆ 𝑌 então Y ⟶ 𝑋
• Transitividade
se X ⟶ 𝑌 e Y ⟶ 𝑍 então X ⟶ 𝑍
• União
se X ⟶ 𝑌 e X ⟶ 𝑍 então X ⟶ 𝑌𝑍
Propriedades básicas das DFs
• Unicidade
se as DFs 𝑓: X ⟶ 𝑌 e 𝑔: X ⟶ 𝑌 então 𝑓 = 𝑔
• Reflexibilidade
se 𝑋 ⊆ 𝑌 então Y ⟶ 𝑋
• Transitividade
se X ⟶ 𝑌 e Y ⟶ 𝑍 então X ⟶ 𝑍
• União
se X ⟶ 𝑌 e X ⟶ 𝑍 então X ⟶ 𝑌𝑍
Propriedades básicas das DFs
• Unicidade
se as DFs 𝑓: X ⟶ 𝑌 e 𝑔: X ⟶ 𝑌 então 𝑓 = 𝑔
• Reflexibilidade
se 𝑋 ⊆ 𝑌 então Y ⟶ 𝑋
• Transitividade
se X ⟶ 𝑌 e Y ⟶ 𝑍 então X ⟶ 𝑍
• União
se X ⟶ 𝑌 e X ⟶ 𝑍 então X ⟶ 𝑌𝑍
Exemplo
Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone)
CC ⟶ Nome, CC ⟶ Cidade, CC ⟶ CodPostal, CC ⟶ Telefone
Endereço, Cidade ⟶ CodPostal, CodPostal ⟶ Cidade
A – Por reflexibilidade C – Por unicidade
Endereço, Cidade ⟶ Endereço [1] e [2] são a mesma DF
Endereço, Cidade ⟶ Cidade [1]
D – Por união
B – Por transitividade CC ⟶ Telefone
Endereço, Cidade ⟶ CodPostal CC ⟶ Endereço
CodPostal ⟶ Cidade CC ⟶ Telefone, Endereço
Endereço, Cidade ⟶ Cidade [2] CC ⟶ Cidade, CodPostal
CC ⟶ Nome, Telefone, Endereço, Cidade, CodPostal
Nome é a chave da relação Morada
Exemplo
Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone)
CC ⟶ Nome, CC ⟶ Cidade, CC ⟶ CodPostal, CC ⟶ Telefone
Endereço, Cidade ⟶ CodPostal, CodPostal ⟶ Cidade
A – Por reflexibilidade C – Por unicidade
Endereço, Cidade ⟶ Endereço [1] e [2] são a mesma DF
Endereço, Cidade ⟶ Cidade [1]
D – Por união
B – Por transitividade CC ⟶ Telefone
Endereço, Cidade ⟶ CodPostal CC ⟶ Endereço
CodPostal ⟶ Cidade CC ⟶ Telefone, Endereço
Endereço, Cidade ⟶ Cidade [2] CC ⟶ Cidade, CodPostal
CC ⟶ Nome, Telefone, Endereço, Cidade, CodPostal
Nome é a chave da relação Morada
Exemplo
Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone)
CC ⟶ Nome, CC ⟶ Cidade, CC ⟶ CodPostal, CC ⟶ Telefone
Endereço, Cidade ⟶ CodPostal, CodPostal ⟶ Cidade
A – Por reflexibilidade C – Por unicidade
Endereço, Cidade ⟶ Endereço [1] e [2] são a mesma DF
Endereço, Cidade ⟶ Cidade [1]
D – Por união
B – Por transitividade CC ⟶ Telefone
Endereço, Cidade ⟶ CodPostal CC ⟶ Endereço
CodPostal ⟶ Cidade CC ⟶ Telefone, Endereço
Endereço, Cidade ⟶ Cidade [2] CC ⟶ Cidade, CodPostal
CC ⟶ Nome, Telefone, Endereço, Cidade, CodPostal
Nome é a chave da relação Morada
Exemplo
Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone)
CC ⟶ Nome, CC ⟶ Cidade, CC ⟶ CodPostal, CC ⟶ Telefone
Endereço, Cidade ⟶ CodPostal, CodPostal ⟶ Cidade
A – Por reflexibilidade C – Por unicidade
Endereço, Cidade ⟶ Endereço [1] e [2] são a mesma DF
Endereço, Cidade ⟶ Cidade [1]
D – Por união
B – Por transitividade CC ⟶ Telefone
Endereço, Cidade ⟶ CodPostal CC ⟶ Endereço
CodPostal ⟶ Cidade CC ⟶ Telefone, Endereço
Endereço, Cidade ⟶ Cidade [2] CC ⟶ Cidade, CodPostal
CC ⟶ Nome, Telefone, Endereço, Cidade, CodPostal
Nome é a chave da relação Morada
Exemplo
Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone)
CC ⟶ Nome, CC ⟶ Cidade, CC ⟶ CodPostal, CC ⟶ Telefone
Endereço, Cidade ⟶ CodPostal, CodPostal ⟶ Cidade
A – Por reflexibilidade C – Por unicidade
Endereço, Cidade ⟶ Endereço [1] e [2] são a mesma DF
Endereço, Cidade ⟶ Cidade [1]
D – Por união
B – Por transitividade CC ⟶ Telefone
Endereço, Cidade ⟶ CodPostal CC ⟶ Endereço
CodPostal ⟶ Cidade CC ⟶ Telefone, Endereço
Endereço, Cidade ⟶ Cidade [2] CC ⟶ Cidade, CodPostal
CC ⟶ Nome, Telefone, Endereço, Cidade, CodPostal
Nome é a chave da relação Morada
Exemplo
Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone)
CC ⟶ Nome, CC ⟶ Cidade, CC ⟶ CodPostal, CC ⟶ Telefone
Endereço, Cidade ⟶ CodPostal, CodPostal ⟶ Cidade
A – Por reflexibilidade C – Por unicidade
Endereço, Cidade ⟶ Endereço [1] e [2] são a mesma DF
Endereço, Cidade ⟶ Cidade [1]
D – Por união
B – Por transitividade CC ⟶ Telefone
Endereço, Cidade ⟶ CodPostal CC ⟶ Endereço
CodPostal ⟶ Cidade CC ⟶ Telefone, Endereço
Endereço, Cidade ⟶ Cidade [2] CC ⟶ Cidade, CodPostal
CC ⟶ Nome, Telefone, Endereço, Cidade, CodPostal
Nome é a chave da relação Morada
Propriedades derivadas das DFs
• Distributividade
se X ⟶ 𝑌𝑍 então X ⟶ 𝑌 e X ⟶ 𝑍
• Aumento
se X ⟶ 𝑌 e W ⟶ 𝑍 então XW ⟶ 𝑌𝑍
• Pseudo-transitividade
se X ⟶ 𝑌 e YW ⟶ 𝑍 então XW ⟶ 𝑍
Perda de informação
• Seja a relação
R(Nome, Telefone, Cidade)
Nome ↛ Telefone (telefone e cidade não dependem de Nome)
Nome ↛ Cidade (uma pessoa tem vários telefones e cidades)
Nome Telefone Cidade
José da Silva 123456789 Leiria
José da Silva 222222222 Faro
António Costa 333333333 Leiria
Perda de informação
• Seja a relação
R(Nome, Telefone, Cidade)
Nome ↛ Telefone (telefone e cidade não dependem de Nome)
Nome ↛ Cidade (uma pessoa tem vários telefones e cidades)
Nome Telefone Cidade
José da Silva 123456789 Leiria
José da Silva 222222222 Faro
António Costa 333333333 Leiria
Nome Cidade
José da Silva Leiria
José da Silva Faro
António Costa Leiria
Nome Telefone
José da Silva 123456789
José da Silva 222222222
António Costa 333333333
R1
R2
Perda de informação
𝑅1 ⋈ 𝑅2
Nome Cidade
José da Silva Leiria
José da Silva Faro
António Costa Leiria
Nome Telefone
José da Silva 123456789
José da Silva 222222222
António Costa 333333333
R1 R2
Nome Telefone Cidade
José da Silva 123456789 Leiria
José da Silva 123456789 Faro
José da Silva 222222222 Leiria
José da Silva 222222222 Faro
António Costa 333333333 Leiria
Perda de informação
𝑅1 ⋈ 𝑅2
Nome Cidade
José da Silva Leiria
José da Silva Faro
António Costa Leiria
Nome Telefone
José da Silva 123456789
José da Silva 222222222
António Costa 333333333
R1 R2
Nome Telefone Cidade
José da Silva 123456789 Leiria
José da Silva 123456789 Faro
José da Silva 222222222 Leiria
José da Silva 222222222 Faro
António Costa 333333333 Leiria
Junção da decomposição
diferente da relação inicial
Decomposição não pode ser
feita desta forma
Perda de informação
𝑅1 ⋈ 𝑅2
Nome Cidade
José da Silva Leiria
José da Silva Faro
António Costa Leiria
Nome Telefone
José da Silva 123456789
José da Silva 222222222
António Costa 333333333
R1 R2
Nome Telefone Cidade
José da Silva 123456789 Leiria
José da Silva 123456789 Faro
José da Silva 222222222 Leiria
José da Silva 222222222 Faro
António Costa 333333333 Leiria
Junção da decomposição
diferente da relação inicial
Decomposição não pode ser
feita desta forma
Normalização
• Obtida pela decomposição da relação em duas ou mais relações
• Procedimento bem definido
• Vários níveis:
• 1ª Forma Normal (1FN)
• 2ª Forma Normal (2FN)
• 3ª Forma Normal (3FN)
• Forma Normal de Boyce Codd (FNBC)
• 4ª Forma Normal (4FN)
• 5ª Forma Normal (5FN)
Normalização (cont.)
• Forma normal mais avançada implica menor redundância
• Se relação está numa forma normal também está nas FN anteriores
5FN 4FN FNBC 3FN 2FN 1FN
Primeira Forma Normal (1FN)
• Uma relação está na 1FN se
• Atributos contêm valores atómicos
• Não há atributos repetidos (descrevem mesma caracteristica)
• Não tem grupos de atributos repetitivos.
Exemplo 1
• PessoaCursos1
Nome Endereço NIF Cursos
Artur Covilhã 123456789 Programador
Ana Fundão 222222222 Operador,Programador
Carlos Covilhã 222333444 Analista, Programador,
Operador
Paulo Guarda 555666777 Operador, Analista
Exemplo 1
• PessoaCursos1
• O atributo Cursos contém valores não atómicos
• A relação PessoaCursos1 não está na 1FN
Nome Endereço NIF Cursos
Artur Covilhã 123456789 Programador
Ana Fundão 222222222 Operador,Programador
Carlos Covilhã 222333444 Analista, Programador,
Operador
Paulo Guarda 555666777 Operador, Analista
Exemplo 2
• PessoaCursos2
Nome Endereço NIF Curso1 Curso2 Curso3
Artur Covilhã 123456789 Programador
Ana Fundão 222222222 Operador Programador
Carlos Covilhã 222333444 Analista Programador Operador
Paulo Guarda 555666777 Operador Analista
Exemplo 2
• PessoaCursos2
• São repetidos atributos do mesmo tipo (grupo repetitivo)
• A relação PessoaCursos2 não está na 1FN
Nome Endereço NIF Curso1 Curso2 Curso3
Artur Covilhã 123456789 Programador
Ana Fundão 222222222 Operador Programador
Carlos Covilhã 222333444 Analista Programador Operador
Paulo Guarda 555666777 Operador Analista
Exemplo 3
• Considere a relação
R( N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente, Cod_produto, Desc_produto,
Preço_produto, Quantidade )
Os dados de cada produto encomendado
• Como decompor?
Exemplo 3
• Considere a relação
R( N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente, (Cod_produto, Desc_produto,
Preço_produto, Quantidade)* )
Os dados de cada produto encomendado
• Como decompor?
Exemplo 3
• Considere a relação
R( N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente, (Cod_produto, Desc_produto,
Preço_produto, Quantidade)* )
Os dados de cada produto encomendado
• Como decompor?
N_nota_enc ⟶ Cod_cliente, Nome_cliente, Morada_cliente (dependência funcional)
Exemplo 3
• Considere a relação
R( N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente, (Cod_produto, Desc_produto,
Preço_produto, Quantidade)* )
Os dados de cada produto encomendado
• Como decompor?
N_nota_enc ⟶ Cod_cliente, Nome_cliente, Morada_cliente (dependência funcional)
• Podemos decompor R em
Nota_de_enc(N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente)
Linha_nota_enc(N_nota_enc, Cod_produto, Desc_produto, Preço_produto, Quantidade)
Segunda Forma Normal (2FN)
• Considere R(Fornecedor, Peça, Cidade, Quantidade)
• Onde
• Fornecedor ↛ Peça
• Peça ↛ Fornecedor
• Fornecedor ⟶ Cidade
Segunda Forma Normal (2FN) (cont.)
• Num dado instante,
Fornecedor Peça Cidade Quantidade
Empresa A 1 Covilhã 100
Empresa A 2 Covilhã 200
Empresa A 3 Covilhã 300
Empresa B 1 Fundão 400
Empresa B 3 Fundão 500
Segunda Forma Normal (2FN) (cont.)
• Num dado instante,
• Algumas anomalias
• Inserção: inserir fornecedor sem peça (peça faz parte da chave)
• Eliminação: eliminar peça 1 e 3 de empresa B perde-se informação sobre fornecedor
• Modificação: atualizar cidade de fornecedor implica atualizar todos os tuplos do fornecedor
Fornecedor Peça Cidade Quantidade
Empresa A 1 Covilhã 100
Empresa A 2 Covilhã 200
Empresa A 3 Covilhã 300
Empresa B 1 Fundão 400
Empresa B 3 Fundão 500
Segunda Forma Normal (2FN) (cont.)
• Num dado instante,
• Algumas anomalias
• Inserção: inserir fornecedor sem peça (peça faz parte da chave)
• Eliminação: eliminar peça 1 e 3 de empresa B perde-se informação sobre fornecedor
• Modificação: atualizar cidade de fornecedor implica atualizar todos os tuplos do fornecedor
Fornecedor Peça Cidade Quantidade
Empresa A 1 Covilhã 100
Empresa A 2 Covilhã 200
Empresa A 3 Covilhã 300
Empresa B 1 Fundão 400
Empresa B 3 Fundão 500
Segunda Forma Normal (2FN) (cont.)
• Num dado instante,
• Algumas anomalias
• Inserção: inserir fornecedor sem peça (peça faz parte da chave)
• Eliminação: eliminar peça 1 e 3 de empresa B perde-se informação sobre fornecedor
• Modificação: atualizar cidade de fornecedor implica atualizar todos os tuplos do fornecedor
Fornecedor Peça Cidade Quantidade
Empresa A 1 Covilhã 100
Empresa A 2 Covilhã 200
Empresa A 3 Covilhã 300
Empresa B 1 Fundão 400
Empresa B 3 Fundão 500
Segunda Forma Normal (2FN) (cont.)
• Num dado instante,
• Algumas anomalias
• Inserção: inserir fornecedor sem peça (peça faz parte da chave)
• Eliminação: eliminar peça 1 e 3 de empresa B perde-se informação sobre fornecedor
• Modificação: atualizar cidade de fornecedor implica atualizar todos os tuplos do fornecedor
Fornecedor Peça Cidade Quantidade
Empresa A 1 Covilhã 100
Empresa A 2 Covilhã 200
Empresa A 3 Covilhã 300
Empresa B 1 Fundão 400
Empresa B 3 Fundão 500
Segunda Forma Normal (2FN) (cont.)
• Decomposição
• 𝑅1 = 𝜋 𝐹𝑜𝑟𝑛𝑒𝑐𝑒𝑑𝑜𝑟,𝐶𝑖𝑑𝑎𝑑𝑒 (𝑅) R1(Fornecedor, Cidade)
• 𝑅2 = 𝜋 𝐹𝑜𝑟𝑛𝑒𝑐𝑒𝑑𝑜𝑟,𝑃𝑒ç𝑎,𝑄𝑢𝑎𝑛𝑡𝑖𝑑𝑎𝑑𝑒 (𝑅) R2(Fornecedor, Peça,Quantidade)
• Desaparecem anomalias
• A DF Fornecedor ⟶ Cidade
• Garante que 𝑅 = 𝑅1 ⋈𝐹𝑜𝑟𝑛𝑒𝑐𝑒𝑑𝑜𝑟=𝐹𝑜𝑟𝑛𝑒𝑐𝑒𝑑𝑜𝑟 𝑅2
• Uma relação está na 2ª forma normal
• se está na 1FN
• atributos que não são chave dependem da totalidade da chave.
Segunda Forma Normal (2FN) (cont.)
• Decomposição
• 𝑅1 = 𝜋 𝐹𝑜𝑟𝑛𝑒𝑐𝑒𝑑𝑜𝑟,𝐶𝑖𝑑𝑎𝑑𝑒 (𝑅) R1(Fornecedor, Cidade)
• 𝑅2 = 𝜋 𝐹𝑜𝑟𝑛𝑒𝑐𝑒𝑑𝑜𝑟,𝑃𝑒ç𝑎,𝑄𝑢𝑎𝑛𝑡𝑖𝑑𝑎𝑑𝑒 (𝑅) R2(Fornecedor, Peça,Quantidade)
• Desaparecem anomalias
• A DF Fornecedor ⟶ Cidade
• Garante que 𝑅 = 𝑅1 ⋈𝐹𝑜𝑟𝑛𝑒𝑐𝑒𝑑𝑜𝑟=𝐹𝑜𝑟𝑛𝑒𝑐𝑒𝑑𝑜𝑟 𝑅2
• Uma relação está na 2ª forma normal
• se está na 1FN
• atributos que não são chave dependem da totalidade da chave.
Segunda Forma Normal (2FN) (cont.)
• Decomposição
• 𝑅1 = 𝜋 𝐹𝑜𝑟𝑛𝑒𝑐𝑒𝑑𝑜𝑟,𝐶𝑖𝑑𝑎𝑑𝑒 (𝑅) R1(Fornecedor, Cidade)
• 𝑅2 = 𝜋 𝐹𝑜𝑟𝑛𝑒𝑐𝑒𝑑𝑜𝑟,𝑃𝑒ç𝑎,𝑄𝑢𝑎𝑛𝑡𝑖𝑑𝑎𝑑𝑒 (𝑅) R2(Fornecedor, Peça,Quantidade)
• Desaparecem anomalias
• A DF Fornecedor ⟶ Cidade
• Garante que 𝑅 = 𝑅1 ⋈𝐹𝑜𝑟𝑛𝑒𝑐𝑒𝑑𝑜𝑟=𝐹𝑜𝑟𝑛𝑒𝑐𝑒𝑑𝑜𝑟 𝑅2
• Uma relação está na 2ª forma normal
• se está na 1FN
• atributos que não são chave dependem da totalidade da chave.
Dependencia funcional elementar e parcial
• Considere R(X, Y, Z, …)
• Dependência funcional elementar
• X ⟶ Y é elementar se ∀𝑋′ ⊂ 𝑋: 𝑋′ ↛ 𝑌
• Dependência funcional parcial
• X ⟶ Y e X’ ⟶ Y (com 𝑋′ ⊂ 𝑋) então X ⟶ Y é uma DF parcial
Dependencia funcional elementar e parcial
• Considere R(X, Y, Z, …)
• Dependência funcional elementar
• X ⟶ Y é elementar se ∀𝑋′ ⊂ 𝑋: 𝑋′ ↛ 𝑌
• Dependência funcional parcial
• X ⟶ Y e X’ ⟶ Y (com 𝑋′ ⊂ 𝑋) então X ⟶ Y é uma DF parcial
Exemplo
• Linha_nota_enc (N_nota_enc, Cod_produto, Desc_produto,
Preço_prod, Quantidade)
• As dependências funcionais
• N_nota_enc, Cod_produto ⟶ Desc_produto
• N_nota_enc, Cod_produto ⟶ Preço_produto
• Não são elementares
• Cod_produto ⟶ Desc_produto
• Cod_produto ⟶ Preço_produto
Exemplo
• Linha_nota_enc (N_nota_enc, Cod_produto, Desc_produto,
Preço_prod, Quantidade)
• As dependências funcionais
• N_nota_enc, Cod_produto ⟶ Desc_produto
• N_nota_enc, Cod_produto ⟶ Preço_produto
• Não são elementares
• Cod_produto ⟶ Desc_produto
• Cod_produto ⟶ Preço_produto
Exemplo
• Linha_nota_enc (N_nota_enc, Cod_produto, Desc_produto,
Preço_prod, Quantidade)
• As dependências funcionais
• N_nota_enc, Cod_produto ⟶ Desc_produto
• N_nota_enc, Cod_produto ⟶ Preço_produto
• Não são elementares
• Cod_produto ⟶ Desc_produto
• Cod_produto ⟶ Preço_produto
Exemplo
• Linha_nota_enc (N_nota_enc, Cod_produto, Desc_produto,
Preço_prod, Quantidade)
• Linha_nota_enc é decomposto em
• Linha_Nota_Enc ( N_nota_enc, Cod_produto, Quantidade)
• Produto ( Cod_produto, Desc_produto, Preço_produto)
• A DF Cod_produto ⟶ Desc_produto, Preço_produto garante validade
da decomposição
Exemplo
• Linha_nota_enc (N_nota_enc, Cod_produto, Desc_produto,
Preço_prod, Quantidade)
• Linha_nota_enc é decomposto em
• Linha_Nota_Enc ( N_nota_enc, Cod_produto, Quantidade)
• Produto ( Cod_produto, Desc_produto, Preço_produto)
• A DF Cod_produto ⟶ Desc_produto, Preço_produto garante validade
da decomposição
Exemplo
• Linha_nota_enc (N_nota_enc, Cod_produto, Desc_produto,
Preço_prod, Quantidade)
• Linha_nota_enc é decomposto em
• Linha_Nota_Enc ( N_nota_enc, Cod_produto, Quantidade)
• Produto ( Cod_produto, Desc_produto, Preço_produto)
• A DF Cod_produto ⟶ Desc_produto, Preço_produto garante validade
da decomposição
Casos especiais da 2FN
• Se todos os atributos de uma relação são primos (pertencem a uma
chave)
ou
• A chave da relação consiste num único atributo.
• Então a relação está na 2ª forma normal.
Decomposição na 2FN
• Toda a relação R que não esteja na 2FN pode ser decomposta num
conjunto de projecções que estão na 2FN.
• Para vermos se uma relação está na 2FN:
1. Identificamos a chave da tabela. Se a chave for apenas um atributo, ou for
constituída por todos os atributos da relação, então podemos concluir que está na
2FN.
2. Se a chave for composta (tiver mais do que um atributo) verificamos se há
atributos que não são chave e que dependem apenas de parte da chave. Se não
houver, então está na 2FN.
3. Se houver, então decompor de acordo com o esquema anterior.
Decomposição na 2FN
• Toda a relação R que não esteja na 2FN pode ser decomposta num
conjunto de projecções que estão na 2FN.
• Para vermos se uma relação está na 2FN:
1. Identificamos a chave da tabela. Se a chave for apenas um atributo, ou for
constituída por todos os atributos da relação, então podemos concluir que está na
2FN.
2. Se a chave for composta (tiver mais do que um atributo) verificamos se há
atributos que não são chave e que dependem apenas de parte da chave. Se não
houver, então está na 2FN.
3. Se houver, então decompor de acordo com o esquema anterior.
Decomposição na 2FN
• Toda a relação R que não esteja na 2FN pode ser decomposta num
conjunto de projecções que estão na 2FN.
• Para vermos se uma relação está na 2FN:
1. Identificamos a chave da tabela. Se a chave for apenas um atributo, ou for
constituída por todos os atributos da relação, então podemos concluir que está na
2FN.
2. Se a chave for composta (tiver mais do que um atributo) verificamos se há
atributos que não são chave e que dependem apenas de parte da chave. Se não
houver, então está na 2FN.
3. Se houver, então decompor de acordo com o esquema anterior.
Decomposição na 2FN
• Toda a relação R que não esteja na 2FN pode ser decomposta num
conjunto de projecções que estão na 2FN.
• Para vermos se uma relação está na 2FN:
1. Identificamos a chave da tabela. Se a chave for apenas um atributo, ou for
constituída por todos os atributos da relação, então podemos concluir que está na
2FN.
2. Se a chave for composta (tiver mais do que um atributo) verificamos se há
atributos que não são chave e que dependem apenas de parte da chave. Se não
houver, então está na 2FN.
3. Se houver, então decompor de acordo com o esquema anterior.
Decomposição na 2FN
• Toda a relação R que não esteja na 2FN pode ser decomposta num
conjunto de projecções que estão na 2FN.
• Para vermos se uma relação está na 2FN:
1. Identificamos a chave da tabela. Se a chave for apenas um atributo, ou for
constituída por todos os atributos da relação, então podemos concluir que está na
2FN.
2. Se a chave for composta (tiver mais do que um atributo) verificamos se há
atributos que não são chave e que dependem apenas de parte da chave. Se não
houver, então está na 2FN.
3. Se houver, então decompor de acordo com o esquema anterior.
Terceira Forma Normal (3FN)
• Considere a relação E(N_emp, Dep, Cidade)
• Com
• N_emp ⟶ Dep
• Dep ↛ N_emp
• Dep ⟶ Cidade
• Cidade ↛ Dep
Anomalias
• E
E(N_emp, Dep, Cidade) está na 2FN
N_emp Dep Cidade
a A X
b A X
c A X
d B Y
e B Y
f C X
g C X
Inserção: não podemos inserir um departamento
se não tem empregados
Eliminação: se eliminamos o ultimo empregado
de departamento perdemos informação
Modificação: Atributo cidade repetido para
departamento, implica alteração em todos os
empregados
Anomalias
• E
E(N_emp, Dep, Cidade) está na 2FN
N_emp Dep Cidade
a A X
b A X
c A X
d B Y
e B Y
f C X
g C X
Inserção: não podemos inserir um departamento
se não tem empregados
Eliminação: se eliminamos o ultimo empregado
de departamento perdemos informação
Modificação: Atributo cidade repetido para
departamento, implica alteração em todos os
empregados
Anomalias
• E
E(N_emp, Dep, Cidade) está na 2FN
N_emp Dep Cidade
a A X
b A X
c A X
d B Y
e B Y
f C X
g C X
Inserção: não podemos inserir um departamento
se não tem empregados
Eliminação: se eliminamos o ultimo empregado
de departamento perdemos informação
Modificação: Atributo cidade repetido para
departamento, implica alteração em todos os
empregados
Anomalias
• E
E(N_emp, Dep, Cidade) está na 2FN
N_emp Dep Cidade
a A X
b A X
c A X
d B Y
e B Y
f C X
g C X
Inserção: não podemos inserir um departamento
se não tem empregados
Eliminação: se eliminamos o ultimo empregado
de departamento perdemos informação
Modificação: Atributo cidade repetido para
departamento, implica alteração em todos os
empregados
Anomalias
• E
E(N_emp, Dep, Cidade) está na 2FN
N_emp Dep Cidade
a A X
b A X
c A X
d B Y
e B Y
f C X
g C X
Inserção: não podemos inserir um departamento
se não tem empregados
Eliminação: se eliminamos o ultimo empregado
de departamento perdemos informação
Modificação: Atributo cidade repetido para
departamento, implica alteração em todos os
empregados
(atributos não chave depende da
totalidade da chave)
Decomposição de E
• Se substituirmos E por
𝐸𝑚𝑝𝑟𝑒𝑔𝑎𝑑𝑜 = 𝜋𝑁𝑒𝑚𝑝,𝐷𝑒𝑝 𝐸
𝐷𝑒𝑝𝑎𝑟𝑡𝑎𝑚𝑒𝑛𝑡𝑜 = 𝜋𝐷𝑒𝑝,𝐶𝑖𝑑𝑎𝑑𝑒(𝐸)
desaparecem as anomalias.
A DF 𝐷𝑒𝑝𝑎𝑟𝑡𝑎𝑚𝑒𝑛𝑡𝑜 ⟶ 𝐶𝑖𝑑𝑎𝑑𝑒 garante que
𝐸 = 𝐸𝑚𝑝𝑟𝑒𝑔𝑎𝑑𝑜 ⋈𝐷𝑒𝑝=𝐷𝑒𝑝 𝐷𝑒𝑝𝑎𝑟𝑡𝑎𝑚𝑒𝑛𝑡𝑜
• Uma relação está na 3ª forma normal
• se está na 2FN
• nenhum dos atributos não chave depende de outro não chave.
Decomposição de E
• Se substituirmos E por
𝐸𝑚𝑝𝑟𝑒𝑔𝑎𝑑𝑜 = 𝜋𝑁𝑒𝑚𝑝,𝐷𝑒𝑝 𝐸
𝐷𝑒𝑝𝑎𝑟𝑡𝑎𝑚𝑒𝑛𝑡𝑜 = 𝜋𝐷𝑒𝑝,𝐶𝑖𝑑𝑎𝑑𝑒(𝐸)
desaparecem as anomalias.
A DF 𝐷𝑒𝑝𝑎𝑟𝑡𝑎𝑚𝑒𝑛𝑡𝑜 ⟶ 𝐶𝑖𝑑𝑎𝑑𝑒 garante que
𝐸 = 𝐸𝑚𝑝𝑟𝑒𝑔𝑎𝑑𝑜 ⋈𝐷𝑒𝑝=𝐷𝑒𝑝 𝐷𝑒𝑝𝑎𝑟𝑡𝑎𝑚𝑒𝑛𝑡𝑜
• Uma relação está na 3ª forma normal
• se está na 2FN
• nenhum dos atributos não chave depende de outro não chave.
Decomposição na 3ª Forma Normal
• Toda a relação R que não esteja na 3FN pode ser decomposta num
conjunto de projecções que estão na 3FN.
• Se 𝑋 ⟶ 𝑌 (com X chave), 𝑌 ↛ 𝑋 e 𝑌 ⟶ 𝑍
(isto é, existe 𝑋 ⟶ 𝑍 não direta, com Z não chave)
• R(YZ) e R(XYW) onde W tem todos os atributos que não são de X, nem
de Y nem de Z.
Decomposição na 3ª Forma Normal
• Toda a relação R que não esteja na 3FN pode ser decomposta num
conjunto de projecções que estão na 3FN.
• Se 𝑋 ⟶ 𝑌 (com X chave), 𝑌 ↛ 𝑋 e 𝑌 ⟶ 𝑍
(isto é, existe 𝑋 ⟶ 𝑍 não direta, com Z não chave)
• R(YZ) e R(XYW) onde W tem todos os atributos que não são de X, nem
de Y nem de Z.
Decomposição na 3ª Forma Normal
• Toda a relação R que não esteja na 3FN pode ser decomposta num
conjunto de projecções que estão na 3FN.
• Se 𝑋 ⟶ 𝑌 (com X chave), 𝑌 ↛ 𝑋 e 𝑌 ⟶ 𝑍
(isto é, existe 𝑋 ⟶ 𝑍 não direta, com Z não chave)
• R(YZ) e R(XYW) onde W tem todos os atributos que não são de X, nem
de Y nem de Z.
Exemplo 1
• Nota_de_enc ( N_nota_enc, Cod_cliente, Nome_cliente,
Morada_cliente)
• Cod_cliente ⟶ Nome_cliente
• Cod_cliente ⟶ Morada_cliente
• Por união, Cod_cliente ⟶ Nome_cliente, Morada_cliente
(logo a DF N_nota_enc ⟶ Nome_cliente, Morada_cliente não é direta)
A relação não está na 3FN
Exemplo 1
• Nota_de_enc ( N_nota_enc, Cod_cliente, Nome_cliente,
Morada_cliente)
• Cod_cliente ⟶ Nome_cliente
• Cod_cliente ⟶ Morada_cliente
• Por união, Cod_cliente ⟶ Nome_cliente, Morada_cliente
(logo a DF N_nota_enc ⟶ Nome_cliente, Morada_cliente não é direta)
A relação não está na 3FN
Exemplo 1
• Nota_de_enc ( N_nota_enc, Cod_cliente, Nome_cliente,
Morada_cliente)
• Cod_cliente ⟶ Nome_cliente
• Cod_cliente ⟶ Morada_cliente
• Por união, Cod_cliente ⟶ Nome_cliente, Morada_cliente
(logo a DF N_nota_enc ⟶ Nome_cliente, Morada_cliente não é direta)
A relação não está na 3FN
Decomposição
• Nota_de_enc ( N_nota_enc, Cod_cliente, Nome_cliente,
Morada_cliente)
• Cliente ( Cod_cliente , Nome_cliente, Morada_cliente)
• Nota_enc ( N_nota_enc, Cod_cliente )
Vantagens da Normalização
• Estruturas de dados mais estáveis
• Elimina a redundância
• Obtêm-se um modelo de dados mais natural e mais simples
• Evitam-se os efeitos laterais da alteração
• Evitam-se os efeitos laterais da inserção
• Evitam-se os efeitos laterais da remoção
• Facilita a exploração e manutenção de ficheiros
Desvantagens da Normalização
• Favorece a proliferação no n.º de tabelas
• Favorece a fragmentação exagerada
• Perigoso de seguir cegamente
Conclusão: Normalizar? Sim, mas com bom senso ...
Trabalho Prático – Folha 5

Mais conteúdo relacionado

Semelhante a Base de Dados - Normalização e Desenho de Base de Dados Relacionais

Por que o Microsoft Power BI? Um breve overview sobre BI
Por que o Microsoft Power BI? Um breve overview sobre BIPor que o Microsoft Power BI? Um breve overview sobre BI
Por que o Microsoft Power BI? Um breve overview sobre BI
Leonardo Karpinski
 
Base de Dados - Diagramas E-A (cont.)
Base de Dados - Diagramas E-A (cont.)Base de Dados - Diagramas E-A (cont.)
Base de Dados - Diagramas E-A (cont.)
Mariana Hiyori
 
Conheça técnicas para aumentar o ROI do projeto de monitoramento
Conheça técnicas para aumentar o ROI do projeto de monitoramentoConheça técnicas para aumentar o ROI do projeto de monitoramento
Conheça técnicas para aumentar o ROI do projeto de monitoramento
Netwall
 
Java e Orientação a Objetos - Aula 1 Aceleradora
Java e Orientação a Objetos - Aula 1 AceleradoraJava e Orientação a Objetos - Aula 1 Aceleradora
Java e Orientação a Objetos - Aula 1 Aceleradora
Julio Farah
 
Perfil dos Trabalhos e Resultados Entregues!
Perfil dos Trabalhos e Resultados Entregues!Perfil dos Trabalhos e Resultados Entregues!
Perfil dos Trabalhos e Resultados Entregues!
Paulo Santiago
 
Administração de Banco de Dados
Administração de Banco de DadosAdministração de Banco de Dados
Administração de Banco de Dados
Helder Lopes
 
ROI e Valor Econômico da Virtualização de Dados
ROI e Valor Econômico da Virtualização de DadosROI e Valor Econômico da Virtualização de Dados
ROI e Valor Econômico da Virtualização de Dados
Denodo
 
Express2012simples 130312140529-phpapp01
Express2012simples 130312140529-phpapp01Express2012simples 130312140529-phpapp01
Express2012simples 130312140529-phpapp01
Osny Pereira Filho
 
Expremendo performance do sql server
Expremendo performance do sql serverExpremendo performance do sql server
Expremendo performance do sql server
Felipe Ferreira
 
Central de Serviço e Governança de IT | Encontro de Cios CTIS e Sucesu Minas ...
Central de Serviço e Governança de IT | Encontro de Cios CTIS e Sucesu Minas ...Central de Serviço e Governança de IT | Encontro de Cios CTIS e Sucesu Minas ...
Central de Serviço e Governança de IT | Encontro de Cios CTIS e Sucesu Minas ...
sucesuminas
 
Repositório Social de Serviços Web
Repositório Social de Serviços WebRepositório Social de Serviços Web
Repositório Social de Serviços Web
Henrique Dias
 
Carreiras em Computação - FAGOC
Carreiras em Computação - FAGOCCarreiras em Computação - FAGOC
Carreiras em Computação - FAGOC
Marcelo Daibert
 
LabMM4 (T08 - 12/13) - SQL continuação
LabMM4 (T08 - 12/13) - SQL continuaçãoLabMM4 (T08 - 12/13) - SQL continuação
LabMM4 (T08 - 12/13) - SQL continuação
Carlos Santos
 
Data Warehouse - Modelagem
Data Warehouse - ModelagemData Warehouse - Modelagem
Data Warehouse - Modelagem
Rudson Kiyoshi Souza Carvalho
 
Basesdedados aula copiada da internet
Basesdedados  aula copiada da internetBasesdedados  aula copiada da internet
Basesdedados aula copiada da internet
Vedi Pinto
 
Conheça ROP - Programação orientada e trilhos​
Conheça ROP - Programação orientada e trilhos​Conheça ROP - Programação orientada e trilhos​
Conheça ROP - Programação orientada e trilhos​
Lucas Teles
 
Produtividade e Qualidade
Produtividade e QualidadeProdutividade e Qualidade
Produtividade e Qualidade
Fernanda Paola Butarelli
 
Do relacional ao no sql
Do relacional ao no sqlDo relacional ao no sql
Do relacional ao no sql
Fabio Soares
 
CCNA 5 - Introdução à Redes de Computadores
CCNA 5 - Introdução à Redes de ComputadoresCCNA 5 - Introdução à Redes de Computadores
CCNA 5 - Introdução à Redes de Computadores
FerNandoSantos287416
 
T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012
Rodrigo Ribeiro
 

Semelhante a Base de Dados - Normalização e Desenho de Base de Dados Relacionais (20)

Por que o Microsoft Power BI? Um breve overview sobre BI
Por que o Microsoft Power BI? Um breve overview sobre BIPor que o Microsoft Power BI? Um breve overview sobre BI
Por que o Microsoft Power BI? Um breve overview sobre BI
 
Base de Dados - Diagramas E-A (cont.)
Base de Dados - Diagramas E-A (cont.)Base de Dados - Diagramas E-A (cont.)
Base de Dados - Diagramas E-A (cont.)
 
Conheça técnicas para aumentar o ROI do projeto de monitoramento
Conheça técnicas para aumentar o ROI do projeto de monitoramentoConheça técnicas para aumentar o ROI do projeto de monitoramento
Conheça técnicas para aumentar o ROI do projeto de monitoramento
 
Java e Orientação a Objetos - Aula 1 Aceleradora
Java e Orientação a Objetos - Aula 1 AceleradoraJava e Orientação a Objetos - Aula 1 Aceleradora
Java e Orientação a Objetos - Aula 1 Aceleradora
 
Perfil dos Trabalhos e Resultados Entregues!
Perfil dos Trabalhos e Resultados Entregues!Perfil dos Trabalhos e Resultados Entregues!
Perfil dos Trabalhos e Resultados Entregues!
 
Administração de Banco de Dados
Administração de Banco de DadosAdministração de Banco de Dados
Administração de Banco de Dados
 
ROI e Valor Econômico da Virtualização de Dados
ROI e Valor Econômico da Virtualização de DadosROI e Valor Econômico da Virtualização de Dados
ROI e Valor Econômico da Virtualização de Dados
 
Express2012simples 130312140529-phpapp01
Express2012simples 130312140529-phpapp01Express2012simples 130312140529-phpapp01
Express2012simples 130312140529-phpapp01
 
Expremendo performance do sql server
Expremendo performance do sql serverExpremendo performance do sql server
Expremendo performance do sql server
 
Central de Serviço e Governança de IT | Encontro de Cios CTIS e Sucesu Minas ...
Central de Serviço e Governança de IT | Encontro de Cios CTIS e Sucesu Minas ...Central de Serviço e Governança de IT | Encontro de Cios CTIS e Sucesu Minas ...
Central de Serviço e Governança de IT | Encontro de Cios CTIS e Sucesu Minas ...
 
Repositório Social de Serviços Web
Repositório Social de Serviços WebRepositório Social de Serviços Web
Repositório Social de Serviços Web
 
Carreiras em Computação - FAGOC
Carreiras em Computação - FAGOCCarreiras em Computação - FAGOC
Carreiras em Computação - FAGOC
 
LabMM4 (T08 - 12/13) - SQL continuação
LabMM4 (T08 - 12/13) - SQL continuaçãoLabMM4 (T08 - 12/13) - SQL continuação
LabMM4 (T08 - 12/13) - SQL continuação
 
Data Warehouse - Modelagem
Data Warehouse - ModelagemData Warehouse - Modelagem
Data Warehouse - Modelagem
 
Basesdedados aula copiada da internet
Basesdedados  aula copiada da internetBasesdedados  aula copiada da internet
Basesdedados aula copiada da internet
 
Conheça ROP - Programação orientada e trilhos​
Conheça ROP - Programação orientada e trilhos​Conheça ROP - Programação orientada e trilhos​
Conheça ROP - Programação orientada e trilhos​
 
Produtividade e Qualidade
Produtividade e QualidadeProdutividade e Qualidade
Produtividade e Qualidade
 
Do relacional ao no sql
Do relacional ao no sqlDo relacional ao no sql
Do relacional ao no sql
 
CCNA 5 - Introdução à Redes de Computadores
CCNA 5 - Introdução à Redes de ComputadoresCCNA 5 - Introdução à Redes de Computadores
CCNA 5 - Introdução à Redes de Computadores
 
T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012
 

Mais de Mariana Hiyori

Templo de Zeus Olímpico
Templo de Zeus OlímpicoTemplo de Zeus Olímpico
Templo de Zeus Olímpico
Mariana Hiyori
 
Base de Dados - Álgebra Relacional
Base de Dados - Álgebra RelacionalBase de Dados - Álgebra Relacional
Base de Dados - Álgebra Relacional
Mariana Hiyori
 
Base de Dados - Conversão E-A para Esquema Relacional
Base de Dados - Conversão E-A para Esquema RelacionalBase de Dados - Conversão E-A para Esquema Relacional
Base de Dados - Conversão E-A para Esquema Relacional
Mariana Hiyori
 
Base de Dados - Introdução
Base de Dados - IntroduçãoBase de Dados - Introdução
Base de Dados - Introdução
Mariana Hiyori
 
Base de Dados - Apresentação da Unidade Curricular
Base de Dados - Apresentação da Unidade CurricularBase de Dados - Apresentação da Unidade Curricular
Base de Dados - Apresentação da Unidade Curricular
Mariana Hiyori
 
Arquitectura de Computadores
Arquitectura de ComputadoresArquitectura de Computadores
Arquitectura de Computadores
Mariana Hiyori
 
Redes e Comunicações 2
Redes e Comunicações 2Redes e Comunicações 2
Redes e Comunicações 2
Mariana Hiyori
 
Redes e Comunicações 2 - Resumo
Redes e Comunicações 2 - ResumoRedes e Comunicações 2 - Resumo
Redes e Comunicações 2 - Resumo
Mariana Hiyori
 
R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)
Mariana Hiyori
 
R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)
R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)
R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)
Mariana Hiyori
 
R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)
R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)
R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)
Mariana Hiyori
 
R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)
Mariana Hiyori
 
R&c 02 14_2 - Protocolos (Parte 2)
R&c 02 14_2 - Protocolos (Parte 2)R&c 02 14_2 - Protocolos (Parte 2)
R&c 02 14_2 - Protocolos (Parte 2)
Mariana Hiyori
 
R&c 03 14_1 - Protocolos (Parte 1)
R&c 03 14_1 - Protocolos (Parte 1)R&c 03 14_1 - Protocolos (Parte 1)
R&c 03 14_1 - Protocolos (Parte 1)
Mariana Hiyori
 
R&c 05 14_1 - Protocolo IP (Parte 1)
R&c 05 14_1 - Protocolo IP (Parte 1)R&c 05 14_1 - Protocolo IP (Parte 1)
R&c 05 14_1 - Protocolo IP (Parte 1)
Mariana Hiyori
 
R&c 05 14_2 - Protocolo IP (Parte 2)
R&c 05 14_2 - Protocolo IP (Parte 2)R&c 05 14_2 - Protocolo IP (Parte 2)
R&c 05 14_2 - Protocolo IP (Parte 2)
Mariana Hiyori
 
R&c 05 14_3 - Protocolo IP (Parte 3)
R&c 05 14_3 - Protocolo IP (Parte 3)R&c 05 14_3 - Protocolo IP (Parte 3)
R&c 05 14_3 - Protocolo IP (Parte 3)
Mariana Hiyori
 
Resumo - Memorial do Convento
Resumo - Memorial do ConventoResumo - Memorial do Convento
Resumo - Memorial do Convento
Mariana Hiyori
 
SQL - Operações Relacionais
SQL - Operações RelacionaisSQL - Operações Relacionais
SQL - Operações Relacionais
Mariana Hiyori
 
Dinheiros & Direitos - Julho/Agosto 2011
Dinheiros & Direitos - Julho/Agosto 2011Dinheiros & Direitos - Julho/Agosto 2011
Dinheiros & Direitos - Julho/Agosto 2011
Mariana Hiyori
 

Mais de Mariana Hiyori (20)

Templo de Zeus Olímpico
Templo de Zeus OlímpicoTemplo de Zeus Olímpico
Templo de Zeus Olímpico
 
Base de Dados - Álgebra Relacional
Base de Dados - Álgebra RelacionalBase de Dados - Álgebra Relacional
Base de Dados - Álgebra Relacional
 
Base de Dados - Conversão E-A para Esquema Relacional
Base de Dados - Conversão E-A para Esquema RelacionalBase de Dados - Conversão E-A para Esquema Relacional
Base de Dados - Conversão E-A para Esquema Relacional
 
Base de Dados - Introdução
Base de Dados - IntroduçãoBase de Dados - Introdução
Base de Dados - Introdução
 
Base de Dados - Apresentação da Unidade Curricular
Base de Dados - Apresentação da Unidade CurricularBase de Dados - Apresentação da Unidade Curricular
Base de Dados - Apresentação da Unidade Curricular
 
Arquitectura de Computadores
Arquitectura de ComputadoresArquitectura de Computadores
Arquitectura de Computadores
 
Redes e Comunicações 2
Redes e Comunicações 2Redes e Comunicações 2
Redes e Comunicações 2
 
Redes e Comunicações 2 - Resumo
Redes e Comunicações 2 - ResumoRedes e Comunicações 2 - Resumo
Redes e Comunicações 2 - Resumo
 
R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)
 
R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)
R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)
R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)
 
R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)
R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)
R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)
 
R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)
 
R&c 02 14_2 - Protocolos (Parte 2)
R&c 02 14_2 - Protocolos (Parte 2)R&c 02 14_2 - Protocolos (Parte 2)
R&c 02 14_2 - Protocolos (Parte 2)
 
R&c 03 14_1 - Protocolos (Parte 1)
R&c 03 14_1 - Protocolos (Parte 1)R&c 03 14_1 - Protocolos (Parte 1)
R&c 03 14_1 - Protocolos (Parte 1)
 
R&c 05 14_1 - Protocolo IP (Parte 1)
R&c 05 14_1 - Protocolo IP (Parte 1)R&c 05 14_1 - Protocolo IP (Parte 1)
R&c 05 14_1 - Protocolo IP (Parte 1)
 
R&c 05 14_2 - Protocolo IP (Parte 2)
R&c 05 14_2 - Protocolo IP (Parte 2)R&c 05 14_2 - Protocolo IP (Parte 2)
R&c 05 14_2 - Protocolo IP (Parte 2)
 
R&c 05 14_3 - Protocolo IP (Parte 3)
R&c 05 14_3 - Protocolo IP (Parte 3)R&c 05 14_3 - Protocolo IP (Parte 3)
R&c 05 14_3 - Protocolo IP (Parte 3)
 
Resumo - Memorial do Convento
Resumo - Memorial do ConventoResumo - Memorial do Convento
Resumo - Memorial do Convento
 
SQL - Operações Relacionais
SQL - Operações RelacionaisSQL - Operações Relacionais
SQL - Operações Relacionais
 
Dinheiros & Direitos - Julho/Agosto 2011
Dinheiros & Direitos - Julho/Agosto 2011Dinheiros & Direitos - Julho/Agosto 2011
Dinheiros & Direitos - Julho/Agosto 2011
 

Último

Aula de fundamentos de Programação Orientada a Objeto na linguagem de program...
Aula de fundamentos de Programação Orientada a Objeto na linguagem de program...Aula de fundamentos de Programação Orientada a Objeto na linguagem de program...
Aula de fundamentos de Programação Orientada a Objeto na linguagem de program...
samucajaime015
 
filosofia e Direito- É a teoria que explica como a sociedade se organizou co...
filosofia e Direito- É a teoria que explica como a sociedade se organizou  co...filosofia e Direito- É a teoria que explica como a sociedade se organizou  co...
filosofia e Direito- É a teoria que explica como a sociedade se organizou co...
SidneySilva523387
 
O Profeta Jeremias - A Biografia de Jeremias.pptx4
O Profeta Jeremias - A Biografia de Jeremias.pptx4O Profeta Jeremias - A Biografia de Jeremias.pptx4
O Profeta Jeremias - A Biografia de Jeremias.pptx4
DouglasMoraes54
 
UFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdf
UFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdfUFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdf
UFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdf
Manuais Formação
 
Roteiro para análise do Livro Didático.pptx
Roteiro para análise do Livro Didático.pptxRoteiro para análise do Livro Didático.pptx
Roteiro para análise do Livro Didático.pptx
pamellaaraujo10
 
planejamento maternal 2 atualizado.pdf e
planejamento maternal 2 atualizado.pdf eplanejamento maternal 2 atualizado.pdf e
planejamento maternal 2 atualizado.pdf e
HelenStefany
 
Aula Aberta_Avaliação Digital no ensino basico e secundário.pdf
Aula Aberta_Avaliação Digital no ensino basico e secundário.pdfAula Aberta_Avaliação Digital no ensino basico e secundário.pdf
Aula Aberta_Avaliação Digital no ensino basico e secundário.pdf
Marília Pacheco
 
A festa junina é uma tradicional festividade popular que acontece durante o m...
A festa junina é uma tradicional festividade popular que acontece durante o m...A festa junina é uma tradicional festividade popular que acontece durante o m...
A festa junina é uma tradicional festividade popular que acontece durante o m...
ANDRÉA FERREIRA
 
Slides Lição 12, CPAD, A Bendita Esperança, A Marca do Cristão, 2Tr24.pptx
Slides Lição 12, CPAD, A Bendita Esperança, A Marca do Cristão, 2Tr24.pptxSlides Lição 12, CPAD, A Bendita Esperança, A Marca do Cristão, 2Tr24.pptx
Slides Lição 12, CPAD, A Bendita Esperança, A Marca do Cristão, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
Planejamento BNCC - 4 ANO -TRIMESTRAL - ENSINO FUNDAMENTAL
Planejamento BNCC - 4 ANO -TRIMESTRAL - ENSINO FUNDAMENTALPlanejamento BNCC - 4 ANO -TRIMESTRAL - ENSINO FUNDAMENTAL
Planejamento BNCC - 4 ANO -TRIMESTRAL - ENSINO FUNDAMENTAL
katbrochier1
 
FUNCAO EQUAÇÃO DO 2° GRAU SLIDES AULA 1.ppt
FUNCAO EQUAÇÃO DO 2° GRAU SLIDES AULA 1.pptFUNCAO EQUAÇÃO DO 2° GRAU SLIDES AULA 1.ppt
FUNCAO EQUAÇÃO DO 2° GRAU SLIDES AULA 1.ppt
MarceloMonteiro213738
 
Apostila-Microbiologia-e-Parasitologia-doc.pdf
Apostila-Microbiologia-e-Parasitologia-doc.pdfApostila-Microbiologia-e-Parasitologia-doc.pdf
Apostila-Microbiologia-e-Parasitologia-doc.pdf
bmgrama
 
Psicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptx
Psicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptxPsicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptx
Psicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptx
TiagoLouro8
 
A Núbia e o Reino De Cuxe- 6º ano....ppt
A Núbia e o Reino De Cuxe- 6º ano....pptA Núbia e o Reino De Cuxe- 6º ano....ppt
A Núbia e o Reino De Cuxe- 6º ano....ppt
WilianeBarbosa2
 
Curativo de cateter venoso central na UTI.pdf
Curativo de cateter venoso central na UTI.pdfCurativo de cateter venoso central na UTI.pdf
Curativo de cateter venoso central na UTI.pdf
BiancaCristina75
 
Tudo sobre a Inglaterra, curiosidades, moeda.pptx
Tudo sobre a Inglaterra, curiosidades, moeda.pptxTudo sobre a Inglaterra, curiosidades, moeda.pptx
Tudo sobre a Inglaterra, curiosidades, moeda.pptx
IACEMCASA
 
TREINAMENTO DE BRIGADA DE INCENDIO BRIGADA CCB 2023.pptx
TREINAMENTO DE BRIGADA DE INCENDIO BRIGADA CCB 2023.pptxTREINAMENTO DE BRIGADA DE INCENDIO BRIGADA CCB 2023.pptx
TREINAMENTO DE BRIGADA DE INCENDIO BRIGADA CCB 2023.pptx
erssstcontato
 
Atividade Bio evolução e especiação .docx
Atividade Bio evolução e especiação .docxAtividade Bio evolução e especiação .docx
Atividade Bio evolução e especiação .docx
MARCELARUBIAGAVA
 
Resumo de Química 10º ano Estudo exames nacionais
Resumo de Química 10º ano Estudo exames nacionaisResumo de Química 10º ano Estudo exames nacionais
Resumo de Química 10º ano Estudo exames nacionais
beatrizsilva525654
 
Cartinhas de solidariedade e esperança.pptx
Cartinhas de solidariedade e esperança.pptxCartinhas de solidariedade e esperança.pptx
Cartinhas de solidariedade e esperança.pptx
Zenir Carmen Bez Trombeta
 

Último (20)

Aula de fundamentos de Programação Orientada a Objeto na linguagem de program...
Aula de fundamentos de Programação Orientada a Objeto na linguagem de program...Aula de fundamentos de Programação Orientada a Objeto na linguagem de program...
Aula de fundamentos de Programação Orientada a Objeto na linguagem de program...
 
filosofia e Direito- É a teoria que explica como a sociedade se organizou co...
filosofia e Direito- É a teoria que explica como a sociedade se organizou  co...filosofia e Direito- É a teoria que explica como a sociedade se organizou  co...
filosofia e Direito- É a teoria que explica como a sociedade se organizou co...
 
O Profeta Jeremias - A Biografia de Jeremias.pptx4
O Profeta Jeremias - A Biografia de Jeremias.pptx4O Profeta Jeremias - A Biografia de Jeremias.pptx4
O Profeta Jeremias - A Biografia de Jeremias.pptx4
 
UFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdf
UFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdfUFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdf
UFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdf
 
Roteiro para análise do Livro Didático.pptx
Roteiro para análise do Livro Didático.pptxRoteiro para análise do Livro Didático.pptx
Roteiro para análise do Livro Didático.pptx
 
planejamento maternal 2 atualizado.pdf e
planejamento maternal 2 atualizado.pdf eplanejamento maternal 2 atualizado.pdf e
planejamento maternal 2 atualizado.pdf e
 
Aula Aberta_Avaliação Digital no ensino basico e secundário.pdf
Aula Aberta_Avaliação Digital no ensino basico e secundário.pdfAula Aberta_Avaliação Digital no ensino basico e secundário.pdf
Aula Aberta_Avaliação Digital no ensino basico e secundário.pdf
 
A festa junina é uma tradicional festividade popular que acontece durante o m...
A festa junina é uma tradicional festividade popular que acontece durante o m...A festa junina é uma tradicional festividade popular que acontece durante o m...
A festa junina é uma tradicional festividade popular que acontece durante o m...
 
Slides Lição 12, CPAD, A Bendita Esperança, A Marca do Cristão, 2Tr24.pptx
Slides Lição 12, CPAD, A Bendita Esperança, A Marca do Cristão, 2Tr24.pptxSlides Lição 12, CPAD, A Bendita Esperança, A Marca do Cristão, 2Tr24.pptx
Slides Lição 12, CPAD, A Bendita Esperança, A Marca do Cristão, 2Tr24.pptx
 
Planejamento BNCC - 4 ANO -TRIMESTRAL - ENSINO FUNDAMENTAL
Planejamento BNCC - 4 ANO -TRIMESTRAL - ENSINO FUNDAMENTALPlanejamento BNCC - 4 ANO -TRIMESTRAL - ENSINO FUNDAMENTAL
Planejamento BNCC - 4 ANO -TRIMESTRAL - ENSINO FUNDAMENTAL
 
FUNCAO EQUAÇÃO DO 2° GRAU SLIDES AULA 1.ppt
FUNCAO EQUAÇÃO DO 2° GRAU SLIDES AULA 1.pptFUNCAO EQUAÇÃO DO 2° GRAU SLIDES AULA 1.ppt
FUNCAO EQUAÇÃO DO 2° GRAU SLIDES AULA 1.ppt
 
Apostila-Microbiologia-e-Parasitologia-doc.pdf
Apostila-Microbiologia-e-Parasitologia-doc.pdfApostila-Microbiologia-e-Parasitologia-doc.pdf
Apostila-Microbiologia-e-Parasitologia-doc.pdf
 
Psicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptx
Psicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptxPsicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptx
Psicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptx
 
A Núbia e o Reino De Cuxe- 6º ano....ppt
A Núbia e o Reino De Cuxe- 6º ano....pptA Núbia e o Reino De Cuxe- 6º ano....ppt
A Núbia e o Reino De Cuxe- 6º ano....ppt
 
Curativo de cateter venoso central na UTI.pdf
Curativo de cateter venoso central na UTI.pdfCurativo de cateter venoso central na UTI.pdf
Curativo de cateter venoso central na UTI.pdf
 
Tudo sobre a Inglaterra, curiosidades, moeda.pptx
Tudo sobre a Inglaterra, curiosidades, moeda.pptxTudo sobre a Inglaterra, curiosidades, moeda.pptx
Tudo sobre a Inglaterra, curiosidades, moeda.pptx
 
TREINAMENTO DE BRIGADA DE INCENDIO BRIGADA CCB 2023.pptx
TREINAMENTO DE BRIGADA DE INCENDIO BRIGADA CCB 2023.pptxTREINAMENTO DE BRIGADA DE INCENDIO BRIGADA CCB 2023.pptx
TREINAMENTO DE BRIGADA DE INCENDIO BRIGADA CCB 2023.pptx
 
Atividade Bio evolução e especiação .docx
Atividade Bio evolução e especiação .docxAtividade Bio evolução e especiação .docx
Atividade Bio evolução e especiação .docx
 
Resumo de Química 10º ano Estudo exames nacionais
Resumo de Química 10º ano Estudo exames nacionaisResumo de Química 10º ano Estudo exames nacionais
Resumo de Química 10º ano Estudo exames nacionais
 
Cartinhas de solidariedade e esperança.pptx
Cartinhas de solidariedade e esperança.pptxCartinhas de solidariedade e esperança.pptx
Cartinhas de solidariedade e esperança.pptx
 

Base de Dados - Normalização e Desenho de Base de Dados Relacionais

  • 1. Base de Dados Normalização e Desenho de Base de Dados Relacionais 2018/2019
  • 2. Sumário • Desenho Relacional • Dependências Funcionais • Formas Normais (1FN, 2FN e 3FN) • Exercícios
  • 3. O que é um “bom” modelo? • Um modelo que represente fielmente a realidade • Capaz de responder às funcionalidades que se pretendem • Pretende-se modelos que garantam: • Redundancia minima • Facilidade de manutenção • Estabilidade face a futuras alterações
  • 4. Dados redundantes • Considere a relação EmpregadoDepartamento idEmp Nome Categoria Salário Depto TelDepto LocalDepto 10 José Silva Programador 2500 1 213334555 Lisboa 20 Maria Costa Analista 5000 2 224446888 Porto 30 João Fonseca Operador 600 1 213334555 Lisboa 40 Ana Faria Analista 5200 4 275222333 Covilhã
  • 5. Dados redundantes • Considere a relação EmpregadoDepartamento idEmp Nome Categoria Salário Depto TelDepto LocalDepto 10 José Silva Programador 2500 1 213334555 Lisboa 20 Maria Costa Analista 5000 2 224446888 Porto 30 João Fonseca Operador 600 1 213334555 Lisboa 40 Ana Faria Analista 5200 4 275222333 Covilhã Se apagarmos este número deixamos de conhecer o departamento do empregado 30 Duplicado mas não redundante
  • 6. Dados redundantes • Considere a relação EmpregadoDepartamento idEmp Nome Categoria Salário Depto TelDepto LocalDepto 10 José Silva Programador 2500 1 213334555 Lisboa 20 Maria Costa Analista 5000 2 224446888 Porto 30 João Fonseca Operador 600 1 213334555 Lisboa 40 Ana Faria Analista 5200 4 275222333 Covilhã Se apagarmos este número deixamos de conhecer o departamento do empregado 30 Duplicado mas não redundante Se apagarmos esta informação continuamos a conhecer os dados do departamento 1 Dados redundantes
  • 7. Implicações da Redundância de Dados • Redundância de dados tem implicações na coerência e integralidade dos dados.
  • 8. Implicações da Redundância de Dados • Redundância de dados tem implicações na coerência e integralidade dos dados. • 3 problemas típicos:
  • 9. Implicações da Redundância de Dados • Redundância de dados tem implicações na coerência e integralidade dos dados. • 3 problemas típicos: • Inserção: ocorre quando factos independentes não podem ser inseridos de forma independente na base de dados
  • 10. Implicações da Redundância de Dados • Redundância de dados tem implicações na coerência e integralidade dos dados. • 3 problemas típicos: • Inserção: ocorre quando factos independentes não podem ser inseridos de forma independente na base de dados • Eliminação: ocorre quando, ao eliminar um item, obriga à eliminação de outros itens independentes
  • 11. Implicações da Redundância de Dados • Redundância de dados tem implicações na coerência e integralidade dos dados. • 3 problemas típicos: • Inserção: ocorre quando factos independentes não podem ser inseridos de forma independente na base de dados • Eliminação: ocorre quando, ao eliminar um item, obriga à eliminação de outros itens independentes • Modificação: ocorre quando a atualização de um item implica a alteração de outros itens independentes
  • 12. Anomalias de inserção • Inserir um novo empregado idEmp Nome Categoria Salário Depto TelDepto LocalDepto 10 José Silva Programador 2500 1 213334555 Lisboa 20 Maria Costa Analista 5000 2 224446888 Porto 30 João Fonseca Operador 600 1 213334555 Lisboa 40 Ana Faria Analista 5200 4 275222333 Covilhã
  • 13. Anomalias de inserção • Inserir um novo empregado • Implica inserir toda a informação do departamento idEmp Nome Categoria Salário Depto TelDepto LocalDepto 10 José Silva Programador 2500 1 213334555 Lisboa 20 Maria Costa Analista 5000 2 224446888 Porto 30 João Fonseca Operador 600 1 213334555 Lisboa 40 Ana Faria Analista 5200 4 275222333 Covilhã
  • 14. Anomalias de inserção • Inserir um novo empregado • Implica inserir toda a informação do departamento • Atenção para não criar inconsistência com informação departamento existente idEmp Nome Categoria Salário Depto TelDepto LocalDepto 10 José Silva Programador 2500 1 213334555 Lisboa 20 Maria Costa Analista 5000 2 224446888 Porto 30 João Fonseca Operador 600 1 213334555 Lisboa 40 Ana Faria Analista 5200 4 275222333 Covilhã
  • 15. Anomalias de inserção • Inserir um novo empregado • Implica inserir toda a informação do departamento • Atenção para não criar inconsistência com informação departamento existente • Não é possivel criar um departamento sem empregados idEmp Nome Categoria Salário Depto TelDepto LocalDepto 10 José Silva Programador 2500 1 213334555 Lisboa 20 Maria Costa Analista 5000 2 224446888 Porto 30 João Fonseca Operador 600 1 213334555 Lisboa 40 Ana Faria Analista 5200 4 275222333 Covilhã
  • 16. Anomalias de eliminação • Eliminar único empregado de um departamento idEmp Nome Categoria Salário Depto TelDepto LocalDepto 10 José Silva Programador 2500 1 213334555 Lisboa 20 Maria Costa Analista 5000 2 224446888 Porto 30 João Fonseca Operador 600 1 213334555 Lisboa 40 Ana Faria Analista 5200 4 275222333 Covilhã
  • 17. Anomalias de eliminação • Eliminar único empregado de um departamento • Implica perda de informação sobre departamento idEmp Nome Categoria Salário Depto TelDepto LocalDepto 10 José Silva Programador 2500 1 213334555 Lisboa 20 Maria Costa Analista 5000 2 224446888 Porto 30 João Fonseca Operador 600 1 213334555 Lisboa 40 Ana Faria Analista 5200 4 275222333 Covilhã
  • 18. Anomalias de modificação • Alterar um atributo de um departamento idEmp Nome Categoria Salário Depto TelDepto LocalDepto 10 José Silva Programador 2500 1 213334555 Lisboa 20 Maria Costa Analista 5000 2 224446888 Porto 30 João Fonseca Operador 600 1 213334555 Lisboa 40 Ana Faria Analista 5200 4 275222333 Covilhã
  • 19. Anomalias de modificação • Alterar um atributo de um departamento • Implica atualizar o mesmo atributo em todos os empregados do departamento idEmp Nome Categoria Salário Depto TelDepto LocalDepto 10 José Silva Programador 2500 1 213334555 Lisboa 20 Maria Costa Analista 5000 2 224446888 Porto 30 João Fonseca Operador 600 1 213334555 Lisboa 40 Ana Faria Analista 5200 4 275222333 Covilhã
  • 20. Solução: decomposição da relação • Podemos evitar as anomalias decompondo a relação EmpregadoDepartamento(idEmp, Nome, Categoria, Salario, Depto, TelDepto, LocalDepto) • Nas relações Empregado(idEmp, Nome, Categoria, Salario, Dep) Departamento(Dep, TelDep, LocalDep) Teoria da normalização (Edgar Codd): define processo de estruturar tabelas numa BD de forma a minimizar redundância com base no conceito de dependência funcional
  • 21. Solução: decomposição da relação • Podemos evitar as anomalias decompondo a relação EmpregadoDepartamento(idEmp, Nome, Categoria, Salario, Depto, TelDepto, LocalDepto) • Nas relações Empregado(idEmp, Nome, Categoria, Salario, Dep) Departamento(Dep, TelDep, LocalDep) Teoria da normalização (Edgar Codd): define processo de estruturar tabelas numa BD de forma a minimizar redundância com base no conceito de dependência funcional
  • 22. Solução: decomposição da relação • Podemos evitar as anomalias decompondo a relação EmpregadoDepartamento(idEmp, Nome, Categoria, Salario, Depto, TelDepto, LocalDepto) • Nas relações Empregado(idEmp, Nome, Categoria, Salario, Dep) Departamento(Dep, TelDep, LocalDep) Teoria da normalização (Edgar Codd): define processo de estruturar tabelas numa BD de forma a minimizar redundância com base no conceito de dependência funcional
  • 23. Dependências Funcionais • Consideremos a relação Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone) • Podemos descrever as seguintes dependências entre atributos i) Um dado CC determina um único tuplo da relação Morada (i.e. valores únicos para Nome, Endereco, Cidade, CodPosta, Telefone) ii) Dados os atributos Endereço e Cidade todos os tuplos da relação morada têm o mesmo CodPostal iii) A um dado CodPostal corresponde um único valor do atributo Cidade As dependências descritas (i, ii, iii) são dependências lógicas
  • 24. Dependências Funcionais • Consideremos a relação Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone) • Podemos descrever as seguintes dependências entre atributos i) Um dado CC determina um único tuplo da relação Morada (i.e. valores únicos para Nome, Endereco, Cidade, CodPosta, Telefone) ii) Dados os atributos Endereço e Cidade todos os tuplos da relação morada têm o mesmo CodPostal iii) A um dado CodPostal corresponde um único valor do atributo Cidade As dependências descritas (i, ii, iii) são dependências lógicas
  • 25. Dependências Funcionais • Consideremos a relação Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone) • Podemos descrever as seguintes dependências entre atributos i) Um dado CC determina um único tuplo da relação Morada (i.e. valores únicos para Nome, Endereco, Cidade, CodPosta, Telefone) ii) Dados os atributos Endereço e Cidade todos os tuplos da relação morada têm o mesmo CodPostal iii) A um dado CodPostal corresponde um único valor do atributo Cidade As dependências descritas (i, ii, iii) são dependências lógicas
  • 26. Dependências Funcionais • Consideremos a relação Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone) • Podemos descrever as seguintes dependências entre atributos i) Um dado CC determina um único tuplo da relação Morada (i.e. valores únicos para Nome, Endereco, Cidade, CodPosta, Telefone) ii) Dados os atributos Endereço e Cidade todos os tuplos da relação morada têm o mesmo CodPostal iii) A um dado CodPostal corresponde um único valor do atributo Cidade As dependências descritas (i, ii, iii) são dependências lógicas
  • 27. Dependências Funcionais • Consideremos a relação Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone) • Podemos descrever as seguintes dependências entre atributos i) Um dado CC determina um único tuplo da relação Morada (i.e. valores únicos para Nome, Endereco, Cidade, CodPosta, Telefone) ii) Dados os atributos Endereço e Cidade todos os tuplos da relação morada têm o mesmo CodPostal iii) A um dado CodPostal corresponde um único valor do atributo Cidade As dependências descritas (i, ii, iii) são dependências lógicas
  • 28. Dependências funcionais • É um tipo de dependência lógica (outros: multivalor, de junção) • Dependências funcionais são determinadas pela semântica do contexto que estamos a modelar • Não podem ser determinadas a partir de um conjunto de tuplos • Um conjunto de tuplos permite apenas verificar se esta dependência é verdadeira • Uma dependência functional é uma generalização da noção de chave
  • 29. Dependências funcionais • É um tipo de dependência lógica (outros: multivalor, de junção) • Dependências funcionais são determinadas pela semântica do contexto que estamos a modelar • Não podem ser determinadas a partir de um conjunto de tuplos • Um conjunto de tuplos permite apenas verificar se esta dependência é verdadeira • Uma dependência functional é uma generalização da noção de chave
  • 30. Dependências funcionais • É um tipo de dependência lógica (outros: multivalor, de junção) • Dependências funcionais são determinadas pela semântica do contexto que estamos a modelar • Não podem ser determinadas a partir de um conjunto de tuplos • Um conjunto de tuplos permite apenas verificar se esta dependência é verdadeira • Uma dependência funcional é uma generalização da noção de chave
  • 31. Dependência funcional - Definição • Dado 𝑅(𝐴1, 𝐴2, … , 𝐴𝑛) • Existe dependência funcional entre X e Y (subconjuntos de atributos de R) 𝑋 ⟶ 𝑌 (lê-se X determina Y e Y depende de X) Em qualquer instante, qualquer tuplo de R com mesmo valor de X tem obrigatóriamente o mesmo valor de Y.
  • 32. Dependência funcional - Definição • Dado 𝑅(𝐴1, 𝐴2, … , 𝐴𝑛) • Existe dependência funcional entre X e Y (subconjuntos de atributos de R) 𝑋 ⟶ 𝑌 (lê-se X determina Y e Y depende de X) Em qualquer instante, qualquer tuplo de R com mesmo valor de X tem obrigatóriamente o mesmo valor de Y.
  • 33. Dependência funcional - Exemplo Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone) CC ⟶ Nome CC ⟶ Endereço CC ⟶ Cidade CC ⟶ CodPostal CC ⟶ Telefone Endereço, Cidade ⟶ CodPostal CodPostal ⟶ Cidade
  • 34. Dependência funcional - Chaves • Chave (candidata) • 𝑅(𝐴1, 𝐴2, … , 𝐴𝑛) e 𝑋 ⊆ {𝐴1, 𝐴2, … , 𝐴𝑛} • X é chave de R i) ∀𝑖 𝑋 ⟶ 𝐴𝑖 𝑖 = 1,2, … , 𝑛 X determina funcionalmente todos os atributos de R ii) ∄𝑦⊂𝑋∶ ∀𝑖 𝑌 ⟶ 𝐴𝑖 𝑖 = 1,2, … , 𝑛 Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone) CC é a única chave da relação Morada • Super-chave: conjunto X que satisfaz i) mas não ii) Qualquer conjunto que contenha atributo CC não existe um subconjunto de X que determina todos os atributos de R
  • 35. Dependência funcional - Chaves • Chave (candidata) • 𝑅(𝐴1, 𝐴2, … , 𝐴𝑛) e 𝑋 ⊆ {𝐴1, 𝐴2, … , 𝐴𝑛} • X é chave de R i) ∀𝑖 𝑋 ⟶ 𝐴𝑖 𝑖 = 1,2, … , 𝑛 X determina funcionalmente todos os atributos de R ii) ∄𝑦⊂𝑋∶ ∀𝑖 𝑌 ⟶ 𝐴𝑖 𝑖 = 1,2, … , 𝑛 Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone) CC é a única chave da relação Morada • Super-chave: conjunto X que satisfaz i) mas não ii) Qualquer conjunto que contenha atributo CC não existe um subconjunto de X que determina todos os atributos de R
  • 36. Dependência funcional - Chaves • Chave (candidata) • 𝑅(𝐴1, 𝐴2, … , 𝐴𝑛) e 𝑋 ⊆ {𝐴1, 𝐴2, … , 𝐴𝑛} • X é chave de R i) ∀𝑖 𝑋 ⟶ 𝐴𝑖 𝑖 = 1,2, … , 𝑛 X determina funcionalmente todos os atributos de R ii) ∄𝑦⊂𝑋∶ ∀𝑖 𝑌 ⟶ 𝐴𝑖 𝑖 = 1,2, … , 𝑛 Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone) CC é a única chave da relação Morada • Super-chave: conjunto X que satisfaz i) mas não ii) Qualquer conjunto que contenha atributo CC não existe um subconjunto de X que determina todos os atributos de R
  • 37. Propriedades básicas das DFs • Unicidade se as DFs 𝑓: X ⟶ 𝑌 e 𝑔: X ⟶ 𝑌 então 𝑓 = 𝑔 • Reflexibilidade se 𝑋 ⊆ 𝑌 então Y ⟶ 𝑋 • Transitividade se X ⟶ 𝑌 e Y ⟶ 𝑍 então X ⟶ 𝑍 • União se X ⟶ 𝑌 e X ⟶ 𝑍 então X ⟶ 𝑌𝑍
  • 38. Propriedades básicas das DFs • Unicidade se as DFs 𝑓: X ⟶ 𝑌 e 𝑔: X ⟶ 𝑌 então 𝑓 = 𝑔 • Reflexibilidade se 𝑋 ⊆ 𝑌 então Y ⟶ 𝑋 • Transitividade se X ⟶ 𝑌 e Y ⟶ 𝑍 então X ⟶ 𝑍 • União se X ⟶ 𝑌 e X ⟶ 𝑍 então X ⟶ 𝑌𝑍
  • 39. Propriedades básicas das DFs • Unicidade se as DFs 𝑓: X ⟶ 𝑌 e 𝑔: X ⟶ 𝑌 então 𝑓 = 𝑔 • Reflexibilidade se 𝑋 ⊆ 𝑌 então Y ⟶ 𝑋 • Transitividade se X ⟶ 𝑌 e Y ⟶ 𝑍 então X ⟶ 𝑍 • União se X ⟶ 𝑌 e X ⟶ 𝑍 então X ⟶ 𝑌𝑍
  • 40. Propriedades básicas das DFs • Unicidade se as DFs 𝑓: X ⟶ 𝑌 e 𝑔: X ⟶ 𝑌 então 𝑓 = 𝑔 • Reflexibilidade se 𝑋 ⊆ 𝑌 então Y ⟶ 𝑋 • Transitividade se X ⟶ 𝑌 e Y ⟶ 𝑍 então X ⟶ 𝑍 • União se X ⟶ 𝑌 e X ⟶ 𝑍 então X ⟶ 𝑌𝑍
  • 41. Exemplo Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone) CC ⟶ Nome, CC ⟶ Cidade, CC ⟶ CodPostal, CC ⟶ Telefone Endereço, Cidade ⟶ CodPostal, CodPostal ⟶ Cidade A – Por reflexibilidade C – Por unicidade Endereço, Cidade ⟶ Endereço [1] e [2] são a mesma DF Endereço, Cidade ⟶ Cidade [1] D – Por união B – Por transitividade CC ⟶ Telefone Endereço, Cidade ⟶ CodPostal CC ⟶ Endereço CodPostal ⟶ Cidade CC ⟶ Telefone, Endereço Endereço, Cidade ⟶ Cidade [2] CC ⟶ Cidade, CodPostal CC ⟶ Nome, Telefone, Endereço, Cidade, CodPostal Nome é a chave da relação Morada
  • 42. Exemplo Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone) CC ⟶ Nome, CC ⟶ Cidade, CC ⟶ CodPostal, CC ⟶ Telefone Endereço, Cidade ⟶ CodPostal, CodPostal ⟶ Cidade A – Por reflexibilidade C – Por unicidade Endereço, Cidade ⟶ Endereço [1] e [2] são a mesma DF Endereço, Cidade ⟶ Cidade [1] D – Por união B – Por transitividade CC ⟶ Telefone Endereço, Cidade ⟶ CodPostal CC ⟶ Endereço CodPostal ⟶ Cidade CC ⟶ Telefone, Endereço Endereço, Cidade ⟶ Cidade [2] CC ⟶ Cidade, CodPostal CC ⟶ Nome, Telefone, Endereço, Cidade, CodPostal Nome é a chave da relação Morada
  • 43. Exemplo Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone) CC ⟶ Nome, CC ⟶ Cidade, CC ⟶ CodPostal, CC ⟶ Telefone Endereço, Cidade ⟶ CodPostal, CodPostal ⟶ Cidade A – Por reflexibilidade C – Por unicidade Endereço, Cidade ⟶ Endereço [1] e [2] são a mesma DF Endereço, Cidade ⟶ Cidade [1] D – Por união B – Por transitividade CC ⟶ Telefone Endereço, Cidade ⟶ CodPostal CC ⟶ Endereço CodPostal ⟶ Cidade CC ⟶ Telefone, Endereço Endereço, Cidade ⟶ Cidade [2] CC ⟶ Cidade, CodPostal CC ⟶ Nome, Telefone, Endereço, Cidade, CodPostal Nome é a chave da relação Morada
  • 44. Exemplo Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone) CC ⟶ Nome, CC ⟶ Cidade, CC ⟶ CodPostal, CC ⟶ Telefone Endereço, Cidade ⟶ CodPostal, CodPostal ⟶ Cidade A – Por reflexibilidade C – Por unicidade Endereço, Cidade ⟶ Endereço [1] e [2] são a mesma DF Endereço, Cidade ⟶ Cidade [1] D – Por união B – Por transitividade CC ⟶ Telefone Endereço, Cidade ⟶ CodPostal CC ⟶ Endereço CodPostal ⟶ Cidade CC ⟶ Telefone, Endereço Endereço, Cidade ⟶ Cidade [2] CC ⟶ Cidade, CodPostal CC ⟶ Nome, Telefone, Endereço, Cidade, CodPostal Nome é a chave da relação Morada
  • 45. Exemplo Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone) CC ⟶ Nome, CC ⟶ Cidade, CC ⟶ CodPostal, CC ⟶ Telefone Endereço, Cidade ⟶ CodPostal, CodPostal ⟶ Cidade A – Por reflexibilidade C – Por unicidade Endereço, Cidade ⟶ Endereço [1] e [2] são a mesma DF Endereço, Cidade ⟶ Cidade [1] D – Por união B – Por transitividade CC ⟶ Telefone Endereço, Cidade ⟶ CodPostal CC ⟶ Endereço CodPostal ⟶ Cidade CC ⟶ Telefone, Endereço Endereço, Cidade ⟶ Cidade [2] CC ⟶ Cidade, CodPostal CC ⟶ Nome, Telefone, Endereço, Cidade, CodPostal Nome é a chave da relação Morada
  • 46. Exemplo Morada(CC, Nome, Endereço, Cidade, CodPostal, Telefone) CC ⟶ Nome, CC ⟶ Cidade, CC ⟶ CodPostal, CC ⟶ Telefone Endereço, Cidade ⟶ CodPostal, CodPostal ⟶ Cidade A – Por reflexibilidade C – Por unicidade Endereço, Cidade ⟶ Endereço [1] e [2] são a mesma DF Endereço, Cidade ⟶ Cidade [1] D – Por união B – Por transitividade CC ⟶ Telefone Endereço, Cidade ⟶ CodPostal CC ⟶ Endereço CodPostal ⟶ Cidade CC ⟶ Telefone, Endereço Endereço, Cidade ⟶ Cidade [2] CC ⟶ Cidade, CodPostal CC ⟶ Nome, Telefone, Endereço, Cidade, CodPostal Nome é a chave da relação Morada
  • 47. Propriedades derivadas das DFs • Distributividade se X ⟶ 𝑌𝑍 então X ⟶ 𝑌 e X ⟶ 𝑍 • Aumento se X ⟶ 𝑌 e W ⟶ 𝑍 então XW ⟶ 𝑌𝑍 • Pseudo-transitividade se X ⟶ 𝑌 e YW ⟶ 𝑍 então XW ⟶ 𝑍
  • 48. Perda de informação • Seja a relação R(Nome, Telefone, Cidade) Nome ↛ Telefone (telefone e cidade não dependem de Nome) Nome ↛ Cidade (uma pessoa tem vários telefones e cidades) Nome Telefone Cidade José da Silva 123456789 Leiria José da Silva 222222222 Faro António Costa 333333333 Leiria
  • 49. Perda de informação • Seja a relação R(Nome, Telefone, Cidade) Nome ↛ Telefone (telefone e cidade não dependem de Nome) Nome ↛ Cidade (uma pessoa tem vários telefones e cidades) Nome Telefone Cidade José da Silva 123456789 Leiria José da Silva 222222222 Faro António Costa 333333333 Leiria Nome Cidade José da Silva Leiria José da Silva Faro António Costa Leiria Nome Telefone José da Silva 123456789 José da Silva 222222222 António Costa 333333333 R1 R2
  • 50. Perda de informação 𝑅1 ⋈ 𝑅2 Nome Cidade José da Silva Leiria José da Silva Faro António Costa Leiria Nome Telefone José da Silva 123456789 José da Silva 222222222 António Costa 333333333 R1 R2 Nome Telefone Cidade José da Silva 123456789 Leiria José da Silva 123456789 Faro José da Silva 222222222 Leiria José da Silva 222222222 Faro António Costa 333333333 Leiria
  • 51. Perda de informação 𝑅1 ⋈ 𝑅2 Nome Cidade José da Silva Leiria José da Silva Faro António Costa Leiria Nome Telefone José da Silva 123456789 José da Silva 222222222 António Costa 333333333 R1 R2 Nome Telefone Cidade José da Silva 123456789 Leiria José da Silva 123456789 Faro José da Silva 222222222 Leiria José da Silva 222222222 Faro António Costa 333333333 Leiria Junção da decomposição diferente da relação inicial Decomposição não pode ser feita desta forma
  • 52. Perda de informação 𝑅1 ⋈ 𝑅2 Nome Cidade José da Silva Leiria José da Silva Faro António Costa Leiria Nome Telefone José da Silva 123456789 José da Silva 222222222 António Costa 333333333 R1 R2 Nome Telefone Cidade José da Silva 123456789 Leiria José da Silva 123456789 Faro José da Silva 222222222 Leiria José da Silva 222222222 Faro António Costa 333333333 Leiria Junção da decomposição diferente da relação inicial Decomposição não pode ser feita desta forma
  • 53. Normalização • Obtida pela decomposição da relação em duas ou mais relações • Procedimento bem definido • Vários níveis: • 1ª Forma Normal (1FN) • 2ª Forma Normal (2FN) • 3ª Forma Normal (3FN) • Forma Normal de Boyce Codd (FNBC) • 4ª Forma Normal (4FN) • 5ª Forma Normal (5FN)
  • 54. Normalização (cont.) • Forma normal mais avançada implica menor redundância • Se relação está numa forma normal também está nas FN anteriores 5FN 4FN FNBC 3FN 2FN 1FN
  • 55. Primeira Forma Normal (1FN) • Uma relação está na 1FN se • Atributos contêm valores atómicos • Não há atributos repetidos (descrevem mesma caracteristica) • Não tem grupos de atributos repetitivos.
  • 56. Exemplo 1 • PessoaCursos1 Nome Endereço NIF Cursos Artur Covilhã 123456789 Programador Ana Fundão 222222222 Operador,Programador Carlos Covilhã 222333444 Analista, Programador, Operador Paulo Guarda 555666777 Operador, Analista
  • 57. Exemplo 1 • PessoaCursos1 • O atributo Cursos contém valores não atómicos • A relação PessoaCursos1 não está na 1FN Nome Endereço NIF Cursos Artur Covilhã 123456789 Programador Ana Fundão 222222222 Operador,Programador Carlos Covilhã 222333444 Analista, Programador, Operador Paulo Guarda 555666777 Operador, Analista
  • 58. Exemplo 2 • PessoaCursos2 Nome Endereço NIF Curso1 Curso2 Curso3 Artur Covilhã 123456789 Programador Ana Fundão 222222222 Operador Programador Carlos Covilhã 222333444 Analista Programador Operador Paulo Guarda 555666777 Operador Analista
  • 59. Exemplo 2 • PessoaCursos2 • São repetidos atributos do mesmo tipo (grupo repetitivo) • A relação PessoaCursos2 não está na 1FN Nome Endereço NIF Curso1 Curso2 Curso3 Artur Covilhã 123456789 Programador Ana Fundão 222222222 Operador Programador Carlos Covilhã 222333444 Analista Programador Operador Paulo Guarda 555666777 Operador Analista
  • 60. Exemplo 3 • Considere a relação R( N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente, Cod_produto, Desc_produto, Preço_produto, Quantidade ) Os dados de cada produto encomendado • Como decompor?
  • 61. Exemplo 3 • Considere a relação R( N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente, (Cod_produto, Desc_produto, Preço_produto, Quantidade)* ) Os dados de cada produto encomendado • Como decompor?
  • 62. Exemplo 3 • Considere a relação R( N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente, (Cod_produto, Desc_produto, Preço_produto, Quantidade)* ) Os dados de cada produto encomendado • Como decompor? N_nota_enc ⟶ Cod_cliente, Nome_cliente, Morada_cliente (dependência funcional)
  • 63. Exemplo 3 • Considere a relação R( N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente, (Cod_produto, Desc_produto, Preço_produto, Quantidade)* ) Os dados de cada produto encomendado • Como decompor? N_nota_enc ⟶ Cod_cliente, Nome_cliente, Morada_cliente (dependência funcional) • Podemos decompor R em Nota_de_enc(N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente) Linha_nota_enc(N_nota_enc, Cod_produto, Desc_produto, Preço_produto, Quantidade)
  • 64. Segunda Forma Normal (2FN) • Considere R(Fornecedor, Peça, Cidade, Quantidade) • Onde • Fornecedor ↛ Peça • Peça ↛ Fornecedor • Fornecedor ⟶ Cidade
  • 65. Segunda Forma Normal (2FN) (cont.) • Num dado instante, Fornecedor Peça Cidade Quantidade Empresa A 1 Covilhã 100 Empresa A 2 Covilhã 200 Empresa A 3 Covilhã 300 Empresa B 1 Fundão 400 Empresa B 3 Fundão 500
  • 66. Segunda Forma Normal (2FN) (cont.) • Num dado instante, • Algumas anomalias • Inserção: inserir fornecedor sem peça (peça faz parte da chave) • Eliminação: eliminar peça 1 e 3 de empresa B perde-se informação sobre fornecedor • Modificação: atualizar cidade de fornecedor implica atualizar todos os tuplos do fornecedor Fornecedor Peça Cidade Quantidade Empresa A 1 Covilhã 100 Empresa A 2 Covilhã 200 Empresa A 3 Covilhã 300 Empresa B 1 Fundão 400 Empresa B 3 Fundão 500
  • 67. Segunda Forma Normal (2FN) (cont.) • Num dado instante, • Algumas anomalias • Inserção: inserir fornecedor sem peça (peça faz parte da chave) • Eliminação: eliminar peça 1 e 3 de empresa B perde-se informação sobre fornecedor • Modificação: atualizar cidade de fornecedor implica atualizar todos os tuplos do fornecedor Fornecedor Peça Cidade Quantidade Empresa A 1 Covilhã 100 Empresa A 2 Covilhã 200 Empresa A 3 Covilhã 300 Empresa B 1 Fundão 400 Empresa B 3 Fundão 500
  • 68. Segunda Forma Normal (2FN) (cont.) • Num dado instante, • Algumas anomalias • Inserção: inserir fornecedor sem peça (peça faz parte da chave) • Eliminação: eliminar peça 1 e 3 de empresa B perde-se informação sobre fornecedor • Modificação: atualizar cidade de fornecedor implica atualizar todos os tuplos do fornecedor Fornecedor Peça Cidade Quantidade Empresa A 1 Covilhã 100 Empresa A 2 Covilhã 200 Empresa A 3 Covilhã 300 Empresa B 1 Fundão 400 Empresa B 3 Fundão 500
  • 69. Segunda Forma Normal (2FN) (cont.) • Num dado instante, • Algumas anomalias • Inserção: inserir fornecedor sem peça (peça faz parte da chave) • Eliminação: eliminar peça 1 e 3 de empresa B perde-se informação sobre fornecedor • Modificação: atualizar cidade de fornecedor implica atualizar todos os tuplos do fornecedor Fornecedor Peça Cidade Quantidade Empresa A 1 Covilhã 100 Empresa A 2 Covilhã 200 Empresa A 3 Covilhã 300 Empresa B 1 Fundão 400 Empresa B 3 Fundão 500
  • 70. Segunda Forma Normal (2FN) (cont.) • Decomposição • 𝑅1 = 𝜋 𝐹𝑜𝑟𝑛𝑒𝑐𝑒𝑑𝑜𝑟,𝐶𝑖𝑑𝑎𝑑𝑒 (𝑅) R1(Fornecedor, Cidade) • 𝑅2 = 𝜋 𝐹𝑜𝑟𝑛𝑒𝑐𝑒𝑑𝑜𝑟,𝑃𝑒ç𝑎,𝑄𝑢𝑎𝑛𝑡𝑖𝑑𝑎𝑑𝑒 (𝑅) R2(Fornecedor, Peça,Quantidade) • Desaparecem anomalias • A DF Fornecedor ⟶ Cidade • Garante que 𝑅 = 𝑅1 ⋈𝐹𝑜𝑟𝑛𝑒𝑐𝑒𝑑𝑜𝑟=𝐹𝑜𝑟𝑛𝑒𝑐𝑒𝑑𝑜𝑟 𝑅2 • Uma relação está na 2ª forma normal • se está na 1FN • atributos que não são chave dependem da totalidade da chave.
  • 71. Segunda Forma Normal (2FN) (cont.) • Decomposição • 𝑅1 = 𝜋 𝐹𝑜𝑟𝑛𝑒𝑐𝑒𝑑𝑜𝑟,𝐶𝑖𝑑𝑎𝑑𝑒 (𝑅) R1(Fornecedor, Cidade) • 𝑅2 = 𝜋 𝐹𝑜𝑟𝑛𝑒𝑐𝑒𝑑𝑜𝑟,𝑃𝑒ç𝑎,𝑄𝑢𝑎𝑛𝑡𝑖𝑑𝑎𝑑𝑒 (𝑅) R2(Fornecedor, Peça,Quantidade) • Desaparecem anomalias • A DF Fornecedor ⟶ Cidade • Garante que 𝑅 = 𝑅1 ⋈𝐹𝑜𝑟𝑛𝑒𝑐𝑒𝑑𝑜𝑟=𝐹𝑜𝑟𝑛𝑒𝑐𝑒𝑑𝑜𝑟 𝑅2 • Uma relação está na 2ª forma normal • se está na 1FN • atributos que não são chave dependem da totalidade da chave.
  • 72. Segunda Forma Normal (2FN) (cont.) • Decomposição • 𝑅1 = 𝜋 𝐹𝑜𝑟𝑛𝑒𝑐𝑒𝑑𝑜𝑟,𝐶𝑖𝑑𝑎𝑑𝑒 (𝑅) R1(Fornecedor, Cidade) • 𝑅2 = 𝜋 𝐹𝑜𝑟𝑛𝑒𝑐𝑒𝑑𝑜𝑟,𝑃𝑒ç𝑎,𝑄𝑢𝑎𝑛𝑡𝑖𝑑𝑎𝑑𝑒 (𝑅) R2(Fornecedor, Peça,Quantidade) • Desaparecem anomalias • A DF Fornecedor ⟶ Cidade • Garante que 𝑅 = 𝑅1 ⋈𝐹𝑜𝑟𝑛𝑒𝑐𝑒𝑑𝑜𝑟=𝐹𝑜𝑟𝑛𝑒𝑐𝑒𝑑𝑜𝑟 𝑅2 • Uma relação está na 2ª forma normal • se está na 1FN • atributos que não são chave dependem da totalidade da chave.
  • 73. Dependencia funcional elementar e parcial • Considere R(X, Y, Z, …) • Dependência funcional elementar • X ⟶ Y é elementar se ∀𝑋′ ⊂ 𝑋: 𝑋′ ↛ 𝑌 • Dependência funcional parcial • X ⟶ Y e X’ ⟶ Y (com 𝑋′ ⊂ 𝑋) então X ⟶ Y é uma DF parcial
  • 74. Dependencia funcional elementar e parcial • Considere R(X, Y, Z, …) • Dependência funcional elementar • X ⟶ Y é elementar se ∀𝑋′ ⊂ 𝑋: 𝑋′ ↛ 𝑌 • Dependência funcional parcial • X ⟶ Y e X’ ⟶ Y (com 𝑋′ ⊂ 𝑋) então X ⟶ Y é uma DF parcial
  • 75. Exemplo • Linha_nota_enc (N_nota_enc, Cod_produto, Desc_produto, Preço_prod, Quantidade) • As dependências funcionais • N_nota_enc, Cod_produto ⟶ Desc_produto • N_nota_enc, Cod_produto ⟶ Preço_produto • Não são elementares • Cod_produto ⟶ Desc_produto • Cod_produto ⟶ Preço_produto
  • 76. Exemplo • Linha_nota_enc (N_nota_enc, Cod_produto, Desc_produto, Preço_prod, Quantidade) • As dependências funcionais • N_nota_enc, Cod_produto ⟶ Desc_produto • N_nota_enc, Cod_produto ⟶ Preço_produto • Não são elementares • Cod_produto ⟶ Desc_produto • Cod_produto ⟶ Preço_produto
  • 77. Exemplo • Linha_nota_enc (N_nota_enc, Cod_produto, Desc_produto, Preço_prod, Quantidade) • As dependências funcionais • N_nota_enc, Cod_produto ⟶ Desc_produto • N_nota_enc, Cod_produto ⟶ Preço_produto • Não são elementares • Cod_produto ⟶ Desc_produto • Cod_produto ⟶ Preço_produto
  • 78. Exemplo • Linha_nota_enc (N_nota_enc, Cod_produto, Desc_produto, Preço_prod, Quantidade) • Linha_nota_enc é decomposto em • Linha_Nota_Enc ( N_nota_enc, Cod_produto, Quantidade) • Produto ( Cod_produto, Desc_produto, Preço_produto) • A DF Cod_produto ⟶ Desc_produto, Preço_produto garante validade da decomposição
  • 79. Exemplo • Linha_nota_enc (N_nota_enc, Cod_produto, Desc_produto, Preço_prod, Quantidade) • Linha_nota_enc é decomposto em • Linha_Nota_Enc ( N_nota_enc, Cod_produto, Quantidade) • Produto ( Cod_produto, Desc_produto, Preço_produto) • A DF Cod_produto ⟶ Desc_produto, Preço_produto garante validade da decomposição
  • 80. Exemplo • Linha_nota_enc (N_nota_enc, Cod_produto, Desc_produto, Preço_prod, Quantidade) • Linha_nota_enc é decomposto em • Linha_Nota_Enc ( N_nota_enc, Cod_produto, Quantidade) • Produto ( Cod_produto, Desc_produto, Preço_produto) • A DF Cod_produto ⟶ Desc_produto, Preço_produto garante validade da decomposição
  • 81. Casos especiais da 2FN • Se todos os atributos de uma relação são primos (pertencem a uma chave) ou • A chave da relação consiste num único atributo. • Então a relação está na 2ª forma normal.
  • 82. Decomposição na 2FN • Toda a relação R que não esteja na 2FN pode ser decomposta num conjunto de projecções que estão na 2FN. • Para vermos se uma relação está na 2FN: 1. Identificamos a chave da tabela. Se a chave for apenas um atributo, ou for constituída por todos os atributos da relação, então podemos concluir que está na 2FN. 2. Se a chave for composta (tiver mais do que um atributo) verificamos se há atributos que não são chave e que dependem apenas de parte da chave. Se não houver, então está na 2FN. 3. Se houver, então decompor de acordo com o esquema anterior.
  • 83. Decomposição na 2FN • Toda a relação R que não esteja na 2FN pode ser decomposta num conjunto de projecções que estão na 2FN. • Para vermos se uma relação está na 2FN: 1. Identificamos a chave da tabela. Se a chave for apenas um atributo, ou for constituída por todos os atributos da relação, então podemos concluir que está na 2FN. 2. Se a chave for composta (tiver mais do que um atributo) verificamos se há atributos que não são chave e que dependem apenas de parte da chave. Se não houver, então está na 2FN. 3. Se houver, então decompor de acordo com o esquema anterior.
  • 84. Decomposição na 2FN • Toda a relação R que não esteja na 2FN pode ser decomposta num conjunto de projecções que estão na 2FN. • Para vermos se uma relação está na 2FN: 1. Identificamos a chave da tabela. Se a chave for apenas um atributo, ou for constituída por todos os atributos da relação, então podemos concluir que está na 2FN. 2. Se a chave for composta (tiver mais do que um atributo) verificamos se há atributos que não são chave e que dependem apenas de parte da chave. Se não houver, então está na 2FN. 3. Se houver, então decompor de acordo com o esquema anterior.
  • 85. Decomposição na 2FN • Toda a relação R que não esteja na 2FN pode ser decomposta num conjunto de projecções que estão na 2FN. • Para vermos se uma relação está na 2FN: 1. Identificamos a chave da tabela. Se a chave for apenas um atributo, ou for constituída por todos os atributos da relação, então podemos concluir que está na 2FN. 2. Se a chave for composta (tiver mais do que um atributo) verificamos se há atributos que não são chave e que dependem apenas de parte da chave. Se não houver, então está na 2FN. 3. Se houver, então decompor de acordo com o esquema anterior.
  • 86. Decomposição na 2FN • Toda a relação R que não esteja na 2FN pode ser decomposta num conjunto de projecções que estão na 2FN. • Para vermos se uma relação está na 2FN: 1. Identificamos a chave da tabela. Se a chave for apenas um atributo, ou for constituída por todos os atributos da relação, então podemos concluir que está na 2FN. 2. Se a chave for composta (tiver mais do que um atributo) verificamos se há atributos que não são chave e que dependem apenas de parte da chave. Se não houver, então está na 2FN. 3. Se houver, então decompor de acordo com o esquema anterior.
  • 87. Terceira Forma Normal (3FN) • Considere a relação E(N_emp, Dep, Cidade) • Com • N_emp ⟶ Dep • Dep ↛ N_emp • Dep ⟶ Cidade • Cidade ↛ Dep
  • 88. Anomalias • E E(N_emp, Dep, Cidade) está na 2FN N_emp Dep Cidade a A X b A X c A X d B Y e B Y f C X g C X Inserção: não podemos inserir um departamento se não tem empregados Eliminação: se eliminamos o ultimo empregado de departamento perdemos informação Modificação: Atributo cidade repetido para departamento, implica alteração em todos os empregados
  • 89. Anomalias • E E(N_emp, Dep, Cidade) está na 2FN N_emp Dep Cidade a A X b A X c A X d B Y e B Y f C X g C X Inserção: não podemos inserir um departamento se não tem empregados Eliminação: se eliminamos o ultimo empregado de departamento perdemos informação Modificação: Atributo cidade repetido para departamento, implica alteração em todos os empregados
  • 90. Anomalias • E E(N_emp, Dep, Cidade) está na 2FN N_emp Dep Cidade a A X b A X c A X d B Y e B Y f C X g C X Inserção: não podemos inserir um departamento se não tem empregados Eliminação: se eliminamos o ultimo empregado de departamento perdemos informação Modificação: Atributo cidade repetido para departamento, implica alteração em todos os empregados
  • 91. Anomalias • E E(N_emp, Dep, Cidade) está na 2FN N_emp Dep Cidade a A X b A X c A X d B Y e B Y f C X g C X Inserção: não podemos inserir um departamento se não tem empregados Eliminação: se eliminamos o ultimo empregado de departamento perdemos informação Modificação: Atributo cidade repetido para departamento, implica alteração em todos os empregados
  • 92. Anomalias • E E(N_emp, Dep, Cidade) está na 2FN N_emp Dep Cidade a A X b A X c A X d B Y e B Y f C X g C X Inserção: não podemos inserir um departamento se não tem empregados Eliminação: se eliminamos o ultimo empregado de departamento perdemos informação Modificação: Atributo cidade repetido para departamento, implica alteração em todos os empregados (atributos não chave depende da totalidade da chave)
  • 93. Decomposição de E • Se substituirmos E por 𝐸𝑚𝑝𝑟𝑒𝑔𝑎𝑑𝑜 = 𝜋𝑁𝑒𝑚𝑝,𝐷𝑒𝑝 𝐸 𝐷𝑒𝑝𝑎𝑟𝑡𝑎𝑚𝑒𝑛𝑡𝑜 = 𝜋𝐷𝑒𝑝,𝐶𝑖𝑑𝑎𝑑𝑒(𝐸) desaparecem as anomalias. A DF 𝐷𝑒𝑝𝑎𝑟𝑡𝑎𝑚𝑒𝑛𝑡𝑜 ⟶ 𝐶𝑖𝑑𝑎𝑑𝑒 garante que 𝐸 = 𝐸𝑚𝑝𝑟𝑒𝑔𝑎𝑑𝑜 ⋈𝐷𝑒𝑝=𝐷𝑒𝑝 𝐷𝑒𝑝𝑎𝑟𝑡𝑎𝑚𝑒𝑛𝑡𝑜 • Uma relação está na 3ª forma normal • se está na 2FN • nenhum dos atributos não chave depende de outro não chave.
  • 94. Decomposição de E • Se substituirmos E por 𝐸𝑚𝑝𝑟𝑒𝑔𝑎𝑑𝑜 = 𝜋𝑁𝑒𝑚𝑝,𝐷𝑒𝑝 𝐸 𝐷𝑒𝑝𝑎𝑟𝑡𝑎𝑚𝑒𝑛𝑡𝑜 = 𝜋𝐷𝑒𝑝,𝐶𝑖𝑑𝑎𝑑𝑒(𝐸) desaparecem as anomalias. A DF 𝐷𝑒𝑝𝑎𝑟𝑡𝑎𝑚𝑒𝑛𝑡𝑜 ⟶ 𝐶𝑖𝑑𝑎𝑑𝑒 garante que 𝐸 = 𝐸𝑚𝑝𝑟𝑒𝑔𝑎𝑑𝑜 ⋈𝐷𝑒𝑝=𝐷𝑒𝑝 𝐷𝑒𝑝𝑎𝑟𝑡𝑎𝑚𝑒𝑛𝑡𝑜 • Uma relação está na 3ª forma normal • se está na 2FN • nenhum dos atributos não chave depende de outro não chave.
  • 95. Decomposição na 3ª Forma Normal • Toda a relação R que não esteja na 3FN pode ser decomposta num conjunto de projecções que estão na 3FN. • Se 𝑋 ⟶ 𝑌 (com X chave), 𝑌 ↛ 𝑋 e 𝑌 ⟶ 𝑍 (isto é, existe 𝑋 ⟶ 𝑍 não direta, com Z não chave) • R(YZ) e R(XYW) onde W tem todos os atributos que não são de X, nem de Y nem de Z.
  • 96. Decomposição na 3ª Forma Normal • Toda a relação R que não esteja na 3FN pode ser decomposta num conjunto de projecções que estão na 3FN. • Se 𝑋 ⟶ 𝑌 (com X chave), 𝑌 ↛ 𝑋 e 𝑌 ⟶ 𝑍 (isto é, existe 𝑋 ⟶ 𝑍 não direta, com Z não chave) • R(YZ) e R(XYW) onde W tem todos os atributos que não são de X, nem de Y nem de Z.
  • 97. Decomposição na 3ª Forma Normal • Toda a relação R que não esteja na 3FN pode ser decomposta num conjunto de projecções que estão na 3FN. • Se 𝑋 ⟶ 𝑌 (com X chave), 𝑌 ↛ 𝑋 e 𝑌 ⟶ 𝑍 (isto é, existe 𝑋 ⟶ 𝑍 não direta, com Z não chave) • R(YZ) e R(XYW) onde W tem todos os atributos que não são de X, nem de Y nem de Z.
  • 98. Exemplo 1 • Nota_de_enc ( N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente) • Cod_cliente ⟶ Nome_cliente • Cod_cliente ⟶ Morada_cliente • Por união, Cod_cliente ⟶ Nome_cliente, Morada_cliente (logo a DF N_nota_enc ⟶ Nome_cliente, Morada_cliente não é direta) A relação não está na 3FN
  • 99. Exemplo 1 • Nota_de_enc ( N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente) • Cod_cliente ⟶ Nome_cliente • Cod_cliente ⟶ Morada_cliente • Por união, Cod_cliente ⟶ Nome_cliente, Morada_cliente (logo a DF N_nota_enc ⟶ Nome_cliente, Morada_cliente não é direta) A relação não está na 3FN
  • 100. Exemplo 1 • Nota_de_enc ( N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente) • Cod_cliente ⟶ Nome_cliente • Cod_cliente ⟶ Morada_cliente • Por união, Cod_cliente ⟶ Nome_cliente, Morada_cliente (logo a DF N_nota_enc ⟶ Nome_cliente, Morada_cliente não é direta) A relação não está na 3FN
  • 101. Decomposição • Nota_de_enc ( N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente) • Cliente ( Cod_cliente , Nome_cliente, Morada_cliente) • Nota_enc ( N_nota_enc, Cod_cliente )
  • 102. Vantagens da Normalização • Estruturas de dados mais estáveis • Elimina a redundância • Obtêm-se um modelo de dados mais natural e mais simples • Evitam-se os efeitos laterais da alteração • Evitam-se os efeitos laterais da inserção • Evitam-se os efeitos laterais da remoção • Facilita a exploração e manutenção de ficheiros
  • 103. Desvantagens da Normalização • Favorece a proliferação no n.º de tabelas • Favorece a fragmentação exagerada • Perigoso de seguir cegamente Conclusão: Normalizar? Sim, mas com bom senso ...