UC2 · Implementar Banco de Dados

Abstração de Dados

Aula 02 — Esquema, instância e níveis de um SGBD

Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

O mapa de hoje

  • Bloco 1 — os três níveis de abstração
  • Bloco 2 — esquema × instância (a confusão nº 1 da UC)
  • Bloco 3 — as linguagens do SGBD e a independência de dados
  • Bloco 4 — mão na massa: explorar um banco de verdade no pgAdmin
Hoje você abre o pgAdmin pela primeira vez. Não precisa instalar nada ainda — a instalação guiada é a Aula 10. Hoje usamos a máquina do laboratório.
Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

Retomando a Aula 01

Responda mentalmente antes de eu avançar:

  • Quais eram as 4 garantias de um SGBD?
  • Qual é a diferença entre SGBD, banco de dados e tabela?
  • Por que "SQL" e "MySQL" não são a mesma coisa?
Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

Bloco 1

Três formas de olhar para o mesmo banco de dados

Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

icone A ideia central — esconder o que não interessa

Você dirige um carro sem saber como a injeção eletrônica funciona.
O volante esconde o motor de você — e isso é uma vantagem, não uma falha.

Um SGBD faz a mesma coisa com os dados: ele oferece três níveis de enxergar o mesmo banco, cada um escondendo a complexidade do nível de baixo.
EN PT
abstraction abstração — esconder detalhe que não interessa agora
level nível
Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

icone Antes dos níveis — dado não é informação

Exemplo O que é
Dado 2, "God of War", 03/10 Um fato solto, sem contexto
Informação "God of War foi alugado 2 vezes em 03/10" Dado com contexto, que responde a uma pergunta
O banco guarda dados. Quem produz informação é a consulta que você escreve — e é por isso que a Aula 14 (JOIN e agregações) existe.
Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

Os três níveis

Os niveis de abstracao: atendente, dono e estagiario enxergam visoes diferentes do mesmo banco

Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

icone Nível físico — onde os bytes moram

  • Em que arquivo, em que posição do disco, comprimido ou não
  • Quais índices existem para achar rápido
  • Quem cuida disso: o PostgreSQL, sozinho
Nesta UC nós não mexemos no nível físico — e isso é a coisa mais importante de saber sobre ele. Se você precisa abrir o arquivo do disco na mão, alguma coisa está muito errada.
Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

icone Nível conceitual — o coração desta UC

  • Quais tabelas existem
  • Quais colunas cada tabela tem, e de que tipo
  • Como as tabelas se ligam umas nas outras
É aqui que mora tudo o que vocês vão fazer nas aulas 3 a 11: modelar, desenhar o DER, normalizar e criar as tabelas. Guarde o nome deste nível.
Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

icone Nível de visões — cada um vê o que precisa

Do mesmo banco locadora, três pessoas veem coisas diferentes:

Quem O que enxerga
Atendente título do jogo, nome do cliente, data de retirada
Dono faturamento do mês, jogo mais alugado
Estagiário só o catálogo, sem nenhum dado de cliente
Onde isso volta: Aula 15 (views) e Aula 16 (permissões) são exatamente a implementação deste nível.
Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

icone Erro comum — confundir "visão" com "tela do sistema"

A visão é um recorte dos dados, não um desenho de tela. Dois sistemas com telas completamente diferentes podem usar exatamente a mesma visão — e a mesma tela pode mostrar visões diferentes para usuários diferentes.

Visão = quais dados eu enxergo.
Tela = como esses dados são desenhados.

Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

Checagem do Bloco 1

Em qual nível está cada afirmação?

  • "A tabela jogo tem uma coluna titulo do tipo texto"
  • "O estagiário não pode ver o telefone do cliente"
  • "O índice da coluna titulo ocupa 4 MB no disco"
  • "A tabela emprestimo se liga com a tabela cliente"
Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

Intervalo

10 minutos

Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

Bloco 2

Esquema × Instância

Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

icone A forma e o conteúdo

Esquema — a forma

