114468

Einstieg in SQL

07.10.2008 | 13:17 Uhr |

Kein lässiges Gute-Nacht-Buch sondern knallharte Technik-Lektüre ist das das IT-Buch "Einstieg in SQL. Verstehen, einsetzen, nachschlagen" von Galileo Press. Doch die Mühe lohnt sich, solide SQL-Kenntnisse warten als Belohnung auf den Leser.

Marcus Throll - Oliver Bartosch, Einstieg in SQL. Verstehen, einsetzen, nachschlagen, 2. Auflage 2007 (Nachdruck 2008), 291 Seiten, 1 CD-ROM, 24,90 Euro, erschienen bei Galileo Press.

SQL ist die Datenbankabsprache schlechthin, sie ist für Microsoft-Anwender ebenso unverzichtbar wie für Anhänger der Open Source-Szene und auch Oracle-Kunden kommen an SQL nicht vorbei. Obwohl es viele Tools und grafische Frontends gibt, mit denen sich Datenbankabfragen ohne konkrete SQL-Kenntnisse realisieren lassen (phpMyAdmin und der MySQL Query Browser sind nur zwei Beispiele hierfür), dürfte jeder Benutzer einer SQL-basierten Datenbank früher oder später mit den konkreten Befehlen in Kontakt kommen. Und für viele schnelle Tätigkeiten wie beispielsweise ein flottes Backup zwischendurch eignet sich die MySQL-Kommandozeile ohnehin am besten. Obendrein sind auf Servern oft keine grafischen Frontends installiert, so dass dem Datenbankadministrator hier ohnehin nur der Weg zur händischen Eingabe der SQL-Befehle bleibt. In Lehrbüchern, die sich mit Programmiersprachen befassen, wird die SQL-Syntax wiederum meist nur grundlegend und als einer von vielen Aspekten vorgestellt. Grund genug also, sich einmal ausgiebig nur mit dieser Sprache zu befassen. Genau das will dieses Buch aus dem Galileo Press-Verlag.

Anders als bei den meisten SQL-Lehrbüchern wird nicht die Installation von MySQL auf einer konkreten Betriebssystem-Plattform gezeigt, sondern stattdessen wird die Übungssoftware SQL-Teacher verwendet, in der die Befehle eingegeben werden. Der Vorteil: Man übt SQL unabhängig von dem konkreten Dialekt, man lernt also wirklich den SQL-Standard und nicht einen spezifischen Dialekt wie zum Beispiel das weit verbreitete MySQL. Zudem können die Autoren sofort zur Sache kommen und müssen sich nicht mit der Installation einer geeigneten Testumgebung aufhalten (was dank Xampp aber ohnehin nicht mehr so zeitaufwändig ist). Der Nachteil dieser Vorgehensweise sollte aber auch nicht verschwiegen werden: Die Lernumgebung erscheint etwas steril, man übt eben nicht an einem "lebenden", konkreten System, wie es beispielsweise bei einer LAMP-Installation mit Linux, Apache, PHP und MySQL der Fall wäre. Ein böses Foul ist zudem, dass die auf CD-ROM mitgelieferte Übungssoftware SQL-Teacher (die auf der Datenbank Firebird basiert) nur unter Windows läuft. Linux-Anwender, die mit diesem Buch erste SQL-Erfahrungen sammeln wollen, bleibt also nur der Ausweg auf die MySQL-Konsole oder der Einsatz von phpMyAdmin, wo es ein Eingabefeld für SQL-Befehle gibt. In diesen beiden Fällen lassen sich aber nicht alle im Buch beschriebenen Befehle und Beispiele nachstellen, weil der SQL-Standard nicht identisch mit dem Sprachumfang von MySQL ist.

Um es noch einmal zu betonen: Man lernt den SQL-Standard. Der Leser wird also die Erfahrung machen, dass später bei einem konkreten Datenbanksystem einige Befehle eine etwas abweichende Syntax besitzen oder sogar bestimmte Befehle nicht zur Verfügung stehen wie beispielsweise bei MySQL die Domänenverwaltung. Das sollte der Leser nie vergessen. Sonst gibt es beim Eintippen eines komplexen Beispieles aus dem Buch beispielsweise in das SQL-Code-Feld von phpMyAdmin ein böses Erwachen. In diesem Zusammenhang ist der Anhang des Buches sehr wertvoll: Dort findet man nämlich einen übersichtlichen Syntaxvergleich für gängige SQL-Dialekte wie Microsoft Sql Server und MySQL oder Oracle.

