Menu
Coddy logo textTech

O que é um banco de dados?

Um banco de dados é uma coleção organizada de dados armazenada em um computador para que os programas possam encontrar, incluir, alterar e excluir esses dados de forma rápida e segura. Ele é gerenciado por um software chamado sistema gerenciador de banco de dados (SGBD), como PostgreSQL, MySQL, SQLite ou MongoDB.

Por Kevin Spektor, Cofundador e CTO

Atualizado em 24 de setembro de 2026

Quando você entra em um site, ele precisa encontrar a sua conta entre milhões de outras, conferir a sua senha e carregar as suas configurações, tudo em poucos milissegundos. Ele não abre um arquivo de texto para ler linha por linha. Ele envia uma consulta como SELECT * FROM users WHERE email = 'ana@example.com' para um banco de dados, e o banco de dados vai direto à linha certa usando um índice, muito parecido com o índice remissivo no fim de um livro.

Como um banco de dados funciona

Duas peças trabalham juntas. O banco de dados são os dados, organizados em uma estrutura fixa. O sistema gerenciador de banco de dados (SGBD) é o programa que armazena esses dados em arquivos, os mantém consistentes e responde às solicitações. PostgreSQL, MySQL e SQLite são SGBDs; a sua lista de clientes é o banco de dados.

Em um banco de dados relacional, os dados ficam em tabelas. Cada tabela tem colunas (nome, país, pontos) e linhas (uma por usuário). Uma consulta passa por estes passos:

  1. O seu programa envia uma consulta, normalmente escrita em SQL (Structured Query Language).
  2. O SGBD analisa a consulta e planeja como respondê-la: quais tabelas ler e se um índice pode pular a maioria das linhas.
  3. Ele lê os dados do disco em páginas de tamanho fixo (4.096 bytes por padrão no SQLite, 8 KB no PostgreSQL), mantendo na memória as páginas usadas com frequência.
  4. Ele filtra, ordena e combina as linhas e depois devolve o resultado.

O Python vem com o SQLite, então você pode executar um banco de dados de verdade aqui mesmo:

Kenji 340
Omar 340
Ana 120
users: 4 average points: 222.5

O programa nunca diz como procurar. Ele descreve o resultado que quer, e o SGBD decide como obtê-lo. Essa é a principal diferença entre consultar um banco de dados e escrever um loop sobre uma lista.

Tipos de banco de dados

TipoArmazena dados comoExemplosUso típico
Relacional (SQL)Tabelas de linhas e colunas, ligadas por chavesPostgreSQL, MySQL, SQLite, Oracle, SQL ServerUsuários, pedidos, pagamentos: a maioria das aplicações
DocumentosDocumentos parecidos com JSONMongoDB, Firestore, CouchDBRegistros cujos campos variam de um para outro
Chave-valorUm valor buscado por uma chaveRedis, DynamoDBCaches, sessões, contadores
Colunas largas (wide-column)Linhas com colunas flexíveis espalhadas por muitos servidoresCassandra, HBaseVolumes de escrita muito altos
GrafosNós e os relacionamentos entre elesNeo4jRedes sociais, recomendações
Séries temporaisMedições indexadas pelo tempoInfluxDB, TimescaleDBMétricas, leituras de sensores
VetorialListas de números (embeddings)pgvector, Pinecone, MilvusBusca por similaridade para recursos de IA

Tudo o que não é relacional costuma ser agrupado como NoSQL. Os bancos relacionais continuam sendo a escolha padrão para a maioria das aplicações, porque tabelas, restrições e SQL resolvem bem uma grande variedade de problemas. Muitos produtos também combinam tipos: o PostgreSQL armazena documentos JSON, e o pgvector acrescenta busca vetorial a ele.

Transações: tudo ou nada

Transferir dinheiro da Ana para o Ben exige duas alterações: somar ao Ben e subtrair da Ana. Se o programa travar entre as duas, aparece dinheiro do nada. Uma transação agrupa alterações para que todas sejam salvas ou nenhuma seja. Aqui a segunda alteração quebra uma regra (um saldo não pode ficar abaixo de zero), então o banco de dados desfaz a primeira também:

transfer 30 done
{'ana': 20, 'ben': 30}
transfer 40 failed: CHECK constraint failed: balance >= 0
{'ana': 20, 'ben': 30}

Os 40 do Ben foram somados e depois retirados, então os totais continuam batendo. Os bancos relacionais prometem quatro propriedades para as transações, conhecidas como ACID: atomicidade (tudo ou nada), consistência (regras como CHECK sempre valem), isolamento (dois usuários executando transações ao mesmo tempo não veem o trabalho pela metade um do outro) e durabilidade (depois de salva, uma alteração sobrevive a um travamento ou a uma queda de energia).

Banco de dados, planilha ou arquivo

