Seite 1 von 2

Liste der bekannten Datenbankschnittstellen

Verfasst: Donnerstag 10. August 2006, 08:46
von gerold
Hi!

Um von Python aus auf eine Datenbank zugreifen zu können, braucht man normalerweise eine Zwischenschicht die sich um die Eigenheiten der jeweiligen Datenbank kümmert -- eine Schnittstelle also.

Es gibt viele solcher Schnittstellen zu den verschiedensten Datenbanken. Python ist damit also wunderbar geeignet, um mit Datenbanken zu arbeiten.

Hier ist eine Auflistung der bekannten Datenbanken und der zugehörigen Schnittstellen:

SQLite --> sqlite3
SQLite: http://www.sqlite.org/
sqlite3-Modul (ab Python 2.5) https://docs.python.org/2/library/sqlite3.html

PostgreSQL --> psycopg2
PostgreSQL: http://www.postgresql.org/
PostgreSQL (deutsch): http://www.postgres.de/
psycopg2: http://initd.org/tracker/psycopg/wiki/PsycopgTwo
psycopg2 (Windows Install): http://www.stickpeople.com/projects/pyt ... index.html

PostgreSQL --> py-postgresql
Für Python 3 geeignet. Reines Python oder mit optionaler C-Optimierung.
PostgreSQL: http://www.postgresql.org/
PostgreSQL (deutsch): http://www.postgres.de/
PostgresPy: http://python.projects.postgresql.org/

PostgreSQL --> PyGreSQL
PostgreSQL: http://www.postgresql.org/
PostgreSQL (deutsch): http://www.postgres.de/
PyGreSQL: http://www.pygresql.org/

PostgreSQL --> PoPy
PostgreSQL: http://www.postgresql.org/
PostgreSQL (deutsch): http://www.postgres.de/
PoPy: http://www.zope.org/Members/tm/PoPy
PoPy (SourceForge): http://sourceforge.net/projects/popy

PostgreSQL --> pg8000
Reine Python-Schnittstelle -- kein Binary notwendig.
Auch für Python 3!
PostgreSQL: http://www.postgresql.org/
PostgreSQL (deutsch): http://www.postgres.de/
gp8000: http://pybrary.net/pg8000/

PostgreSQL --> python-pgsql
PostgreSQL: http://www.postgresql.org/
PostgreSQL (deutsch): http://www.postgres.de/
python-pgsql: http://pypi.python.org/pypi/python-pgsql

PostgreSQL --> pg_proboscis
PostgreSQL: http://www.postgresql.org/
PostgreSQL (deutsch): http://www.postgres.de/
pg_proboscis:
- http://pypi.python.org/pypi/pg_proboscis/
- http://python.projects.postgresql.org/

PostgreSQL --> pyPgSQL
PostgreSQL: http://www.postgresql.org/
PostgreSQL (deutsch): http://www.postgres.de/
pyPgSQL: http://pypgsql.sourceforge.net/

MS SQL-Server --> pyMsSql:
MS SQL-Server: http://www.microsoft.com/sql/
MS SQL-Server (Wikipedia): http://de.wikipedia.org/wiki/MSSQL
pyMsSQL: http://pymssql.sourceforge.net/

Firebird / Interbase --> KInterbasDB
Firebird: http://firebirdsql.org
Interbase: http://www.interbase.com
kinterbasdb: http://kinterbasdb.sourceforge.net

Firebird --> pyfirebirdsql
Firebird: http://firebirdsql.org
pyfirebirdsql: http://github.com/nakagami/pyfirebirdsql/
pypi: http://pypi.python.org/pypi/firebirdsql/

ZODB (Zope Object Database) --> Python
ZODB: http://www.zope.org/Wikis/ZODB/FrontPage

MySQL --> mysql-python
MySQL: http://mysql.org/
mysql-python: http://sourceforge.net/projects/mysql-python/
mysql-python Website: http://mysql-python.sourceforge.net/
mysql-python DB-API-Users-Guide: http://mysql-python.sourceforge.net/MyS ... ml#mysqldb
mysql-python Präsentation: http://dustman.net/andy/python/python-and-mysql
Troubleshooting: [wiki]MySQLdb troubleshooting[/wiki]
mysql-python Windows Binaries: http://www.codegood.com/archives/4

