O que são chaves estrangeiras em bancos de dados SQL?

O que são chaves estrangeiras em bancos de dados SQL?

As chaves estrangeiras permitem que os administradores de banco de dados identifiquem facilmente as diferentes conexões existentes em um sistema de gerenciamento de banco de dados SQL.





SQL executa operações matemáticas em dados dentro de um sistema de gerenciamento de banco de dados. Esses bancos de dados contêm diferentes tabelas em que cada uma armazena dados em uma entidade específica. Se você tiver um banco de dados de aluguel de automóveis, uma entidade (ou tabela) nesse banco de dados serão os clientes (que armazenará todos os dados pessoais de cada cliente).





Essas tabelas de banco de dados contêm linhas e colunas, onde cada linha hospeda um registro e cada coluna contém dados específicos de atributos.





Em um sistema de gerenciamento de banco de dados, cada registro (ou linha) deve ser único.

Chaves Primárias

Embora a estipulação seja que cada registro em uma tabela deva ser distinto, nem sempre é esse o caso. Continuando com o exemplo do banco de dados de aluguel de automóveis, se o banco de dados contiver dois clientes, cada um com o nome John Brown, pode-se esperar que um John Brown devolva um Mercedes-Benz que não alugou.



A criação de uma chave primária atenuará esse risco. Em um sistema de gerenciamento de banco de dados SQL, uma chave primária é um identificador exclusivo que distingue um registro de outro.

loja de peças de pc usados ​​perto de mim

Portanto, cada registro em um sistema de gerenciamento de banco de dados SQL deve ter uma chave primária.





Usando chaves primárias em um banco de dados

Para incluir chaves primárias em um sistema de gerenciamento de banco de dados usando SQL, você pode simplesmente adicioná-las como um atributo normal ao criar uma nova tabela. Portanto, a tabela de clientes conterá quatro atributos (ou colunas):

  • CarOwnerID (que armazenará a chave primária)
  • Primeiro nome
  • Último nome
  • Número de telefone

Relacionado: Como criar uma tabela em SQL





Agora, cada registro de cliente que entra no banco de dados terá um número de identificação exclusivo, bem como nome, sobrenome e número de telefone. O número de telefone não é exclusivo o suficiente para ser uma chave primária, porque embora seja exclusivo para uma pessoa por vez, uma pessoa pode facilmente alterar seu número, o que significa que agora pertenceria a outra pessoa.

Um registro com um exemplo de chave primária

/* creates a new record in the customers table */
INSERT INTO Customers VALUES
('0004',
'John',
'Brown',
'111-999-5555');

O código SQL acima irá adicionar um novo registro ao pré-existente Clientes tabela. A tabela abaixo mostra a nova tabela de clientes com os dois registros de John Brown.

A chave estrangeira

Agora você tem chaves primárias que distinguem exclusivamente um locatário de outro. O único problema é que, no banco de dados, não há conexão real entre cada John Brown e o carro que ele aluga.

Portanto, a possibilidade de cometer um erro ainda existe. É aqui que as chaves estrangeiras entram em jogo. Usar uma chave primária para resolver o problema de ambigüidade de propriedade só é possível se a chave primária também funcionar como uma chave estrangeira.

O que é uma chave estrangeira?

Em um sistema de gerenciamento de banco de dados SQL, uma chave estrangeira é um identificador exclusivo ou uma combinação de identificadores exclusivos que conectam duas ou mais tabelas em um banco de dados.

Dos quatro sistemas de gerenciamento de banco de dados SQL existentes, o sistema de gerenciamento de banco de dados relacional é o mais popular. Ao decidir qual tabela em um banco de dados relacional deve ter uma chave estrangeira, você deve primeiro identificar qual tabela é o assunto e qual é o objeto em seu relacionamento.

Voltando ao banco de dados de aluguel de automóveis, para conectar cada cliente ao carro correto, você precisará entender que um cliente (o sujeito) aluga um carro (o objeto). Portanto, a chave estrangeira deve estar na tabela de carros.

O código SQL que gera uma tabela com uma chave estrangeira é um pouco diferente da norma.

Criando uma tabela com um exemplo de chave estrangeira

/* creates a new cars table in the car rental database */
CREATE TABLE Cars
(
LicenseNumber varchar(30) NOT NULL PRIMARY KEY,
CarType varchar(30) NOT NULL,
CustomerID varchar(30) FOREIGN KEY REFERENCES Customers(CustomerID)
);

Como você pode ver no código acima, uma chave estrangeira deve ser explicitamente identificada como tal, junto com uma referência à chave primária que está sendo conectada à nova tabela.

como fazer download da google play store no Amazon Fire

Relacionado: A folha de referências dos comandos SQL essenciais para iniciantes

Para adicionar um registro à nova tabela, você precisará garantir que o valor no campo de chave estrangeira corresponda ao valor no campo de chave primária da tabela original.

Exemplo de adição de registro com chave estrangeira

