[Python-de] abstrakter Datenbank Layer

Diez B. Roggisch deets at web.de
Sa Apr 13 20:18:05 CEST 2013


On Apr 13, 2013, at 8:00 PM, Philipp Kraus wrote:

> Hallo,
> 
> ich suche für Python eine abstrakte Datenbankanbindung, über die ich Datebanken / Tabellen / Indizies etc erstellen kann
> und zusätzlich eben Datenbankinhalt verändern kann. Das ganze soll wenn es die Datenbank unterstützt auch transaktionssicher
> sein.

So weit, so gut.

> Schön wäre ein Support für NoSQL Datenbanken. 

Und damit endet das so gut. Zum einen ist NoSQL ein sehr, sehr weiter Begriff (Document-Store, Key-Value-Store, …), zum anderen sind eine Vielzahl von Konzepten von SQL und NoSQL nicht wirklich aufeinander abbildbar. Hier ACID, dort eventually consistent usw.

Ich wuerde dir also empfehlen, dieses Requirement fallen zu lassen.

Wenn du ORM betreibst, kannst du natuerlich dank Duck-Typing in Python eine in gewissen Grenzen gleiche Abstraktion schaffen zwischen einem SQL-Backend und einem anderen. Wo das dann "leckt" - kommt auf den Anwendungszweck an.


> Ich hatte bisher http://www.sqlobject.org/ gefunden, das scheint schon mal in die entsprechende Richtung zu gehen.

Das es das noch gibt… Oleg gibt sich sicherlich alle Muehe, aber SQLObject ist nicht wirklich mehr der Stand der Technik. Darum habe ich auch vor Jahren aufgehoert, damit zu arbeiten (und Features dafuer zu entwickeln).

> Ich möchte datenbankunabhängig eben die Tabellen erzeugen und verändern können, sowie eben Datensätze bearbeiten können.
> 
> Was gibt es da alles für Möglichkeiten mit Python. Danke für die Hilfe und schönes Wochenende

Der 900-Pfund-Gorilla in diesem Feld ist ganz klar SQLAlchemy. Und IMHO in sehr vielen Bereichen ein absolut vorbildliches open-source-projekt. 

 http://www.sqlalchemy.org/

Die Doku ist gut, Releases oft, Features das Beste, was ich im ORM-Bereich (auch zB im Vergleich mit Java) kenne.

Wenn, solltest du dir das anschauen.

Diez

-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://mail.python.org/pipermail/python-de/attachments/20130413/9f8514d9/attachment.html>


Mehr Informationen über die Mailingliste python-de