MySQL --> oursql
MySQL: http://mysql.org/
oursql Launchpad: https://launchpad.net/oursql
oursql PyPi: http://pypi.python.org/pypi/oursql/
oursql Documentation: http://packages.python.org/oursql/

Gadfly --> Python
Gadfly: http://gadfly.sourceforge.net/gadfly.html

KirbyBase --> Python
KirbyBase: http://www.netpromi.com/kirbybase_python.html

Metakit --> Mk4py (Metakit for Python)
Metakit: http://www.equi4.com/metakit.html
Mk4py: http://www.equi4.com/metakit/python.html

PyTables --> Python
PyTables: http://www.pytables.org/

Verschiedenste Datenbanken --> ADOdb for Python
ADOdb for Python: http://phplens.com/lens/adodb/adodb-py-docs.htm

Verschiedenste Datenbanken --> Python DB-API 2.0 module for ADO
adodbapi: http://adodbapi.sourceforge.net/

ODBC (unixODBC API) --> PyODB
PyODB: http://sourceforge.net/projects/pyodb/

ODBC (Windows und Linux) --> pyodbc
pyodbc: http://code.google.com/p/pyodbc (ehemals: http://pyodbc.sourceforge.net/)
Beispiel mit Access als DB: http://www.python-forum.de/topic-12658.html

ODBC (Windows und Linux) --> ceODBC
ceODBC: http://ceodbc.sourceforge.net/

Oracle --> cx_Oracle
Oracle: http://www.oracle.com/lang/de/database/index.html
cx_Oracle: http://www.python.net/crew/atuining/cx_Oracle/

Durus --> Python
Durus: http://www.mems-exchange.org/software/durus/

SnakeSQL --> Python
SnakeSQL: http://www.pythonweb.org/projects/snakesql/index.html

IBM Informix --> InformixDB:
IBM Informix: http://www-306.ibm.com/software/data/informix/
InformixDB: http://informixdb.sourceforge.net/

IBM DB --> Python driver and DBI:
Python driver and DBI: http://pypi.python.org/pypi/ibm_db/

PyDbLite --> Python
PyDbLite: http://quentel.pierre.free.fr/PyDbLite/index.html

Schevo --> Python
Schevo: http://cheeseshop.python.org/pypi/Schevo

dbf (dBase, Foxpro, Clipper, ...) --> dbfpy
dbfpy: http://dbfpy.sourceforge.net/

Buzhug --> Python
Buzhug: http://buzhug.sourceforge.net/

CouchDB --> Json
CouchDB: http://couchdb.com/
Python library: http://pypi.python.org/pypi/CouchDB

Sybase --> python-sybase:
Sybase module for Python: http://python-sybase.sourceforge.net/

Filemaker --> fmkr.py:
Filemaker: http://www.filemaker.com/
Filemaker Modul für Python: http://www.lfd.uci.edu/~gohlke/code/fmkr.py.html

Filemaker --> PyFileMaker:
Filemaker: http://www.filemaker.com/
PyFileMaker: http://code.google.com/p/pyfilemaker/

Mongo --> pymongo
Mongo: http://www.mongodb.org/ (=document-oriented data store)
pymongo: http://github.com/mongodb/mongo-python-driver/
pymongo (pypi): http://pypi.python.org/pypi/pymongo/

pod --> Python
Pickled Object Database ("pod"): http://code.google.com/p/pickled-object-database/

dobbin --> Python
Pure-Python object database
PyPi: http://pypi.python.org/pypi/dobbin/

HBase --> PyHBase:
HBase: http://hbase.apache.org/
PyHBase: http://pypi.python.org/pypi/PyHBase/

ODBC (Windows, Linux, Mac OS, FreeBSD) --> mxODBC
mxODBC: http://www.egenix.com/products/python/mxODBC/

ODBC (Windows, Linux, Mac OS, FreeBSD) --> mxODBC Connect
mxODBC Connect: http://www.egenix.com/products/python/mxODBCConnect/
(Client-Server Version von mxODBC, nutzt die ODBC Treiber auf der Server Seite)

Redis --> redis-py
Redis: http://redis.io/ (Key-Value Store - sauschnell und super einfach)
redis-py: https://github.com/andymccurdy/redis-py
redis-py (pypi): http://pypi.python.org/pypi/redis/


Python Database Modules zu finden bei python.org: http://wiki.python.org/moin/DatabaseProgramming



