- ID
- 2764453
- Banca
- FAURGS
- Órgão
- TJ-RS
- Ano
- 2018
- Provas
- Disciplina
- Banco de Dados
- Assuntos
As tabelas DISCIPLINAS, ALUNOS, e MATRICULAS,
definidas abaixo, usando SQL (padrão SQL2 ou superior),
representam alunos, disciplinas oferecidas em um curso
e matrículas de alunos nestas disciplinas.
create table ALUNOS
(coda integer not null primary key,
nomea varchar(60) not null);
create table DISCIPLINAS
(codd integer not null primary key,
nomed varchar(100) not null,
professor varchar(2) not null);
create table MATRICULAS
(coda integer not null,
codd integer not null,
nota integer not null,
primary key (coda, codd),
foreign key (coda) references ALUNOS,
foreign key (codd) references DISCIPLINAS);
Considere as seguintes consultas SQL no mesmo
padrão, formuladas utilizando subconsultas.
I - SELECT distinct nomea, codd, nota
FROM alunos natural join matriculas
WHERE codd not in
(SELECT distinct codd
FROM disciplinas
WHERE professor = 'joao da silva');
II - SELECT distinct nomea, codd, nota
FROM alunos natural join matriculas
WHERE coda not in
(SELECT distinct coda
FROM disciplinas natural join matriculas
WHERE professor = 'joao da silva');
III- SELECT distinct nomea, codd, nota
FROM alunos natural join matriculas
WHERE coda in
(SELECT distinct coda
FROM matriculas
WHERE nota = 10);
Quais dentre as consultas acima NÃO poderiam ser
reescritas em termos das tabelas DISCIPLINAS,
MATRICULAS E ALUNOS sem uso de subconsulta em
nenhuma porção da consulta SQL, e sem utilizar a
mesma tabela mais de uma vez na cláusula FROM?