Imagem de fundo

João foi incumbido de rever um lote de consultas SQL. Como...

Atenção:


Algumas das questões seguintes fazem referência a um banco de dados relacional intitulado BOOKS, cujas tabelas e respectivas instâncias são exibidas a seguir. Essas questões referem-se às instâncias mostradas.


AUTOR


AutorID

AutorNome

1

2

3

Arthur Conan Doyle

Agatha Christie

Edgar Allan Poe


LIVRARIA


LivrariaID

LivrariaNome

1

2

3

4

Cultural

Travessia

Amazonas

Kremlin


LIVRO


LivroID

AutorID

Titulo

NumLivrarias

1

1

O Cão dos Baskervilles

NULL

2

1

As Aventuras de Sherlock Holmes

2

3

2

Assassinato no Expresso do Oriente

2

4

2

O Mistério dos Sete Relógios

3

5

3

Assassinatos na Rua Morgue

NULL


OFERTA


LivrariaID

LivroID

Preco

1

1

1

1

1

2

2

2

3

3

1

2

3

4

5

1

2

4

3

4

32

28

45

38

23

56

54

43

35

38


A tabela Livro representa livros. Cada livro tem um autor, representado na tabela Autor. A tabela Oferta representa os livros que são ofertados pelas livrarias, estas representadas pela tabela Livraria. NULL significa um campo não preenchido.


AutorID, LivrariaID e LivroID, respectivamente, constituem as chaves primárias das tabelas Autor, Livraria e Livro.


LivrariaID e LivroID constituem a chave primária da tabela Oferta.

João foi incumbido de rever um lote de consultas SQL. Como ainda é iniciante nesse assunto, João solicitou ajuda ao colega que lhe pareceu ser o mais experiente, e recebeu as seguintes recomendações gerais:


I. use a cláusula DISTINCT somente quando estritamente necessária;

II. dê preferência às junções externas (LEFT, RIGHT, OUTER) em relação às internas (INNER);

III. use subconsultas escalares no comando SELECT, tais como “SELECT x,y,(SELECT ...) z ..." sempre que possível.


Sobre essas recomendações, é correto afirmar que:


A

nenhuma é adequada;


B

somente I é adequada;


C

somente I e II são adequadas;


D

somente II e III são adequadas;


E

todas são adequadas.