TL;DR : Tu peux utiliser n'importe quel SGBD pour ton application.
Dès lors, pourquoi en choisir une plus qu'une autre ?
- Les dépendances : Est-ce que tu penses pouvoir bundle ton application avec le binaire d'un serveur du SGBD que tu veux utiliser et pouvoir gérer les mises à jour de celui-ci en plus de ton application ?
- Les performances : Tu peux choisir de déployer un sereurs MySQL avec ton application, et de lui fournir une configuration simple. Mais qu'est-ce que qui t'assure que tout le monde pourra faire tourner une instance du serveur que tu proposes (par exemple les 500Mo de RAM requis par la configuration par défaut).
- Le besoin : Est-ce que tu as forcément besoin d'un langage relationnel pour faire des requêtes sur ton jeu de données ? Ou est-ce qu'un simple « key-value store » peut te suffir ? Est-ce qu'il y a besoin que celui-ci mette en place des statégies face aux volumes de données qu'il va traîter ou stocker ?
Ce sont ces arguments qui font que les gens se penchent régulièrement vers des bases de données « embarquées » comme NeDB, SQLite ou juste une sérialisation des objets nécessaires au bon fonctionnement de ton application dans le cas d'applications de bureau - comme celle que tu souhaites développer.