Chave estrangeira SQL

Chave estrangeira SQL

“Uma chave estrangeira é uma ou mais colunas em uma tabela infantil que se refere a uma chave primária de uma tabela pai. As chaves estrangeiras e primárias são os mesmos valores, embora alguns possam repetir na tabela infantil. A tabela pai também é chamada de tabela de referência. A chave estrangeira na tabela criança faz referência à chave primária na tabela referenciada (tabela pai). Ou seja, cada valor de chave estrangeira na tabela infantil é o mesmo que um valor de chave primária na tabela pai. Pode haver algumas repetições de valores -chave estrangeiros na tabela infantil. Ainda assim, cada valor de chave estrangeira na tabela infantil é uma chave primária na tabela referenciada. A ligação entre as duas tabelas é a chave estrangeira.

Se ambas as tabelas forem bem projetadas, a relação de chave estrangeira elimina a dependência transitiva. Veja a explicação da dependência transitiva abaixo. Este artigo explica as chaves estrangeiras em relação à dependência transitiva e ao banco de dados relacional.”

Ilustração

Considere uma tabela de vendas no que é conhecido como a segunda forma normal. Na mesa, os funcionários vendem para clientes individuais conhecidos (pessoas). A tabela é a seguinte:

Tabela de vendas


Na primeira fila, um cliente da CustomerID 1, para uma loja, em The Pessoa de Peter Smith, com o telefone número 444-4444, endereço “1, Road1, Towla”, City Clifton, do estado Nova Jersey, Código Postal NJ 10265, entrou na loja e comprou produtos (não indicados). Este cliente foi atendido pelo funcionário (vendedor), Jacob Jones. Esta venda tem ID 1. A coluna SaleId é a chave primária para esta tabela. Esta tabela está atualmente no que é conhecido como a segunda forma normal. O restante das outras linhas é explicado da mesma forma.

Dependência transitiva

Nota: Uma coluna pode ser chamada de atributo. Em cada linha, o SaleId depende dos atributos: Datas, CustomerID, Nome CustomerName, Telefone, Endereço, Cidade, Região, Código Postal, País e Funcionário. Está bem. O CustomerID depende dos atributos: Nome Customernge, telefone, endereço, cidade, região, código postal e país. Esses dependentes do ClusterID não determinam o SaleID ou Datas ou funcionários. Se o cliente da ID 1 chegasse à loja uma semana depois, ele teria conhecido um funcionário diferente em uma data diferente, o que significaria um SaleID diferente.

Portanto, esses dependentes do cliente precisam ser retirados desta mesa grande, para formar uma tabela menor diferente. Uma cópia do cliente permanece na tabela original, já que o SaleId depende do CustomerID. A nova tabela de vendas agora é chamada de tabela infantil. Uma cópia do CustomerID acompanha os dependentes, pois depende dos dependentes. As duas novas tabelas são:

Tabela de clientes

Tabela de vendas


A tabela de clientes agora é pai ou tabela de referência. Tem os nomes dos clientes e suas credenciais. O clusterID identifica cada uma de suas linhas. É mais curto que a tabela de vendas original por 6 linhas. A repetição (redundância) foi removida na tabela de clientes. A tabela de clientes está agora no que é conhecido como a terceira forma normal. Se um nome adequado não puder ser encontrado para a mesa do cliente, algo deu errado com o raciocínio.

A tabela de vendas permanece como era, mas sem algumas colunas. Também está agora no que é chamado de terceira forma normal. O SaleId ainda identifica as mesmas linhas, mas com algumas células removidas.

NOTA: Na tabela de clientes, o ClusterID é a chave primária. Na nova tabela de vendas, CustomerID é uma chave estrangeira. Ele vincula as duas novas tabelas. No entanto, na tabela de vendas, não depende do SaleId; O Saleid depende disso.

A dependência transitiva ocorre quando um atributo não prático depende de outro atributo ou atributo não prático. Ao dividir a tabela original em duas tabelas, uma dependência transitiva é removida.

A notação da tabela para a tabela original é:

Vendas (SaleId, Datesold, CustomerID, Nome Customername, telefone, endereço, cidade, região, código postal, país, funcionário)


A notação da tabela para as duas novas tabelas é:

Clientes (CustomerID, Nome Customername, Telefone, Endereço, Cidade, Região, Código Postal, País)


e

Vendas (SaleId, Datesold, CustomerID, funcionário)


Cada chave primária tem um único sublinhado. A chave estrangeira, CustomerId, na tabela de vendas tem um traço sublinhado.

Conclusão

Uma chave estrangeira é uma ou mais colunas em uma tabela infantil que se refere a uma chave primária de uma tabela pai. As chaves estrangeiras e primárias são os mesmos valores, embora alguns possam repetir na criança
mesa. A tabela pai também é chamada de tabela de referência. A chave estrangeira na tabela criança faz referência à chave primária na tabela referenciada (tabela pai). Ou seja, cada valor de chave estrangeira na tabela infantil é o mesmo que um valor de chave primária na tabela pai. Pode haver algumas repetições de valores -chave estrangeiros na tabela infantil. Ainda assim, cada valor de chave estrangeira na tabela infantil ocorre como uma chave primária na tabela referenciada. A ligação entre as duas tabelas é a chave estrangeira. A tabela infantil também é chamada de tabela de referência.