Skip to content

Relacionamentos de banco de dados

8 de maio de 2021

Um relacionamento é estabelecido entre duas tabelas de banco de dados quando uma tabela usa uma chave estrangeira que faz referência à chave primária de outra tabela. Este é o conceito básico por trás do termo banco de dados relacional.

Como uma chave estrangeira funciona para estabelecer um relacionamento

Uma chave primária identifica exclusivamente cada registro na tabela. É um tipo de chave candidata que geralmente é a primeira coluna de uma tabela e pode ser gerada automaticamente pelo banco de dados para garantir que seja exclusiva. Uma chave estrangeira é outra chave candidata (não a chave primária) usada para vincular um registro a dados em outra tabela. Por exemplo, considere estas duas tabelas que identificam qual professor ensina qual curso. Aqui, a chave primária da tabela Courses é Course_ID. Sua chave estrangeira é Teacher_ID:

Identidade do curso Nome do curso Professor_ID
Course_001 Biologia Teacher_001
Course_002 Matemática Teacher_001
Course_003 inglês Teacher_003
Cursos
Você pode ver que a chave estrangeira em Cursos corresponde a uma chave primária em Professores:

Professor_ID Nome do professor
Teacher_001 Carmen
Teacher_002 Veronica
Teacher_003 Jorge
Professores
Podemos dizer que a chave estrangeira Teacher_ID ajudou a estabelecer um relação entre as mesas dos Cursos e dos Professores.

Tipos de relacionamentos de banco de dados

Um gráfico na tela de um computador

Imagens Glow / Getty
Usando chaves estrangeiras ou outras chaves candidatas, você pode implementar três tipos de relacionamentos entre tabelas:

Um a um: Esse tipo de relacionamento permite apenas um registro de cada lado do relacionamento. A chave primária está relacionada a apenas um registro – ou nenhum – em outra tabela. Por exemplo, em um casamento, cada cônjuge tem apenas um outro cônjuge. Esse tipo de relacionamento pode ser implementado em uma única tabela e, portanto, não usa uma chave estrangeira.

Um para muitos: Um relacionamento um-para-muitos permite que um único registro em uma tabela seja relacionado a vários registros em outra tabela. Considere uma empresa com um banco de dados que possui tabelas Clientes e Pedidos. Um único cliente pode comprar vários pedidos, mas um único pedido não pode ser vinculado a vários clientes. Portanto, a tabela Pedidos conteria uma chave estrangeira que correspondesse à chave primária da tabela Clientes, enquanto a tabela Clientes não teria nenhuma chave estrangeira apontando para a tabela Pedidos.

Muitos para muitos: Este é um relacionamento complexo no qual muitos registros em uma tabela podem ser vinculados a muitos registros em outra tabela. Por exemplo, nosso negócio provavelmente não precisa apenas das tabelas Clientes e Pedidos, mas provavelmente também precisa de uma tabela Produtos. Novamente, a relação entre a tabela Clientes e Pedidos é de um para muitos, mas considere a relação entre a tabela Pedidos e Produtos. Um pedido pode conter vários produtos, e um produto pode estar vinculado a vários pedidos: vários clientes podem enviar um pedido que contém alguns dos mesmos produtos. Esse tipo de relacionamento requer no mínimo três tabelas.

Por que os relacionamentos de banco de dados são importantes?

O estabelecimento de relacionamentos consistentes entre as tabelas do banco de dados ajuda a garantir a integridade dos dados, contribuindo para a normalização do banco de dados. Por exemplo, o que aconteceria se não vinculássemos nenhuma tabela por meio de uma chave estrangeira e, em vez disso, apenas combinássemos os dados nas tabelas Cursos e Professores, assim:

Professor_ID Nome do professor Curso
Teacher_001 Carmen Biologia, Matemática
Teacher_002 Veronica Matemática
Teacher_003 Jorge inglês
Professores e Cursos
Esse design é inflexível e viola o primeiro princípio de normalização do banco de dados, a Primeira Forma Normal, que afirma que cada célula da tabela deve conter um único dado discreto. Ou talvez tenhamos decidido simplesmente adicionar um segundo registro para Carmen, a fim de fazer cumprir a 1NF:

