Before you go and implement a database you should first understand what a database can help to achieve, this will ensure that you're not burning time unnecessarily deploying things you don't need.
Why use databases
Databases are used for centralised storage with unrestricted limitations to read, write new data and modify existing data. Storing data in a database can also be efficient, decreases time for looking up data that you can export into another application / format without significant difficulty.
Common database types
If you're hosting a server the most common types of databases you'll be interacting with are 'SQL' based. This will most likely be one of the following solutions:
- MySQL (Legacy project)
- MariaDB (Modern MySQL fork)
- MSSQL (The Microsoft edition of MySQL)
From an end user perspective all database types will produce a
.sql file when exported and can be maintained through a common interface like phpMyAdmin, Adminer or MySQL Workbench.
You should also be able to move your databases between all three without any major difficulties but this may depend on implementation
When to use a database
In a Minecraft environment you're most likely going to come across databases in a 'Network' environment e.g. when you're using a tool such as 'Velocity', or 'Bungee', this will allow you to share information between your backend servers and have one consistent dataset e.g. economy balances, synced ranks and permissions etc just to name a few examples.
If you're running a server with a hosting provider they too will most likely give you the ability to create databases for your plugin data, if you're limited on local disk space using SQL for plugin data may off-lift some local capacity constraints.
If you're looking to deploy your own Private SQL instance, you can follow a tutorial such as the one on the Digital Ocean community forums that covers installation, configuration and securing your instance.