The Art of SQL

Vor ca. 2500 Jahren schrieb Sunzi ein Buch, welches mit den Worten beginnt.

"Die Kunst des Krieges ist für den Staat von entscheidender Bedeutung. Sie ist eine Angelegenheit von Leben und Tod, eine Straße, die zur Sicherheit oder in den Untergang führt. Deshalb darf sie unter keinen Umständen vernachlässigt werden."



Sunzi schreibt weiter:

"Wenn du den Feind kennst und dich selbst kennst, brauchst du den Ausgang von hundert Schlachten nicht zu fürchten."

Dies sind nur zwei Zitate aus einem Buch, das bis zum heutigen Tag so viel Wahrheit enthält, daß man es auf fast alle Lebenslagen anwenden kann. Sunzi's "Die Kunst des Krieges" ist für so viele Bereiche adaptiert worden, daß man sich eigentlich wundern muß, daß es bisher kein "Die Kunst der SQL" gab. Diese Lücke schließt nun das vorliegende Buch. Es orientiert sich in der Gliederung nahezu vollständig am Original und so lauten die Kapital folgendermaßen:

  • Laying Plans (Designing Databases for Performance)
  • Waging War (Accessing Databases Efficiently)
  • Tactical Dispositions (Indexing)
  • Maneuvering (Thinking SQL Statements)
  • Terrain (Understading Physical Implementation)
  • The Nine Situations (Recognizing Classic SQL Patterns)
  • Variations in Tactics (Dealing with Hierarchical Data)
  • Weaknesses and Strengths (Recognizing and Handling Difficult Cases)
  • Multiple Fronts (Tackling Concurrency)
  • Assembly of Forces (Coping with Large Volumes of Data)
  • Stratagems (Trying to Salvage Response Times)
  • Employment of Spies (Monitoring Performance)

Wenn man, so wie ich, Sunzi's Buch "Die Kunst des Krieges" sein Eigen nennt, kommt man nicht umhin, zu schmunzeln aufgrund der vielen Analogien, die der Autor herausgearbeitet hat. Während man das 1.te Zitat vielleicht folgendermaßen umschreiben kann: "Die Kunst, Datenmengen effizient zu verwalten, abzufragen und auszuwerten ist von entscheidender, existentieller Bedeutung für heutige Unternehmen."; ist das 2.te Zitat vielleicht noch einleuchtender: "Nur wenn du deine Daten kennst und die Sprache, um diese abzufragen beherrscht, brauchst du Projekt-Deadlines nicht zu fürchten."

Nun kann "beherrschen" alles oder nichts bedeuten. Und so stellt der Autor zu Recht fest, daß "beherrschen" nicht heißt, in Zeiten exlodierender Datenvolumina "nur" funktional richtigen Code zu produzieren, sondern vielmehr schnellen und effizienten Code von Anfang an zu schreiben. Um aber schnellen und effizienten Code schreiben zu können, muß man sowohl die SQL-Sprache beherrschen, als auch in der Lage, in der SQL-eigenen Logik zu denken.

Hier setzt das vorliegende Buch an. Es ist kein Buch für Anfänger. Und auch kein Buch speziell für SQL Server Anwender. Im Gegenteil, an manchen Stellen merkt man recht deutlich, daß der Autor für Oracle gearbeitet hat und dies das RDBMS seiner Wahl ist. Das hindert einen aber keinesfalls am Lesevergnügen, da der SQL Code auch für reine SQL Server Anwender gut nachvollziehbar ist und die Ausführungen des Autors über RDBMS-Grenzen hinweg gültig sind.

Auf den über 300 Seiten erfährt der Leser, wie man schlecht geschriebenem SQL Code zu Leibe rückt. Beziehungsweise, wie man diesen direkt von Anfang an vermeidet. Der Bogen spannt sich hier von der Analyse und Optimierung einfacher Statements über die Wahl von geeigneten Indizes bis hin zur Analyse komplexer Statements und Embedded SQL in Client Sprachen. Das Buch bietet zwar keine neuen Erkenntnisse, aber allein schon die Zusammenfassung der bisher bestehenden Erkenntnisse in einem Buch, macht das Buch lesenwert. Kurzum, ich mag dieses Buch und kann es eigentlich nur jedem empfehlen, der sich professionell mit Datenbanken auseinandersetzt. Es ist seinen Preis von 39,50 Euro eindeutig wert.

The Art of SQL
Stéphane Faroult mit Peter Robson
2006 O'Reilly Media, Inc.
ISBN 0-596-00894-5