[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: LAPP statt LAMP?



Moin,

* Markus Schulz wrote (2005-11-22 16:37):
>On Tuesday 22 November 2005 15:27, Thorsten Haude wrote:
>> * Markus Schulz wrote (2005-11-22 15:07):
>> >In jedem zweiten Opensource-Webprojekt Projekt wird es genau so
>> > gemacht. Natürlich kann und sollte man vom DB-Code abstrahieren.
>> > Das spricht jedoch noch absolut nicht gegen den Einsatz von SP.
>>
>> Doch, genau das ist das Hauptargument gegen Stored Procedures,
>> solange man sie nicht einsetzt, um den Zugriff zur DB etwas zu
>> erleichtern.
>
>Warum? Wenn ich eine Schicht habe, die meine Anwendung abstrahiert von 
>dem expliziten Aufruf einer SP habe ich doch keine Probleme beim 
>Umstieg auf ein anderes DBMS.

Das bekommst Du eben dann, wenn Du die Stored Procedures nicht 1:1
auf das neue DBMS übertragen kannst. Wenn Du die DB- und
Geschäftsschicht trennst, hast Du es da erheblich leichter.


>Und darum ging es doch, das ich im Ernstfall nur in der
>Verbindungsschicht von Anwendung und DBMS die SP eventuell durch SQL
>Code oder ähnliches Ersetzen kann, falls das DBMS mir SP von Haus aus
>nicht bietet.

"Oder ähnliches" klappt leider nicht so gut, wenn Du die Datenlogik
mit der Geschäftslogik verstrickt hast. Das aber wird einem ja mit
Stored Procedures ja gerade so leicht gemacht.


>> >Und Trigger empfinde ich als komplizierter zu abstrahieren als SP.
>>
>> Trigger haben nach außen unsichtbar zu sein.
>
>Und genau hier ist mir der Wechsel des DBMS nicht mehr möglich wenn das 
>neue keine Trigger gestattet. Denn der Nachbau von Triggern in der 
>Abstraktionsschicht ist nicht mehr möglich.

Warum das denn nicht?


>> >Würde deine Bedenken also eher genau umgedreht haben. Mir fällt da
>> >nämlich keine Mögliche Abstraktion ein wie ich unabhängig vom DBMS
>> > in einer Abstraktionsebene Trigger implementiere für DBMS die das
>> > von Haus aus nicht beherrschen.
>>
>> Da gibt's schon Wege, aber ein fehlendes Feature kann man sicher
>> nicht in allen Fällen ersetzen. Soll das jetzt heißen, daß ich bei
>> Oracle, PostgreSQL, Firebird etc. auf alles verzichten soll, was
>> MySQL nicht unterstützt?
>
>Nein, wo sag ich sowas?

Wenn Du auf Trigger verzichten willst, weil sie nicht überall
vorhanden sind, deutest Du genau das an. Wie sonst soll ich Dich
verstehen?


>> >SP kann man dagegen mit SQL Code umsetzen.
>>
>> Nur, wenn es eine passende Laufzeitumgebung gibt. MySQL kann SQL,
>> aber eben keine Stored Procedures.
>
>Die Abstraktionsebene wird ja wohl nicht in SQL umgesetzt sein, eine 
>Laufzeitumgebung muss also wohl immer vorhanden sein. 

Huh? Also gibt es eine Laufzeitumgebung für MySQL-Trigger?


Thorsten
-- 
The smart way to keep people passive and obedient is to
strictly limit the spectrum of acceptable opinion, but
allow very lively debate within that spectrum.
    - Noam Chomsky

Attachment: pgpNtjuvUqLwX.pgp
Description: PGP signature


Reply to: