Per i requisiti che hai posto credo che la soluzione migliore sia Java, ma anche Python (abbinato a wxPython o a pyQt+SQL Alchemy) potrebbe rappresentare una strada praticabile.

Con Java però hai tutti gli strumenti "integrati" che ti occorrono per creare un'applicazione portabile, dotata di GUI ed in grado di interfacciarsi con un database.