Why do the key value examples make use of a seperate database?

Sorry if this is a repost not a active form user.

I’m using Tendermint and try to figure it out but I don’t understand the need for a separate database.

The key value examples all have a separate database.
Tendermint also has it’s own database.

What is the use of the database Go example BadgerDB and java example uses exodus.

I would love the reason why and best practice for a python database