Professor_ID Nome do professor Curso
Teacher_001 Carmen Biologia
Teacher_001 Carmen Matemática
Teacher_002 Veronica Matemática
Teacher_003 Jorge inglês
Professores e Cursos
Este ainda é um design fraco, introduzindo duplicação desnecessária e o que é chamado anomalias de inserção de dados, o que significa apenas que pode contribuir para dados inconsistentes. Por exemplo, se um professor tiver vários registros, e se alguns dados precisarem ser editados, mas a pessoa que está realizando a edição não perceber que existem vários registros? A tabela, então, conteria dados diferentes para o mesmo indivíduo, sem nenhuma forma clara de identificá-los ou evitá-los. Dividir essa tabela em duas, Professores e Cursos, cria a relação adequada entre os dados e, portanto, ajuda a garantir a consistência e a precisão dos dados. Mais da Lifewire

  • Empresários conversando e discutindo dados no laptop em uma reunião na sala de conferências

    Introdução aos relacionamentos de banco de dados

  • Administrador de banco de dados trabalhando na mesa

    Determinantes e seu papel em um banco de dados

  • Mulher olhando para a sala do servidor

    Relacionamentos um-para-muitos em um banco de dados

  • Banco de dados em um computador

    Como a integridade referencial garante a consistência do banco de dados

  • Gráfico de lápis vermelho delineando relacionamentos de banco de dados

    Criação de relacionamentos de banco de dados no Access

  • Renderização digital de código de computador e linhas de conexão que representam um banco de dados

    Glossário de termos comuns de banco de dados

  • 1s e 0s representando um banco de dados

    O que é um banco de dados?

  • Mãos de um web designer usando um tablet digital

    Dependência funcional total na normalização do banco de dados

  • Closeup vista lateral de uma mulher negra loira de meados dos anos 20 fazendo seu projeto de desenvolvimento de software.  Ela está sentada na frente de um computador desktop e tomando um café enquanto trabalha em um computador.

    O que é a forma normal de Boyce-Codd (BCNF)?

  • Um homem de negócios trabalhando em um escritório

    Escolhendo uma chave primária

  • Dois homens olhando para uma tela de computador

    O poder das chaves estrangeiras em bancos de dados relacionais

  • Visão de alto ângulo dos técnicos que trabalham na sala do servidor

    Chaves básicas que facilitam o gerenciamento de banco de dados

  • Estudante de menino programando computador em sala de aula escura

    Bancos de dados para iniciantes

  • Fluxograma de banco de dados estilizado

    Noções básicas de normalização de banco de dados

  • Homem usando um laptop

    O que é dependência transitiva em um banco de dados

  • Programador no laptop de camisa xadrez vermelha e óculos

    Consulta GROUP BY do Microsoft Access

Lifewire

Siga-nos

  • Facebook

  • Sobre nós
  • Anunciar
  • Política de Privacidade
  • Política de Cookies
  • Carreiras
  • Diretrizes editoriais
  • Contato
  • Termos de uso
  • Privacidade da UE
  • Aviso de privacidade da Califórnia



Seus direitos de privacidade

A Lifewire e nossos parceiros terceirizados usam cookies e processam dados pessoais como identificadores exclusivos com base em seu consentimento para armazenar e / ou acessar informações em um dispositivo, exibir anúncios personalizados e para medição de conteúdo, percepção do público e desenvolvimento de produtos. Para alterar ou retirar suas opções de consentimento para Lifewire.com, incluindo seu direito de contestar quando um interesse legítimo é usado, clique abaixo. A qualquer momento, você pode atualizar suas configurações por meio do link “Privacidade da UE” na parte inferior de qualquer página. Essas escolhas serão sinalizadas globalmente para nossos parceiros e não afetarão os dados de navegação. Lista de parceiros (fornecedores)

Nós e nossos parceiros processamos dados para:

Digitalize ativamente as características do dispositivo para identificação. Use dados precisos de geolocalização. Armazene e / ou acesse informações em um dispositivo. Selecione o conteúdo personalizado. Crie um perfil de conteúdo personalizado. Avalie o desempenho do anúncio. Selecione anúncios básicos. Crie um perfil de anúncios personalizados. Selecione anúncios personalizados. Aplique pesquisas de mercado para gerar insights do público. Avalie o desempenho do conteúdo. Desenvolva e aprimore produtos. Lista de parceiros (fornecedores)