Digite para filtrar os verbetes do Glossário.

    Banco de dados · Formação DevOps

    O que é Relacionamento?

    Relacionamento associa entidades e define quantos vínculos são permitidos. Entenda cardinalidade, tabelas de associação e restrições no banco relacional.

    Também chamado de: associação entre entidades, vínculo entre registros, relação

    Como os conceitos se associam

    Relacionamento é uma associação definida entre entidades ou suas ocorrências. Um estudante pode participar de turmas, e cada turma pode reunir vários estudantes. O modelo precisa descrever esse vínculo e as quantidades permitidas de cada lado.

    Essas quantidades são chamadas de cardinalidade. Relações um para um, um para muitos e muitos para muitos representam combinações diferentes. A obrigatoriedade também importa, pois permitir zero vínculos não equivale a exigir pelo menos um.

    Considere um produto que permite cadastrar participantes antes de escolherem uma turma e abrir turmas ainda sem inscrições. Nesse caso, ambos os cadastros precisam existir sem uma matrícula associada. Quando o produto exige uma inscrição já no cadastro, essa exigência também precisa aparecer no comportamento da aplicação.

    Um para muitos e muitos para muitos

    Em um modelo com uma organização responsável por vários contatos, cada contato pode guardar a referência a essa organização. A coluna do lado dos contatos permite representar a relação um para muitos. A chave estrangeira pode conferir a existência da organização indicada.

    Já um estudante pode participar de várias turmas, e cada turma pode reunir vários estudantes. Em um banco relacional, uma tabela de associação, como matriculas, representa cada vínculo. Ela também pode guardar informações próprias, como a data da inscrição.

    Associação didática entre estudantes e turmassql
    CREATE TABLE matriculas (
    estudante_id INTEGER NOT NULL REFERENCES estudantes(id),
    turma_id INTEGER NOT NULL REFERENCES turmas(id),
    PRIMARY KEY (estudante_id, turma_id)
    );

    O exemplo pressupõe a existência das tabelas referenciadas. A chave composta impede repetir a mesma combinação de estudante e turma. Se o produto permitir várias matrículas históricas nesse mesmo par, a estrutura precisará representar essa condição de outra forma.

    Um para um exige uma restrição adequada

    Uma chave estrangeira sozinha normalmente permite que várias linhas apontem para o mesmo registro. Para representar um vínculo um para um, pode ser necessária uma restrição de unicidade na referência. A declaração precisa corresponder à cardinalidade pretendida.

    Também é preciso definir o efeito da exclusão. Remover um lado pode ser recusado, propagar alterações ou encerrar o vínculo, conforme a política adotada. Essas consequências não devem ser deduzidas apenas pelo nome das tabelas.

    Modelo e consulta não são a mesma coisa

    O relacionamento descreve a associação, enquanto uma consulta escolhe como ler os registros. Um JOIN pode combinar linhas mesmo sem uma chave estrangeira declarada. Isso não significa que o banco esteja garantindo a validade daquele vínculo nas gravações.

    Como conferir a cardinalidade

    Teste zero, um e vários vínculos conforme os casos permitidos. Faça a leitura nos dois sentidos e confira se o modelo preserva todas as ocorrências necessárias. Inclua duplicidade e exclusão nos testes de desenvolvimento.

    O verbete de chave estrangeira explica a restrição usada para conferir referências no banco.

    Dúvidas frequentes

    Perguntas frequentes sobre Relacionamento

    Chave estrangeira sozinha cria um vínculo um para um?
    Ela confere a referência, mas pode permitir várias linhas apontando ao mesmo registro. Uma restrição de unicidade pode ser necessária para o vínculo um para um.
    Como representar muitos para muitos?
    Em bancos relacionais, uma tabela de associação costuma guardar cada vínculo entre os dois lados. Ela pode incluir atributos próprios da relação.
    JOIN exige uma chave estrangeira?
    A consulta pode combinar linhas sem essa restrição. A chave estrangeira atua na validade da referência, enquanto JOIN define como os resultados são lidos.
    Cardinalidade também considera ausência de vínculo?
    A obrigatoriedade precisa ser definida além da quantidade máxima. Permitir zero relações difere de exigir pelo menos uma.

    Para continuar

    Recursos relacionados

    Aplicação na formação

    Formação DevOps

    Relacionamentos orientam a representação dos vínculos entre cadastros e a escolha das restrições das tabelas.

    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