Digite para filtrar os verbetes do Glossário.

    Banco de dados · Formação DevOps

    O que é Schema?

    Schema descreve a estrutura do banco e pode nomear um agrupamento de objetos do sistema. Entenda tabelas, restrições e mudanças sobre registros existentes.

    Também chamado de: esquema, estrutura da tabela, namespace do banco

    Estrutura do banco e organização de objetos

    Schema, ou esquema, pode designar a estrutura do banco: tabelas, colunas, tipos e restrições que definem o armazenamento. Em bancos como PostgreSQL, a palavra também identifica um namespace, um agrupamento nomeado de objetos dentro de um banco. O sentido precisa ser reconhecido na documentação utilizada.

    A estrutura de uma tabela determina quais campos existem e quais valores são aceitos. Os registros são o conteúdo armazenado nessa estrutura. Criar uma coluna e preencher uma linha são operações diferentes, embora ambas alterem o banco.

    Ao acrescentar um campo ao formulário para gravá-lo no banco, você precisa preparar o armazenamento correspondente e o código que fará a gravação. Publicar apenas o formulário não cria automaticamente a coluna que o backend pretende usar.

    Tipos e restrições

    Estrutura didática de uma tabelasql
    CREATE TABLE contatos (
    id INTEGER PRIMARY KEY,
    nome TEXT NOT NULL,
    codigo_externo TEXT UNIQUE
    );

    O exemplo declara uma identidade, um nome não nulo e um código externo com restrição de unicidade. No PostgreSQL, NOT NULL impede nulo, mas não impede sozinho uma string vazia. Uma restrição adicional como CHECK (nome <> '') recusaria a string vazia, embora ainda aceitasse um texto formado apenas por espaços.

    Da mesma forma, tipos e restrições devem refletir o significado do campo. Um texto que contém uma data não recebe automaticamente todas as garantias de uma coluna de data. A escolha influencia consultas, validações e alterações futuras.

    Schema como namespace no PostgreSQL

    Um banco PostgreSQL pode conter vários schemas nomeados. Uma tabela pode ser identificada por um nome qualificado, como atendimento.contatos. Isso permite organizar objetos e usar nomes iguais em schemas distintos.

    O caminho de busca, chamado search_path, influencia a resolução de nomes não qualificados. Uma consulta a contatos pode encontrar um objeto diferente conforme essa configuração. Permissões também precisam ser configuradas, pois a separação por nome não garante isolamento de acesso por si só.

    Alterações precisam considerar os registros existentes

    Acrescentar NOT NULL a uma coluna que já contém valores nulos pode falhar. Antes dessa alteração, você precisa definir como preencher ou corrigir as linhas existentes. Remover uma coluna também afeta o conteúdo armazenado, pois elimina os valores associados a ela.

    Migrations permitem registrar e aplicar a evolução de forma controlada. Alterações manuais também mudam o schema, mas podem deixar o ambiente diferente do histórico esperado. A comparação entre definição real e migrations identifica essa divergência.

    Como conferir a estrutura

    Compare a definição das tabelas nos ambientes que deveriam ter a mesma versão. No exemplo de contatos, tente gravar um nome nulo e repetir um código externo para conferir as restrições declaradas. Verifique também o nome qualificado usado nas consultas, pois iniciar a aplicação não comprova que ela acessa a tabela esperada.

    O verbete de migration explica como registrar a evolução dessa estrutura junto do projeto.

    Dúvidas frequentes

    Perguntas frequentes sobre Schema

    Schema significa sempre a estrutura inteira?
    O termo também pode designar um namespace dentro de um banco, como no PostgreSQL. A documentação da tecnologia determina o sentido utilizado.
    NOT NULL exige um texto preenchido?
    A restrição impede valores nulos, mas permite uma string vazia. Para recusar esse caso, o banco ou a aplicação precisa verificar também o conteúdo do texto.
    Separar tabelas em schemas garante isolamento de acesso?
    A organização por nome não substitui permissões. Você precisa configurar no banco os acessos permitidos a cada usuário ou papel e aos objetos utilizados.
    Alterar a estrutura pode afetar conteúdo existente?
    Novas restrições podem ser incompatíveis com linhas atuais, e remover colunas pode eliminar valores. A evolução precisa considerar os registros já armazenados.

    Para continuar

    Recursos relacionados

    Aplicação na formação

    Formação DevOps

    O schema descreve a estrutura usada para armazenar os registros e, em bancos como PostgreSQL, também pode nomear um agrupamento de objetos.

    Conhecer a formação
    Capa da Formação DevOps

    Fontes consultadas

    Referências deste verbete

    Este verbete ajudou você?

    Planos Promovaweb

    Tire seus projetos do papel

    O Plano Martech cobre automação e atendimento. O Plano IA Makers acrescenta desenvolvimento com IA, enquanto o Plano Founders trata de gestão de negócios. Todos são anuais.

    Plano Martech

    Para conectar automação, marketing e atendimento com infraestrutura própria.

    R$ 897

    R$ 597/ano

    • Grade de automação, atendimento, marketing e análise de indicadores
    • Instalador Exclusivo Promovaweb
    • n8n, Evolution API, Chatwoot e Mautic
    • Trilha DevOps incluída
    • Encontros ao vivo (terça e quinta)
    • Comunidade e acompanhamento
    Conhecer o plano

    Plano Founders

    Plano anual para fazer um projeto de tecnologia avançar, com 90 dias de mentoria intensiva. R$ 1.997 à vista ou até 10x de R$ 219 no cartão.

    R$ 1.997/ano

    • 12 meses de acesso ao Founders
    • 90 dias de mentoria intensiva, um encontro por dia útil
    • Dia de conteúdo (terça e quinta) e War Room (segunda, quarta e sexta)
    • Encontro semanal em grupo após a fase intensiva
    • Formação Vibe Coding incluída no plano anual
    • Consultoria individual de até duas horas (bônus)
    Conhecer o plano