Wenn ich das richtig beobachtet habe, dann ist auf dem Blog „Michael’s book list“ die erste Rezension des Buches „Microsoft SQL Thinking“ erschienen. Vielen Dank für die faire und konstruktive Kritik.
Das Lob nehmen wir gerne an. Danke! Es freut mich, dass sich das Buch in den Augen von Michael Müller im Vergleich zum Vorgänger verbessert hat. (Insbesondere weil ich erst frisch dabei bin und die neuen Kapitel hervor gehoben werden…)
Aber auch die Kritik ist berechtigt. Auf einige Kritikpunkte davon mag ich sofort eingehen:
Pivotierung ohne PIVOT-Statement wird nicht beschrieben
Ja, das hätte durchaus Erwähnung verdient. Es fiel der Einfachheit zum Opfer. Pivotierung ist nicht unbedingt die Einsteigermaterie. Daher haben wir das nicht vertieft. Michael Müller verweist in seiner Rezension auf Outer-Joins als Alternative. Das kann man machen. Ich persönlich würde aber GROUP BY als Alternative bevorzugen. Das hat ohnehin gegenüber dem PIVOT einen Vorteil: man ist flexibler. Dazu ein paar Artikel von meinem Blog, die das thematisieren:
- Artikel 1: Wie wird Pivot abgearbeitet?
- Artikel 2: Störer beim PIVOT eliminieren
- Artikel 3: Pivot-Performance
- Artikel 4: Pivot-Performance mit Joins
Wenn wir das Buch zur zweiten Auflage verändern dürfen, dann würde ich dem Vorschlag gerne nachkommen und Alternativen zum Pivot bringen. Das müssen wir aber freilich noch untereinander ausdiskutieren.
Ein Buch nur für einen speziellen Dialekt.
Ja, stimmt. Das Buch bezieht sich rein auf TSQL vom Microsoft SQL Server. Auch ich fände es besser, wenn man sich nicht so sehr auf ein System fokussieren müsste. Meine erste Kritik an dem Oracle-Buch ging in die gleiche Richtung. Wenn ich mir die Unterschiede in den Implementierungen von SQL anschaue, z.B. Oracle, Microsoft, DB2 und MySQL, dann sind die Unterschiede im Detail so krass, dass es unheimlich schwer ist in die Tiefe zu gehen. Meist müsste man vier verschiedene SQL-Statements – je nach Zielsystem – darstellen. Das finde ich für das Erlernen von SQL echt schwierig. Oder man würde sich auf eine abstrakte ANSI-Implementierung beschränken. Klar sind die grundlegenden Dinge in der Regel sehr ANSI-konform, aber auch bei ganz einfachen Dingen gibt es schon Unterschiede. Insbesondere die Dinge, die Spaß machen, sind oftmals plattformabhängig. Daher würde ich mittlerweile empfehlen auf irgendeinem System SQL zu lernen und dann bei dem Nächsten einfach nur die Unterschiede anzuschauen. Der Vorteil vom Microsoft SQL Server ist, dass er ein sehr breites Spektrum bietet und nahezu alle relevanten Dinge bietet. Der Nachteil ist, dass es immer noch sehr viele proprietäre Features gibt. Aber das gilt auch für Oracle und sogar MySQL. Daher bin ich nicht mehr davon überzeugt, dass ein generelles Buch die Tiefe erreichen könnte, die wir anstrebten. Zudem kann der Leser die Befehle so auch gleich ausprobieren…. Aber ich verstehe, dass wir so alle Nutzer von Oracle, DB2 und MySQL verlieren. Tut mir leid.
Die Tabelleninhalte werden nicht erklärt.
Hupps, wir dachten mehr Erklärung sei nicht nötig, weil die Daten so simpel sind. Eine wenige Dinge werden erklärt, wo wir sie für nötig hielten. Das war wohl eine Fehleinschätzung. Bei der zweiten Auflage werde ich darauf achten. Eine Bitte an alle Leser: Wenn Ihr einzelne genutzte Tabellen oder die Tabellen eines Kapitels besonders erklärungsbedürftig findet, dann bitte hier im Kommentar hinterlassen.
Die Rezension steht auch bei Amazon. Weitere Rezensionen sind willkommen.