Q1: A sala 30 não é referenciada na tabela 'turmas', então pode ter o numero alterado ou ser deletada, diferente da sala 10. Q2: create table turmas2 (codd char(2) not null, turma char(1) not null, local smallint, primary key (codd, turma), foreign key(codd) references disciplinas on delete cascade, foreign key(local) references salas on update cascade on delete set null ); Q3: a) Sucesso, pois a política 'ON UPDATE CASCADE' da turmas2 pro local permite que o numero da sala seja alterado, atualizando na tabela de turmas. b) Sucesso, pois a política 'ON UPDATE SET NULL' da turmas2 pro local permite que a sala seja removida mesmo se referenciada, deixando um valor nulo na tabela em que é chamada. c) Sucesso, pois a política 'ON DELETE CASCADE' da turmas2 pro código da disciplina faz com que quando a disciplina seja deletada, remova todas as turmas em que era referenciada. d) Falha, pois não temos nenhuma política compensatória pra atualização do código da disciplina, o que restringe a alteração. Q4: Erro, porque está sendo referenciada por uma entrada da tabela 'professores', que não possui política compensatória pra isso, logo, restringe. Q5: CREATE TABLE AEROPORTOS (coda CHAR(3) NOT NULL, nome VARCHAR(60) NOT NULL, cidade VARCHAR(30) NOT NULL, pais VARCHAR NOT NULL, primary key(coda)); CREATE TABLE VOOS (codv CHAR(5) NOT NULL, origem CHAR(3) NOT NULL, destino CHAR(3) NOT NULL, horapartida time, primary key(codv), foreign key(origem) references AEROPORTOS(coda), foreign key(destino) references AEROPORTOS(coda)); Q6: CREATE TABLE PILOTOS (codp CHAR(4) NOT NULL, nomep VARCHAR(60), companhia varchar(50), primary key(codp)); CREATE TABLE ESCALACOES (codv CHAR(5) NOT NULL, data DATE NOT NULL, aviao VARCHAR(10), codp CHAR(4), primary key(codv, data), foreign key (codp) references PILOTOS(codp)), foreign key (codv) references VOOS(codv)); Q7: CREATE TABLE AEROPORTOS (coda CHAR(3) NOT NULL, nome VARCHAR(60) NOT NULL, cidade VARCHAR(30) NOT NULL, pais VARCHAR NOT NULL, primary key(coda)); CREATE TABLE VOOS (codv CHAR(5) NOT NULL, origem CHAR(3) NOT NULL, destino CHAR(3) NOT NULL, horapartida time, primary key(codv), foreign key(origem) references AEROPORTOS(coda) on update cascade, foreign key(destino) references AEROPORTOS(coda) on update cascade); CREATE TABLE PILOTOS (codp CHAR(4) NOT NULL, nomep VARCHAR(60), companhia varchar(50), primary key(codp)); CREATE TABLE ESCALACOES (codv CHAR(5) NOT NULL, data DATE NOT NULL, aviao VARCHAR(10), codp CHAR(4), primary key(codv, data), foreign key (codv) references VOOS(codv) on delete cascade, foreign key (codp) references PILOTOS(codp) on delete set null ); Q8: insert into aeroportos values ('a1', 'aeroporto1', 'porto alegre', 'BR'); insert into aeroportos values ('a2', 'aeroporto2', 'sao paulo', 'BR'); insert into voos values ('v1', 'a1', 'a2', '9:30'); insert into pilotos values ('p1', 'maria', 'gol'); insert into escalacoes values ('v1', '1-1-2025', '737', 'p1'); UPDATE voos SET codv = 'v100' WHERE codv = 'v1'; -- falha, não tem política compensatória pra vôo referenciado. DELETE FROM voos WHERE codv = 'v1'; -- sucesso! SELECT * FROM voos; -- vazio, pois ON DELETE CASCADE