UC2 · Implementar Banco de Dados

Chaves e Cardinalidades

Aula 05 — Identificando e ligando

Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

O mapa de hoje

  • Bloco 1 — chave primária: como identificar uma linha, e só uma
  • Bloco 2 — chave estrangeira: como uma entidade aponta para outra
  • Bloco 3 — cardinalidade: quantos se ligam a quantos
  • Bloco 4 — mão na massa: chaves e cardinalidades do projeto do grupo
Hoje o DER ganha os três últimos símbolos: o asterisco, a sigla CE/FK e os marcadores nas pontas da linha. Depois de hoje, você lê qualquer DER.
Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Retomando a Aula 04

  • Qual a diferença entre atributo composto e multivalorado?
  • Por que idade não é um bom atributo?
  • Por que telefone é texto e não número?

A caixa JOGO sem nenhum atributo marcado como chave

Esta é a nossa entidade JOGO de ontem. Falta uma coisa.

Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Bloco 1

Chave primária — identificando uma linha

Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone O problema, concreto

A locadora tem duas cópias de God of War. Mesmo título, mesmo gênero, mesmo ano.

titulo genero ano
God of War Ação 2018
God of War Ação 2018

A Ana levou uma delas. Qual?

Com esses três atributos, é impossível responder. Duas linhas idênticas são indistinguíveis — e um banco que não distingue linhas não serve para nada.
Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone Chave primária, em uma frase

Chave primária é o atributo (ou o conjunto de atributos) que identifica cada ocorrência da entidade de forma única e que nunca fica vazio.
EN PT
primary key (PK) chave primária — identifica a linha de forma única
unique único — não pode repetir
key chave
Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Legenda — o asterisco

Símbolo 4 — a chave primária: um * antes do nome do atributo.

Antes:

A caixa JOGO sem nenhum atributo marcado como chave

Depois:

A caixa JOGO com id_jogo marcado como chave primaria

O *id_jogo é a chave primária: cada jogo ganha um número próprio, que não repete.

Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Chave natural × chave artificial

Natural — já existe no mundo

CPF, CNPJ, código de barras, matrícula

Risco: muda (CPF de menor vira outro?),
é sigiloso, ou nem todo mundo tem

Artificial — inventada pelo banco

id_jogo = 1, 2, 3...

Vantagem: nunca muda, nunca repete,
não é dado pessoal, sempre existe

Combinado do curso: toda entidade vai ter uma chave artificial chamada id_<entidade>. É a escolha mais segura e a mais comum no mercado.
Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Chave candidata e chave composta

  • Chave candidata — qualquer atributo que poderia ser a chave primária. Em CLIENTE: cpf e email são candidatas; escolhemos uma e criamos id_cliente
  • Chave composta — quando é preciso mais de um atributo para identificar. Numa entidade PARTIDA, talvez só campeonato + rodada + mandante identifique
Chave composta funciona, mas complica tudo lá na frente (a Aula 14 fica bem mais chata). No curso, preferimos sempre a chave artificial simples.
Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone Erro comum — nome como chave primária

"O nome do cliente é único, ninguém tem nome igual." Tem. Existem milhares de "Maria Silva". E gente que muda de nome. E gente que digita o próprio nome de dois jeitos diferentes.

Teste rápido para qualquer chave candidata:

  • Pode repetir? Então não serve
  • Pode mudar? Então não serve
  • Pode ficar vazio? Então não serve
Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Checagem do Bloco 1

Serve como chave primária? Por quê?

  • titulo da entidade JOGO
  • cpf da entidade CLIENTE
  • nome + data_nascimento da entidade CLIENTE
  • id_cliente gerado pelo banco
Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Intervalo

10 minutos

Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Bloco 2

Chave estrangeira — ligando duas entidades

Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone O problema — onde guardar a plataforma do jogo?

Cada jogo é de uma plataforma. Como registrar isso?

