sql-based database systems provide industrial-strength persistence support for enterprise-level data todaythere are freely available interfaces that let python scripts utilize all common relational database systemsboth free and commercialmysqloraclesybaseinformixinterbasepostgresql (postgres)sqliteodbcand more in additionthe python community has defined database api specification that works portably with variety of underlying database packages scripts written for this api can be migrated to different database vendor packageswith minimal or no source code changes as of python python itself includes built-in support for the sqlite relational database system as part of its standard library because this system supports the portable database apiit serves as tool for both program storage and prototyping--systems developed with sqlite work largely unchanged when more feature-rich database such as mysql or oracle is deployed moreoverthe popular sqlobject and sqlalchemy third-party systems both provide an object relational mapper (orm)which grafts an object interface onto your databasein which tables are modeled by as python classesrows by instances of those classesand columns by instance attributes since orms largely just wrap sql databases in python classeswe'll defer their coverage until later in this for nowlet' explore sql basics in python sql interface overview like zodband unlike the pickle and shelve persistence modules presented earliermost sql databases are optional extensions that are not part of python itself sqlite is the only relational database package that comes with python moreoveryou need to know sql to fully understand their interfaces because we don' have space to teach sql in this textthis section gives brief overview of the apiplease consult other sql references and the database api resources mentioned in the next section for more details that we'll skip here the good news is that you can access sql databases from pythonthrough straightforward and portable model the python database api specification defines an interface for communicating with underlying database systems from python scripts vendorspecific database interfaces for python may or may not conform to this api completelybut all database extensions for python in common use are minor variations on theme under the database apisql databases in python are grounded on three core conceptsconnection objects represent connection to databaseare the interface to rollback and commit operationsprovide package implementation detailsand generate cursor objects databases and persistence