Wie bei nahezu jedem guten Datenbankbuch geht es mit etwas Theorie los. Man lernt zunächst, wie man eine Datenbank konzipiert und welche Denkmodelle dabei zu Grunde liegen. Der Leser lernt, wie verschiedene Tabellen zueinander in Beziehung gesetzt werden können. Was Kernelemente des relationellen Datenmodells sind und welche Bedeutung Primär- und Fremdschlüssel haben. Und was es mit der berühmt-berüchtigten Normalisierung auf sich hat. Eine konkrete Musterdatenbank mit etlichen Fremdschlüsseln dient als durchgehendes Beispiel für alle Befehle in dem Buch.

Auf Seite 40 taucht dann das erste konkrete SQL-Beispiel auf. Logischerweise ein Create-Befehl, schließlich muss man eine Datenbank (und eine Tabelle darin) ja erst erstellen, bevor man sie mit Daten füllen kann. Danach werden die verschiedenen Datentypen vorgestellt: Wer schon einmal eine Programmiersprache erlernt hat, dürfte damit kein Problem haben. Danach geht es weiter mit dem Ändern von Datenbanken (alter) und dem Löschen (drop).

Das nächste große Kapitel beschäftigt sich mit Insert und Select – den wichtigsten SQL-Befehlen bei einer existierenden Datenbank. Selbstverständlich werden auch die Details von Select wie beispielsweise where, order by, group by und so weiter beschrieben. Dabei werden auch interessante Details wie das Casting/die Typumwandlung beschrieben, die Programmierern ohnehin ein Begriff sein dürfte. Ein eigenes Kapitel ist Join gewidmet – aufgrund der Bedeutung dieses Befehls für Abfragen über mehrere Tabellen hinweg sicherlich zu Recht. Weiter geht es mit Unterabfragen. Danach folgen Update und Delete. Das Prinzip der Views ist ebenfalls in ein eigenes Kapitel eingebettet. Anschließend folgen die Transaktionen.

Wer erste Erfahrungen mit einer SQL-basierten Datenbank macht, wird mit den oben genannten Befehlen sicherlich vollends zufrieden sein. Doch in bestimmten Fällen müssen Datenbankadministratoren auf selbst geschriebene Funktionen oder Trigger zurückgreifen. So ist es nur konsequent, dass die Autoren auch diese Thematik gründlich erklären.

Wer schon einmal selbst mit Datenbanken gearbeitet hat, kennt vermutlich das Zeichensatzkauderwelsch, das einem bei der Ausgabe mitunter präsentiert wird. Denn meist müssen mehrere Zeichensatzdefinitionen auf der HTML-Seite, in PHP und in MySQL unter einen Hut gebracht werden. Das Buch geht auch auf dieses Problem ein, zumindest so weit, wie es nur SQL betrifft.

Ein ganz wichtiges Kapitel ist die Benutzerverwaltung und die Rechtevergabe. Ganz besonders unter dem Gesichtspunkt, dass viele vorinstallierte SQL-Datenbanken defaultmäßig Benutzer ohne Passwortabsicherung haben. Hier setzt das Buch ebenfalls an und erklärt, was es mit grant und revoke auf sich hat.

Jedes Kapitel wird durch Übungen (mit Lösungen) abgerundet. Eine Referenzkarte für SQL-Befehle und Datenbankentwürfe, sowie eine CD mit der oben erwähnten Übungssoftware und diversen Datenbanken ergänzt das Buch.

Fazit: "Einstieg in SQL" ist zwar etwas trocken geschrieben, dafür aber grundsolide und umfassend. Das Buch vermittelt alle wesentlichen SQL-Grundlagen für ein weiter gehendes Verständnis für die Funktionsweise und die Möglichkeiten relationaler Datenbanken. Um danach aber tatsächlich eine konkrete SQL-Datenbank administrieren zu können, muss sich der Leser noch in die Eigenarten und in die genaue Syntax der von ihm benutzten SQL-Variante einarbeiten. Das sollte aber kein Problem sein und wenig Zeit in Anspruch nehmen.. Zudem ist es für einen effizienten Umgang mit SQL unverzichtbar, praktische Frontends wie phpMyAdmin gründlich kennen zu lernen. Diese Arbeit nehmen einem die Autoren nicht ab, doch Throll-Bartosch legen eine stabile Basis, auf der man problemlos aufbauen kann.

0 Kommentare zu diesem Artikel
114468