este artigo irá ensinar-lhe a diferença entre uma chave primária e uma chave estrangeira. Este artigo também lhe ensinará por que ambas as chaves são importantes quando se trata da manutenção de uma estrutura de banco de dados relacional.
Todos os exemplos para esta lição são baseados no Microsoft SQL Server Management Studio e na Base de dados AdventureWorks2012. Você pode começar a usar estas ferramentas gratuitas usando o meu guia começar a usar o servidor SQL.
Qual é a diferença entre uma chave primária e uma chave estrangeira?,
Antes de podermos investigar a diferença, vamos primeiro explorar as características principais e estrangeiras. Vamos começar por aprender sobre chaves primárias.
chaves primárias
para que uma tabela se qualifique como uma tabela relacional, ela deve ter uma chave primária.
A chave primária consiste numa ou mais colunas cujos dados contidos são utilizados para identificar de forma única cada linha do quadro. Podes vê-los como uma morada. Se as linhas de uma tabela fossem caixas de correio, então a chave primária seria a listagem de endereços de rua.,
Quando uma chave primária é composta por múltiplas colunas, os dados de cada coluna são usados para determinar se uma linha é única.
para ser uma chave primária, várias condições devem ser verdadeiras. Em primeiro lugar, como mencionámos, as colunas devem ser únicas. Para esclarecer, estamos nos referindo aos dados dentro das linhas, não os nomes da coluna em si. Além disso, nenhum valor nas colunas pode ser em branco ou nulo.
ao definir uma tabela, você indica a chave primária. Uma tabela tem apenas uma chave primária, e sua definição é obrigatória.
A chave primária para cada tabela é armazenada em um índice., O índice é usado para impor o requisito de unicidade. Também facilita que os valores-chave estrangeiros se refiram aos valores-chave primários correspondentes, como iremos saber na secção seguinte.
chaves estrangeiras
uma chave estrangeira é um conjunto de uma ou mais colunas de uma tabela que se refere à chave primária de outra tabela. Não há nenhum código especial, configurações, ou definições de tabela que você precisa colocar para oficialmente “designar” uma chave estrangeira.
no diagrama abaixo, veja a tabela de vendas. A Vendedora de colunas.,CurrencyRateID é uma chave estrangeira, uma vez que está relacionada com o CurrencyRate.CurrencyRateID. Esta coluna CurrencyRate.CurrencyRateID é a chave primária da tabela CurrencyRate.
Chaves Estrangeiras como Parte do Primárias
veja o seguinte diagrama. Que coluna é a chave estrangeira?
Se você disse que era PersonPhone.,Então tens razão. A razão pela qual é uma chave estrangeira é que está se referindo a uma chave primária, pessoa.Um homem de negócios, na outra mesa.
coincidentemente, PersonPhone.O businentityid não é apenas uma chave estrangeira, mas também faz parte da chave principal do PersonPhone. A chave principal da tabela PersonPhone é a combinação de direitos de Negócio, número de telefone e número de telefone.concordo que isto é confuso, mas é permitido e não é uma má prática.
Ao contrário das chaves primárias, as chaves estrangeiras podem conter valores duplicados. Além disso, é OK para eles conterem valores nulos.,
índices não são criados automaticamente para chaves estrangeiras; no entanto, como um DBA, você pode defini-las.uma tabela pode conter mais de uma chave estrangeira. Na tabela PersonPhone você pode encontrar a outra chave estrangeira (veja a resposta no final do artigo)?
encontrar chaves primárias e estrangeiras no Explorador de objectos
quando usar o SSMS, irá encontrar todo o tipo de informação útil no Explorador de objectos. Não é preciso cavar fundo para encontrar as chaves primárias. Quando você mostra as colunas de uma tabela, mas se carregar na pasta colunas, as colunas principais têm chaves douradas ao lado delas.,
além disso, se qualquer uma das chaves estrangeiras são definidos em restrições de chave estrangeira, que vamos aprender na seção a seguir, em seguida, as colunas têm FK depois deles. Estes são circulados em verde no diagrama acima.
restrições de Chave estrangeiras
alguns sistemas de gestão de bases de dados, como o servidor SQL, permitem-lhe configurar restrições de chave estrangeiras. Estes ajudam a reforçar a integridade referencial., Na sua forma mais simples, uma restrição de chave estrangeira impede-o de introduzir valores que não são encontrados na chave primária da tabela relacionada.
Usando o primeiro diagrama como nosso exemplo, você não pode entrar na SalesOrderHeader.CurrencyRateID se não existir já na tabela CurrencyRate.
estas restrições entram em vigor de várias formas:
- elas impedem-no de mudar o valor da chave estrangeira para um que não existe como um valor na chave primária da tabela relacionada.
- eles impedem-no de apagar uma linha da tabela de chaves primária. Isto impede-o de criar registos órfãos., Os registros órfãos são descritos como “registros infantis sem pais”.”
- eles impedem você de adicionar um valor chave estrangeiro que não existe na chave primária.
em resumo, as restrições impõem a relação entre os quadros principais primários e estrangeiros.
a Comparação de Chaves Primárias, Estrangeiras Teclas
Para resumir aqui está uma comparação de Primário para Chaves Estrangeiras
Resposta à Pergunta: antes que nós pedimos para você, para identificar a outra chave estrangeira na PersonPhone tabela. A resposta correta é PhoneNumberTypeID.
Deixe uma resposta