I've long been looking for a free, simple database for keeping lists of various collections, be it my computer games, my board games, my books, and so forth. It should be for a Windows desktop, not a phone application.
As a proper database MariaDB is my go to choice. It is a full open source fork of Oracles MySQL, and is used in a large number of major production roles. PostgreSQL is another open source choice that some prefer, but I have never used it.
If you want a graphical user interface that is designed more for the casual user than the professional you could look at LibreOffice Base. It is actually a front end that will work on many pre-existing databases (as well as less structured datasources such as spreadsheets) and has a full functioning one built in (HyperSQL).
If you want a no-SQL solution that can be built from your existing files there are loads to choose from. I threw hadoop at a load of semi-structured files I had of some data, and I was amazed how well it turned them into a queriable resource without any input from me.
Thank you for those suggestions, Samson, I very much appreciate it.
I think I'll take a look at LibreOffice Base, since I used LibreOffice a little bit some years ago. I just installed the newest version.
My go-to is SQLite, and I usually use SQLite Studio for browsing and editing my SQLite databases. Why?
- The database stores as a flat file. Very easy to transport between computers, back up, etc.
- No need to run system services to access the database. Just start a program that can read SQLite databases, tell it to open the file that contains the database, and it works.
- Can use simple human-friendly applications such as SQLite Studio to edit it. You can do everything through commands if you want, but it also lets you do a button-guided approach to creating your tables, browsing your data (including easy-to-use sorting and filtering), and even adding constraints. I'll write queries too, but being able to double-click on a column, add a filter heading to a column, and type in a value and have it filtered it also nice.
- It's also easy to consume SQLite databases from programming languages when I want to do something more complex with it.
Basically it hits a really nice mix of human-friendliness, lightweightness, transportability, and easy consumability by programs. What it loses in that is some of the more advanced SQL syntax features, and probably some scalability and sharding features, but for my purposes the things it loses compared to its competition are things I don't need.
Other SQLite software includes DB Browser for SQLite and even Firefox plugins for editing SQLite databases should you need to do so on the move... although SQLite Studio can be installed to a flash drive so it's pretty portable too.
I've tried out Postgres and while it's not super-complicated, I found SQLite to be easier in terms of setup and casual browsing of my data, as well as transferring it to other computers. I haven't tried MariaDB or LibreOffice Base, though I've used Oracle at work and it would be overkill for my home databases. I wouldn't be surprised if LibreOffice Base is a decent choice for a home database; it competes with Microsoft Access which is targeted at that market.
Of the ones in the no-SQL list that Samson listed, for what you are describing (building a DB of things you own, which number in the tens to low thousands), I would not use most of the ones that I have familiarity with. Many of them are intended for enterprise environments, high performance for large databases, or more specialized applications, such as Redis, which is really meant as a cache. It's great at that job, but that's not what you want. Apache Cassandra is another one that I've worked with that is fine for what it's designed for, but it's not what you want. Riak is designed to be a distributed database that tolerates hardware failure, but that's overkill for a home DB. To be honest, this article reads like it's intended for a professional developer who's starting a new database project at work and wants to know what the latest options are; it doesn't read like a listing of what might make sense for a home database.
What would I recommend from that list? MongoDB may be a decent choice, it's good if you want to store documents, and is general-purpose, with decent human-friendly tools if I remember correctly. I haven't used OrientDB, but its description doesn't mention any obviously enterprise-y features, and the tools it mentions for visualizing and working with data sound potentially human-friendly.
Though if you already know the basics of SQL databases and just want to store some data, it's probably not worth the overhead of learning no-SQL databases. And I'm saying that as someone who worked in a non-SQL database before I knew SQL. SQL is like a traditional coil-based electric range, for some things you might want a gas cooktop or a grill, but for a lot of dishes the electric coils are good enough, even if not necessarily the best choice.
Finally, I'll note that even as a professional developer, the biggest impediment to using home databases was that a lot of them have complex enough setup that it just wasn't worth the overhead. I used text files or JSON or spreadsheets for my home projects for years so I wouldn't have to play database administrator at home before finding SQLite to be the perfect balance of low overhead and usability for what my home projects needed. That's why I recommend against the enterprise-y options and favor the low-overhead ones. You want your database to be like your operating system; working in the background providing functionality you need, but not something you have to spend much effort maintaining or configuring.