Ооднопользовательская база данных key-value это файлы на диске (key - имя файла, value - содержимое), при перезаписи файла сначала его создавай с другим именем позже переименовывай, это гарантирует сохранность данных при сбоях. По особому желанию, хранение файлов можно разделять по каталогам соответственно типам данных.
нереляционная, то есть хранение не в таблицах
не майся дурью, освой sqlite, это промышленный стандарт, удобнее инструмента не найти в принципе, все кто так или иначе ковырялись с файлами приходят либо к полноценному серверу базы данных или останавливаются на промежуточном варианте с sqlite (база данных в файле, сервер не нужен)
Единственная причина хранить данные в файлах в своем формате - это оптимизация скорости за счет особых знаний о данных и их большом количестве