Sobre os conceitos de banco de dados, é correto afirmar que
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C - é possível ter mais de uma, ou nenhuma, chave estrangeira em uma tabela.
Para entender essa afirmação, precisamos revisar alguns conceitos fundamentais em bancos de dados relacionais:
- Chave Primária (Primary Key): é um conjunto de um ou mais campos que, juntos, são únicos para cada registro na tabela e nunca podem ser nulos. Eles identificam exclusivamente uma linha na tabela.
- Chave Estrangeira (Foreign Key): é um campo (ou conjunto de campos) em uma tabela que faz referência à chave primária de outra tabela. O propósito da chave estrangeira é garantir a integridade referencial dos dados, isto é, apenas permitir valores que já existam na tabela referenciada.
Com base nesses conceitos, vamos analisar a alternativa correta:
A alternativa C está correta porque em um banco de dados, uma tabela pode ter várias chaves estrangeiras, representando diferentes relações com outras tabelas. Por exemplo, uma tabela de Pedidos pode ter uma chave estrangeira para a tabela de Clientes e outra para a tabela de Produtos. Além disso, uma tabela também pode não ter nenhuma chave estrangeira, o que seria o caso se ela não estivesse diretamente relacionada a nenhuma outra tabela.
Essa flexibilidade permite que o banco de dados seja projetado para atender a uma variedade de relacionamentos complexos que podem existir entre as entidades que ele representa. A presença ou ausência de chaves estrangeiras é determinada pelas regras de negócio e pelo modelo de dados que está sendo implementado.
Em resumo, a alternativa C está correta pois reflete a natureza flexível do design de bancos de dados relacionais no que diz respeito à utilização de chaves estrangeiras, que podem variar em número e até mesmo estar ausentes em uma tabela.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Chave estrangeira (FK) é aquela que faz referência a uma chave primária (PK) ou candidata em outra tabela. É importante ressaltar que essas tabelas pertences ao mesmo banco de dados.
Quando temos uma chave estrangeira em uma tabela, estamos diante de um relacionamento, que são as associações entre as tabelas. A tabela não precisa ter relação com outra tabela, assim como pode ter relacionamento com uma ou mais tabelas, por esse motivo é possível ter mais de uma FK ou nenhuma FK.
GABARITO: LETRA C
B. a chave estrangeira pode ser nula assim como a chave primária.
INCORRETO. É necessário que os atributos da chave primária sejam não nulos e únicos, isto é, nenhuma tupla [linha] pode ter um valor nulo para um atributo de chave primária, e nenhum par de tuplas na relação pode ser igual em todos os atributos de chave primária. Embora a especificação de chave primária seja opcional, geralmente é um boa ideia especificar uma chave primária para cada relação.
(Fonte: Sistema de banco de dados/ Avi Silberschatz, Henry F. Korth, S. Sudarshan; Tradução: Daniel Vieira. Rio de Janeiro: Elsevier, 2012. Pg. 39)
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.
(Fonte: https://www.devmedia.com.br/sql-aprenda-a-utilizar-a-chave-primaria-e-a-chave-estrangeira/37636. Acesso em 21/03/2020)
C. é possível ter mais de uma, ou nenhuma, chave estrangeira em uma tabela.
CORRETO. Diferentemente da chave primária, a chave estrangeira:
1. Pode ser nula;
2. É um campo em uma tabela que faz referência a um campo que é chave primária em outra tabela;
3. É possível ter mais de uma (ou nenhuma) em uma tabela.
Fonte: https://www.devmedia.com.br/sql-aprenda-a-utilizar-a-chave-primaria-e-a-chave-estrangeira/37636. Acesso em 21/03/2020)
D. chaves primárias ou estrangeiras, quando compostas por mais de um atributo, só podem ter seus registros deletados em operações do tipo bloco.
INCORRETO. Usando restrições de integridade referencial em cascata, é possível definir as ações que o Mecanismo de Banco de Dados executa quando o usuário tenta excluir ou atualizar uma chave para a qual apontam as chaves estrangeiras existentes.
Fonte: https://docs.microsoft.com/pt-br/sql/relational-databases/tables/primary-and-foreign-key-constraints?view=sql-server-ver15. Acesso em 21/03/2020.
E. a chave estrangeira apresenta valores distintos dos valores da chave primária a que faz referência.
INCORRETO. Uma chave estrangeira é um conjunto de atributos em uma relação referenciadora, tal que para cada tupla na relação referenciadora, os valores dos atributos da chave estrangeira precisam estar presentes como valor de chave primária de um tupla na relação referenciada.
A especificação de foreing key (chave estrangeira) diz que os valores dos atributos para qualquer tupla [linha] na relação devem corresponder aos valores dos atributos de chave primária de alguma tupla na relação S.
(Fonte: Sistema de banco de dados/ Avi Silberschatz, Henry F. Korth, S. Sudarshan; Tradução: Daniel Vieira. Rio de Janeiro: Elsevier, 2012.)
Sobre os conceitos de banco de dados, é correto afirmar que
A. as alterações feitas nas restrições da chave primária não se refletem em mudanças das restrições da chave estrangeira nas tabelas relacionadas.
INCORRETO. Uma restrição FOREIGN KEY impede essa situação. A restrição impõe a integridade referencial ao garantir que não possam ser feitas alterações na tabela de chave primária se essas alterações invalidarem o link para os dados na tabela de chave estrangeira. Se for feita uma tentativa de exclusão da linha em uma tabela de chave primária ou alteração de um valor de chave primária, a ação apresentará falha quando o valor de chave primária excluído ou alterado corresponder a um valor na restrição FOREIGN KEY de outra tabela. Para obter sucesso ao alterar ou excluir uma linha em uma restrição FOREIGN KEY, você precisa primeiro excluir os dados de chave estrangeira da tabela de chave estrangeira ou alterar os dados de chave estrangeira na tabela de chave estrangeira, o que vinculará a chave estrangeira aos diversos dados de chave primária.
Fonte: https://docs.microsoft.com/pt-br/sql/relational-databases/tables/primary-and-foreign-key-constraints?view=sql-server-ver15. Acesso em 21/03/2020.
Tudo vai depender da cardinalidade da modelagem
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo