serialized python objects saved to files and streams shelve files pickled python objects saved in dbm keyed files object-oriented databases (oodbspersistent python objects stored in persistent dictionaries (zodbdurussql relational databases (rdbmsstable-based storage that supports sql queries (sqlitemysqlpostgresqletc object relational mappers (ormsmediators that map python classes to relational tables (sqlobjectsqlalchemyin some sensepython' interfaces to network-based object transmission protocols such as soapxml-rpcand corba also offer persistence optionsbut they are beyond the scope of this hereour interest is in techniques that allow program to store its data directly andusuallyon the local machine although some database servers may operate on physically remote machine on networkthis is largely transparent to most of the techniques we'll study here we studied python' simple (or "flat"file interfaces in earnest in and we have been using them ever since python provides standard access to both the stdio filesystem (through the built-in open function)as well as lower-level descriptor-based files (with the built-in os modulefor simple data storage tasksthese are all that many scripts need to save for use in future program runsimply write data out to newly opened file on your computer in text or binary modeand read it back from that file later as we've seenfor more advanced taskspython also supports other file-like interfaces such as pipesfifosand sockets since we've already explored flat filesi won' say more about them here the rest of this introduces the remaining topics on the preceding list at the endwe'll also meet gui program for browsing the contents of things such as shelves and dbm files before thatthoughwe need to learn what manner of beast these are fourth edition coverage notethe prior edition of this book used the mysql-python interface to the mysql relational database systemas well as the zodb object database system as update this in june neither of these is yet available for python xthe version of python used in this edition because of thatmost zodb information has been trimmedand the sql database examples here were changed to use the sqlite in-process database system that ships with python as part of its standard library the prior edition' zodb and mysql examples and overviews are still available in the examples packageas described later because python' sql database api is portablethoughthe sqlite code here should work largely unchanged on most other systems databases and persistence