UC2 · Implementar Banco de Dados

Dependências Funcionais

Aula 08 — Quem determina quem

Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

O mapa de hoje

  • Bloco 1 — as anomalias: o que quebra numa tabela mal feita
  • Bloco 2 — dependência funcional: quem determina quem
  • Bloco 3 — dependência parcial e transitiva — os dois vilões
  • Bloco 4 — mão na massa: caçar dependências no esquema do grupo
Hoje a gente diagnostica. Amanhã (Aula 09) a gente conserta. Esta aula é o exame; a próxima é o tratamento.
Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Retomando a Aula 07

  • Qual regra transforma um 1:N em coluna?
  • Onde fica a chave estrangeira: no lado do "um" ou do "muitos"?
  • O que a Regra 5 faz com um atributo multivalorado?
Peguem o esquema relacional do grupo (planilha da Aula 07). É o material de hoje.
Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Bloco 1

As anomalias — o que quebra numa tabela mal feita

Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone A tabela do crime

Alguém resolveu guardar tudo numa tabela só:

id_emp nome_cliente tel_cliente titulo_jogo plataforma fabricante data
1 Ana Souza 9999-1111 God of War PS5 Sony 02/10
2 Bruno Lima 9999-2222 Zelda TotK Switch Nintendo 02/10
3 Ana Souza 9999-1111 FIFA 25 PS5 Sony 03/10

Funciona? Funciona. Até acontecer alguma coisa.

Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone Anomalia 1 — de inserção

Chegou um cliente novo, Carla, que ainda não alugou nada.
Onde eu cadastro a Carla?

  • Só existe a tabela emprestimo
  • Para cadastrar a Carla, eu teria que inventar um empréstimo
  • Ou deixar metade da linha vazia
Anomalia de inserção: não dá para guardar um fato sem inventar outro.
Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone Anomalia 2 — de atualização

A Ana mudou de telefone.

  • O telefone dela está em 3 linhas (ela alugou 3 vezes)
  • Se eu atualizar 2 e esquecer 1, qual é o telefone certo?
  • Com 14 empréstimos, são 14 linhas para acertar
Anomalia de atualização: um fato guardado em vários lugares vira vários fatos diferentes. É a inconsistência da Aula 01.
Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone Anomalia 3 — de exclusão

A Ana pediu para cancelar o empréstimo número 3 — e era o único dela na tabela.

  • Apago a linha 3
  • Perdi o telefone da Ana, que não estava em mais lugar nenhum
  • Se o FIFA 25 só aparecia nessa linha, perdi o jogo do catálogo também
Anomalia de exclusão: apagar um fato apaga outro, sem querer, junto. É o pior dos três, porque acontece em silêncio.
Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone De onde vêm as três anomalias

Todas as três têm a mesma causa: a tabela está guardando fatos sobre coisas diferentes misturados na mesma linha — sobre o empréstimo, sobre o cliente, sobre o jogo e sobre a plataforma, tudo junto.
icone Inserçãonão dá para cadastrar um sem o outro
icone Atualizaçãomudar um dado exige mudar várias linhas
icone Exclusãoapagar uma coisa leva outra junto

A cura é separar. Mas separar como, e onde cortar?

É isso que a dependência funcional responde.

Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Checagem do Bloco 1

Na tabela do crime, qual anomalia acontece em cada caso?

  • Cadastrar uma plataforma nova (Xbox) que ainda não tem jogo
  • Corrigir o nome do fabricante de "Sony" para "Sony Interactive"
  • Apagar o último empréstimo de um cliente
Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Intervalo

10 minutos

Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Bloco 2

Dependência funcional — quem determina quem

Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone A ideia, sem matemática

Dizer que A determina B é dizer: se eu souber o A, eu sei o B — e não tem outra resposta possível.
  • Se eu sei o id_jogo, eu sei o titulo? Sim — cada id tem um título só
  • Se eu sei o titulo, eu sei o id_jogo? Não — pode haver duas cópias do mesmo jogo

Escreve-se assim: id_jogo → titulo

EN PT
functional dependency dependência funcional
determinant determinante — o lado esquerdo da seta
Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone O teste da pergunta

Para descobrir se A → B, faça a pergunta e tente quebrar:

  1. "Se eu souber o A, eu sei o B com certeza?"
  2. Procure um contraexemplo: dois registros com o mesmo A e B diferente
  3. Achou contraexemplo? Não é dependência
  4. Não achou, e nunca poderá haver? É dependência
Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone Visualizando

id_jogo determina titulo, genero e ano_lancamento; o caminho inverso nao vale

A chave primária determina todos os outros atributos da tabela.
O contrário quase nunca vale.

Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Dependências na tabela do crime

