O Que É uma Base de Dados? Guia para Quem Cria Apps
Uma base de dados é um conjunto organizado de informação que uma app grava e de onde lê — os seus utilizadores, encomendas, marcações, mensagens. Ao contrário da informação guardada apenas num separador do navegador, os dados numa base de dados continuam lá depois de uma atualização ou de um reinício, e todas as pessoas que usam a app veem os mesmos registos. A maioria das bases de dados organiza os dados em tabelas, um pouco como as folhas de uma folha de cálculo, mas com regras rigorosas que mantêm os dados consistentes.
Porque é que importa quando cria com IA
A surpresa mais comum para quem cria com IA é uma app que parece acabada mas se esquece de tudo. Acrescenta um cliente, atualiza a página e ele desapareceu. Normalmente isso significa que a app estava a guardar os dados na memória do navegador, e não numa base de dados.
A base de dados é também onde vivem muitas das decisões mais importantes, quer se aperceba disso quer não:
- O que regista. Se não guardar o estado de uma marcação, não consegue mostrar quais foram canceladas.
- Como as coisas se ligam. Se um cliente pode ter muitas marcações, ou uma marcação muitos serviços, isso molda a app inteira.
- Quem pode ver o quê. A maioria dos erros de privacidade diz respeito a quais os registos que um utilizador pode ler.
Não precisa de desenhar a base de dados sozinho. Mas perceber o básico permite-lhe descrever os seus dados com clareza e detetar problemas cedo.
Uma analogia do dia a dia
Imagine um arquivo bem organizado de um pequeno escritório.
Cada gaveta guarda um tipo de coisa: uma gaveta para clientes, uma para marcações, uma para faturas. Dentro de cada gaveta, cada pasta segue o mesmo formato, com os mesmos campos preenchidos. Cada pasta tem um número de referência único e, quando uma fatura pertence a um cliente, a pasta da fatura regista o número desse cliente em vez de fotocopiar todo o seu processo.
Esta é uma base de dados relacional. As gavetas são as tabelas, as pastas são as linhas, os campos são as colunas, os números de referência são as chaves primárias, e as notas que apontam para outra pasta são as chaves estrangeiras. Um bom gestor de escritório também impõe regras — nenhuma marcação sem data, nenhum dois clientes com o mesmo número — tal como faz uma base de dados.
Um exemplo prático: uma app de marcações para um salão
Imagine que pede a uma IA para criar um site de marcações para um salão de cabeleireiro. Uma base de dados sensata teria quatro tabelas.
servicos
| id | nome | duracao_minutos | preco |
|---|---|---|---|
| 1 | Corte | 45 | 40,00 |
| 2 | Coloração | 90 | 95,00 |
profissionais
| id | nome | |
|---|---|---|
| 1 | Sara | sara@example.com |
| 2 | Omar | omar@example.com |
clientes
| id | nome | telefone | |
|---|---|---|---|
| 101 | Lena Park | lena@example.com | 555-0100 |
marcacoes
| id | cliente_id | servico_id | profissional_id | inicia_em | estado |
|---|---|---|---|---|---|
| 5001 | 101 | 1 | 2 | 2026-10-03 14:00 | confirmada |
Repare na tabela marcacoes. Não copia o nome e o telefone da Lena para cada marcação; guarda cliente_id = 101. Se a Lena mudar de número de telefone, a alteração é feita num único sítio e todas as marcações passam a mostrar o novo número. Esta é a ideia central de uma base de dados relacional: guardar cada facto uma única vez e ligar-lhe.
A mesma estrutura responde a perguntas úteis:
- "Que horários estão livres para o Omar na sexta-feira?" — veja as marcações do Omar nesse dia.
- "Quanto faturaram as colorações este mês?" — una as marcações aos serviços e some os preços.
- "Que clientes não marcam há 90 dias?" — compare os clientes com a sua última marcação.
Termos comuns explicados
| Termo | O que significa |
|---|---|
| Tabela | Uma coleção de um tipo de registo, como clientes ou marcações. |
| Linha (registo) | Um item de uma tabela — um cliente, uma marcação. |
| Coluna (campo) | Uma informação que todas as linhas têm, como o email ou o preço. |
| Chave primária | Um ID único para cada linha, normalmente um número ou uma cadeia aleatória. |
| Chave estrangeira | Uma coluna que aponta para uma linha de outra tabela, como cliente_id nas marcações. |
| Esquema | O desenho geral: que tabelas existem, as suas colunas e como se ligam. |
| Consulta (query) | Um pedido para ler ou alterar dados, como "todas as marcações de amanhã". |
| SQL | Structured Query Language, a linguagem padrão para consultar bases de dados relacionais. |
| Migração | Uma alteração guardada e repetível ao esquema, como acrescentar uma coluna. |
| Índice | Uma estrutura de pesquisa que torna mais rápidas as buscas numa coluna, como o índice de um livro. |
| CRUD | Criar, Ler, Atualizar, Eliminar — as quatro operações básicas que as apps fazem com dados. |
| Cópia de segurança | Uma cópia dos dados que pode restaurar se algo correr mal. |
Tipos de bases de dados
| Tipo | Como guarda os dados | Exemplos | Adequada para |
|---|---|---|---|
| Relacional (SQL) | Tabelas com colunas fixas e ligações entre elas | Postgres, MySQL, SQLite | A maioria das apps de negócio: marcações, lojas, CRM, SaaS |
| Documental (NoSQL) | Documentos flexíveis, semelhantes a JSON | MongoDB, Firestore | Dados cuja forma varia muito de registo para registo |
| Chave-valor | Um valor guardado sob uma chave | Redis | Cache, dados de curta duração como sessões |
Para quase tudo o que um fundador ou pequena empresa cria primeiro, uma base de dados relacional é a escolha segura por defeito.
Onde a base de dados fica na sua app
Os visitantes nunca falam diretamente com a base de dados. A página no navegador (o frontend) pede dados ao seu servidor (o backend), normalmente através de uma API. O servidor verifica quem está a pedir e se essa pessoa tem permissão, depois consulta a base de dados e devolve apenas o que essa pessoa deve ver.
Este passo intermédio é importante. Se o navegador pudesse consultar a base de dados diretamente, com acesso total, qualquer pessoa conseguiria abrir as ferramentas de programador e ler tudo.
Erros comuns e equívocos
- Guardar dados apenas no navegador. O armazenamento do navegador (como o localStorage) vive num dispositivo e num navegador. Serve para um filtro memorizado, não para encomendas.
- Juntar tudo numa única tabela. Uma tabela "marcações" única com o nome, o telefone e o preço do serviço do cliente copiados para cada linha desincroniza-se depressa.
- Guardar palavras-passe em texto simples. As palavras-passe devem ser codificadas por hash, nunca guardadas legíveis. Veja o que é a autenticação.
- Sem regras sobre os dados. Sem campos obrigatórios e regras de unicidade, acabará com marcações sem data e clientes duplicados.
- Esquecer a eliminação. Decida se apagar um cliente elimina as suas marcações, as mantém ou é bloqueado.
- Usar dados de produção para experimentar. Teste alterações arriscadas primeiro num local seguro, e mantenha cópias de segurança.
- Tratar a folha de cálculo como base de dados para sempre. As folhas de cálculo são ótimas para começar, mas têm dificuldades com muitos utilizadores em simultâneo e com permissões. Veja como transformar uma folha de cálculo numa app.
O que pedir ao seu construtor de IA
- "Guarde isto numa base de dados, não no navegador. Diga-me que tabelas vai criar."
- "Mostre-me o esquema como uma tabela simples: cada tabela, as suas colunas e como se ligam."
- "Um cliente pode ter muitas marcações; cada marcação tem exatamente um serviço e um profissional."
- "Torne o email obrigatório e único para os clientes."
- "Impeça que duas marcações do mesmo profissional se sobreponham."
- "Só o proprietário com sessão iniciada pode ler todas as marcações; os clientes só veem as suas. Aplique isso no servidor."
- "Quando eliminar um serviço, não apague marcações passadas — marque o serviço como inativo."
Bases de dados na Mythex
Quando a sua app precisa de guardar dados, a Mythex acrescenta ao projeto uma base de dados Postgres dedicada — pode pedi-lo no chat ("guarde as inscrições na lista de espera numa base de dados") ou usar o comando /database. Os detalhes de ligação são passados automaticamente à sua app, e o agente cria as tabelas. A base de dados entra em repouso após cinco minutos sem atividade e acorda no pedido seguinte; na versão publicada, o uso é cobrado pelo tempo em que esteve ativa, a partir do mesmo saldo de créditos usado para criar. Está disponível nos planos Free e Pro. A documentação da base de dados explica os detalhes, e os modelos de apps incluem pontos de partida com dados.
Perguntas
O que é uma base de dados, em termos simples?
Uma base de dados é um conjunto organizado de informação onde uma app grava e de onde lê, como utilizadores, encomendas ou marcações. Ao contrário dos dados guardados apenas num separador do navegador, continua lá depois de atualizar a página, de reiniciar ou de alguém abrir a app noutro dispositivo.
Uma folha de cálculo é uma base de dados?
Uma folha de cálculo pode guardar o mesmo tipo de dados, mas não foi concebida para apps. Uma base de dados real impõe regras sobre o que cada coluna contém, liga tabelas de forma fiável, lida com muitas pessoas a escrever ao mesmo tempo e controla quem pode ler o quê.
Qual é a diferença entre bases de dados SQL e NoSQL?
As bases de dados SQL (relacionais), como Postgres e MySQL, guardam os dados em tabelas com colunas definidas e relações entre elas. As bases de dados NoSQL, como o MongoDB, guardam documentos mais flexíveis. A maioria das apps de negócio — marcações, CRM, lojas — encaixa bem no modelo relacional.
A minha app precisa de uma base de dados?
Se precisar de guardar algo que as pessoas introduzem — registos, encomendas, mensagens, definições — e de o mostrar mais tarde ou a outra pessoa, sim. Um site meramente informativo, sem formulários que gravem dados, normalmente não precisa.