By Frank Kalis
Ich frage mich immer wieder, woher denn alle diese "Legacy Systeme" kommen, über die die Leute in Online Communities so berichten. Üblicherweise scheint es so zu sein, daß solche Systeme urplötzlich auftauchen (oder schon immer dagewesen sind) und von niemandem bemerkt werden.
Irgendwann dann eines schönen Tages kommt ein neuer Kollege in die Firma, stolpert über ein solches System und realisiert, daß dieses jenseits von optimal ist. Nun bricht idR die Hölle los, da man feststellt, daß die Performance mehr als schlecht ist oder andere Sachen einfach zusammenbrechen. Dummerweise sind die ursprünglich Verantwortlichen nicht mehr in der Firma und es gibt weder das Geld noch die Zeit für ein angemessenes Redesign. Zusätzlich noch verlassen sich andere wichtige Systeme der Firma genau auf diese Arbeitsweise des "Legacy Systems". Ein Redesign eines System würde also ein Redesign nahezu sämtlicher Systeme erfordern, was schlichtweg unmöglich ist.
Würde man mich fragen, so würde ich antworten, daß ich nicht daran glaube, daß "Legacy Systeme" plötzlich auftauchen oder schon immer dagewesen sind. Ferner glaube ich nicht daran, daß die Verantwortlichen nicht mehr für die Firma tätig sind, zumindest in vielen Fällen. Jedoch glaube ich daran, daß viel zu häufig unerfahrene und untrainierte Leute für das Design einer Datenbank verantwortlich sind. Nun, zugegebenermaßen ist es nahezu schon fast zu einfach, mit Hilfe eines graphischen Design-Tools schnell ein paar Tabellen zusammenzuklicken, aber es bedarf doch schon etwas mehr, um eine grundsolide Datenbank zu erstellen. Eine Datenbank ist weit mehr als ein Datenspeichermedium mit Tabellen, Indizes und Constraints und ein potentieller Datenbankdesigner oder -Entwickler braucht mehr als nur das Wissen, wie man ein graphisches Design-Tool verwendet, um eine Tabelle zu erstellen. Eine Zeitlang kann man vielleicht Performance-Probleme durch größere und schnellere Hardware verbergen, aber selbst mit der schnellsten Hardware kommt irgendwann einmal der Zeitpunkt an dem man der Wahrheit ins Auge sehen muß, daß ein optimal performendes System mit einer effizient designten Datenbank anfängt. Aber genau dafür braucht man halt eben ein bißchen mehr Wissen als das Wissen um die Bedienung irgendwelcher Design-Tools.
Relationale Datenbanken basieren sehr stark auf der zugrundliegenden Relationalen Datenbanktheorie. Und um eine gute Datenbank zu designen, muß man diese Theorie zumindest in einem gewissen Umfang verstehen. Da die Relationale Datenbanktheorie einen soliden mathematischen Unterbau besitzt, existieren natürlich viele akademische Lehrbücher zu diesem Thema. Diese sind aber bisweilen schwer verständlich für jemanden ausserhalb der akademischen Welt und in diesem Zusammenhang teilweise eher kontraproduktiv als hilfreich. Bücher von Praktikern für Praktiker sind zwar ebenfalls erhältlich, konzentieren sich aber meistens auf entweder Design oder Implementierung, bieten aber keinen Überblick über beide Konzepte. Hier setzt das vorliegende Buch an. Es deckt sowohl Design als auch Implementierung detailiert ab.
Folgendes kann man in dem Buch lesen:
Das Buch leistet hervorragende Arbeit in dem Ansatz die notwendigen theoretischen Konzepte mit ihrer Implementierung im SQL Server zusammen zu bringen. Es erklärt nicht nur, wie man, zum Beispiel, eine PRIMARY KEY Constraint implementiert, sondern erklärt auch, warum diese implementiert werden sollte. All das wird in einer angenehm zu lesenden und leicht verständlichen Art präsentiert. Jedes Kapital wird von "Best Practises" angeschlossen, die man als Faustregeln verwenden kann, wenn man seine eigene Designmethode entwickelt.
Auf mehr als 600 Seiten demonstriert der Autor, daß bei dem Unternehmen, eher trockene theoretische Erklärungen mit deren Implementierung in SQL Server zu kombinieren, ein absolut lesenswertes Buch herauskommen kann. Als Zugabe kann man zudem noch den kompletten Sourcecode von der Apress Website herunterladen. Auch mit diesem Buch zeigt Apress, daß es sich auszahlt, Bücher von Praktikern schreiben (und editieren zu lassen). Das Buch ist das Nächste in der Apress "Pro SQL Server 2005" Reihe, das klar über dem Durchschnitt liegt.
Der erste und wichtigste Einzelschritt zu einer leistungsfähigen Datenbank ist ein gutes Design und ich hoffe, daß viele Leute dieses Buch lesen werden. Es kann dabei helfen, zukünftige "Legacy System" zu vermeiden.
Pro SQL Server 2005 Database Design and Optimization
Louis Davidson, Kevin Kline and Kurt Windisch
2006 Apress
ISBN: 1-59059-529-7