Bancos de dados sem mistério

BD e SGBD: quem faz o quê

9 min
O que você vai aprender
  • diferenciar um banco de dados (um conjunto organizado de dados) de um SGBD — o programa que executa consultas SQL e gerencia esses dados
  • explicar o caminho de uma consulta, «SQL → SGBD → resultado», e por que um monte de planilhas do Excel não dá conta de milhares de usuários ao mesmo tempo
  • listar o que um SGBD oferece além de «arquivos comuns»: transações, log de recuperação (), controle de acesso (GRANT) e verificações de integridade

Capítulo 1 — «O mapa do arquivo»

O instantâneo do «Kotomarket» já não é um sinal vindo de um setor morto — está num compartimento de quarentena a bordo da estação Vault-9, e abaixo da última linha do continua a mesma assinatura: «K.». Esta manhã, um novo registro pisca no seu holopainel: «Acesso liberado: o índice do arquivo. Emitido por: módulo S.Q.L.» A porta do cofre desliza para o lado; atrás dela, sob uma luz âmbar, os racks de servidores zumbem sem parar.

QUERY: Antes de ler a memória de outra pessoa, entenda como ela foi construída. Vamos começar pelo essencial: o que aqui é o armazenamento e quem é o guardião.

Banco de dados e SGBD

Um banco de dados (BD) é um conjunto organizado de dados. O instantâneo do «Kotomarket» guarda compradores, produtos, pedidos e eventos: nada está espalhado em arquivos soltos; tudo segue uma estrutura clara — e é por isso que ainda pode ser lido cento e sessenta anos depois.

Mas o armazenamento sozinho não responde a perguntas. É preciso um programa capaz de criar tabelas, registrar novos pedidos, ler os dados e garantir que as conexões não se rompam. Esse programa é um SGBD (sistema de gerenciamento de banco de dados). Exemplos: PostgreSQL, MySQL, ClickHouse. Nosso instantâneo é um banco PostgreSQL, e ele ainda fala o mesmo SQL de quando a loja estava ativa.

Você escreve uma consulta em SQL → envia para o SGBD → o SGBD busca os dados pedidos e devolve o resultado. O Excel é ótimo para uma planilha pessoal, mas não para uma loja em que milhares de usuários navegam pelos produtos, fazem pedidos e registram eventos no sistema ao mesmo tempo.

Um cadete na entrada do cofre; entre ele e as prateleiras de memória, um guardião holográfico faz a intermediação — o SGBD
O arquivo guarda a memória, mas só o guardião responde às perguntas: a consulta vai até o SGBD, e só ele toca nos dados.

Database and DBMS

A database is an organized store. The Kotomarket holds buyers, products, orders, and events — not scattered across files, but in a clear structure. That’s exactly why it can still be read a hundred and sixty years later.

But the store itself doesn’t answer questions. You need a program that can create tables, record new orders, read data, and make sure the links never break. That’s a (database management system). Examples: PostgreSQL, MySQL, ClickHouse. Our snapshot is a PostgreSQL database, and it still speaks the same SQL it did when the shop was alive.

You write a query in SQL → send it to the DBMS → the DBMS fetches the data you asked for and returns the result. Excel is fine for a personal spreadsheet, but not for a shop where thousands of users browse products, place orders, and leave events in the system all at once.

clientDBMSparserplannerexecutordata filesSQL queryresultdatathe client talks to the DBMS, not the files directly
Todos os caminhos até os dados passam pelo SGBD: ele recebe o SQL, executa a consulta e protege a integridade do banco.

O que um SGBD faz que «arquivos comuns» não conseguem

À primeira vista, a loja poderia funcionar sem um SGBD: bastaria gravar os pedidos em CSV ou Excel. Na escala de uma planilha pessoal, isso até funciona — até aparecerem os problemas para os quais o SGBD foi criado.

  • Acesso concorrente. No «Kotomarket» em funcionamento, os compradores faziam pedidos ao mesmo tempo. Dois processos gravando no mesmo arquivo podem sobrescrever as alterações um do outro; um SGBD executa as alterações como transações e organiza sozinho as operações paralelas. O PostgreSQL faz isso pelo mecanismo : quem lê não bloqueia quem escreve, e vice-versa.
  • Recuperação após falha. A energia oscilou no meio de uma gravação — o arquivo corrompeu, e não há como saber qual parte do pedido chegou a ser salva. O SGBD primeiro registra a alteração em um log (no PostgreSQL, o — write-ahead log) e a reaplica depois da falha: o pedido é gravado por inteiro ou não é gravado.
  • Controle de acesso. Um arquivo se abre por inteiro ou não se abre. Em um SGBD, as permissões são granulares — até o nível de uma única tabela:
-- O analista só pode ler os pedidos, sem direito de alterá-los
GRANT SELECT ON orders TO analyst;
  • Integridade. Um SGBD não aceita um pedido com preço em formato de texto, nem uma referência a um comprador que não existe: os tipos das colunas e as restrições são verificados a cada gravação. Para um arquivo, tanto faz o que há dentro dele.
  • Perguntas declarativas. «Mostre os pedidos acima de 5000» vira uma única linha de SQL. Com um arquivo, esse mesmo trabalho cairia sobre um programa que alguém teria que escrever — e acertar.

O SGBD é o intermediário de plantão entre você e os dados: ele recebe consultas SQL, executa essas consultas e impede que o banco vire uma bagunça. Neste curso, vamos aprender com o PostgreSQL — ele aparece com frequência em vagas de análise de dados e backend. Você já conhece o guardião. Mas, antes de abrir o índice do nosso instantâneo, QUERY te leva até a seção vizinha: o registro de outros arquivos da velha Terra — para você entender por que o nosso, e só o nosso, sobreviveu intacto.

Interview question

Pergunta de entrevista: qual é a diferença entre um banco de dados e um SGBD? Por que uma aplicação não deveria simplesmente guardar seus dados em arquivos?

Resposta forte: um banco de dados é um conjunto de dados organizados; um SGBD é o programa que gerencia esses dados (PostgreSQL, MySQL, ClickHouse). Arquivos não oferecem acesso concorrente (gravações paralelas podem se sobrescrever), recuperação após falha (um SGBD mantém um log e reaplica alterações inacabadas), permissões granulares nem verificações de integridade. E, acima de tudo, um SGBD responde a consultas SQL declarativas, enquanto um arquivo teria que ser interpretado por um código escrito por você.

Check yourself
Quem faz o quê: o banco de dados ou o SGBD?