Databases can reside in many places: on the local disk, on a handheld connected by a live sync connection, or even in an SQL server. Regardless of where a database is actually located, Pyrite attempts to provide a common interface to its contents via the Database class.
Note: A Database object is actually little more than a wrapper around another almost identical back end object. This allows application modules to define subclasses of Database without requiring that they know anything about every possible type of database back end, and allows new database back ends to be added easily without requiring changes to other parts of Pyrite.