Digite para filtrar os verbetes do Glossário.

    Banco de dados · Formação DevOps

    O que é Chave estrangeira?

    Chave estrangeira confere referências entre registros. Entenda vínculos obrigatórios, valores nulos e o efeito de excluir ou alterar a linha referenciada.

    Também chamado de: FK, foreign key, referência externa

    Uma referência conferida pelo banco

    Chave estrangeira é uma coluna ou combinação de colunas sujeita a uma restrição de referência. Ela relaciona valores a uma chave válida, normalmente de outra tabela. Quando o vínculo é informado, o banco confere se existe um registro correspondente na chave referenciada.

    Em um sistema de cursos, uma matrícula pode guardar o identificador do estudante inscrito. A chave estrangeira impede que esse identificador aponte para um cadastro inexistente. O nome da coluna, sozinho, não cria essa garantia.

    A referência pode apontar para uma chave primária ou outra chave elegível segundo o banco. Também pode apontar para a própria tabela, como uma categoria que referencia sua categoria superior. O modelo precisa definir qual associação faz sentido.

    Um vínculo obrigatório

    Matrícula vinculada a um estudante existentesql
    CREATE TABLE estudantes (
    id INTEGER PRIMARY KEY,
    nome TEXT NOT NULL
    );
    
    CREATE TABLE matriculas (
    id INTEGER PRIMARY KEY,
    estudante_id INTEGER NOT NULL REFERENCES estudantes(id)
    );

    REFERENCES declara a referência, e NOT NULL exige que ela seja informada. Sem a restrição de não nulo, uma chave estrangeira simples pode permitir ausência de vínculo. Uma matrícula sem identificador e outra com identificador inexistente são recusadas por restrições diferentes nesse exemplo.

    O que acontece ao remover o registro referenciado

    A ação depende da configuração. O banco pode impedir a remoção, propagar a exclusão com CASCADE ou atribuir nulo quando essa alternativa for permitida. Não existe uma consequência única para toda chave estrangeira.

    Essa escolha precisa corresponder ao uso dos registros. Excluir um estudante e apagar automaticamente suas matrículas pode contrariar a necessidade de manter histórico. A estrutura deve refletir o comportamento definido para a aplicação antes de receber os cadastros reais.

    Restrição e consulta têm funções diferentes

    Uma chave estrangeira não cria automaticamente todas as consultas necessárias. A aplicação ainda precisa selecionar e combinar registros para apresentar uma matrícula com o nome do estudante. A restrição garante a relação declarada, enquanto a consulta define o resultado lido.

    Também é preciso conferir a configuração do banco. No SQLite, por exemplo, a aplicação deve verificar se a fiscalização de chaves estrangeiras está habilitada para a conexão. Declarar a sintaxe sem conferir sua aplicação pode deixar uma expectativa sem efeito.

    Como verificar o vínculo

    No banco de desenvolvimento do exemplo, tente gravar matrículas com o estudante 7, com o estudante inexistente 99 e sem estudante informado. Compare as mensagens e os registros persistidos para distinguir referência válida, referência inexistente e ausência proibida. Depois, teste a exclusão do cadastro referenciado conforme a ação configurada, conferindo também o que acontece com a matrícula.

    Quando a referência for composta, prepare os testes com a combinação completa de colunas. A existência de cada valor isolado em linhas diferentes não comprova a existência da combinação referenciada.

    O verbete de relacionamento explica como o vínculo técnico representa uma associação do modelo.

    Dúvidas frequentes

    Perguntas frequentes sobre Chave estrangeira

    Um campo terminado em _id cria uma chave estrangeira?
    O nome não cria a restrição. Ela precisa ser declarada e efetivamente aplicada pelo banco utilizado.
    Chave estrangeira exige sempre um valor?
    Uma referência simples pode aceitar nulo quando a coluna permite. A restrição NOT NULL exige o preenchimento, enquanto a chave estrangeira confere a existência do registro referenciado.
    Excluir o registro referenciado sempre é proibido?
    O efeito depende da ação configurada, como impedir a exclusão, propagar com CASCADE ou atribuir nulo quando permitido.
    A chave estrangeira comprova uma regra de negócio?
    Ela confere a referência declarada, mas não comprova condições como situação ativa do estudante ou permissão para matrícula. A aplicação precisa verificar essas condições antes de aceitar a inscrição.

    Para continuar

    Recursos relacionados

    Aplicação na formação

    Formação DevOps

    Chaves estrangeiras permitem conferir os vínculos que serviços e rotinas mantêm entre tabelas da aplicação.

    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