A estrutura: tabelas, colunas, tipos, ligações.
Existe mesmo com o banco vazio.
Muda quase nunca.

Instância — o conteúdo

Os dados que estão lá agora.
Muda a cada empréstimo, a cada cadastro.
Muda o dia inteiro.

EN PT
schema esquema — a estrutura do banco
instance instância — os dados num dado momento
Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

Vendo os dois lado a lado

O esquema e a estrutura das tabelas jogo e cliente; a instancia sao as linhas que elas guardam agora

Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

Por que essa diferença importa de verdade

  • Mudar a instância é rotina: cadastrar cliente, lançar empréstimo
  • Mudar o esquema é obra: acrescentar uma coluna mexe no sistema inteiro
  • Um erro na instância afeta uma linha; um erro no esquema afeta tudo
Por isso a gente passa seis aulas (3 a 9) desenhando antes de criar a primeira tabela de verdade na Aula 10. Esquema mal feito é caro de consertar depois.
Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

Exercício rápido — no papel, 5 minutos

A locadora resolveu passar a controlar consoles emprestados, além de jogos.

  1. Escreva o que precisaria mudar no esquema
  2. Escreva o que precisaria entrar como instância
  3. Diga qual das duas mudanças é mais trabalhosa — e por quê
Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

icone O dicionário de dados

Junto do esquema, o time mantém um documento que explica o que cada coluna significa.

Tabela Coluna Tipo Significa
jogo titulo texto (100) Nome comercial do jogo
jogo genero texto (40) Ação, RPG, Esporte...
emprestimo data_retirada data Dia em que o cliente levou
Parece burocracia até o dia em que alguém pergunta "a data de retirada é quando ele pegou ou quando ele reservou?". O dicionário de dados é o que evita essa discussão — e ele é conteúdo obrigatório desta UC.
Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

icone Erro comum — "banco de dados" significa duas coisas

No dia a dia, "banco de dados" é usado tanto para o esquema quanto para o conjunto de dados. Quando a ambiguidade atrapalhar, use as palavras exatas: esquema (a forma) e instância (o conteúdo).

O livro-texto da UC usa "Banco de Dados" para esquema e "Base de Dados" para instância — vocês vão encontrar essa dupla nas leituras.

Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

Checagem do Bloco 2

Esquema (E) ou instância (I)?

  • Criei a coluna genero na tabela jogo
  • Cadastrei o jogo "Hollow Knight"
  • Apaguei todos os empréstimos de setembro
  • Decidi que telefone aceita 15 caracteres
  • Mudei o telefone da Ana
Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

Intervalo

10 minutos

Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

Bloco 3

As linguagens do SGBD e a independência de dados

Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

icone SQL não é uma língua só — são famílias de comandos

Sigla EN PT
DDL Data Definition Language Linguagem de Definição de Dados
DML Data Manipulation Language Linguagem de Manipulação de Dados
DCL Data Control Language Linguagem de Controle de Dados
icone DDLmexe no esquema
aulas 10 e 11
icone DMLmexe na instância
aulas 12 a 15
icone DCLdiz quem pode o quê
aula 16
Repare no encaixe: DDL mexe no esquema, DML mexe na instância — é a mesma divisão do Bloco 2, agora com nome de comando.
Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

Uma palavra de cada família (só para reconhecer)

Ainda não é para decorar nem digitar. É só para a palavra não ser estranha depois.

Comando Família EN → PT
CREATE TABLE DDL criar tabela
ALTER TABLE DDL alterar tabela
INSERT DML inserir
SELECT DML selecionar / consultar
GRANT DCL conceder (permissão)
Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

icone Independência de dados — o que os níveis compram para você

  • Trocar o disco por um SSD não muda nenhuma tabela → independência física
  • Acrescentar a coluna genero não quebra a tela do estagiário, que nem usa essa coluna → independência lógica
Sem os três níveis, qualquer mudança lá embaixo obrigaria a mexer em tudo lá em cima. Era exatamente esse o sofrimento dos modelos hierárquico e em rede da Aula 01.
Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

