In pratica ti chiede di aggiornare il codice del corso da DB a DB1, questo nella tabella CORSO. Però, tra CORSO e DOCENZA c'è un vincolo inter-relazionale, quindi non puoi aggiornare tranquillamente il codice, perchè così facendo è come se il valore di DOCENZA.Docente (che è uguale a DB) divenisse "non valido" (perchè non è più presente in CORSO). Allora nella prima query ti crei una nuova tupla nella tabella CORSO dove CORSO.Codice=DB1 e assegni i restanti valori, altrimenti avresti perdita di informazione (infatti, la tupla con primary key DB1 avrebbe attributi non primi settati a NULL). A questo punto DOCENZA.Corso potrà assumere il valore DB1, ecco quindi la query con update. Infine, la tupla in cui CORSO.Codice=DB non ti serve più e la puoi rimuovere con la terza query, siccome nessuna tupla di DOCENZA userà più DB.
In parole povere, è come se tu nella tabella CORSO crei una copia della tupla con Codice=DB, gli cambi il valore della chiave primaria, ed elimini la tupla "originale".
Non puoi fare un semplice update alla tabella CORSO perchè il valore DB è già in uso da una qualsiasi relazione della tabella DOCENZA.
Non puoi fare un semplice update alla tabella DOCENZA perchè il valore DB1 non è presente in CORSO.
Il senso di questi esercizi è vedere se sappiamo agire modificando e/o eliminando informazioni senza violare i vincoli imposti allo schema relazionale.
Scusa se non mi sono espresso bene, magari cerco di essere più chiaro..