Wenn du Vorschläge oder Änderungswünsche hast, dann schick mir eine PN. Ich werde mich darum kümmern.


lg
Gerold
:-)

Verfasst: Donnerstag 14. September 2006, 10:45
von sape
Hey Super Gerold!! :)

Ich wusste gar nicht dass soviel DBs von Python unterstützt werden.
Hmm das wäre ja mal ne Idee eine CoreDB zu schreiben das mit alle oben gelisteten DBs klar kommt :D

lg

Verfasst: Donnerstag 9. Oktober 2008, 15:01
von maxip
Vielleicht sollte man noch SQLAlchemy erwaehnen, ist ziemlich cool...

Verfasst: Donnerstag 9. Oktober 2008, 18:23
von Leonidas
maxip hat geschrieben:Vielleicht sollte man noch SQLAlchemy erwaehnen, ist ziemlich cool...
Das ist ja was ganz anderes und setzt auf die hier beschriebenen Datenbankschnittstellen auf. Da müsste man eher eine Liste von ORM-Libraries anlegen, wo dann Storm, Django & Co. auch drin wären.

Verfasst: Donnerstag 9. Oktober 2008, 18:28
von lunar
Wieso gibt es denn sieben (!) Bindings für Postgre? Welches davon nutzt man jetzt eigentlich?

Verfasst: Donnerstag 9. Oktober 2008, 18:38
von Leonidas
lunar hat geschrieben:Welches davon nutzt man jetzt eigentlich?
psycopg. Ich kenne kein nennenswertes Projekt dass etwas anderes nutzt. Django und SQLAlchemy nutzen beide das.

pg8000 ist ja eben genau deswegen so benannt worden: """pg8000's name comes from the belief that it is probably about the 8000th PostgreSQL interface for Python."""

Re: Liste der bekannten Datenbankschnittstellen

Verfasst: Dienstag 7. Juni 2011, 13:26
von proofy
Gibt es noch mehr, ggf. eingebaute Abstraktionsmodule für Datenbanken ähnlich wie ADOdb?

Re: Liste der bekannten Datenbankschnittstellen

Verfasst: Mittwoch 8. Juni 2011, 12:50
von querdenker
Nachtrag für Firebird:

pyfirebirdsql

Ist eine Neuentwicklung, die ursprünglich für python 3.x entstanden ist. Allerdings kam sehr schnell die Nachfrage nach einem Backport für python 2.7x, welches jetzt auch unterstützt wird.
pyfirebirdsql setzt auf die xdrlib auf, im Gegensatz zu der "alten" Schnittstelle kinterbasdb, welche eine in python eingewickelte C-Library ist.

Re: Liste der bekannten Datenbankschnittstellen

Verfasst: Samstag 6. August 2011, 21:37
von mpathy
proofy hat geschrieben:Gibt es noch mehr, ggf. eingebaute Abstraktionsmodule für Datenbanken ähnlich wie ADOdb?
Ja, aber das ist ja nicht das Thema dieses Threads, siehe Antwort von Leonidas.

An sich wäre aber das populärste natürlich SQLalchemy.
Unter ferner liefen dann noch Storm, SQLobject, Autumn.

Das wars an sich.

Re: Liste der bekannten Datenbankschnittstellen

Verfasst: Sonntag 4. März 2012, 20:56
von derdon
Außerdem gibt es noch peewee (erster Commit auf Github in Okt. 2010, aktuelle Version 0.9.0), das vor allem auf Einfachheit setzt.

Re: Liste der bekannten Datenbankschnittstellen

Verfasst: Montag 18. Mai 2015, 11:41
von Rigoletto
Den nehme ich als ODBC, PURE PYTHON:
https://code.google.com/p/pypyodbc/

Re: Liste der bekannten Datenbankschnittstellen

Verfasst: Dienstag 15. November 2016, 21:05
von pixewakb
Ich habe nicht alles geprüft, aber bei:
SQLite --> pySQLite
SQLite: http://www.sqlite.org/
pySQLite: http://initd.org/tracker/pysqlite
pySQLite-Modul (ab Python 2.5): http://docs.python.org/lib/module-sqlite3.html
Usage Guide: http://initd.org/pub/software/pysqlite/ ... guide.html
Ist der Link bei Usage Guide nicht mehr zugänglich, d. h. "404 not found".

