Allora, in tutti i database è possibile definire delle colonne "UNIQUE" ossia in una certa colonna non potranno esserci dei valori uguali... un po' come succede quando ti registri in un forum o altro servizio che devi scegliere un nome utente che non sia già presente nel database.

In verità è possibile rendere UNIQUE un insieme di campi, come nel caso che ti ho prospettato: a te interessa che, ad esempio, non esistano due corsi tenuti il mercoledì dalle 10.00 alle 12.00... però potresti benissimo avere diversi corsi il mercoledì oppure due corsi in quella fascia d'orario ma in giorni diversi. Perché separare i campi? Ti risulta più agevole fare un certo tipo di query... per esempio, potresti voler sapere che corsi ci sono il martedì, indipendentemente dall'ora... oppure potresti voler sapere che corsi ci sono nella pausa pranzo tutti i giorni (molto utile nel caso reale, visto che molta gente va in palestra o piscina proprio nella pausa pranzo)

Ci sono chiaramente altri controllil da fare, ad esempio, non sarebbe ammissibile avere due corsi così:

giorno - inizio - fine
LUN 10.00 12.00
LUN 11.30 13.00

Il controllo su UNIQUE qui fallirebbe, però se non prevedi le mezz'ore e gli inserimenti sono multipli (ossia LUN 10.00 12.00 viene "spalmato" su due righe:
LUN 10.00 11.00
LUN 11.00 12.00

anche con quel sistema semplificato che ti ho proposto ottieni il tuo risultato