Todo aplicativo que lembra de você tem um banco de dados por trás: a loja sabe seus pedidos, a rede social guarda suas fotos, o banco digital registra cada transação. Entender como os dados são organizados e consultados é uma das habilidades mais valorizadas em tecnologia, e a base é mais simples do que parece.
O que é um banco de dados
Um banco de dados é um sistema que armazena informações de forma organizada, para que sejam encontradas, alteradas e protegidas com rapidez e segurança. Uma planilha é uma versão simples dessa ideia, mas bancos de dados aguentam milhões de registros, vários usuários ao mesmo tempo e regras para manter tudo consistente.
O programa que gerencia o banco se chama SGBD (sistema gerenciador de banco de dados). Exemplos conhecidos são PostgreSQL, MySQL, SQLite, SQL Server e Oracle.
Como os dados se organizam
No tipo mais comum, o banco relacional, os dados ficam em tabelas. Pense em uma planilha:
- Tabela: um conjunto de dados sobre um tema, como clientes ou pedidos.
- Coluna (campo): um tipo de informação, como nome, e-mail ou data.
- Linha (registro): um item completo, como os dados de um cliente.
Chave primária
Cada linha precisa de um identificador único, a chave primária. Normalmente é um número (id) que nunca se repete. Assim, dois clientes com o mesmo nome não se confundem.
Relacionamentos
Uma loja tem clientes e pedidos. Em vez de repetir os dados do cliente em todo pedido, a tabela de pedidos guarda apenas o id do cliente, uma chave estrangeira que aponta para a tabela de clientes. Isso evita repetição e erros, e permite juntar as informações quando necessário.
Tipos de dados e boas práticas
Cada coluna tem um tipo de dado: número inteiro, decimal, texto, data, verdadeiro ou falso. Escolher o tipo certo evita erros, como somar textos ou guardar uma data como se fosse uma frase. Algumas práticas simples ajudam desde o começo:
- Dê nomes claros e padronizados às tabelas e colunas, sem espaços nem acentos.
- Não repita a mesma informação em vários lugares. Guarde uma vez e relacione.
- Defina o que é obrigatório e o que é único, como o e-mail de cada usuário.
- Faça cópias de segurança (backup) regulares e teste a restauração.
O que é SQL
SQL (Structured Query Language, linguagem de consulta estruturada) é a linguagem usada para conversar com bancos relacionais. Seus comandos parecem frases em inglês. Os cinco mais importantes:
SELECT: buscar dados
Pede informações. Um exemplo: SELECT nome, email FROM clientes; traz o nome e o e-mail de todos os clientes. Para filtrar, acrescente WHERE: SELECT nome FROM clientes WHERE cidade = 'Recife';. Para ordenar, use ORDER BY, e para limitar o número de resultados, LIMIT (em bancos como PostgreSQL, MySQL e SQLite; outros usam TOP).
INSERT: incluir dados
Cria um registro novo. A estrutura é INSERT INTO, o nome da tabela, as colunas e os valores.
UPDATE: alterar dados
Modifica registros existentes. Exemplo: UPDATE clientes SET cidade = 'Salvador' WHERE id = 7;.
DELETE: apagar dados
Remove registros. Exemplo: DELETE FROM clientes WHERE id = 7;.
JOIN: juntar tabelas
Combina dados de tabelas relacionadas. Por exemplo, mostrar o nome do cliente ao lado de cada pedido, ligando as duas pela chave. É o recurso que mais confunde no início e o mais poderoso do SQL.
Funções de resumo
Com COUNT, SUM, AVG, MIN e MAX você conta, soma e tira médias. Com GROUP BY, agrupa: total de vendas por mês, número de clientes por cidade. Relatórios simples viram uma consulta de poucas linhas.
E o NoSQL?
Existem bancos que não seguem o modelo de tabelas, chamados NoSQL. Eles guardam documentos (como o MongoDB), pares de chave e valor ou grafos. Costumam ser escolhidos para dados com estrutura muito variável ou para volumes e velocidades específicos. Para quem está começando, o relacional resolve a maioria dos casos e é a base mais pedida no mercado.
Como um app usa o banco
Em geral, o usuário nunca fala direto com o banco. O fluxo é: o front-end (a tela) envia um pedido ao back-end, geralmente por uma API, e o back-end consulta o banco e devolve a resposta. Essa divisão aparece em front-end, back-end e full stack.
Segurança: o cuidado com a injeção de SQL
Quando um programa monta consultas juntando texto digitado pelo usuário, abre brechas para a chamada injeção de SQL, em que alguém coloca comandos no lugar de um dado comum. A defesa é usar consultas parametrizadas (ou um ORM, biblioteca que cuida disso), que separam o comando dos valores. Além disso, dê ao programa apenas as permissões de que ele precisa e nunca guarde senhas em texto puro.
Como praticar sem complicar
- SQLite: um banco em um único arquivo, sem servidor. Funciona com Python e com ferramentas gráficas gratuitas de visualização.
- Editores online de SQL: sites que permitem criar tabelas e rodar consultas no navegador, sem instalar nada.
- Instalar PostgreSQL ou MySQL: quando quiser algo mais próximo do mundo real. Instale pelos sites oficiais.
- Conjuntos de dados abertos: baixe uma tabela de interesse (filmes, esportes, população) e responda perguntas sobre ela com SELECT.
Se você já estuda Python para iniciantes, uma boa ideia é criar um pequeno programa que guarda tarefas em um banco SQLite.
Plano de estudo em quatro etapas
- Entender tabelas, chaves e relacionamentos.
- Dominar SELECT com WHERE, ORDER BY e LIMIT.
- Aprender INSERT, UPDATE e DELETE com cuidado.
- Treinar JOIN e GROUP BY com problemas reais.
Dedique uns 30 minutos por dia e crie suas próprias tabelas, como livros lidos, gastos do mês ou receitas. Dados que importam para você tornam o aprendizado mais gostoso.