Und der Link bei PyTables führt auch ins Nirvana (URL: http://www.pytables.org/moin/PyTables).

Re: Liste der bekannten Datenbankschnittstellen

Verfasst: Freitag 18. November 2016, 22:39
von gerold
pixewakb hat geschrieben:Ich habe nicht alles geprüft, aber bei:[...]Ist der Link bei Usage Guide nicht mehr zugänglich,
Hallo pixewakb!

Danke fürs Durchsehen. So wie es aussieht, kann ich den Beitrag nicht mehr ändern. Muss jemand mit mehr Rechten im Forum machen.

lg
Gerold

Re: Liste der bekannten Datenbankschnittstellen

Verfasst: Freitag 18. November 2016, 23:01
von BlackJack
Ich habe die beiden Punkte mal angepasst. Für sowas wäre ein Wiki ja praktisch. :-)

Re: Liste der bekannten Datenbankschnittstellen

Verfasst: Samstag 19. November 2016, 10:12
von pixewakb
https://wiki.python.org/moin/

Kann man sicherlich drüber streiten, aber die Inhalte wären dann an einem Ort, der wahrscheinlich auch länger existiert und verlinkt werden könnte, und gegen dezidiert deutschsprachige Seiten scheint dort auch niemand etwas zu haben. Das dortige Wiki scheint wenig Inhalte und wenig aktive Benutzer zu haben - wäre m. E. ein Argument die dortige Nutzer-Basis zu verbreitern.

Einschlägig: https://wiki.python.org/moin/DatabaseProgramming

Und vor allem: https://wiki.python.org/moin/DatabaseInterfaces

Da könnte man sich mit https://wiki.python.org/moin/Datenbank-Programmierung "dranhängen"

Re: Liste der bekannten Datenbankschnittstellen

Verfasst: Mittwoch 2. Mai 2018, 15:55
von Ant-on-Hu
Hallo!
Was haltet ihr von TinyDB als NoSQL-Datenbank (http://tinydb.readthedocs.io/en/latest/index.html)? Scheint recht einfach zu sein und man braucht keinen Server wie z.B. bei MongoDB. Sollte sich dann am Schluss auch in eine ausführbare .exe-Datei pressen lassen. Die Daten werden im json-Format gespeichert.

LG. Anton

Re: Liste der bekannten Datenbankschnittstellen

Verfasst: Mittwoch 2. Mai 2018, 16:11
von DasIch
Wenn man ernsthaft dir Vor- und Nachteile von TinyDB und Mongo vergleicht hat man die Kontrolle über die verwendeten Datenbanken verloren. Wenn man sich den "Why Not use TinyDB?" Teil der Doku anschaut wird ziemlich deutlich dass TinyDB nur als SQLite Alternative taugt, in Situationen wo man wenige Daten hat.

TinyDB ist also letztendlich nichts anderes als "Ich speicher alles in einer riesigen database.json" in nett umgesetzt.

Re: Liste der bekannten Datenbankschnittstellen

Verfasst: Mittwoch 2. Mai 2018, 16:27
von Ant-on-Hu
Für eine kleine Mitgliederverwaltung brauche ich ja nichts schnelles, da tut's TinyDB vermutlich. Und wenn ich am Schluss eine .exe-Datei habe, die ich leicht an den Vorstand weitergeben kann, dann ist das schon ein Vorteil. Ich habs selbst noch nicht probiert, aber es sieht recht einfach aus. Bei sqlite muss ich halt vorher schon alle Felder wissen, die je in dem Verein gebraucht werden. Bei TinyDB kann ich einfach das Formular erweitern und zusätzliche Felder abspeichern.

Re: Liste der bekannten Datenbankschnittstellen

Verfasst: Mittwoch 2. Mai 2018, 16:30
von DasIch
Bei SQLite könntest du auch eine DB Migration ausführen sobald die Anwendung startet. Sobald du eine Gewisse Komplexität erreichst kommst du um sowas auch bei einer NoSQL Datenbank nicht herum.

Re: Liste der bekannten Datenbankschnittstellen

Verfasst: Mittwoch 2. Mai 2018, 16:36
von Ant-on-Hu
Ich denk nochmal drüber nach. sqlite könnte man ja auch ohne joins verwenden und dann einfach immer neue Spalten hinzufügen.