icone Cliente e servidor — por que são dois programas

  • O PostgreSQL é o servidor: fica ligado, guarda os dados, faz valer as regras
  • O pgAdmin é o cliente: uma janela para conversar com o servidor
  • Eles podem estar na mesma máquina — ou em cidades diferentes
Fechar o pgAdmin não desliga o banco. Desinstalar o pgAdmin não apaga nenhum dado. São dois programas separados — confundir isso gera pânico desnecessário na Aula 10.
EN PT
server servidor — quem guarda e responde
client cliente — quem pergunta
Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

icone Onde tudo isso aparece no PostgreSQL

Conceito da aula No pgAdmin você vê como
Banco de dados Databases → locadora
Esquema Schemas → public → Tables
Estrutura de uma tabela aba Columns da tabela
Instância botão View/Edit Data → All Rows
O PostgreSQL usa a palavra schema também como um "agrupador de tabelas" (public). É um segundo sentido da palavra — não se assuste ao ver.
Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

Checagem do Bloco 3

Qual família de comandos você usaria?

  • Acrescentar a coluna ano_lancamento na tabela jogo
  • Cadastrar mais um cliente
  • Deixar o estagiário só consultar, sem apagar
  • Listar todos os jogos de PS5
Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

Intervalo

10 minutos

Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

Explorando um banco de verdade

Banco de exemplo locadora_demo, já pronto no pgAdmin.

  1. Abra o pgAdmin e conecte no servidor PostgreSQL 16 (senha no quadro)
  2. Vá em Databases → locadora_demo → Schemas → public → Tables
  3. Anote o esquema: que tabelas existem e que colunas tem jogo
  4. Botão direito em jogo → View/Edit Data → All Rows
  5. Anote a instância: quantas linhas, e o conteúdo de duas delas
  6. Em dupla, digam um ao outro qual anotação é esquema e qual é instância
Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

Atenção nos tropeços de hoje

Não achou o servidor? Clique na setinha ao lado de "Servers", à esquerda. Ele começa fechado.
Pediu senha e não aceitou? Está no quadro; cuidado com maiúscula.
Não achou "Tables"? O caminho é longo: Databases → o banco → Schemas → public → Tables. É fácil parar no meio.
Abriu uma janela preta de código? Não é erro — é o Query Tool. Feche e siga; a gente usa ele a partir da Aula 10.
Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

Enquanto vocês exploram

Quem terminar antes, tente responder:

  • A tabela emprestimo tem alguma coluna que aponta para outra tabela? Qual?
  • Por que o telefone é do tipo texto, e não número?
  • Se eu apagar um cliente que tem empréstimo, o que você acha que acontece?
As três perguntas são spoilers das Aulas 05, 10 e 11. Não precisa acertar — precisa ficar curioso.
Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

Devolutiva — passo de mesa em mesa

Eu passo em cada dupla. Tenham prontos, em uma frase cada:

  • O que vocês anotaram que era esquema
  • O que vocês anotaram que era instância
A pegadinha da aula: quantidade de tabelas é esquema; quantidade de linhas é instância. Metade das turmas troca as duas.
Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

Antes da próxima aula

Testar em casa: pense num sistema que você usa e liste 3 coisas que seriam esquema e 3 que seriam instância. (Ex.: no WhatsApp — "toda conversa tem remetente, texto e hora" é esquema; "a mensagem que sua mãe mandou às 19h" é instância.)

Tarefa opcional: escreva com suas palavras a diferença entre esquema e instância, usando um exemplo do tema que seu grupo quer para o projeto.

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

Quer o banco de hoje na sua máquina? Baixe o locadora-demo.sql na página da aula. O passo a passo do pgAdmin está nas primeiras linhas do arquivo.

Aula 02 · 07/10/2026 · Indicador 1
UC2 · Implementar Banco de Dados

Para a próxima aula

Como transformar um problema real — um texto, uma entrevista — numa lista de "coisas" e "ligações"?

Aula 02 · 07/10/2026 · Indicador 1
← todas as aulas