No, if you can store all the data in memory, a database is not needed, and simply etching can work.
Noticeable etching flaws are that it is unsafe, someone can replace your data with something else, including executable code, and that it is only Python. With a database, you also usually update the data and write it to disk at the same time, while you have to remember to sort the data and save it to disk. Since this takes time when you write all the data at once, this is usually done only on exit, so a failure means that you lose all your changes.
There is a middle level: sqlite. This is a lightweight simple SQL database included with Python (since Python 2.5), so you do not need to install any additional software to use it. This is often a quick fix. Because SQLAlcehmey supports SQLite, this also means that you can even use SQLAlchemy with SQLite as the default database and therefore provide a "upgrade path" to more serious databases.
Lennart Regebro
source share