Gabarito aos não assinantes: Letra E.
Chave estrangeira consiste em uma chave que faz referência à chave primária de outra tabela. Adicionalmente, ela também pode fazer referência à própria tabela/relação.
Para ser considerada chave estrangeira, deve-se observar as seguintes condições:
- As colunas que a compõem devem ter o mesmo domínio que as colunas da chave primária
- O valor da chave estrangeira deve também ocorrer na tabela referenciada
Ademais, a chave estrangeira:
- Pode ter valores NULL
- Especifica a integridade referencial
(Q794404/IBFC/Polícia Científica/2017/Adaptada) No modelo relacional, cada registro de uma tabela tem um identificador único chamado de chave primária. O nome da chave primária utilizada como referência em outro registro de outra tabela é denominado de chave estrangeira. (Certo)
A chave primária, ou primary key, é o conceito mais básico relacionado à organização em um banco de dados. Toda tabela possuirá uma, e somente uma, chave primária. Essa chave é utilizada como identificador único da tabela, sendo representada por aquele campo (ou campos) que não receberá valores repetidos.
Por causa disso, existe uma lista de características que deve ser levada em consideração ao definir uma chave primária:
- Chaves primárias não podem ser nulas;
- Cada registro na tabela deve possuir uma, e somente uma, chave primária;
- Normalmente, chaves primárias são incrementadas automaticamente pelo banco de dados, ou seja, não há necessidade de passarmos esse valor em um . Entretanto, essa é uma opção configurada na criação da base de dados que não é obrigatória. Nos casos em que ela (incremento automático) não é definida, é preciso garantir que não haverá valores repetidos nessa coluna;
- São as chaves para o relacionamento entre entidades ou tabelas da base de dados. Assim haverá na tabela relacionada uma referência a essa chave primária (que será, na tabela relacionada, a chave estrangeira).
A chave estrangeira, ou foreign key, é um conceito ligeiramente diferente. Ela não diz respeito, especificamente, a uma tabela, mas sim a um relacionamento entre tabelas. De forma sucinta, a chave estrangeira é uma referência em uma tabela a uma chave primária de outra tabela. Para facilitar a compreensão, tomemos como exemplo duas tabelas: Pessoa e Carro. Para montarmos um relacionamento entre elas poderíamos ter na tabela Carro o campo ID_Pessoa fazendo referência à chave primária da tabela Pessoa.
Diferentemente da chave primária, a chave estrangeira:
- Pode ser nula (NOT NULL);
- É um campo em uma tabela que faz referência a um campo que é chave primária em outra tabela;
- É possível ter mais de uma (ou nenhuma) em uma tabela.
Um alerta: embora não haja, efetivamente, nenhum problema das chaves estrangeiras aceitarem o valor null, tal característica pode gerar o que é chamado de registro órfão, isto é, um registro sem dados para um determinado relacionamento. Por exemplo, um registro de Pessoa que não possui Carro. Embora comum na realidade, é preciso levar em consideração essa regra de negócio na aplicação para evitar problemas.