Diferença entre chave primária e chave estrangeira no DBMS

Autor: Laura McKinney
Data De Criação: 1 Abril 2021
Data De Atualização: 11 Poderia 2024
Anonim
Diferença entre chave primária e chave estrangeira no DBMS - Tecnologia
Diferença entre chave primária e chave estrangeira no DBMS - Tecnologia

Contente


As chaves são a parte crucial do DBMS que são usadas para identificar e estabelecer uma relação entre as tabelas em um esquema. Agora, hoje vamos discutir duas chaves muito importantes do DBMS, ou seja, chave primária e chave estrangeira, e também discutiremos a diferença entre chave primária e chave estrangeira. No caminho, deixe-me dizer-lhe que a diferença básica entre chave primária e chave estrangeira, que é a chave primária, é uma das chaves candidatas escolhidas pelo criador do banco de dados, enquanto uma chave estrangeira é uma chave que se refere à chave primária de outra relação.

Existem muitas outras diferenças entre esses dois, vamos identificar essas diferenças com a ajuda do gráfico de comparação mostrado abaixo.

  1. Gráfico de comparação
  2. Definição
  3. Principais diferenças
  4. Conclusão

Gráfico de comparação

Base para ComparaçãoChave primáriaChave estrangeira
BasicChave Primária é uma chave candidata escolhida que define exclusivamente uma tupla em uma relação.Chave estrangeira em uma tabela refere-se à chave primária de outra tabela.
NULOO valor da chave primária nunca pode ser NULL.Chave estrangeira aceita valor NULL.
DuplicadoNenhuma duas tuplas em uma relação carrega valores duplicados para um atributo de chave primária.As tuplas podem levar um valor duplicado para um atributo de chave estrangeira.
AlcancePode haver apenas uma chave primária de uma relação.Pode haver várias chaves estrangeiras em uma relação.
Tabela TemporáriaA restrição de chave primária pode ser definida nas tabelas temporárias.A restrição de chave estrangeira não pode ser definida nas tabelas temporárias.
Índice agrupadoPor padrão, uma chave primária é indexada em cluster.A chave estrangeira não é indexada em cluster automaticamente; isso tem que ser feito manualmente.
InserçãoPodemos inserir um valor em um atributo de chave primária, mesmo que a chave estrangeira de referência não tenha esse valor em sua coluna.Não podemos inserir um valor em uma chave estrangeira, se esse valor não estiver presente na coluna da chave primária referenciada.
EliminaçãoAntes de excluir um valor de chave primária, verifique se esse valor ainda não está presente na coluna de chave estrangeira de referência da tabela de referência.Você pode excluir um valor da coluna de chave estrangeira sem se preocupar, se esse valor está presente na coluna de chave primária referenciada da relação referenciada.


Definição da Chave Primária

Uma chave primária unicamente define tuplas em uma relação. Pode ser um único atributo em uma relação ou um conjunto de atributos em uma relação. O valor do atributo de chave primária deve nunca ou raramente mudou. Por ser um principal, significa identificar qualquer registro em um banco de dados. A alteração em qualquer valor de atributo da chave primária criaria confusão.

O designer de banco de dados escolhe um dos chaves candidatas como chave primária, levando alguns pontos em consideração. A primeira consideração é que um valor de atributo de chave primária nunca pode conter NULO valor. Porque, se um valor de atributo de chave primária contiver NULL, significa que não podemos identificar esse registro na tabela. Ele também viola a restrição de integridade da entidade. A segunda consideração é, não há duas tuplas em uma tabela pode conter o mesmo valor para um atributo de chave primária, pois isso violaria a exclusividade entre as tuplas.


Só pode haver uma chave primária para qualquer relação. A chave primária é por padrão indexado a cluster, o que significa que todas as tuplas em uma tabela são classificadas, com base nos valores dos atributos das chaves primárias. A restrição de chave primária pode ser definida em um mesa temporária. As tabelas intermediárias criadas durante a execução de uma consulta são chamadas de tabelas temporárias.

Enquanto excluindo uma tupla de uma relação, é necessário cuidar para que o valor da chave primária da tupla excluída ainda não esteja presente na coluna de chave estrangeira da relação de referência. Considerando que a inserção não possui restrições em uma chave primária.

A chave primária de uma tabela, quando usada em outra tabela, torna-se chave estrangeira para essa tabela. As restrições de chave estrangeira são discutidas abaixo.

Definição de Chave Estrangeira

Quando uma relação R1, entre seus atributos, tem um primário chave de outra relação R2, esse atributo é chamado Chave estrangeira para relação R1. A relação R1 contendo a chave estrangeira é chamado relação de referência como se refere à chave primária da relação R2 e relação R2 é chamado relação referenciada.
Ao contrário da chave primária, a chave estrangeira pode aceitar NULO valores porque, ele não tem a tarefa de identificar um registro distintamente em uma relação, pois temos a chave primária para isso. Da mesma forma, a chave estrangeira também aceita valores duplicados.

Uma relação pode ter múltiplo chaves estrangeiras, pois pode ter atributos diferentes que são chaves primárias em diferentes relações. A restrição de chave estrangeira pode não ser definido no mesas temporárias, nem uma chave estrangeira é uma indexado a cluster atributo.

Enquanto inserindo um valor em uma coluna de chave estrangeira da relação de referência, verifique se o valor de inserção deve estar presente na coluna de chave primária da relação referenciada. Considerando que não há restrições enquanto excluindo um valor da coluna chave estrangeira.

  1. Um primário é um conjunto de atributos / uma chave candidata que identifica distintamente um registro em uma relação. No entanto, uma chave estrangeira em uma tabela refere-se à chave primária de outra tabela.
  2. Nenhum atributo de chave primária pode conter valores NULL, enquanto um atributo de chave estrangeira pode aceitar um valor NULL.
  3. Uma chave primária deve ter valores de atributo exclusivos, enquanto que uma chave estrangeira pode ter valores de atributo duplicados.
  4. Pode haver várias chaves estrangeiras em uma relação, mas uma relação tem apenas uma chave primária.
  5. A restrição de chave primária pode ser aplicada às tabelas temporárias. No entanto, a restrição de chave estrangeira não pode ser aplicada às tabelas temporárias.
  6. Uma chave primária é indexada em cluster por padrão, enquanto uma chave estrangeira não é indexada em cluster automaticamente, mas pode ser feita manualmente.
  7. Ao inserir um valor em uma coluna de chave estrangeira, verifique se o valor do atributo de inserção está presente na coluna de chave primária referenciada. No entanto, não há restrição à inserção na coluna de chave primária.
  8. Ao excluir um valor da coluna de chave primária, verifique se o valor do atributo excluído não está presente na coluna de chave estrangeira de referência. No entanto, não há restrição em excluir um valor de uma coluna de chave estrangeira.

Conclusão:

Tanto a chave primária quanto a chave estrangeira são essenciais para um esquema. Uma chave primária define cada tupla em uma relação exclusivamente, enquanto uma chave estrangeira é usada para criar um vínculo entre duas relações.