Analise o comando de criação da tabela teste, com cinco con...

Próximas questões
Com base no mesmo assunto
Q914411 Banco de Dados
Analise o comando de criação da tabela teste, com cinco constraints, exibido a seguir.
create table teste ( a int null, b varchar (40) not null, c int, constraint pk_a primary key (a), constraint fk_a_c foreign key (c) references teste, constraint uq_b unique (b), constraint up_c unique (c), constraint ch_1 check ( a >= 0.5 * c ) )
Assinale a constraint desse script que seria rejeitada no MS SQL Server.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: A - A primeira.

A questão aborda o tema de constraints (restrições) em uma tabela de banco de dados no SQL Server. As constraints são regras aplicadas aos dados nas tabelas para garantir a integridade, a unicidade, e outros aspectos importantes do gerenciamento de dados. Vamos entender cada uma das constraints mencionadas no comando de criação da tabela teste:

  • PRIMARY KEY (pk_a): Define a coluna a como chave primária da tabela, o que significa que os valores nesta coluna devem ser únicos e não nulos.
  • FOREIGN KEY (fk_a_c): Define uma relação de chave estrangeira na coluna c, associando-a a outra tabela. No caso do comando, indica que c deve referenciar a própria tabela teste, o que é incomum e geralmente não é uma prática aceita.
  • UNIQUE (uq_b e up_c): Define que os valores nas colunas b e c devem ser únicos na tabela, respectivamente.
  • CHECK (ch_1): Define uma regra de validação para os dados inseridos, no caso, que o valor na coluna a deve ser maior ou igual a metade do valor na coluna c.

O motivo pelo qual a primeira constraint, a de chave primária, seria rejeitada é que ela está definida para a coluna a, que foi declarada como NULL. Uma chave primária não pode conter valores nulos, pois cada registro na tabela necessita ter um valor único e identificável na coluna da chave primária.

Portanto, é fundamental que um candidato a concurso público com foco em Banco de Dados e SQL Server compreenda as regras e limitações das constraints para poder criar tabelas corretamente e garantir a integridade dos dados dentro do banco de dados.

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

Uma vez que um atributo chave não pode ser null, não
será possível que a primeira constraint seja validada.

Todos os comandos de criação das constraints estão bem formados, não há nenhum tipo de erro de sintaxe.

O erro da questão reside no fato de que a chave primária está sendo definida no campo a, ao mesmo tempo em que o campo a é definido como null, ou seja, que pode aceitar valores nulos.

Assim há uma inconsistência nesse código, já que nenhuma chave primária pode assumir valores nulos.

A primeira constraint é a que contém o erro.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo