Para responder à questão, considere um banco de dados PostgreSQL, com tabelas e dados criados pelos comandos abaixo.
CREATE TABLE aluno
(id serial primary key, nome varchar not null,
indice_academico numeric(8,2));
CREATE TABLE nota
(id serial primary key, id_aluno integer not null,
id_disciplina integer not null, media numeric(8,2) not null);
ALTER TABLE public.nota ADD FOREIGN KEY (id_aluno)
REFERENCES public.aluno (id)
ON UPDATE NO ACTION
ON DELETE NO ACTION;
insert into aluno (id, nome) values (1, 'Alberto');
insert into aluno (id, nome) values (2, 'Bernardo');
insert into nota (id_aluno, id_disciplina, media) values (1, 1, 3);
insert into nota (id_aluno, id_disciplina, media) values (1, 2, 4);
insert into nota (id_aluno, id_disciplina, media) values (2, 1, 5);
insert into nota (id_aluno, id_disciplina, media) values (2, 2, 6);
insert into nota (id_aluno, id_disciplina, media) values (2, 3, 7);
O PostgreSQL, ao executar os comandos
begin;
update aluno set indice_academico = null where id = 1;
update nota set id_aluno = null where id_aluno = 1;
commit;