Fiquei bem perdido do capítulo 2 em diante, entendi a relação das tables através do campo de ligação relacionado nomeado %_id em ambas, mas a progressão da explicação dos capítulos foi rápida demais, em minha opinião seria interessante alguma forma de visualizar graficamente essas relações pra entender o porquê de uma sequência tão grande de joins quando desejamos consultar apenas poucos campos, exemplo:
select a.nome, c.nome, avg(n.nota) from
nota n
join resposta r on r.id = n.resposta_id
join exercicio e on e.id = r.exercicio_id
join secao s on s.id = e.secao_id
join curso c on c.id = s.curso_id
join aluno a on a.id = r.aluno_id
group by c.nome, a.nome
having avg(n.nota) < 5
Outra dúvida é a questão da nomenclatura, qual o motivo mesmo (talvez eu tenha deixado passar na explicação) de darmos a letra antes do campo a ser utilizado (ex o 'r' em 'resposta r on r.id') , esse alias é pra facilitar em querys muito grandes onde o mesmo deve ser chamado varias vezes e é bom criar o costume de escrever o código sql assim?