UC2 · Implementar Banco de Dados

Do DER às Tabelas

Aula 07 — Modelo relacional

Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

O mapa de hoje

  • Bloco 1 — retomada do DER e o que é o modelo relacional
  • Bloco 2 — as regras de mapeamento: DER → tabelas
  • Bloco 3 — mapear o DER da locadora inteiro, do começo ao fim
  • Bloco 4 — mão na massa: mapear o DER do seu grupo
Hoje ainda é papel e planilha. O SQL de verdade começa na Aula 10 — e ele vai ser escrito a partir do que vocês produzirem hoje.
Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone Lembrete — a legenda do DER

Lembrete da legenda do DER: entidade, atributo, chave primaria, chave estrangeira, relacionamento e cardinalidade

Símbolo É
caixa com cabeçalho escuro entidade
linha dentro da caixa atributo
* antes do nome chave primária
CE/FK no atributo chave estrangeira
linha com verbo relacionamento
marcadores nas pontas cardinalidade
Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Bloco 1

O que é o modelo relacional

Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Retomando: o que vocês desenharam na Aula 06

  • Quantas entidades tem o DER do seu grupo?
  • Quantos relacionamentos?
  • Algum N:N sobrou sem entidade do meio?
Abram o der.drawio.svg do grupo agora. Ele é o insumo de hoje — sem ele, o Bloco 4 não acontece.
Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone O modelo relacional em uma frase

No modelo relacional, tudo é tabela: linhas e colunas. Não existe outra estrutura. As tabelas se ligam por valores em comum, nunca por setas ou caminhos.
EN PT No dia a dia
relation / table relação / tabela a tabela
tuple / row tupla / linha uma linha, um registro
attribute / column atributo / coluna uma coluna
domain domínio os valores que a coluna aceita (o tipo)
Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone Do desenho para a lista

O DER é um desenho. O modelo relacional é uma lista de tabelas com suas colunas:

plataforma (id_plataforma, nome, fabricante)
jogo       (id_jogo, titulo, genero, id_plataforma)
cliente    (id_cliente, nome, telefone)
emprestimo (id_emprestimo, id_jogo, id_cliente, data_retirada)
Essa notação — nome da tabela e as colunas entre parênteses — é a forma padrão de escrever um esquema relacional. Vamos usar ela o resto da UC.
Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone Marcando as chaves na lista

plataforma (id_plataforma*, nome, fabricante)
jogo       (id_jogo*, titulo, genero, id_plataforma CE/FK → plataforma)
cliente    (id_cliente*, nome, telefone)
emprestimo (id_emprestimo*, id_jogo CE/FK → jogo,
            id_cliente CE/FK → cliente, data_retirada)
  • * marca a chave primária — a mesma notação do DER
  • CE/FK → tabela marca a chave estrangeira e diz para onde aponta
Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Checagem do Bloco 1

Escreva no formato de lista relacional:

Uma entidade TIME com id_time (chave primária), nome e cidade.
Uma entidade JOGADOR com id_jogador (chave primária), nome, posicao e que pertence a um time.

Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Intervalo

10 minutos

Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Bloco 2

As regras de mapeamento

Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Regra 1 — cada entidade vira uma tabela

  1. O nome da entidade vira o nome da tabela, em minúsculas e no singular
  2. Cada atributo vira uma coluna, com o mesmo nome
  3. A chave primária do DER vira a chave primária da tabela

PLATAFORMA → plataforma (id_plataforma*, nome, fabricante)

Essa é a regra mais simples e a mais usada. Se o DER estiver bem feito, ela é quase mecânica — e é por isso que gastamos quatro aulas no DER.
Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone Regra 2 — relacionamento 1:N vira chave estrangeira

O relacionamento 1 para N do desenho virando duas tabelas, com a chave estrangeira na tabela do lado N

A tabela do lado N ganha uma coluna que guarda a chave primária do lado 1. Nenhuma tabela nova é criada.

Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone Regra 3 — relacionamento N:N vira uma tabela nova

O relacionamento N para N do desenho virando tres tabelas, com a do meio guardando as duas chaves estrangeiras

A tabela do meio tem:

  • sua própria chave primária
  • uma chave estrangeira para cada lado
  • os atributos próprios da ligação (a data, a quantidade, a nota)
Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone Regra 4 — relacionamento 1:1

Duas saídas, e a escolha é sua:

Saída Quando usar
Juntar tudo numa tabela só Quando os dois lados sempre existem juntos
Manter duas tabelas, com FK em uma delas Quando um lado é opcional, sigiloso ou raramente consultado
Se optar por duas tabelas, a chave estrangeira precisa ser marcada como única — senão o banco deixaria dois registros apontarem para o mesmo, e aí já não seria 1:1.
Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone Regra 5 — atributo multivalorado vira tabela

Lembram do cliente com dois telefones (Aula 04)?

cliente          (id_cliente*, nome)
telefone_cliente (id_telefone*, id_cliente CE/FK → cliente, numero, tipo)
No modelo relacional, uma célula guarda um valor só. Não existe "coluna com lista dentro". Essa é, literalmente, a 1ª forma normal — e é a Aula 09.
Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Checagem do Bloco 2