Tentativa Problema
Escrever "PlayStation 5" dentro de JOGO Volta a redundância da Aula 01: três grafias, nenhuma confiável
Guardar o número da plataforma dentro de JOGO Funciona — e é exatamente a chave estrangeira
Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone Chave estrangeira, em uma frase

Chave estrangeira é um atributo que guarda a chave primária de outra entidade. É o que amarra duas entidades uma na outra.
EN PT
foreign key (FK) chave estrangeira — aponta para a PK de outra entidade
reference referência — para onde a chave aponta

No curso, marcamos com a sigla CE/FK — chave estrangeira / foreign key.

Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Legenda — a sigla CE/FK

Símbolo 5 — a chave estrangeira: a sigla CE/FK no atributo.

A chave estrangeira em JOGO apontando para a chave primaria de PLATAFORMA

  • *id_plataforma em PLATAFORMA é a chave primária (asterisco)
  • id_plataforma em JOGO é a chave estrangeira (CE/FK) — aponta para a de cima
  • É esse par que dá sentido à linha entre as duas caixas
Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone Como ler o par PK/FK numa tabela

PLATAFORMA

*id_plataforma nome
1 PlayStation 5
2 Nintendo Switch

JOGO

*id_jogo titulo id_plataforma (CE/FK)
10 God of War 1
11 Zelda TotK 2
12 FIFA 25 1
Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone De que lado fica a chave estrangeira?

Regra prática: a chave estrangeira fica do lado do "muitos".
  • Uma plataforma tem vários jogos → a FK fica em JOGO
  • Um cliente faz vários empréstimos → a FK fica em EMPRESTIMO

E o contrário quebra: se PLATAFORMA guardasse id_jogo, caberia um jogo só por plataforma.

Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Checagem do Bloco 2

Em qual entidade fica a chave estrangeira?

  • Um AUTOR escreve vários LIVROs
  • Uma TURMA tem vários ALUNOs
  • Um CLIENTE faz várias ENCOMENDAs na confeitaria
  • Um TIME tem vários JOGADORes
Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Intervalo

10 minutos

Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Bloco 3

Cardinalidade — quantos se ligam a quantos

Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone O que a cardinalidade responde

A linha entre duas caixas diz que existe ligação.
A cardinalidade diz quantos de cada lado.

Sempre se lê nos dois sentidos, uma frase para cada lado. Quem lê num sentido só erra metade do modelo.
EN PT
cardinality cardinalidade — quantos de um lado se ligam a quantos do outro
one to many um para muitos (1:N)
many to many muitos para muitos (N:N)
Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Legenda — 1:1 (um para um)

Cardinalidade 1 para 1: um cliente tem uma carteirinha, e uma carteirinha pertence a um cliente

  • Um cliente tem uma carteirinha
  • Uma carteirinha pertence a um cliente

O símbolo: dois tracinhos || nas duas pontas.

1:1 é raro. Quando aparece, pergunte: por que isso não é a mesma entidade? Às vezes a resposta é boa (dados sigilosos separados); às vezes é modelagem repetida.
Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Legenda — 1:N (um para muitos)

Cardinalidade 1 para N: uma plataforma possui varios jogos, e um jogo pertence a uma plataforma

  • Uma plataforma possui vários jogos
  • Um jogo pertence a uma plataforma

O símbolo: || de um lado (um), pé de galinha do outro (muitos).

É a cardinalidade mais comum de todas. Lembre: a chave estrangeira fica do lado do pé de galinha.
Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Legenda — N:N (muitos para muitos)

Cardinalidade N para N: um cliente aluga varios jogos, e um jogo e alugado por varios clientes

  • Um cliente aluga vários jogos (ao longo do tempo)
  • Um jogo é alugado por vários clientes

O símbolo: pé de galinha nos dois lados.

N:N não vira tabela diretamente. Ele sempre se transforma numa entidade no meio — no nosso caso, EMPRESTIMO. Isso é a Aula 06, e depois a Aula 07.
Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone Como descobrir a cardinalidade — o método das duas frases

  1. Escreva: "um(a) [ENTIDADE A] se liga a quantos(as) [ENTIDADE B]?"
  2. Responda com um ou vários
  3. Inverta e escreva: "um(a) [ENTIDADE B] se liga a quantos(as) [ENTIDADE A]?"
  4. Responda de novo. As duas respostas juntas dão a cardinalidade
