- 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?