Qual regra você aplica?

  • AUTOR escreve vários LIVROs; cada livro tem vários autores
  • PLATAFORMA possui vários JOGOs
  • CLIENTE tem vários EMAILs
  • PESSOA tem um PASSAPORTE, e o passaporte é de uma pessoa só
Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Intervalo

10 minutos

Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Bloco 3

Mapeando o DER da locadora, do começo ao fim

Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone O DER de partida

O DER completo da locadora, com PLATAFORMA, JOGO, CLIENTE e EMPRESTIMO, suas chaves e suas cardinalidades

Vamos mapear este DER inteiro, entidade por entidade, aqui no quadro.

Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Passo 1 — as entidades viram tabelas

plataforma (id_plataforma*, nome, fabricante)
jogo       (id_jogo*, titulo, genero)
cliente    (id_cliente*, nome, telefone)
emprestimo (id_emprestimo*, data_retirada, data_prevista)

Ainda sem nenhuma ligação. Só a Regra 1, quatro vezes.

Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Passo 2 — os relacionamentos viram chaves estrangeiras

plataforma (id_plataforma*, nome, fabricante)
jogo       (id_jogo*, titulo, genero,
            id_plataforma CE/FK → plataforma)
cliente    (id_cliente*, nome, telefone)
emprestimo (id_emprestimo*, data_retirada, data_prevista,
            id_jogo CE/FK → jogo,
            id_cliente CE/FK → cliente)

Três relacionamentos → três colunas novas. Nenhuma tabela nova.

Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone Passo 3 — conferir

  1. Toda tabela tem uma chave primária?
  2. Toda chave estrangeira aponta para uma chave primária que existe?
  3. Toda coluna guarda um valor só (nada de lista dentro)?
  4. Sobrou algum relacionamento do DER sem par no esquema?
  5. O número de tabelas bate com o esperado (entidades + tabelas de N:N)?
Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone Erro comum — a coluna que aponta para o nada

Escrever id_plataforma em jogo sem que exista a tabela plataforma, ou apontar para uma coluna que não é chave primária. O banco vai recusar isso na Aula 11 — e a mensagem de erro é feia.

Por isso a seta na notação: id_plataforma CE/FK → plataforma.
Se você não consegue escrever o destino, a chave estrangeira está errada.

Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

icone Erro comum — inventar coluna que não estava no DER

O mapeamento é tradução, não criação. Se aparecer uma coluna nova aqui, uma de duas: ou o DER estava incompleto (então volte e corrija o DER), ou a coluna não é necessária.

Mantenha os dois artefatos iguais. Eles vão conviver até a Aula 18.

Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Checagem do Bloco 3

Olhando o esquema da locadora que montamos:

  • Por que emprestimo tem duas chaves estrangeiras?
  • O que aconteceria se jogo não tivesse id_plataforma?
  • Quantas tabelas teríamos se o N:N não tivesse sido resolvido na Aula 06?
Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Intervalo

10 minutos

Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Mapear o DER do seu grupo

  1. Abram o der.drawio.svg do grupo (Aula 06)
  2. Regra 1: escrevam uma linha por entidade, com todas as colunas
  3. Marquem a chave primária de cada tabela com *
  4. Regra 2: para cada 1:N, acrescentem a coluna CE/FK → tabela no lado do muitos
  5. Regra 3: para cada N:N que ainda restar, criem a tabela do meio
  6. Regra 5: para cada multivalorado, criem a tabela própria
  7. Rodem o checklist de 5 itens do Bloco 3
Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Lembrete de entrega

Padrão Hoje
grupoNN-aulaNN-artefato.<ext> grupo03-aula07-esquema.xlsx
Se vocês mudarem alguma coisa no modelo hoje, atualizem também o der.drawio.svg e reentreguem. Os dois artefatos andam juntos.
Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Enquanto vocês mapeiam

Perguntas que destravam:

  • Qual é o lado do muitos desse relacionamento? A coluna vai lá
  • Essa chave estrangeira aponta para qual tabela? Escreva a seta
  • Alguma coluna sua guarda mais de um valor? Então falta uma tabela
  • O número de tabelas bate com o número de entidades do DER?
  • Se não bate, por quê? (Pode estar certo — N:N e multivalorado criam tabelas)
Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Devolutiva — passo de mesa em mesa

Eu passo em cada grupo. Tenham pronto:

  • Quantas entidades tinha o DER e quantas tabelas saíram
  • Se o número mudou, por quê
  • Uma chave estrangeira, com a seta lida em voz alta
Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Antes da próxima aula

Testar em casa: pegue qualquer sistema que você usa e tente escrever, no formato de lista relacional, duas tabelas que ele provavelmente tem.

Tarefa opcional: olhe o esquema do grupo e procure uma coluna que pareça estar repetindo informação de outra tabela. Anote — é exatamente o assunto das Aulas 08 e 09.

Para treinar: exercícios da Aula 07 — a coluna sem origem no DER, a chave estrangeira recusada pelo PostgreSQL de verdade e a conta das tabelas — e oito perguntas com resposta na hora. No site da UC, na página da aula.

Aula 07 · 16/10/2026 · Indicadores 2, 4
UC2 · Implementar Banco de Dados

Para a próxima aula

Na tabela emprestimo, se eu guardasse também o nome_do_cliente, o que daria errado?

Aula 07 · 16/10/2026 · Indicadores 2, 4
← todas as aulas