4396
Comment:
|
6921
Reorder
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
''This page seems to duplicate ChoosingDatabase, wouldn't it be better to merge shelve and the rest there? -- DanielDittmar [[DateTime(2003-02-11T23:15:22)]]'' ''I don't think so. Now they surely have to be refactored both, but ChoosingDatabase seems to be a good page for one place for categorized comparision to narrow novice's choice while that is merely a catalog. -- MikeRovner [[DateTime(2003-02-11T16:50:45)]]'' ''I seems missed DbApiModuleComparison page. Probably I better combine them with links from both places. -- MikeRovner [[DateTime()]]'' |
|
Line 11: | Line 3: |
See also HigherLevelDatabaseProgramming | = 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] |
Line 13: | Line 10: |
= DBMS interfaces = Things you connect to. Take a look at http://www.python.org/topics/database/modules.html and http://dmoz.org/Computers/Programming/Languages/Python/Modules/Databases_and_Persistence/. |
= Relational database = Databases based on relational model, with support for SQL. |
Line 21: | Line 14: |
* mysqldb module http://www.mysql.com/downloads/api-python.html * SnakeDb (http://www.scriptfoundry.com/modules/snakedb/) |
* MySQLdb: http://dev.mysql.com/downloads/python.html |
Line 25: | Line 17: |
* psycopg (http://www.zope.org/Members/fog/psycopg) (!) preferable * pypgsql (http://pypgsql.sf.net/) |
* 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 |
Line 28: | Line 30: |
* PyGreSQL (http://www.pygresql.org) and PoPy (http://sourceforge.net/projects/popy) are [http://archives.postgresql.org/pgsql-announce/2003-07/msg00002.php merging] | == 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 31: | 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. |
|
Line 32: | Line 45: |
See ["Oracle"] for details, there are two choices: * dcOracle * cx_Oracle |
== 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 37: | Line 56: |
module developed by Dave Cole http://www.object-craft.com.au/projects/sybase/ | * by Dave Cole: http://www.object-craft.com.au/projects/sybase/ |
Line 39: | Line 58: |
== MSSQL == == BerkeleyDb == |
== MaxDB/SAP DB == * http://dev.mysql.com/doc/maxdb/interfaces.html |
Line 44: | Line 62: |
* Pure Python DB-API 2.0 module http://www.thinksql.co.uk | * 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/ |
Line 48: | Line 79: |
== gadfly == Gadfly is a simple relational database system implemented in Python based on the SQL Structured Query Language. Currently use C-extension module for speed. Pure Python version included. |
== Gadfly == Gadfly is a simple relational database system implemented in Python based on the SQL Structured Query Language. |
Line 53: | Line 84: |
== 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/ |
|
Line 54: | Line 90: |
http://www.zope.org/Wikis/ZODB Zope Object DB | 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/ |
Line 58: | Line 108: |
== KirbyBase == http://www.netpromi.com/kirbybase.html |
|
Line 67: | Line 120: |
* http://www.fiby.at/dbfpy.html - file missing | * http://www.fiby.at/dbfpy/index.html - working now. or (take it [http://starship.python.net/crew/jjkunce/python/dbfpy.tgz here]) |
Line 85: | Line 138: |
== SQLite == Actualy it's a full-fleged SQL server, but embeddable. No external SQL server required. Think of Gadfly, only faster. http://PySQLite.sf.net |
|
Line 92: | Line 141: |
Forest is a (native) XML database written in Python. It is intended to support fast queries of XML data. | |
Line 93: | Line 143: |
[http://cvs.infrae.com/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/ |
Line 101: | Line 149: |
== xsdbXML == http://xsdb.sourceforge.net/ |
|
Line 103: | Line 153: |
== SQLObject == |
|
Line 110: | Line 158: |
[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''' |
See also
[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.
MySQL
PostgreSQL
- 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]
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.
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
Firebird/Interbase
KInterbasDB: http://kinterbasdb.sourceforge.net/
Sybase
by Dave Cole: http://www.object-craft.com.au/projects/sybase/
MaxDB/SAP DB
ThinkSQL
Pure Python DB-API 2.0 module: http://www.thinksql.com/
Informix
InformixDB: http://informixdb.sourceforge.net/
Ingres
ODBC
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.
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.
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)
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])
http://www.e-bachmann.dk/docs/xbase.htm - dead link
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
xsdbXML
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 0305)
ConfigParser.py - Windows .ini format
- gzip.py
- zipfile.py
- tar