Differences between revisions 41 and 44 (spanning 3 versions)
Revision 41 as of 2008-10-19 06:14:29
Size: 3774
Editor: ip4e8b2383
Comment:
Revision 44 as of 2011-06-12 13:42:49
Size: 4188
Editor: bbcache-220-255-2-53
Comment: Added entry for DAL
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
 * [http://divmod.org/trac/wiki/DivmodAxiom Axiom]: MIT-licensed, SQLite-based
 * [http://www.nongnu.org/bazaar/ Bazaar ORM]: Easy to use and powerful abstraction layer between relational database and object oriented application.
 * [[http://divmod.org/trac/wiki/DivmodAxiom|Axiom]]: MIT-licensed, SQLite-based
 * [[http://www.nongnu.org/bazaar/|Bazaar ORM]]: Easy to use and powerful abstraction layer between relational database and object oriented application.
 * [[http://code.google.com/p/web2py/source/browse/gluon/dal.py|DAL]]: a Database Abstraction Layer (DAL), an API that maps Python objects into database objects such as queries, tables, and records. Supports - SQLite, MySQL, Postgres, Oracle, MS SQL, DB2, Interbase, Ingres, SapDB (experimental), Cubrid (experimental), CouchDB (experimental), MongoDB (in progress), GAE:nosql, GAE:sql
Line 8: Line 9:
 * [http://www.aminus.net/dejavu Dejavu]: Public domain, thread-safe, Data Mapper ORM.
 * [http://forgetsql.sourceforge.net/ forgetSQL]: ORM
 * [[http://www.aminus.net/dejavu|Dejavu]]: Public domain, thread-safe, Data Mapper ORM.
 * [[http://forgetsql.sourceforge.net/|forgetSQL]]: ORM
Line 11: Line 12:
 * [http://modeling.sourceforge.net/ Modeling Object-Relational Bridge]: ORM and schema design with Zope integration
 * [http://orm.nongnu.org/ Object Relational Membrame] ([http://freshmeat.net/projects/orm/ Freshmeat entry]): ORM
 * [[http://modeling.sourceforge.net/|Modeling Object-Relational Bridge]]: ORM and schema design with Zope integration
 * [[http://orm.nongnu.org/|Object Relational Membrame]] ([[http://freshmeat.net/projects/orm/|Freshmeat entry]]): ORM
Line 14: Line 15:
 * [http://sqlobject.org/ SQLObject]: ORM
 * [http://www.sqlalchemy.org/ SQLAlchemy]: SQL Toolkit and ORM
 * [https://storm.canonical.com Storm]: Clean and powerful ORM by Canonical.
 * [[http://sqlobject.org/|SQLObject]]: ORM
 * [[http://www.sqlalchemy.org/|SQLAlchemy]]: SQL Toolkit and ORM
 * [[https://storm.canonical.com|Storm]]: Clean and powerful ORM by Canonical.
Line 20: Line 21:
 * [http://opensource.theopalgroup.com/ db_row]: SQL result wrapper
 * [http://gnuenterprise.org/tools/common/ gnue-common]: gnue.common.datasources module - Database abstraction layer
 * [http://roundup.sf.net/ Roundup's hyperdb]: set of constrained data types with relations (many-to-many included) over multiple backends including SQL, metakit and db (yes, relations in an anydbm-backed database :)
 * [http://www.livinglogic.de/Python/sql/ ll.sql]: SQL generator
 * [http://pdo.neurokode.com PDO]: Python Database Objects - allows use of most DBAPI modules with a clean, simple API similar in scope to ADO or JDBC. Column access by name is provided by a low overhead mechanism.
 * [https://fedorahosted.org/pySQLFace/ pySQLFace]: SQL interface over DBAPI2. It provides a database specific API to retrive and save data by creating SQL/DML command objects from a configuration file.
 * [[http://opensource.theopalgroup.com/|db_row]]: SQL result wrapper
 * [[http://gnuenterprise.org/tools/common/|gnue-common]]: gnue.common.datasources module - Database abstraction layer
 * [[http://roundup.sf.net/|Roundup's hyperdb]]: set of constrained data types with relations (many-to-many included) over multiple backends including SQL, metakit and db (yes, relations in an anydbm-backed database :)
 * [[http://www.livinglogic.de/Python/sql/|ll.sql]]: SQL generator
 * [[http://pdo.neurokode.com|PDO]]: Python Database Objects - allows use of most DBAPI modules with a clean, simple API similar in scope to ADO or JDBC. Column access by name is provided by a low overhead mechanism.
 * [[https://fedorahosted.org/pySQLFace/|pySQLFace]]: SQL interface over DBAPI2. It provides a database specific API to retrive and save data by creating SQL/DML command objects from a configuration file.
Line 29: Line 30:
 * 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-project.org/example.rst
 * [http://www.python.org/pypi/simpleQL simpleQL]: SQL generator using live translation of generator expressions
 * [http://py.vaults.ca/apyllo2.py/D21777795 SQLBuilder]: SQL generator
 * [http://dustman.net/andy/python/SQLDict SQLDict]: SQL wrapper
 * [http://lists.canonical.org/pipermail/kragen-hacks/2004-April/000394.html prototype SchemQL/Roe-like thing in Python] --- Python objects representing relational algebra expressions, backed by lazy compilation to SQL and an iterable interface.
 * 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-project.org/example.rst
 * [[http://www.python.org/pypi/simpleQL|simpleQL]]: SQL generator using live translation of generator expressions
 * [[http://py.vaults.ca/apyllo2.py/D21777795|SQLBuilder]]: SQL generator
 * [[http://dustman.net/andy/python/SQLDict|SQLDict]]: SQL wrapper
 * [[http://lists.canonical.org/pipermail/kragen-hacks/2004-April/000394.html|prototype SchemQL/Roe-like thing in Python]] --- Python objects representing relational algebra expressions, backed by lazy compilation to SQL and an iterable interface.
Line 37: Line 38:
 * [http://www.quicksort.co.uk Dee]: A proposal to supersede SQL and the need for database sub-languages. Adds truly relational capabilities to Python (no wrappers, no mappers).  * [[http://www.quicksort.co.uk|Dee]]: A proposal to supersede SQL and the need for database sub-languages. Adds truly relational capabilities to Python (no wrappers, no mappers).
Line 46: Line 47:
CategoryTracker

There are several wrappers that provide improved or simplified interfaces to SQL databases. Some of these might be referred to as object relational mappers, or ORM in this list -- these create Pythonic objects out of database rows. Others may only help generate SQL, or provide simple mapping support.

Object Relational Mappers (ORMs)

  • Axiom: MIT-licensed, SQLite-based

  • Bazaar ORM: Easy to use and powerful abstraction layer between relational database and object oriented application.

  • DAL: a Database Abstraction Layer (DAL), an API that maps Python objects into database objects such as queries, tables, and records. Supports - SQLite, MySQL, Postgres, Oracle, MS SQL, DB2, Interbase, Ingres, SapDB (experimental), Cubrid (experimental), CouchDB (experimental), MongoDB (in progress), GAE:nosql, GAE:sql

  • DbObj: ORM

  • Dejavu: Public domain, thread-safe, Data Mapper ORM.

  • forgetSQL: ORM

  • MiddleKit: ORM

  • Modeling Object-Relational Bridge: ORM and schema design with Zope integration

  • Object Relational Membrame (Freshmeat entry): ORM

  • PyDo: ORM

  • SQLObject: ORM

  • SQLAlchemy: SQL Toolkit and ORM

  • Storm: Clean and powerful ORM by Canonical.

SQL Wrappers & Generators

  • db_row: SQL result wrapper

  • gnue-common: gnue.common.datasources module - Database abstraction layer

  • Roundup's hyperdb: set of constrained data types with relations (many-to-many included) over multiple backends including SQL, metakit and db (yes, relations in an anydbm-backed database :)

  • ll.sql: SQL generator

  • PDO: Python Database Objects - allows use of most DBAPI modules with a clean, simple API similar in scope to ADO or JDBC. Column access by name is provided by a low overhead mechanism.

  • pySQLFace: SQL interface over DBAPI2. It provides a database specific API to retrive and save data by creating SQL/DML command objects from a configuration file.

  • PyTable

  • The PythonWebModules web.database module - Database abstraction layer to make it possible to run the same SQL on different databases without changing your code.

  • The PythonWebModules web.database.object module - ORM - treat an SQL database like python objects for easy programming, the SQL is done behind the scenes. Supports one and many to many mappings and can generate HTML forms for the data automatically.

  • QLime (Freshmeat entry): Easy to use, transparent data access to relational databases or other data sources. See examples here: http://www.qlime-project.org/example.rst

  • simpleQL: SQL generator using live translation of generator expressions

  • SQLBuilder: SQL generator

  • SQLDict: SQL wrapper

  • prototype SchemQL/Roe-like thing in Python --- Python objects representing relational algebra expressions, backed by lazy compilation to SQL and an iterable interface.

Relational Python

  • Dee: A proposal to supersede SQL and the need for database sub-languages. Adds truly relational capabilities to Python (no wrappers, no mappers).

See also PersistenceSystems and ObjectOrientedDatabase

Editorial Notes

The above lists should be arranged in ascending alphabetical order - please respect this when adding new entries. When specifying release dates please use the format YYYY-MM-DD.


HigherLevelDatabaseProgramming (last edited 2018-02-01 18:11:05 by EtienneRobillard)

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