Seja a tabela a seguir, escrita segundo o modelo relacional ...

Próximas questões
Com base no mesmo assunto
Q2768799 Arquitetura de Software

Seja a tabela a seguir, escrita segundo o modelo relacional de dados.


EMPRESA (codigo, nome, atividade, filial), no qual todos os campos são texto de até 10 posições, o campo código é chave primária, os campos nome e atividade não podem ser nulos e o campo filial é chave estrangeira relacionada ao campo fl da tabela FILIAL.


Então, o comando SQL (segundo a sintaxe do Oracle) para criar essa tabela é o seguinte:

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: D

Para resolver essa questão, você precisa ter conhecimento em comandos SQL de criação de tabelas, especificamente utilizando a sintaxe do Oracle. Além disso, é necessário entender conceitos como chave primária, chave estrangeira e restrições de integridade.

A alternativa D é a correta, pois ela contém o comando SQL correto para criar a tabela EMPRESA conforme os requisitos apresentados.

Vamos analisar a alternativa correta (D) e o porquê das outras estarem incorretas:

Alternativa D
CREATE TABLE EMPRESA (codigo VARCHAR(10), nome VARCHAR(10) NOT NULL, atividade VARCHAR(10) NOT NULL, filial VARCHAR(10), CONSTRAINT Chave1 PRIMARY KEY (codigo), CONSTRAINT Chave2 FOREIGN KEY (filial) REFERENCES FILIAL (fl));

Esta alternativa está correta porque:

  • Define os campos nome e atividade como NOT NULL, conforme exigido.
  • Define codigo como chave primária usando a cláusula CONSTRAINT Chave1 PRIMARY KEY (codigo), garantindo que codigo seja único e não nulo.
  • Define filial como chave estrangeira relacionada ao campo fl da tabela FILIAL usando a cláusula CONSTRAINT Chave2 FOREIGN KEY (filial) REFERENCES FILIAL (fl).

Agora, vamos ver o que está errado nas outras opções:

Alternativa A
CREATE TABLE EMPRESA (codigo VARCHAR(10) PK, nome VARCHAR(10) NOT NULL, atividade VARCHAR(10) NOT NULL, filial VARCHAR(10) FK, REFERENCES FILIAL (fl));

Esta alternativa está incorreta porque:

  • Os termos PK e FK não são válidos na definição de colunas no Oracle. Deveriam ser usadas as cláusulas PRIMARY KEY e FOREIGN KEY.

Alternativa B
CREATE TABLE EMPRESA (PRIMARY KEY codigo VARCHAR(10), nome VARCHAR(10), atividade VARCHAR(10), FOREIGN KEY (FILIAL) filial VARCHAR(10) NULL);

Esta alternativa está incorreta porque:

  • A sintaxe está incorreta no uso de PRIMARY KEY e FOREIGN KEY. Estas restrições devem ser declaradas como CONSTRAINTS.
  • Não define explicitamente que os campos nome e atividade são NOT NULL.

Alternativa C
CREATE TABLE EMPRESA (codigo VARCHAR(10) NOT NULL, nome VARCHAR(10) NOT NULL, atividade VARCHAR(10) NOT NULL, filial VARCHAR(10) NOT NULL), PRIMARY KEY (codigo), FOREIGN KEY (filial) REFERENCES FILIAL (fl));

Esta alternativa está incorreta porque:

  • Define o campo filial como NOT NULL, o que não é especificado no enunciado da questão.

Gostou do comentário? Deixe sua avaliação aqui embaixo!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo