Differences between revisions 1 and 62 (spanning 61 versions)
Revision 1 as of 2003-02-06 19:12:23
Size: 1097
Editor: MikeRovner
Comment:
Revision 62 as of 2006-09-11 03:57:37
Size: 6921
Editor: 211
Comment: Reorder
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= DBMS interfaces =
Things you connect to.
[[TableOfContents]]

= See also =
 * ChoosingDatabase
 * DbApiModuleComparison
 * HigherLevelDatabaseProgramming
 * http://www.python.org/topics/database/modules.html
 * [http://dmoz.org/Computers/Programming/Languages/Python/Modules/Databases_and_Persistence/ Category in the Open Directory Project]

= Relational database =
Databases based on relational model, with support for SQL.
Line 4: Line 14:
 * MySQLdb: http://dev.mysql.com/downloads/python.html
Line 5: Line 17:
 * psycopg
  * psycopg1: http://initd.org/projects/psycopg1
  * psycopg2: http://initd.org/projects/psycopg2
 * pyPgSQL: http://pypgsql.sourceforge.net/
 * PyGreSQL: http://www.pygresql.org/
 * PoPy: http://sourceforge.net/projects/popy
  * PoPy and PyGreSQL are [http://www.zope.org/Members/tm/Full_Announce merging]
 * PostgresPy: http://python.projects.postgresql.org/
 * pgasync: http://jamwt.com/pgasync/
  * Asynchronous and pure Python. Speed comparable to C bindings. Special support for Twisted.
 * bpgsql: http://barryp.org/software/bpgsql/
  * Barebones pure-Python PostgreSQL client
 * ["sipPQ"]

== SQLite ==
 * pysqlite: http://pysqlite.org/
  * Have versions for both SQLite 2 and 3.
 * APSW: http://www.rogerbinns.com/apsw.html
  * SQLite 3 only.
  * Not DBAPI compliant. Focus on wrapping all SQLite APIs.
Line 6: Line 39:
 * cx_Oracle: http://www.python.net/crew/atuining/cx_Oracle/
 * DCOracle: http://www.zope.org/Products/DCOracle/
  * This is for old Oracle versions (7 and 8).
 * DCOracle2: http://www.zope.org/Members/matt/dco2
  * For Oracle 8i and up.

== MSSQL ==
 * by Dave Cole: http://www.object-craft.com.au/projects/mssql/
 * pymssql: http://pymssql.sourceforge.net/

== DB2 ==
 * PyDB2: http://sourceforge.net/projects/pydb2

== Firebird/Interbase ==
 * KInterbasDB: http://kinterbasdb.sourceforge.net/
Line 7: Line 56:
== MSSQL ==
== BerkeleyDb ==
 * by Dave Cole: http://www.object-craft.com.au/projects/sybase/

== MaxDB/SAP DB ==
 * http://dev.mysql.com/doc/maxdb/interfaces.html

== ThinkSQL ==
 * Pure Python DB-API 2.0 module: http://www.thinksql.com/

== Informix ==
 * InformixDB: http://informixdb.sourceforge.net/

== Ingres ==
 * http://ingres.com/products/Prod_Download_Drivers.html

== ODBC ==
 * pyodbc: http://pyodbc.sourceforge.net/
 * mxODBC: http://www.egenix.com/files/python/mxODBC.html

== ADO ==
 * adodbapi: http://adodbapi.sourceforge.net/

= Native Python Databases =

== Gadfly ==
Gadfly is a simple relational database system implemented in Python based on the SQL Structured Query Language.

http://gadfly.sourceforge.net/

== SnakeSQL ==
SnakeSQL is a pure Python SQL database written to remove the dependence of the Python Web Modules on 3rd party drivers for non-Python databases like MySQL but designed to be a useful database in its own right.

http://www.pythonweb.org/projects/snakesql/

== ZODB ==
Zope Object Database.

 * http://www.zope.org/Wikis/ZODB/FrontPage
 * DirectoryStorage: http://dirstorage.sourceforge.net/
 * PGStorage: http://hathawaymix.org/Software/PGStorage

== Durus ==
Durus is a persistent object system for applications written in the Python programming language. Durus offers an easy way to use and maintain a consistent collection of object instances used by one or more processes. Access and change of a persistent instances is managed through a cached Connection instance which includes commit() and abort() methods so that changes are transactional.

http://www.mems-exchange.org/software/durus/

== Pypersyst ==
Pypersyst provides fast, reliable, and flexible object persistence with a small footprint, suitable for embedding in other Python applications.

http://pypersyst.org/

== shelve ==
A [http://www.python.org/doc/current/lib/module-shelve.html ''shelf''] is a persistent, dictionary-like object. The difference with ''dbm'' databases is that the values (not the keys!) in a shelf can be essentially arbitrary Python objects -- anything that the [http://www.python.org/doc/current/lib/module-pickle.html pickle] module can handle. This includes most class instances, recursive data types, and objects containing lots of shared sub-objects. The keys are ordinary strings.

== KirbyBase ==
http://www.netpromi.com/kirbybase.html
Line 16: Line 118:
.bdf files were produced by several old systems like dBase(II,III,IV), Fox(Base,Pro)
 * xBase (http://linux.techass.com/projects/xdb/)
 * http://www.fiby.at/dbfpy.html
.dbf files were produced by several old systems like dBase(II,III,IV), Fox(Base,Pro)
 * xBase (http://linux.techass.com/projects/xdb/) - Python interface in plans
 * http://www.fiby.at/dbfpy/index.html - working now. or (take it [http://starship.python.net/crew/jjkunce/python/dbfpy.tgz here])
Line 21: Line 123:
 * http://www.e-bachmann.dk/docs/xbase.htm  * http://www.e-bachmann.dk/docs/xbase.htm - dead link
Line 33: Line 135:
== gadfly == == MetaKit ==
http://www.equi4.com/metakit/python.html

= XML Databases or Interfaces =

== Forest ==
Forest is a (native) XML database written in Python. It is intended to support fast queries of XML data.

https://infrae.com/viewvc/old/forest/

== 4ODS ==

http://www.4suite.org/

== xsdbXML ==
http://xsdb.sourceforge.net/

= Object-Relational Mappers =

[http://sqlobject.org SQLObject] is an object-relational mapper. It allows you to translate
RDBMS table rows into Python objects, and manipulate those objects to
transparently manipulate the database.

[http://orm.nongnu.org/ ORM] ([http://freshmeat.net/projects/orm/ Freshmeat entry]) The Object Relational Membrane is a Python package that provides the functionality of an object relational layer like EJB or other persistence storage systems. It is a thin compatibility layer between SQL table layouts and Object Oriented Python. While providing a good deal of functionality, it tries to be as small and simple as possible. It works with PostgreSQL and MySQL.

QLime ([http://freshmeat.net/projects/qlime/ Freshmeat entry]) Easy to use, transparent data access to relational databases or other data sources. See examples here: http://www.qlime.org/example.rst '''Note: qlime.org does not currently provide the QLime site'''

= Special file interface =

 * http://python-dsv.sourceforge.net/ CSV or any separated file (see also PEP:0305)
 * ConfigParser.py - Windows .ini format
 * gzip.py
 * zipfile.py
 * tar
 * pdf http://www.pythonware.com/
 * PyTables

TableOfContents

See also

Relational database

Databases based on relational model, with support for SQL.

MySQL

PostgreSQL

SQLite

Oracle

MSSQL

DB2

Firebird/Interbase

Sybase

MaxDB/SAP DB

ThinkSQL

Informix

Ingres

ODBC

ADO

Native Python Databases

Gadfly

Gadfly is a simple relational database system implemented in Python based on the SQL Structured Query Language.

http://gadfly.sourceforge.net/

SnakeSQL

SnakeSQL is a pure Python SQL database written to remove the dependence of the Python Web Modules on 3rd party drivers for non-Python databases like MySQL but designed to be a useful database in its own right.

http://www.pythonweb.org/projects/snakesql/

ZODB

Zope Object Database.

Durus

Durus is a persistent object system for applications written in the Python programming language. Durus offers an easy way to use and maintain a consistent collection of object instances used by one or more processes. Access and change of a persistent instances is managed through a cached Connection instance which includes commit() and abort() methods so that changes are transactional.

http://www.mems-exchange.org/software/durus/

Pypersyst

Pypersyst provides fast, reliable, and flexible object persistence with a small footprint, suitable for embedding in other Python applications.

http://pypersyst.org/

shelve

A [http://www.python.org/doc/current/lib/module-shelve.html shelf] is a persistent, dictionary-like object. The difference with dbm databases is that the values (not the keys!) in a shelf can be essentially arbitrary Python objects -- anything that the [http://www.python.org/doc/current/lib/module-pickle.html pickle] module can handle. This includes most class instances, recursive data types, and objects containing lots of shared sub-objects. The keys are ordinary strings.

KirbyBase

http://www.netpromi.com/kirbybase.html

Datafiles interfaces

Things you open.

xBase

Which stands for .dbf files interface.BR .dbf files were produced by several old systems like dBase(II,III,IV), Fox(Base,Pro)

dbm

A family of old unix plain hash tables. Has varieties like dbm, ndbm, gdbm, dbmdb185.BR See [http://www.python.org/doc/current/lib/module-anydbm.html anydbm], [http://www.python.org/doc/current/lib/module-dumbdbm.html dumbdbm], [http://www.python.org/doc/current/lib/module-dbhash.html dbhash], [http://www.python.org/doc/current/lib/module-bsddb.html bsddb], [http://www.python.org/doc/current/lib/module-dbm.html dbm], [http://www.python.org/doc/current/lib/module-gdbm.html gdbm] in Python Standard Library.

MetaKit

http://www.equi4.com/metakit/python.html

XML Databases or Interfaces

Forest

Forest is a (native) XML database written in Python. It is intended to support fast queries of XML data.

https://infrae.com/viewvc/old/forest/

4ODS

http://www.4suite.org/

xsdbXML

http://xsdb.sourceforge.net/

Object-Relational Mappers

[http://sqlobject.org SQLObject] is an object-relational mapper. It allows you to translate RDBMS table rows into Python objects, and manipulate those objects to transparently manipulate the database.

[http://orm.nongnu.org/ ORM] ([http://freshmeat.net/projects/orm/ Freshmeat entry]) The Object Relational Membrane is a Python package that provides the functionality of an object relational layer like EJB or other persistence storage systems. It is a thin compatibility layer between SQL table layouts and Object Oriented Python. While providing a good deal of functionality, it tries to be as small and simple as possible. It works with PostgreSQL and MySQL.

QLime ([http://freshmeat.net/projects/qlime/ Freshmeat entry]) Easy to use, transparent data access to relational databases or other data sources. See examples here: http://www.qlime.org/example.rst Note: qlime.org does not currently provide the QLime site

Special file interface

DatabaseInterfaces (last edited 2020-12-09 09:29:13 by MarcAndreLemburg)

Unable to edit the page? See the FrontPage for instructions.