/* creates a new record in the cars table */
INSERT INTO Cars VALUES
('100012',
'Mercedes-Benz',
'0004');

O código acima cria um novo registro no novo Carros tabela, produzindo o seguinte resultado.

Mesa de carros

Na tabela acima, você pode identificar o John Brown correto que aluga um Mercedes-Benz pela chave estrangeira no registro.

Chaves Estrangeiras Avançadas

Existem duas outras maneiras de usar uma chave estrangeira em um banco de dados.

Se você olhar para trás na definição de chave estrangeira acima, verá que diz que uma chave estrangeira pode ser um identificador exclusivo ou uma combinação de identificadores exclusivos.

Voltando ao exemplo do banco de dados de aluguel de automóveis, você verá que criar um novo registro (do mesmo carro) cada vez que um cliente aluga aquele carro, vai contra o propósito do Carros tabela. Se os carros estão à venda e são vendidos para um único cliente uma vez, o banco de dados existente é perfeito; mas, como os carros são alugados, há uma maneira melhor de representar esses dados.

Chaves compostas

Uma chave composta possui dois ou mais identificadores exclusivos. Em um banco de dados relacional, haverá casos em que o uso de uma única chave estrangeira não representará suficientemente os relacionamentos que existem nesse banco de dados.

No exemplo do aluguel de automóveis, a abordagem mais prática é criar uma nova tabela que armazene os detalhes do aluguel. Para que as informações da tabela de aluguel de carros sejam úteis, ela deve estar conectada às tabelas de carros e clientes.

Criação de uma tabela com chaves estrangeiras compostas

/* creates a CarRental table in the car rental database */
CREATE TABLE CarRental
(
DateRented DATE NOT NULL,
LicenseNumber varchar(30) NOT NULL FOREIGN KEY REFERENCES Cars(LicenseNumber),
CustomerID varchar(30) NOT NULL FOREIGN KEY REFERENCES Customers(CustomerID),
PRIMARY KEY (DateRented, LicenseNumber, CustomerID)
);

O código acima descreve um ponto importante; embora uma tabela em um banco de dados SQL possa ter mais de uma chave estrangeira, ela só pode ter uma única chave primária. Isso ocorre porque deve haver apenas uma maneira única de identificar um registro.

É necessário combinar todos os três atributos na tabela para ter uma chave exclusiva. Um cliente pode alugar mais de um carro no mesmo dia (então Identificação do Cliente e DateRented não é uma boa combinação) mais de um cliente também pode alugar o mesmo carro no mesmo dia (então Número de licença e DateRented não é uma boa combinação).

No entanto, a criação de uma chave composta que informa qual cliente, qual carro e em que dia é uma excelente chave exclusiva. Essa chave exclusiva representa uma chave estrangeira composta e uma chave primária composta.

melhor lugar para comprar macs usados

Chaves primárias estrangeiras

Sim, as chaves primárias estrangeiras são encerradas. Embora não haja um nome oficial para ele, uma chave estrangeira também pode ser uma chave primária na mesma tabela. Isso acontece quando você cria uma nova tabela que contém dados especializados sobre uma entidade existente (ou registro em outra tabela).

Digamos que Fred (que trabalha na locadora de automóveis) esteja no banco de dados da empresa sob a tabela de funcionários. Depois de alguns anos, ele se torna um supervisor e é adicionado à mesa de supervisor.

Fred ainda é um funcionário e ainda terá o mesmo número de identificação. Então, o id de funcionário de Fred está agora na tabela de supervisor como uma chave estrangeira que também se tornará uma chave primária nessa tabela (já que não faz sentido criar um novo número de id para Fred agora que ele é um supervisor).

Agora você pode identificar chaves estrangeiras em bancos de dados SQL

As chaves estrangeiras conectam diferentes tabelas em um banco de dados SQL. Neste artigo, você pode ver o que é uma chave estrangeira, como funciona e por que é importante tê-las em um banco de dados. Você também entende as formas básicas e ainda mais complexas de chaves estrangeiras.

Se você acha que as chaves estrangeiras são interessantes, você terá um dia de campo quando começar a usar as operações de projeto e seleção para consultar seus bancos de dados SQL.

Compartilhado Compartilhado Tweet O email Aprenda a usar as operações de projeto e seleção em SQL

Familiarize-se com os bancos de dados relacionais SQL, compreendendo as operações de Projeto e Seleção com esses exemplos.

Leia a seguir
Tópicos relacionados
  • Programação
  • Programação
  • SQL
  • base de dados
Sobre o autor Kadeisha Kean(21 artigos publicados)

Kadeisha Kean é um desenvolvedor de software full-stack e redator técnico / de tecnologia. Ela tem a habilidade distinta de simplificar alguns dos conceitos tecnológicos mais complexos; produzindo material que pode ser facilmente entendido por qualquer novato em tecnologia. Ela é apaixonada por escrever, desenvolver softwares interessantes e viajar pelo mundo (através de documentários).

Mais de Kadeisha Kean

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Clique aqui para se inscrever