Starting point for learning about using databases from Python.

== Relational Databases ==

Relational databases are the most widely used type of database, storing information as
tables containing a number of rows.

 * DatabaseInterfaces -- List of available Python databases interfaces. This also helps you choose the right database for your application.

== The DB-API ==

The DB-API is a specification for a common interface to relational databases.
The current version of the specification is version 2.0.

 * [[http://www.python.org/dev/peps/pep-0249/|PEP 249: Python Database API Specification v2.0]].

 * DbApiFaq

 * UsingDbApiWithPostgres

=== Talks ===

 * [[http://www.egenix.com/library/presentations/EuroPython2008-Using-the-Python-Database-API/|Talk video and slides: Using the Python Database API]]

 * [[http://www.zope.de/tagung/Dresden_2010/Python-Datenbankprogrammierung_mal.pdf|Slides: Datenbankprogrammierung mit dem Python Database API]] (in German)
=== Future development ===

 * DbApi3 -- discussion of possible topics for a DB-API 3.
 * ExtendingTheDbApi

=== Historical development ===

 * [[http://www.python.org/dev/peps/pep-0248/|PEP 248: Python Database API Specification v1.0]].

== Related tools ==

  * HigherLevelDatabaseProgramming -- wrappers that provide simpler or higher-level database interfaces, such as object/relational mappers and SQL generators.

  * [[http://sqlrelay.sourceforge.net/|SQL Relay]] is a persistent database connection pooling, proxying and load balancing system for Unix systems, supporting many different databases and languages, including PostgreSQL and Python.

== Other resources ==

  * DatabaseBooks -- lists a few recommended titles for learning about databases.  These books aren't Python-specific.

  * [[http://dmoz.org/Computers/Programming/Databases/|Programming:Databases]] category on dmoz.org

== Non-relational Databases ==

  * PersistenceTools -- describes non-relational tools for storing data on disk.

  * XmlDatabases

  * [[http://www.matisse.com/product_information/language_bindings/lang_python.html|Matisse Software]] provides Python bindings for their object database.