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.
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.
Com relação ao banco de dados BOOKS, analise os comandos SQL
exibidos a seguir:
I.select *
from oferta o, livro l, autor a, livraria ll
where o.livroid=l.livroid and
o.livrariaid=ll.livrariaid and l.autorid=a.autorid
II.select *
from oferta o inner join livro l on
o.livroid=l.livroid
inner join autor a on l.autorid=a.autorid
inner join livraria ll on
o.livrariaid=ll.livrariaid
III.select *
from oferta o left join livro l on
o.livroid=l.livroid
left join autor a on l.autorid=a.autorid
left join livraria ll on
o.livrariaid=ll.livrariaid
É correto afirmar que:
Algumas das mais importantes implementações de bancos de
dados relacionais dispõem do comando TRUNCATE para remover
registros de uma tabela.
Considere as seguintes opções para remover registros de uma
tabela T:
I.Usando o comando DELETE;
II.Usando o comando TRUNCATE;
III.Removendo a tabela T e executando um comando CREATE
TABLE para recriá-la em seguida.
Sobre essas opções, é correto afirmar que:
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.
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.
Considere uma implementação Oracle do banco BOOKS.
I.select rownum, autornome
from autor
II.select rownum, autornome
from autor
order by nome
III.select rownum, autornome
from (select * from autor order by autornome)
O resultado
para qualquer que tenha sido a ordem de inclusão dos registros
na tabela, pode ser obtido somente pelo(s) comando(s):
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.
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.
Quando executado no contexto do banco de dados BOOKS, o
comando SQL
select numlivrarias from livro
where numlivrarias > 0
union
select numlivrarias from livro
where numlivrarias <= 0
produz um resultado cujo número de linhas, além da linha de
título, é:
Analise o seguinte script SQL executado num banco de dados
Oracle.
create or replace type type_nota_varray as varray
(5) of number (3,1) ;
create or replace type type_inscricao_obj as
object
( coddisciplina number(3,0),
nota type_nota_varray
) ;
create or replace type type_inscricao_nested as
table of type_inscricao_obj ;
create table aluno
(
matricula int not null,
nome varchar (40) not null,
codcurso char (3),
inscricoes type_inscricao_nested
)
nested table inscricoes store as aluno_inscricoes
;
O comando que retorna corretamente a lista de alunos com suas
respectivas disciplinas e notas é:
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:
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.
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.
No banco de dados BOOKS, o campo NumLivrarias, da tabela Livro, contém informação redundante, pois denota o número de livrarias que oferecem o livro e pode ser computado. O comando SQL que calcula e atualiza esse campo corretamente é:
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.
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.
No banco de dados BOOKS, a lista de todas as dependências funcionais que devem existir para que a tabela “Oferta” esteja normalizada até a forma Boyce-Codd é:
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.
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.
No PostGreSQL, a linguagem PL/pgSQL pode ser utilizada para definir procedures que são executadas como triggers, quando várias “special variables” são criadas, no escopo do bloco mais externo, e tornam-se disponíveis para uso no código da procedure. Nesse contexto, analise as seguintes afirmativas sobre algumas dessas variáveis e o funcionamento de triggers no PostgreSQL: I.A variável NEW contém um valor booleano que indica se o registro objeto do trigger está sendo incluído (true) ou não (false). II.A variável NEW contém os campos de um registro que está sendo incluído (insert) ou alterado (update). III.A variável TG_OP contém uma string que determina o nome da operação que desencadeou o trigger (insert, update, etc.). IV.Na declaração de um trigger, as opções FOR EACH ROW e FOR EACH STATEMENT são equivalentes, tendo sido mantidas apenas para efeito de compatibilidade com versões anteriores. Está correto somente o que se afirma em:
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.
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.
No MS SQL Server, o comando SQL
select ll.livrariaNome, a.autorNome
from Livraria ll, Autor a
where
exists
(select * from Oferta o
where o.LivrariaID=ll.livrariaID)
and not exists
(select * from Livro l
where l.autorID=a.autorID
and not exists
(select * from Oferta o
where o.LivroID=l.livroID and
o.LivrariaID=ll.livrariaID))
produz, para as tabelas do banco de dados BOOKS, uma lista
contendo nomes de livrarias e nomes de autores, tal que, para
cada linha, a livraria listada:
Analise o scritpt Oracle PL/SQL a seguir:
DECLARE
c_livroid livro.livroid%type;
c_titulo livro.titulo%type;
CURSOR c_livros is
SELECT livroid, titulo FROM livro;
BEGIN
OPEN c_livros;
LOOP
.......;
EXIT WHEN c_livros%notfound;
dbms_output.put_line(c_livroid || ' ' ||
c_titulo);
END LOOP;
CLOSE c_livros;
END;
Para que esse script funcione corretamente, exibindo os códigos
identificadores e títulos de cada livro, a linha pontilhada deve ser
substituída por:
Uma determinada aplicação web-based acessa diferentes bases de dados relacionais. Nesse contexto, um Servidor de Aplicação deve ser utilizado para: