Seite 3 von 3

Verfasst: Freitag 28. November 2008, 15:29
von Leonidas
gerold hat geschrieben:Die Frage ist nur, wie viel man da durch SQLAlchemy gewinnt.
Hast du den IRC-Log gelesen? Dort steht was man in SQLAlchemy ohne ORM gegenüber DB-API gewinnt. Beim ORM kommen dann noch weitere Vereinfachungen die eben gerade bei so CRUD-Sachen nützlich sind.
gerold hat geschrieben:Verbinden -- SQL-Anweisung absetzen -- Ergebnis durchlaufen -- Verbindung trennen.
Macht man so in Webapps wie Inyoka oder das was ich so mit Django mache nicht. Da hat man persistente Verbindungen und Connection Pools, SQLAlchemy bietet da noch ein gewisses Caching und Django lazyness.

Verfasst: Freitag 28. November 2008, 15:34
von gerold
Leonidas hat geschrieben:
gerold hat geschrieben:Verbinden -- SQL-Anweisung absetzen -- Ergebnis durchlaufen -- Verbindung trennen.
[...]Da hat man persistente Verbindungen und Connection Pools
Hallo Leonidas!

Ich habe das nur vereinfacht dargestellt. Natürlich würde niemand eine performante Anwendung schreiben können, wenn man für jede Abfrage eine neue Verbindung zur Datenbank aufbaut.

lg
Gerold
:-)

Verfasst: Freitag 28. November 2008, 15:38
von gerold
Leonidas hat geschrieben:Hast du den IRC-Log gelesen? Dort steht was man in SQLAlchemy ohne ORM gegenüber DB-API gewinnt.
Hallo Leonidas!

Ich habe es mir durchgelesen. Der Punkt ist der, dass für mich SQL einfacher ist als die Syntax von SQLAlchemy. Deshalb kann ich das nicht nachvollziehen. Und wie ich schon schrieb, gibt es genug Programme, die das Erstellen von SQL-Anweisungen so einfach machen wie Milch drinken.

lg
Gerold
:-)

Verfasst: Sonntag 30. November 2008, 12:59
von Y0Gi
Ich stimme mit gerold durchaus darin überein, dass es Sachen gibt, die am Besten in Händen des DBMS passieren. Das sind teilweise aber auch Bereiche, an die man mit SQL nur begrenzt heran kommt oder ohnehin nicht aus der Applikation selbst einrichtet und verwaltet.

Ebenfalls muss ich anerkennen, dass die DB-API gerade gegenüber dem, was das gemeine PHP-Opfer so kennt, eine feine Sache ist.

Dennoch fehlt SQL - logischerweise - eine Integration in die eine oder andere Programmiersprache, und da punktet dann ein ORM. Insgesamt flexibel für den anspruchsvollen Einsatz ist in meinen Augen wiederum nur ein ORM.

Wenn man nicht sicher ist, welches DBMS man einsetzt bzw. sich die Option eines Wechsels offen halten möchte, ist ein gutes ORM viel Wert. Nur so war es mir möglich, die ersten meiner Applikationen endlich von MySQL auf eine *richtige* Datenbank (jaja, jetzt kann ich das Bashing verstehen :)) umzuziehen.

Dennoch habe ich einige kleine Projekte, die ich inbesondere auch mal veröffentlichen möchte, bei denen ein ORM dem Anwender die Wahl lässt, ob er es als alter DBA-Hase mit PostgreSQL oder anspruchslos mit SQLite benutzen möchte.

Nachtrag: Nach dem Lesen des Logs mit __doc__ erlangt die Unterscheidung von SQLAlchemys verschiedenen Ebenen wieder Bedeutung, *ist* es doch kein ORM, sondern bietet ein ORM als Feature, erlaubt aber auch sehr Schema-nahe Modellierung und Abfragen.