Resposta A → B Resposta B → A Cardinalidade
um um 1:1
vários um 1:N
vários vários N:N
Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone Erro comum — decidir a cardinalidade pelo que costuma acontecer

A pergunta não é "quantos geralmente?" — é "quantos o sistema precisa permitir?".
  • "Um livro tem um autor" — na maioria das vezes. Mas se um livro tiver dois, o modelo quebra
  • "Um cliente tem um telefone" — até chegar o primeiro cliente com dois

Modele o caso que precisa caber, não o caso comum.

Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone O modelo da locadora, com tudo o que vimos hoje

O DER da locadora com a chave primaria marcada por asterisco e as chaves estrangeiras marcadas com CE barra FK

Os três símbolos de hoje, aplicados: * nas chaves primárias, CE/FK nas estrangeiras e os marcadores de cardinalidade nas pontas de cada linha.

Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Checagem do Bloco 3

Use o método das duas frases:

  • TIME e JOGADOR (futsal da empresa)
  • CLIENTE e ENCOMENDA (confeitaria)
  • ALUNO e DISCIPLINA
  • PESSOA e CPF
Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Intervalo

10 minutos

Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Chaves e cardinalidades do seu projeto

  1. Peguem o dicionário de dados da Aula 04
  2. Definam a chave primária de cada entidade — id_<entidade>, como combinado
  3. Para cada par de entidades ligadas, apliquem o método das duas frases e escrevam as duas frases no papel
  4. Anotem a cardinalidade resultante: 1:1, 1:N ou N:N
  5. Nos casos 1:N, digam em qual entidade fica a chave estrangeira
  6. Nos casos N:N, só marquem — a solução é a Aula 06
Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Lembrete de entrega

Padrão Hoje
grupoNN-aulaNN-artefato.<ext> grupo03-aula05-chaves.pdf
Guardem bem: o papel de hoje é a planta do DER que vocês vão desenhar na Aula 06, no draw.io. Sem ele, amanhã vocês desenham no escuro.
Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Enquanto vocês trabalham

Perguntas que destravam:

  • Vocês escreveram as duas frases, ou só pensaram numa?
  • Esse "um" é sempre um, ou é "um na maioria das vezes"?
  • Nesse 1:N, em qual caixa vocês colocariam a coluna que aponta para a outra?
  • Esse N:N precisa guardar alguma coisa própria — uma data, uma quantidade, uma nota?
Se a última pergunta tiver resposta "sim", vocês acabaram de descobrir uma entidade nova. Anotem — é o assunto de amanhã.
Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Devolutiva — passo de mesa em mesa

Eu passo em cada grupo. Tenham pronto um relacionamento:

  • As duas frases, lidas em voz alta para mim
  • A cardinalidade que saiu delas
  • Onde ficou (ou ficaria) a chave estrangeira
Os N:N que eu encontrar vão para o quadro. A Aula 06 abre exatamente com essa lista, resolvendo um por um.
Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Antes da próxima aula

Testar em casa: pegue dois "cadastros" do seu dia a dia (aluno e escola, cliente e pedido, jogador e time) e aplique o método das duas frases. Qual cardinalidade deu?

Tarefa opcional: revise o dicionário de dados do grupo acrescentando as colunas de chave primária (id_...) e as chaves estrangeiras que vocês decidiram hoje.

Para treinar: exercícios da Aula 05 — os mecanismos rodando na tela — e oito perguntas com resposta na hora. No site da UC, na página da aula.

Aula 05 · 14/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Para a próxima aula

Um cliente aluga vários jogos. Um jogo é alugado por vários clientes. Onde é que a gente guarda a data da retirada?

Aula 05 · 14/10/2026 · Indicadores 2, 4
← todas as aulas