Höre doch bitte mal um deiner Horizonterweiterung Willen auf, alles auf
relationale Datenbanken zu projezieren/reduzieren.
Moment, SW unterstützt zwischenmenschliche Kooperation, also die Wirtschaft, benötigt Datenhaltung, Datenhaltung repreäsentiert oft verschiedene reale Objekte und ist darum typischerweise relational (nicht zu verwechseln mit RDBMSen).
Aber nehmen wir einfach mal eine Software, die du bestimmt selbst sehr gut kennst: Den MS SQL Query Analyzer. Auf den ersten Blick eine nicht allzukomplex erscheinende Software, oder? Ein Fenster, in dem man kleinere Fensterchen öffnen kann, was eingeben kann und dann an die DB zum Ausführen schicken kann, oder? Da geht es schon los, der Ausführen-Button muss sich mit den Fenstern koordinieren, dass immer der Inhalt des momentan aktiven Fensters ausgeführt wird.
Ich habe mal einen "MS SQL Query Analyzer Light" selbst geschrieben (Webapplikation), das Ausführen veschiedener Abfragen habe ich über verschiedene Browserfenster, die den Sicherheitskontext erbten, realisiert.
Über das Menü kann eingestellt werden, wie die Ausgabe erfolgen soll (Grid, Text, File). Die jeweils aktuell gewählte Einstellung muss irgendwo aufbewahrt werden und auf das zurückkehrende Ergebnis angewendet werden. Dann nehmen wir noch den Objektexplorer dazu, er existiert parallel, von ihm aus können per Kontextmenü neue Fensterchen mit oder ohne Inhalt, verbunden oder unverbunden zur Datenbank erzeugt werden. Das alles, die Fensterchen und auch die ganzen Dialoge für Voreinstellungen müssen ja irgendwie miteinander koordiniert werden, oder nicht?
Na gut, bei Objektexplorer und Kontextmenü fängt bei mir langsam die Spezialsoftware an. ;)
Und auch implementiert werden. Eine "Script as create to new window" Funktion ist da schon nicht mehr als trivial für sich anzusehen, sie involviert mehrere Vorgänge (abfragen von MetaInformationen, erzeugen des Scripts) und auch mehrere GUI-Elemente ... weisst du jetzt besser worum es geht?
So nah an Datenbanken und doch soweit entfernt. Und hier zählt kein vorher hübsch entwickeltes Datenbankmodell oder Datenzugriff mit Stored Procedures.
Hey, danke für die Erklärungen, ich ahne um was es geht. Habe selbst mal vor Urzeiten ein Blackjack-Programm geschrieben, das war auch frickelig (habe es nicht ganz fertig bekommen, es gab Probleme mit dem mehrfachen Splitten ;).
Ja, richtig, ich habe die Frickelsoftware schon ein wenig vergessen bzw. selbst nie professionell entiwckelt. Gut, da braucht man petterns, OK.
BTW - Frickelsoftware beisst sich ein wenig mit Webapplikationen, oder?
Und dafür gibt es eben etablierte Vorgehensweisen, Patterns genannt :) Und wie du siehst, gibt es Patterns auch im Datenbankbereich: Abstrahierung via SPs oder Nested Sets zum Bleistift.
Ja, ja, ich hatte doch schon angedeutet verstanden zu haben, dass man für coole, frickelige Spezialsoftware anscheinend patterns und so benötigt.
Vielleicht solltest du selbst zum Spass mal versuchen eine Software zu schreiben, wo du nicht nur den Datenbankkram machst sondern das Gui implementierst.
Danke für die Erläuterungen!