Arquivo de texto ou CSVPlanilhaBanco de dados
TamanhoO que o seu programa consegue carregar1.048.576 linhas por planilha no ExcelBilhões de linhas
Vários escrevendo ao mesmo tempoNãoLimitadoSim, com bloqueios e transações
Encontrar um registroLer o arquivo inteiroFiltrar ou pesquisarBusca por índice
Regras sobre os dadosNenhumaValidação opcionalTipos, restrições, chaves estrangeiras
Fazer perguntasEscrever o próprio códigoFórmulasSQL ou uma API de consulta

Uma planilha é uma boa ferramenta para uma pessoa olhar alguns milhares de linhas. Quando vários programas ou usuários escrevem dados ao mesmo tempo, ou os dados precisam seguir regras, um banco de dados é a ferramenta certa.

Como os bancos de dados protegem os dados

Um SGBD grava cada alteração em um log antes de mexer nos arquivos de dados (o write-ahead log), então depois de um travamento ele consegue refazer ou desfazer o trabalho inacabado. O PostgreSQL pode guardar um checksum em cada página de 8 KB e informar uma falha de checksum quando um disco com defeito devolve dados danificados. Usuários e permissões decidem quem pode ler ou alterar cada tabela, e a replicação mantém cópias em outros servidores. Os programas também devem passar a entrada do usuário como parâmetros, como os marcadores ? acima, nunca colando essa entrada no texto do SQL, que é como acontecem os ataques de SQL injection.

Equívocos comuns

  • "SQL é um banco de dados." SQL é a linguagem. PostgreSQL, MySQL e SQLite são bancos de dados que a entendem.
  • "NoSQL significa nenhum SQL." O termo costuma ser lido como "not only SQL" (não só SQL), e vários bancos NoSQL têm linguagens de consulta parecidas com SQL, como a CQL do Cassandra.
  • "Um banco de dados é sempre um servidor grande." O SQLite é um único arquivo que um programa abre diretamente, sem servidor nenhum. Ele roda dentro de todo celular Android e iOS.
  • "Dados em um banco de dados estão seguros para sempre." Um banco de dados protege contra travamentos, não contra alguém que executa um DELETE por engano. Backups continuam sendo necessários.

Próximos passos

O curso de SQL ensina consultas a partir do primeiro SELECT. A documentação de SQLite cobre os passos seguintes: o que é o SQLite, como criar uma tabela, índices e como evitar SQL injection. Para ver como os dados ficam dispostos no disco, leia o que é um byte, e checksum explica como páginas danificadas são detectadas.

Perguntas frequentes

O que é um banco de dados em palavras simples?
Um banco de dados é um lugar onde um programa guarda informações para encontrá-las de novo rapidamente. Pense em um arquivo de pastas com um índice perfeito: você pede "todos os pedidos da semana passada" e recebe a resposta em milissegundos, mesmo quando há milhões de registros.
Qual é um exemplo de banco de dados?
Os contatos do seu celular ficam em um banco de dados: tanto o Android quanto o iOS vêm com o SQLite. Um banco guarda as contas dos clientes em um banco de dados como Oracle ou PostgreSQL, e a Wikipédia armazena os artigos no MariaDB. Uma loja virtual guarda produtos, clientes e pedidos em tabelas relacionadas.
Quais são os quatro tipos de banco de dados?
Não existe uma lista oficial de quatro. Os quatro mais citados são os bancos relacionais (tabelas e SQL), os bancos de documentos (registros parecidos com JSON), os armazenamentos chave-valor (um valor buscado por uma chave) e os bancos de grafos (nós e relacionamentos). Livros mais antigos também listam os bancos hierárquicos e os de rede.
Quais são os 5 bancos de dados mais usados?
Oracle, MySQL, Microsoft SQL Server, PostgreSQL e MongoDB ocupam há anos as cinco primeiras posições do ranking de popularidade DB-Engines. Entre desenvolvedores, o PostgreSQL é o banco de dados mais usado na pesquisa Stack Overflow Developer Survey desde 2023, e o SQLite é o mais instalado, já que vem dentro de celulares e navegadores.
Qual é a diferença entre banco de dados e SGBD?
O banco de dados são os próprios dados, organizados em tabelas ou documentos. O SGBD é o software que armazena esses dados no disco e responde às solicitações, como PostgreSQL ou MySQL. Muita gente diz "banco de dados" para os dois.
Preciso aprender SQL para usar um banco de dados?
Para bancos relacionais, sim: SQL é como você cria tabelas e faz perguntas aos dados, e o básico se aprende em poucos dias. Muitos programas usam uma biblioteca que escreve o SQL por você, mas saber SQL facilita muito entender o que essa biblioteca está fazendo e por que uma consulta está lenta.
Coddy programming languages illustration

Aprenda a programar com o Coddy

COMEÇAR