Olá meu querido aluno,
Hoje nós vamos falar sobre os tipos de chave que nós encontramos na teoria de bancos de dados. Porém, antes disso, é necessário entender o conceito geral de chave.
Uma chave é um conjunto de um ou mais atributos que servem para identificar de forma única uma linha da minha tabela. Formalmente, chamamos as linhas de tuplas.
Por exemplo, podemos escolher o CPF ou o RG como uma chave. Note que as pessoas possuem um único CPF e um único RG. Assim tanto o CPF como RG podem ser usadas como chave para identificar de forma única um registro no meu banco de dados.
Ao invés de usar CPF, poderíamos usar uma chave que combina o atributo CPF com um atributo nome. Nesse caso, eu tenho uma superchave. Uma superchave tem a mesma característica de uma chave. Ou seja, identifica as linhas de forma única.
A partir de uma superchave eu posso sempre criar uma nova superchave. Para tanto, basta adicionar atributos. Por exemplo, poderia criar uma super chave formada pelos atributos CPF, nome e sobrenome.
Note que qualquer superconjunto de uma superchave é uma nova superchave. Ou seja, toda vez que eu adiciono uma coluna a minha superchave ela continua sendo superchave.
Em termo práticas, não é interessante o uso de superchaves quaisquer. O que queremos é usar superchaves mínimas.
E o que é uma superchave mínima? É aquele que se retirarmos um atributo ela deixa de ser chave. Ou seja, tem o mínimo de atributos necessários para ser uma chave.
As chaves mínimas são chamadas de chaves candidatas. Para um determinado projeto podemos ter várias chaves candidatas. Por exemplo, CPF e RG são exemplos de atributos que podem ser chaves candidatas.
O projetista do banco de dados tem que escolher uma das chaves candidata para usar efetivamente. Essa chave escolhida é chamada de chave primária. As demais chaves candidatas são chamadas de chaves alternativas.
Por fim, temos as chaves estrangeiras. A chave estrangeira é um atributo da tabela que é chave primária de outra tabela. Com isso é possível fazer um relacionamento entre duas tabelas.
(CESPE/2006) Chaves estrangeiras são, usualmente, chaves primárias de outras relações.
Certo.
Com vimos, As chaves estrangeiras é um atributo da tabela que é chave primária de outra tabela
(CESPE/MPU/2013) Uma chave primária não existe sem uma chave estrangeira correspondente.
Errado.
A chave primária não tem dependência com a estrangeira. Uma tabela não precisa ter uma chave estrangeira.
Muito boa explicaçãom, mas fiquei com algumas dúvidas:
1) Em que situações práticas meu projeto de BD pode ser implementado com uma superchave objetivando identificar uma tupla?
2) Não entendi o trecho: “E o que é uma superchave mínima? É aquele que se retirarmos um atributo ela deixa de ser chave. Ou seja, tem o mínimo de atributos necessários para ser uma chave”.
3) Qual a regra para eu ter uma superchave? Os exemplos a seguir, todos eles, seriam super-chaves?
Aluno (CPF, Nome, Endereço, etnia, nacionalidade, idade)
OU
Aluno (CPF, Nome, Endereço, etnia, nacionalidade)
OU
Aluno (CPF, Nome, Endereço, etnia)
OU
Aluno (CPF, Nome, Endereço)
OU
Aluno (CPF, Nome)