Halihallo Lude
Nun, das möchte man genau verhindern. Stell dir ein Informationssystem von einer
grossen Bank vor. Tausende von Clients, seien dies nun EC-Bankomaten, Filialrechner,
oder der Mainframe selber greifen auf dieselbe Datenbank zu (das ist zwar _nie_ so,
aber dennoch taugt es als Beispiel). Stell dir vor, dass nur ein einziges System ein
Security-Leak hätte und die Business Rules nicht genau umsetzt... Milliardenschäden!ich versuche seit Jahren Geschaeftslogik von Datenzugriffslogik zu trennen (im MSSQL-RDB(M)S). Es misslingt. Neueste Erkenntnisse deuten darauf hin, dass es nicht geht. Denn fuer geschaeftslogische Datenzugriffe braucht man halt verschiedene JOINts ueber etliche Tabellen. Und damit waere eine Trennung unmoeglich.
Hm, das verstehe ich nicht ganz. Warum ist eine Trennung unmöglich?
Es geht ja nicht darum alles auf die Datenbank auszulagern, sondern sinnvolle (auch in
Hinsicht auf die Performance) VIEWS zu bilden (u.a.), sodass z.B. ein EC-Bankomat -
wenn ich das Beispiel kurz wiederverwerten darf - wirklich nur Konten "sieht", die
auch per EC-Karte "ansprechbar" sind. Egal, ob die Business Rule im Bankomaten richtig
oder falsch umgesetzt ist, wird der Bankomat keinen Zugriff auf Konten ohne EC-Karte
ermöglichen, da er diese gar nicht erst sieht. Natürlich kann man das etwas "weit"
treiben und dann werden die Queries gigantisch komplex, sowas sollte man ggf. wirklich
dem Programm überlassen. Dass komplexe Joins in VIEWS starke Konsequenzen auf die
Performance haben ist klar, denn die Datenbank muss einen INSERT/UPDATE auf einen VIEW
immer in eine SQL-Abfrage bezogen auf den "normalen" Datenbestand transformieren (
und diese Abfragen werden dann meist noch komplexer).
Ich bin auch der Meinung, dass die Business Rule vom Programm definiert werden soll,
denn Daten haben mit der Verarbeitung nichts zu tun; das sind zwei Einheiten. Ich denke
jedoch, dass es bei wirklich sensitiven Applikationen (wie z.B. Bank) durchaus sinnvoll
sein kann, wenn das selbe zweimal umgesetzt ist (diese Redundanz erhöht die Sicherheit
und Stabilität des Gesamtsystems).
Viele Grüsse
Philipp
RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.