Dependência Vale?
id_emp → data sim — cada empréstimo tem uma data
id_cliente → nome_cliente sim
id_cliente → tel_cliente sim
id_jogo → titulo_jogo sim
id_plataforma → fabricante sim
nome_cliente → tel_cliente não — duas Marias, dois telefones
Repare: a tabela tem um id de chave primária, mas as dependências apontam para quatro determinantes diferentes. É esse o sintoma.
Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone Erro comum — confundir dependência com "dá para descobrir"

"Pelo telefone eu descubro o cliente." Talvez. Mas se dois clientes moram na mesma casa e deram o mesmo telefone fixo, a resposta deixa de ser única — e a dependência não existe.

Dependência funcional não é "geralmente dá para descobrir".
É "sempre dá, e a resposta é uma só".

Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Checagem do Bloco 2

Vale a dependência? Tente quebrar cada uma:

  • cpf → nome
  • nome → cpf
  • id_pedido → data_pedido
  • genero → titulo (na tabela jogo)
Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Intervalo

10 minutos

Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Bloco 3

Os dois vilões: dependência parcial e transitiva

Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone Dependência total × parcial

Quando a chave primária é composta (mais de uma coluna), há duas possibilidades:

  • Total — o atributo depende da chave inteira
  • Parcial — o atributo depende de só um pedaço da chave

Dependencia parcial: na chave composta, data_retirada depende so de id_emprestimo e titulo_jogo so de id_jogo

Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone Dependência transitiva

Quando um atributo depende da chave através de outro atributo:

Dependencia transitiva: nome_plataforma e fabricante estao na tabela so por causa de id_plataforma

  • id_jogo → id_plataforma (a chave determina a plataforma)
  • id_plataforma → nome_plataforma (a plataforma determina seu nome)
  • Logo id_jogo → nome_plataforma — mas de carona, não diretamente
Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Por que esses dois vilões importam

Vilão O que ele causa Some na...
Atributo que não depende de chave nenhuma repetição de tudo 1FN / 2FN
Dependência parcial repetição do pedaço 2FN
Dependência transitiva repetição do "de carona" 3FN
Amanhã, na Aula 09, cada linha desta tabela vira um procedimento de conserto. Hoje basta saber reconhecer.
Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone Erro comum — achar que toda repetição é erro

Repetir a chave estrangeira é normal e necessário: vários jogos terem id_plataforma = 1 é exatamente como a ligação funciona. O problema é repetir o resto — o nome, o fabricante, o telefone.

Repetir a referência: certo.
Repetir a informação: errado.

Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Checagem do Bloco 3

Na tabela jogo (id_jogo*, titulo, id_plataforma, nome_plataforma, fabricante):

  • Que tipo de dependência é id_plataforma → fabricante?
  • Qual coluna está repetindo informação e qual está repetindo referência?
  • O que você tiraria dessa tabela?
Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Intervalo

10 minutos

Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Caçar dependências no esquema do grupo

  1. Peguem o esquema relacional do grupo (Aula 07)
  2. Para cada tabela, listem as dependências no formato A → B
  3. Apliquem o teste da pergunta em cada uma, buscando contraexemplo
  4. Marquem as que têm determinante diferente da chave primária
  5. Classifiquem cada marcada: parcial ou transitiva?
  6. Não consertem nada hoje — só diagnostiquem
Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Lembrete de entrega

Padrão Hoje
grupoNN-aulaNN-artefato.<ext> grupo03-aula08-dependencias.pdf
Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Enquanto vocês caçam

Perguntas que destravam:

  • Consegue quebrar essa dependência com um contraexemplo?
  • Esse atributo é característica de quem, de verdade?
  • Se eu apagar uma linha dessa tabela, perco algum fato que não estava em outro lugar?
  • Essa coluna é uma referência ou uma informação repetida?
  • Quantos determinantes diferentes essa tabela tem?
Se uma tabela tem mais de um determinante, anotem em vermelho. É exatamente o que a Aula 09 vai separar.
Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Devolutiva — passo de mesa em mesa

Eu passo em cada grupo. Tenham pronta uma dependência problemática:

  • A dependência, escrita como A → B
  • Se é parcial ou transitiva
  • Qual das três anomalias ela causaria
Se nenhum grupo achar nada, a gente faz o diagnóstico junto, no quadro, com a tabela do crime — a aula não termina sem pelo menos um caso completo na frente da turma.
Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Antes da próxima aula

Testar em casa: pegue uma planilha que você usa (no trabalho, em casa) e procure uma coluna que repete informação em várias linhas. Qual anomalia ela causaria?

Tarefa opcional: complete a lista de dependências do grupo, incluindo as tabelas que não deu tempo de analisar em aula.

Aula 08 · 19/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Para a próxima aula

Vocês já sabem onde dói. Amanhã: o procedimento para consertar, em três passos com nome.

Aula 08 · 19/10/2026 · Indicadores 2, 4
← todas as aulas