Questão nº 48
Questão de Banco de Dados · FGV CGE-SC 2022 (nº 48)
Em 1970, Codd propôs o modelo de dados relacional. Na época, os bancos de dados usavam modelos hierárquicos e de rede. O modelo relacional revolucionou a área de banco de dados deixando os dois outros modelos praticamente esquecidos.
Como o nome do modelo já diz, um banco de dados relacional é uma coleção de relações com nomes distintos entre entidades.
Um banco de dados é considerado bom quando o SGBD garante que as informações sendo armazenadas estão corretas e, para isso, é utilizado o conceito de restrições de integridade.
Assim, para garantir a integridade dos dados, SGBDs como o Microsoft SQL Server implementam o conceito de chaves primária e estrangeiras.
Em relação a chaves primárias e estrangeiras no Microsoft SQL Server, assinale V para a afirmativa verdadeira e F para afirmativa falsa.
( ) Se, ao criar uma chave primária em uma tabela, não for especificado NOCLUSTERED ou CLUSTERED e se essa tabela não possuir um índice CLUSTERED, por definição a chave primária é criada junto a um índice CLUSTERED.
( ) Os dados das colunas usadas para compor a chave primária devem possuir valores exclusivos, de modo que o valor NULL só pode aparecer uma vez.
( ) Uma chave estrangeira de uma tabela pode fazer referência a uma coluna de outra tabela de outro banco de dados.
( ) Uma chave estrangeira de uma tabela não precisa estar vinculado a uma chave primária de outra tabela, desde que a coluna referenciada seja UNIQUE.
As afirmativas são, respectivamente,
- AF, F, V e V.
- BV, F, V e F.
- CV, F, F e V. (alternativa correta)
- DF, V, V e F.
- EV, F, F e F.
Resposta comentada
Gabarito Alternativa C
Uma Chave Primária (PK) é uma coluna (ou conjunto de colunas) em uma tabela que identifica de forma única cada registro, garantindo que não haja duplicatas e que nenhum valor seja nulo. Uma Chave Estrangeira (FK) é uma coluna (ou conjunto de colunas) em uma tabela que estabelece um vínculo com a Chave Primária (ou uma chave única) de outra tabela, garantindo a integridade referencial entre elas.
- (A) Incorreta: A alternativa A é "F, F, V e V", o que não corresponde ao gabarito oficial.
- (B) Incorreta: A alternativa B é "V, F, V e F", o que não corresponde ao gabarito oficial.
- (C) Correta:
- (V) Se, ao criar uma chave primária em uma tabela, não for especificado NOCLUSTERED ou CLUSTERED e se essa tabela não possuir um índice CLUSTERED, por definição a chave primária é criada junto a um índice CLUSTERED. (No SQL Server, por padrão, uma
PRIMARY KEYcria um índiceCLUSTEREDse a tabela ainda não tiver um. Se já houver umCLUSTEREDindex, aPRIMARY KEYcriará umNONCLUSTEREDindex por padrão.) - (F) Os dados das colunas usadas para compor a chave primária devem possuir valores exclusivos, de modo que o valor NULL só pode aparecer uma vez. (Uma
PRIMARY KEYnão permite valoresNULLem nenhuma de suas colunas. A restriçãoNOT NULLé intrínseca àPRIMARY KEY. A armadilha aqui é que uma restriçãoUNIQUEpode permitir um único valorNULLem algumas implementações de SGBD, mas isso não se aplica àPRIMARY KEY.) - (F) Uma chave estrangeira de uma tabela pode fazer referência a uma coluna de outra tabela de outro banco de dados. (Chaves estrangeiras no SQL Server (e na maioria dos SGBDs relacionais) só podem referenciar tabelas dentro do mesmo banco de dados para garantir a integridade referencial.)
- (V) Uma chave estrangeira de uma tabela não precisa estar vinculado a uma chave primária de outra tabela, desde que a coluna referenciada seja UNIQUE. (Uma
FOREIGN KEYpode referenciar tanto umaPRIMARY KEYquanto qualquer coluna (ou conjunto de colunas) que possua uma restriçãoUNIQUEeNOT NULL, pois ambas garantem a unicidade dos valores referenciados.)
- (V) Se, ao criar uma chave primária em uma tabela, não for especificado NOCLUSTERED ou CLUSTERED e se essa tabela não possuir um índice CLUSTERED, por definição a chave primária é criada junto a um índice CLUSTERED. (No SQL Server, por padrão, uma
- (D) Incorreta: A alternativa D é "F, V, V e F", o que não corresponde ao gabarito oficial.
- (E) Incorreta: A alternativa E é "V, F, F e F", o que não corresponde ao gabarito oficial.
Fonte: FGV CGE-SC 2022 Auditor do Estado - Ciências da Computação (Caderno Tipo 1). Reproduzida para fins de estudo.