There are many database engines available that can be accessed from Python, both commercial and open source (http://wiki.python.org/moin/DatabaseInterfaces). Choosing the right database is not a trivial task as it might not only depend on functional requirements, but also on performance, the available budget, and hard to define requirements like easy maintenance.
In the applications we develop in this book, we have chosen to use the SQLite database engine (http://www.sqlite.org) for a number of reasons. First, it is free and included in Python's standard distribution. This is important for people writing books because it means that everyone who is able to run Python has access to the SQLite database engine as well. However, this is not a toy database: as a matter of fact, SQLite is a database that is used in many smartphones and high-profile applications like Firefox to store things like configurations and bookmarks. Furthermore, it is reliable and robust and, on...