Anche io uso Sqlite, ma Derby e' piu' conveniente quando si programma in Java.
Tieni anche presente che Derby ha due modi di installazione/funzionamento: lo standard network client/server e quello embedded. Nel secondo caso funziona come Sqlite, ossia si ha un piccolo database single-user che e' integrato nella applicazione, non c'e' bisogno di avere un server. E' il modo che io suggerivo (implicitamente), ideale per piccole applicazioni, R&D e per imparare database programming qualora non si abbia un database server a disposizione.
Perche' il prof ha detto di non usare mySQL? Come ho detto precedentemente, probabilmente intendeva un full-fledged client/server database. Non vale la pena in un assegnamento scolastico, a meno che non riguardi appunto l'installazione di un database, nel quale caso mySQL sarebbe la scelta preferenziale.