Inzwischen besitze ich eine ganze Reihe von Büchern von Joe Celko, und ich muss sagen, dass mit jedem Buch der Deja-Vu Effekt ansteigt.
Vieles von dem, was in "Thinking in sets" geboten wird, kann man in der einen oder anderen Form auch in früheren Büchern, und natürlich auch in den diversen Communities, in denen Celko präsent ist, nachlesen.
Joe Celko ist zweifelsohne einer der Teilnehmer an Online-Communities, die am meisten polarisieren. Entweder man mag seine Art, auf Fragen zu antworten oder man haßt sie. Dazwischen scheint es nur wenig Spielraum zu geben. Aber zum Glück treibt sich Joe nicht nur in den Communities herum, sondern schreibt auch Bücher. Und diese zählen, zumindest für mich, zu den besten Bücher über SQL überhaupt. Sie sind voll von Tips und Tricks, wie man auch komplexe Problemstellungen elegant lösen kann. Unorthodoxe Ansätze, die man manchmal 1x, 2x oder auch öfter lesen muß, um nachvollziehen zu können, warum dies zum gewünschten Ergebnis führt. Ich liebe diese Art von Büchern, von denen es leider zu wenige gibt.
Einer dieser "Klassiker", der demnächst in der 2.ten Auflage erscheint, ist SQL Puzzles & Answers, in dem Brainteaser zu folgenden Themen behandelt werden:
Da Joe einer der vehementesten Verfechter von portablem ANSI SQL ist, sind natürlich auch die vorgestellten Lösungen in ANSI SQL kodiert. Das heißt, sie sind unter Umständen so nicht out-of-the-box lauffähig im SQL Server. Und hier liegt ein weiterer Punkt, warum ich Joe's Bücher so mag. Es macht immer wieder Spaß, sich zu überlegen, wie man diese Lösungen durch Verwendung der proprietären T-SQL Syntax auf den SQL Server portieren könnte. Und dieses Nachdenken und Sinnieren über mögliche Lösungen und Alternativen in T-SQL ist eine hervorragende Übung und macht Joe's SQL Bücher uneingeschränkt empfehlenswert.
Joe Celko's SQL Puzzles & Answers |
Man muß nicht einmal besonders genau hinschauen, um zu sehen, daß die meisten Applikationen mit Daten in dieser oder jener Form arbeiten. Oftmals sind diese Daten in einer Datenbank gespeichert, so daß man davon ausgehen kann, daß die meisten Software Entwickler mehr oder weniger regelmäßig mit Datenbanken arbeiten. Nun ist aber Datenbankprogrammierung etwas anders als Applikationsprogrammierung und von daher ist es nicht selbstverständlich, daß ein guter Applikationsentwickler gleichzeitig auch ein guter Datenbankentwickler ist. Dabei spielt es übrigens keine Rolle, ob als Datenbanksystem eine Desktopdatenbank wie Microsoft Access zum Einsatz kommt oder ein ausgereifter relationaler Datenbank-Server wie der Microsoft SQL Server. Paradigmen, Grundsätze und Richtlinien, die für Applikations Entwicklung gelten, gelten nicht auch zwangsläufig für die Datenbankentwicklung und können teilweise sogar eher gegenläufig sein. Dennoch gibt es auch in der Datenbankentwicklung einen deutlichen Bedarf an Regeln und Richtlinien für die Entwicklung und hier kommt das vorliegende Buch ins Spiel. Sein Autor, Joe Celko, zählt zu den prominentesten Vertretern der Datenbank Community und hat einige der besten Bücher über SQL Programmierung im Allgemeinen geschrieben. Dieses Buch jedoch ist anders. Es zeigt einem nicht, wie man ein "besserer" SQL Entwickler wird, indem es Lösungen und Tricks zu SQL Rätseln und Brainteasern präsentiert. Dieses Buch will vermitteln, wie man in logischen und deklarativen Begriffen denkt und arbeitet.
Folgendes kann man in dem Buch lesen:
Auf den über 200 Seiten präsentiert Celko seine Sicht eines Frameworks, innerhalb welchem Datenbankentwicklung erfolgen sollte. Sei dies eine Diskussion darüber, was eine gute Namenskonvention ausmacht oder wie SQL Code geschrieben und eingerückt werden sollte. Sei dies eine Diskussion darüber, ob Auto-Nummern (auch bekannt als SQL Server's IDENTITY Eigenschaft) ein guter Schlüssel sind oder wo im Code CHECK Einschränkung platziert werden sollten.
Einige der präsentierten Regeln sind (hoffentlich) gesunder Menschenverstand, für manche anderen existieren internationale Standards und weitere wiederum sind eher Celko-spezifisch. Sämtliche Regeln werden zusammen mit einer Begründung und gegebenenfalls Ausnahmesituationen für die jeweilige Regel angeführt. Dies macht aus dem Buch eher eine Art Nachschlagewerk, welches man im Zweifelsfall zu Rate zieht, als ein "normales" Buch, welches man Kapitel für Kapitel von vorne bis hinten liest. Auch wenn man in manchen Punkten nicht unbedingt mit Joe Celko übereinstimmen muß, kann man dieses Buch hervorragend als Grundlage nehmen, um darauf seine eigenen Programmierstil Richtlinien aufzubauen.
Zweifelsohne gibt es einen Bedarf an solchen Richtlinien, und so ist, zum Beispiel, die schlechteste Namenskonvention, immer noch besser als gar keine. Aber es macht das Leben eines Datenbankentwicklers (und, wahrscheinlich noch wichtiger, das Leben desjenigen, der den ursprünglichen Code pflegen muß) deutlich einfacher, wenn ein klarer und konsistenter Programmierstil angewendet wird. Viele der Regeln in diesem Buch sind nicht wirklich neu für Leute, die den Online Communities folgen, an denen Joe Celko ebenfalls partizipiert, aber dieses Buch fasst diese Regeln sehr schön an einem einzigen, greifbaren Ort zusammen und das allein bietet schon genug Anreiz zu Kauf.
SQL Programming Style Joe Celko 2005 Morgan Kaufmann 272 Seiten ISBN 0-12-088797-5 |