Ich frag' mich immer wieder: Wieso sind eigentlich Datenbanken so leistungsfähig, wenn die Nutzer doch alles selbst in ihren Programm "nachprogrammieren"?
Vielleicht gehts ja vielen so wie mir: ich konnte mich nie so richtig mit
SQL anfreunden und habe früher auch immer alles im Programm erledigt, was eigentlich auch die Datenbank machen könnte. Zum Glück arbeite ich seit Jahren in einem Team mit einen hervorragenden Datenbankspezialisten, der nicht nur einfach alles übernimmt, was an
SQL-Programmierung nötig ist, sondern seinen Kollegen auch geduldig erklärt, wie eine bestimmte SP arbeitet.
Hat man mit vielen (sehr vielen) Daten zu tun, so ist es durchaus sinnvoll die Logik in die Datenbank zu legen. Das kann zu Laufzeitersparnissen im Bereich von Stunden und Tagen führen. Datenbanken sind dahin optimiert mit Daten umzugehen. Warum soll ich mir alle Daten in den Arbeitsspeicher holen und dort dann die in der Datenbank bereits vorhanden Logik zum Umgang mit vielen Daten nachprogrammieren? Meine Devise (aus langer Erfahrung mit extremen Datenmengen) ist: Lass alles die Datenbank machen, was die Datenbank machen kann. Sie kann das mit Sicherheit besser, als ich es in meinen kühnsten Träumen nachprogrammieren kann.
Sagt mein Kollege auch immer, wenn mal wieder einer versucht, die Datenbank nachzuprogrammieren
Ansonsten sind die Programme nur zur Steuerung der Datenbank und der Anzeige der Daten für den Nutzer zuständig.
Alles kann man natürlich nicht in Stored Procedures legen. Wir haben zum Bleispiel ein Textanalyse-Machine, das nicht nur Rechtschreibung und Grammatik korrigiert, sondern auch Synonyme kennt, Worthäufigkeiten ermittelt und der Gleiches mehr. Das kann man mit
DB-Mitteln nicht realisieren.
Oder die Software muss bei Kunde X gegen Datenbank O, laufen, bei Kunde Y gegen M, bei Kunde Z gegen wasweißich, dann gehört die Logik (fast schon zwansläufig) ins Programm.
Genau. Und deshalb ist es nicht correct zu sagen, man muss alles in der
DB machen oder alles im Programm. Vielleicht sind manche Programmierer, die ihr halbes Leben an ihrer einzigen grossen Anwendung, die ihnen den Lebensunterhalt sichert, herumschrauben, mit der Zeit ein wenig im Blick verengt worden und könnten sich dann nicht mehr vorstellen, dass es auch andere Anforderungen gibt. Kleinaufträge müssen bei uns immer rapid entwickelt werden, das ist dann meistens meine Spezialität (deshalb auch manchmal die Nachtschichten), dass das schnell über die Bühne geht, das ist so zu sagen eines unserer Aushängeschilder, wir liefern kleinen Kunden (der letzte war fast zwei Meter gross) kleine Programme sehr schnell. (Sagt mein Kollege immer, wenn so ein Langer kommt: "Die Tür ist nur bis 190 erlaubt, du musst leider den Liferanteneingang benutzen."
Aber gerade bei Mengenverarbeitungen, die nicht mal angezeigt werden müssen (also klare Batchanwendungen) sind gute Datenbanken dem "Eigenbau" an Leistungsfähigkeit und Performance klar überlegen.
Kann ich bstätigen.
Zitat:
Wir haben auch recht viel der Buissineslogik in der
DB
mal ne dumme Frage...
Zählt eine SP zur Businesslogik (was man auch im Programm abarbeiten könnte) oder zur Datenbanklogik die eine Abfrage "berechnet".
Vieleicht sollte man das mal definitionstechnisch klarstellen.
Wieso ist das wichtig? Zählt ein Virus noch zu den Tieren oder ist er ein Pflanze? Oder eine Alge? Damit kann man gut streiten, aber es ist doch nicht wichtig, oder?