Questão nº 72

Questão de Administração de Banco de Dados · FGV MPAL 2018 (nº 72)

FGV2018Analista do Ministério Público - Administrador de Banco de DadosAdministração de Banco de Dados
Gabarito: Dver comentário ↓

Considere o diagrama IDEF1X a seguir.

Figura da questão de Administração de Banco de Dados

Assinale a opção que apresenta o script SQL que cria a tabela E1 corretamente.

Resposta comentada

Gabarito Alternativa D

Modelagem de Dados em IDEF1X é como traduzir o desenho de um banco de dados para o código SQL que o cria. Cada caixa (entidade) vira uma tabela, e cada item dentro da caixa (atributo) vira uma coluna. As linhas entre as caixas (relacionamentos) definem como as tabelas se conectam, usando chaves primárias (identificadores únicos) e chaves estrangeiras (referências a outras chaves primárias).

(A) Incorreta: `AA int not null`. O losango (diamante) na extremidade "pai" da relação indica que a chave estrangeira `AA` é opcional e, portanto, pode ser `NULL`.
(B) Incorreta: `AA int not null`. Assim como na alternativa A, `AA` deve ser `NULL`able devido ao losango na relação.
(C) Incorreta: `AA int null`. Embora a nulidade de `AA` esteja correta (devido ao losango), esta alternativa não inclui a restrição `UNIQUE`. Armadilha da Banca: A ausência de uma indicação explícita de `UNIQUE` no diagrama (como um `(AK)` ou uma cardinalidade 0..1:0..1 em vez do ponto de "muitos") torna esta a alternativa mais tentadora para quem segue estritamente a notação padrão do IDEF1X para a cardinalidade "muitos". No entanto, a opção correta (D) exige a unicidade de `AA`.
(D) Correta: `A1 int not null primary key` define a chave primária da tabela E1, que é sempre não nula e única. `B1 int null` define um atributo comum que pode ser nulo. `AA int null unique` define a chave estrangeira `AA` como `NULL`able (devido ao losango na relação, indicando que a relação é opcional) e `UNIQUE`. A restrição `UNIQUE` implica que, embora `AA` possa ser nulo, quando não for nulo, cada valor de `AA` deve ser distinto na tabela. `constraint FK_X foreign key (AA) references E1(A1)` estabelece a referência de `AA` para `A1` na própria tabela `E1`, caracterizando uma relação recursiva.
(E) Incorreta: `AA int not null unique`. A chave estrangeira `AA` deve ser `NULL`able devido ao losango na relação, tornando `not null` incorreto.

Fonte: FGV MPAL 2018 Analista do Ministério Público - Administrador de Banco de Dados (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho