Lachen und Lernen ein Leben lang: Relationale Datenbanken und SQL Teil 1 - Harald Kellerwessel - E-Book

Lachen und Lernen ein Leben lang: Relationale Datenbanken und SQL Teil 1 E-Book

Harald Kellerwessel

0,0

Beschreibung

Dieses Buch ist für all jene gedacht, die eine solide Grundlage für die praktische Handhabung von Daten­banken und der Sprache SQL benötigen – und keine Lust haben, sich mit veralteten Theorien oder völlig überflüssigen, angeblich unvermeidlichen Fachaus­drücken herum zu schlagen. Es soll Ihnen das notwendige Maß an Wissen vermitteln, um zu - verstehen, - mitzudenken, - Entscheidungen zu fällen, - praktische Probleme zu lösen und - selbständig weiter zu kommen. Zum Pauken bzw. Auswendiglernen für Prüfungen ist es nur insoweit geeignet, als Ihnen das Hintergrund­wissen hier hilft, den Prüfungsstoff besser zu verstehen und somit zu behalten. Die zahlreichen Späße, die Seitenhiebe, der Klamauk und der Humor - sollen Ihnen als Motivation dienen, - Ihnen Freude am Lernen vermitteln anstatt es Ihnen zur Last werden zu lassen, - das Behalten des Gelernten erleichtern - usw. Sie werden also hier als Mittel zum Zweck eingesetzt und kommen erst an zweiter Stelle hinter der Wissens­vermittlung - Verständlichkeit war mein Ziel. (Ich hoffe, hier ist mir einiges besser gelungen als anderen.) - Statt Lobhudeleien für Theorien und Werbe­versprechen gibt es überall einen kritischen Blick aus der Perspektive des Praktikers von heute. Dabei ist es leider sogar hin und wieder notwendig, vor üblen Fallstricken zu warnen. - Relationale Datenbanken haben oft das Potential, Aufwände für Programmierung, Test, Dokumentation usw. drastisch zu reduzieren. Hauptsächlich deswe­gen werden im Teil 2 auch die Systemtabellen in Grundzügen behandelt. - Programmierung gehört schon seit Jahrzehnten zur Entwicklung Datenbank-gestützter Systeme unbe­dingt dazu. Der sogenannten "Server-Program­mie­rung" und der "Client-Programmierung" wer­den deswegen im Teil 2 zwei Kapitel gewidmet. Dieses Buch ist für alle, die sich Basiswissen aneignen wollen oder müssen. Was nicht mehr zu den Grundlagen gehört, wurde weggelassen, wie beispiels­weise das Thema "Datenreplikation".

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern
Kindle™-E-Readern
(für ausgewählte Pakete)

Seitenzahl: 229

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Lachen und Lernen ein Leben lang:

Relationale Datenbanken und SQL

Teil 1

Harald Kellerwessel

Lachen und Lernen ein Leben lang:

Relationale Datenbanken und SQL

Teil 1

Harald Kellerwessel

Verlag:

epubli – ein Service der neopubli GmbH, Berlin

Texte: © Copyright by Harald Kellerwessel

Umschlaggestaltung:

© Copyright by Harald Kellerwessel

Verlag:

epubli – ein Service der neopubli GmbH, Berlin

Harald Kellerwessel

Sprendlinger Straße 50

55546 Pfaffen-Schwabenheim

E-Mail: [email protected]

Homepage: www.haraldk.de

1 Das sollten Sie im Vorhinein unbedingt wissen
.1 Als Allererstes

Dieses Buch ist ein Lehrbuch: Es soll Ihnen das notwendige Maß an Wissen vermitteln, um zu

• verstehen,
• mitzudenken,
• Entscheidungen zu fällen,
• praktische Probleme zu lösen und
• selbständig weiter zu kommen.

Zum Pauken bzw. Auswendiglernen für Prüfungen ist es nur insoweit geeignet, als Ihnen das Hintergrundwissen hier hilft, den Prüfungsstoff besser zu verstehen und somit zu behalten.

Die zahlreichen Späße, die Seitenhiebe, der Klamauk und der Humor sollen

• Ihnen als Motivation dienen,
• Ihnen Freude am Lernen vermitteln anstatt es Ihnen zur Last werden zu lassen,
• das Behalten des Gelernten erleichtern
• usw.

Sie werden also hier als Mittel zum Zweck eingesetzt und kommen erst an zweiter Stelle hinter der Wissensvermittlung. Dieses Buch ist trotz allem nicht gedacht für die Ecke „Humor und Satire“.

Und denjenigen, die hier nur Klamauk und keine Fachkenntnisse erwarten, sei gesagt, dass ich die Basis meines Wissens über relationale Datenbanken dem glücklichen Umstand verdanke, dass auf meiner ersten Stelle eine externe Beraterin für Relational Technology tätig war – jenem damals technisch führenden Unternehmen, das den Datenbankpapst Michael Stonebraker zu seinen Gründern zählte. Weitere Kenntnisse haben ihre Grundlage in praktischer Arbeit, dem Studieren der Dokumentation verschiedener Systeme und natürlich dem Lesen von Fachliteratur bzw. den entsprechenden Forenbeiträgen im Internet.

.2 Überblick

Dieses Buch ist für all jene gedacht, die eine solide Grundlage für die praktische Handhabung von Datenbanken und der Sprache SQL benötigen – und keine Lust haben, sich mit veralteten Theorien oder völlig überflüssigen, angeblich unvermeidlichen Fachausdrücken herum zu schlagen.

• Verständlichkeit auch für jene, die bestenfalls die zehnte Schulklasse absolviert haben, war mein Ziel. (Ich hoffe, hier ist mir einiges besser gelungen als anderen.)
• Statt Lobhudeleien für Theorien und Werbeversprechen gibt es überall einen kritischen Blick aus der Perspektive des Praktikers von heute. Dabei ist es leider sogar hin und wieder notwendig, vor üblen Fallstricken zu warnen.
• Relationale Datenbanken haben oft das Potential, Aufwände für Programmierung, Test, Dokumentation usw. drastisch zu reduzieren. Hauptsächlich deswegen werden im Teil 2 auch die Systemtabellen in Grundzügen behandelt.
• Programmierung gehört schon seit Jahrzehnten zur Entwicklung Datenbank-gestützter Systeme unbedingt dazu. Vieles bei der Verbindung der Datenbank mit dem, was der Anwender schließlich zu sehen bekommt, ist zwar nicht standardisiert – aber es muss im Rahmen einer Einführung zumindest angesprochen werden. Der sogenannten „Server-Programmierung“ und der „Client-Programmierung“ werden deswegen im Teil 2 zwei Kapitel gewidmet – nicht zuletzt auch, um die Möglichkeiten in diesen zwei Bereichen zu verdeutlichen.
• Der Spaß beim Lernen sollte nicht zu kurz kommen.

Dieses Buch ist für alle, die sich Basiswissen aneignen wollen oder müssen. Was nicht mehr zu den Grundlagen gehört, wurde weggelassen, wie beispielsweise das Thema „Datenreplikation“.

Dennoch war es nicht möglich, einen Schnelleinstieg in das Thema zu realisieren. „Relationale Datenbanken und SQL“ ist selbst bei äußerster Beschränkung zu umfangreich dafür.

Damit das Lesen Hunderter von Seiten dennoch nicht zur Quälerei wird, habe ich keine Gelegenheit ungenutzt gelassen, um meine Späße einzubauen. Ich hoffe, es gefällt Ihnen so. Denn gerade mit Witzen kann man es nie allen recht machen: der eine wird sagen „zu viel“, der andere „mehr davon“, der Dritte wird sie gähnend überlesen.

.3 Die Besonderheiten von SQL

SQL ist genau genommen keine Programmiersprache. Im Mittelpunkt dieses Buches wird nicht das Erstellen eines Programms, sondern der Umgang mit einer Datenbank stehen, in der

alle Daten in Tabellen geordnet sind und

sich die Zusammenhänge der Daten aus den Werten der einzelnen Datenfelder ergeben (und nicht – wie bei dem Vorgänger Netzwerkdatenbank – „fest verdrahtet“ sind).

all das wird Ihnen hier gezeigt. (Anmerkung: Die Berechtigungsverwaltung – hauptsächlich mit GRANT und REVOKE – kommt in Teil 2.)

Vieles ist dabei ähnlich wie bei der Programmierung, aber es gibt auch gravierende Unterschiede:

SQL bietet zwar auf der einen Seite nahezu unbegrenzte (und zudem noch leicht zu erlernende!) Möglichkeiten, die gespeicherten Informationen immer wieder neu zusammenzustellen und unter anderen Blickwinkeln zu betrachten oder für andere Zwecke zu verwenden.

Zwischenbemerkung für diejenigen, die auch die Geschichte der Informatik interessiert

Diese „unbegrenzten Möglichkeiten“ waren der Riesenfortschritt gegenüber den davor üblichen Netzwerkdatenbanken: bei denen müssen die Beziehungen zwischen den Daten nämlich im Vorhinein (im Wesentlichen) festgelegt sein.

Aber Datenbanken – egal welcher Art – bringen auch immer eine Unzahl an Problemen mit sich, die weit über das hinaus gehen, was wir von der gängigen Programmierung her so gewohnt sind: Wir finden uns auf einmal in der realen Welt wieder – mit ihrer Vielfalt, ihren Widersprüchlichkeiten und ihren Ungereimtheiten: und diese Dinge zeigen ganz schnell auf, wo der Computer seine Grenzen hat.

Diejenigen, die schon Vorkenntnisse aus dem Bereich „Programmierung“ haben, seien bereits hier gewarnt

Es ist viel schwieriger, eine Datenbank bzw. die dazugehörigen Programme zu ändern, als beispielsweise eine Software zu erweitern, die nur aus einigen wenigen Werten etwas errechnet, eine einzelne Datei bearbeitet o.ä. – eine Datei, die das jeweilige Programm noch dazu sozusagen „für sich allein hat“. Es gibt Datenbanken mit Tausenden von Tabellen – auf die auch Tausende von einzelnen Programmen zugreifen.

An einem solchen System Änderungen und Erweiterungen vorzunehmen oder – was im Zusammenhang mit Computern immer wieder notwendig ist – Fehler zu beseitigen, ist zunächst einmal ungefähr so schwierig wie das Handhaben eines Programms, das Tausende von Seiten lang ist.

Auch wenn SQL leichter zu erlernen sein dürfte als die meisten Programmiersprachen: Eine durchdachte Konzeption und sorgfältige Dokumentation haben bei Systemen, die möglicherweise sogar schon „echte“ Daten enthalten (und nicht bloß Testdaten), einen enormem Stellenwert.

„Gewöhnliche“ Programme kann man notfalls einfach wegwerfen und neu machen – z.B. dann, wenn sie durch Fehlkonzeption oder häufige Flickschusterei in den Status „Nicht mehr wartbar“ gekommen sind. Aber bei einer Änderung an einem Datenbanksystem muss man meist auch ganz genau darüber nachdenken, was mit den bereits vorhandenen Daten und den schon im laufenden Betrieb mit der Datenbank arbeitenden Programmen geschehen soll. Wehe, wenn dann die Dokumentation fehlt oder völlig veraltet ist!

Trotz allem verspreche ich Ihnen: Dieses Buch wird viel unterhaltsamer und interessanter werden als jeder Samstag-Abend-Fernsehkrimi – und ich bin schließlich weder ein Politiker noch ein Manager.

.4 Für wen ist dieses Buch?

Datenbanken sind heutzutage allgegenwärtig, auch wenn „Otto Normalverbraucher“ es nicht sieht: Kein soziales Netzwerk, kein Online-Shop, nahezu kein Programm in einem Unternehmen, einer Behörde, einer Bibliothek, einer Arztpraxis oder einem wissenschaftlichen Institut arbeitet ohne Datenbank im Hintergrund – und fast immer ist es eine relationale.

Das Wort „Datenbank“ taucht sogar schon in Lehrplänen für allgemeinbildende Schulen auf. SQL wird zudem in vereinfachter Form beispielsweise auf dem Smartphone benutzt.

Dementsprechend weit ist der Kreis derjenigen, an die sich dieses Buch wendet. Zum einen sind es diejenigen, die Grundkenntnisse in „Relationalen Datenbanken“ für ihre tägliche Arbeit benötigen:

• Programmierer
• Tester
• sonstige Mitarbeiter in Projekten zur Entwicklung oder Betreuung von Datenbank-gestützten Systemen
• Führungskräfte, die über IT-Projekte entscheiden müssen
• Lehrer, Ausbilder u.ä.

Zum anderen sind es alle, die ihre Tätigkeit möglicherweise mit Hilfe eines Datenbank-gestützten Systems vereinfachen könnten. Dazu gehören:

• Wissenschaftler aller Fachrichtungen – egal, ob Physiker, Biologen, Ingenieure, Volkswirtschaftler, Juristen oder Mediziner usw.,
• Mitarbeiter von Forschungsinstituten, Vereinen und Verbänden und
• viele aus weiteren Bereichen.

Zu guter Letzt seien diejenigen erwähnt, die für Prüfungen pauken müssen. Das sind heutzutage nicht nur Studenten im Fach Informatik, sondern auch Schüler am Gymnasium und vielleicht sogar kaufmännische Auszubildende.

Hier muss ich allerdings etwas sagen: Ich lege großen Wert auf Verständlichkeit und die praktische Verwertbarkeit des Wissens in diesem Buch. Aber es interessiert mich nicht die Bohne, was fernab jeder Realität irgendwelche Bürokraten in Lehrpläne oder sonstige antiquarische Werke geschrieben haben.

Dieses Buch erfordert keinerlei Vorkenntnisse aus den Bereichen Computer, Informationstechnologie, Programmierung o.ä. Es soll ein Lehrbuch – noch dazu in der Welt der Computer – sein, in dem die Dinge so einfach dargestellt werden, wie sie für jemanden mit Englisch als Muttersprache automatisch sind.

Zur Erklärung, was die wenigsten wissen

Fast immer ist das, was uns als komplizierter Fachausdruck erscheint, ein möglichst einfach und anschaulich gewählter Begriff aus der englischen Alltagssprache. Der englische Wortschatz ist aber nicht nur riesig, sondern vor allem zur Hälfte lateinischen Ursprungs – und stammt nicht, wie das Deutsche, fast ausschließlich vom Germanischen ab.

Die „schwierigen 'lateinischen' Fremdwörter“ schlägt man also ganz einfach im Englisch-Wörterbuch nach. Nur: Für englische Ausdrücke gibt es meist viele Übersetzungen. Die muss man dann kurz durchgehen, bis man an die Stelle kommt, wo man denkt: „Haargenau, das ist es.“

Beispiele:

Im Zusammenhang mit Computern ist „port“ nicht „Hafen“, sondern „Anschluss“, „drum“ ist beim Laserdrucker nicht „Trommel“, sondern die Walze, die das Farbpulver (den „Toner“) am Papier fest drückt (bevor es dann durch Erhitzen / Aufschmelzen endgültig fixiert wird).

Für alle, die schon Vorkenntnisse haben

Dieses Buch enthält auch für jene, die sich in der Welt der Computer schon recht gut auskennen, noch eine Fülle (mit an Sicherheit grenzender Wahrscheinlichkeit) neuer Informationen – übrigens nicht nur in Bezug auf Datenbanken und SQL.

.5 Wer ist der Autor?

ICH!!! (Okay, das sollte ein Scherz sein …)

Also: Betriebswirtschaft mit Nebenfach Informatik studiert, jahrelang Anwendersoftware sowohl betriebswirtschaftlicher als auch technischer Art auf der Basis verschiedener Systeme (MS-SQL, Oracle und weitere) entwickelt, dabei – teilweise im Team mit anderen – so ziemlich alles gemacht von der Konzeption (Anforderungsanalyse, Datenbankarchitektur, Gestaltung der Benutzungsoberflächen usw.) über die Programmentwicklung und -wartung (Fehlerbeseitigung und Einbau neuer Funktionen) bis hin zum Tuning (Maßnahmen, um die Reaktionszeiten des Systems so niedrig wie möglich zu bekommen).

Hobbymäßig seit Jahrzehnten mit jenen Teilen der Psychologie beschäftigt, die ernstzunehmende Wissenschaft bedeuten: Dazu gehören Denk-, Wahrnehmungs- und Lernpsychologie.

Außerdem lege ich Wert darauf, jederzeit meine fünf Sinne beisammen zu haben (Für diejenigen, die wirklich gar keine Voraussetzungen mitbringen: Blödsinn, Unsinn, Schwachsinn, Irrsinn und Wahnsinn).

.6 Die (Lern-) Ziele dieses Buches

Dieses Buch soll eine solide Grundlage für die Bereiche „Datenbanken“ und „SQL“ schaffen. Solide Grundlage heißt:

Dem „

Warum

“ wird ganz große Bedeutung beigemessen. Denn nur dann, wenn man den Sinn der Dinge kennt, kann man beurteilen, was im Einzelfall gerade wie wichtig ist.

Soweit das im Rahmen einer Einführung in ein so großes Gebiet überhaupt möglich ist, soll ein

Überblick

gegeben werden. Was geht? Welche Stichworte sollte man kennen, um an weitere Informationen zu kommen?

Vor Fehlern, die manchmal sogar Fortgeschrittenen noch leicht passieren können, wird gewarnt. Das ist im Umgang mit Datenbanken und SQL besonders wichtig – viel wichtiger als bei „gewöhnlichen“ Programmiersprachen: Fehler in Programmen, die auf Datenbanken zugreifen, können zu falschen Informationen führen – von denen nicht nur die zwanzig Leute einer Abteilung, sondern vielleicht sogar die Millionen Kunden einer Großbank, einer bedeutenden Versicherung oder eines weltweit vertretenen Autoherstellers betroffen sind.

Warnungen

können selbstverständlich nur dann etwas nützen, wenn sie frühzeitig erfolgen: Deswegen gehören sie in eine Einführung.

Bei speziellen Problemen kann nahezu immer mit einem kurzen Blick in die Dokumentation des gerade verwendeten RDBMS oder mit Hilfe einer Suche im Internet eine Lösung gefunden werden.

Weiterhin möchte ich es Ihnen ermöglichen,

Der letzte Punkt bedeutet in der Praxis leider meistens, sehen und entsprechend reagieren zu können, wenn etwas

• nur unter großen Schwierigkeiten,
• extrem teuer oder
• gar nicht

realisiert werden kann. Nur in seltenen Fällen werden Sie einen Hinweis darauf geben können, mit welchen Tricks etwas vielleicht doch zu machen ist.

Außerdem möchte ich Ihnen mit diesem Buch die Freude am Lernen wiedergeben, die Ihnen vielleicht ebenso wie mir auf der Schule genommen wurde.

Die Wahrheit: Selbst vieles von dem, was an unseren Hochschulen gelehrt wird, erfordert kein jahrelanges Erlernen mathematischer (oder ähnlicher) Grundlagen. Mit etwas gesundem Menschenverstand und Grund- oder bestenfalls Hauptschulkenntnissen wäre es bereits dann zu verstehen, wenn man alle Fremdwörter, die nicht unbedingt notwendig sind, durch deutsche ersetzen würde.

Langer Rede, kurzer Sinn: Ich möchte Ihnen die Hemmungen nehmen, zu lernen. Wenn Ihnen etwas zu kompliziert erscheint, liegt es fast immer daran, dass der Lehrende zu blöd ist – und nicht Sie! (Das ist übrigens anders als beim Programmieren: Da ist man meistens selbst schuld, wenn das Programm nicht läuft. Egal, ob es sich um SQL oder Java oder irgendeine andere Sprache handelt.)

.7 Aufbau des Buches:Was? In welcher Reihenfolge?

Sowohl die Auswahl des Stoffes als auch die Art und das Nacheinander der Präsentation sind in erster Linie auf Einsteiger ohne Vorkenntnisse zugeschnitten:

Zuerst das notwendige Minimum an

Basiswissen

dann die wahrscheinlich

für alle

verwertbaren Teile von SQL (Abfragen mit

SELECT

, Speichern von Daten mit

INSERT

,

UPDATE

und

DELETE

),

danach die

tiefer gehenden

Dinge wie Datenbankdesign, Berechtigungsverwaltung, Tuning, Server- und Clientprogrammierung usw.

Das Datenbankdesign bildet dabei noch das letzte Kapitel und damit den Abschluss dieses ersten Teils. Dieser erste Teil soll zwar das allgemeine Wissen bündeln, und Datenbankdesign ist Sache für Spezialisten. Aber ein Überblick über die Möglichkeiten, die sich hier heutzutage bieten, ist sicherlich auch noch für viele interessant, die nicht direkt – also z.B. beruflich – damit zu tun haben.

Der genaue Aufbau der einzelnen SQL-Befehle, die SQL-Datentypen usw. werden selbstverständlich erklärt – aber nicht, ohne zu sagen, wann, wie, wo und wo sie lieber nicht eingesetzt werden sollten bzw. welche Probleme mit ihrem Einsatz verbunden sein können.

Bildlich gesprochen:

Ich würde Ihnen auch nicht genauestens erklären, wie man ein Motorboot steuert – und Sie dann einfach losfahren lassen, ohne Ihnen gegenüber auch nur das Geringste von den zahllosen Riffen und Untiefen in der Gegend erwähnt zu haben.

Wichtig!

Nicht alles, was in diesem Buch behandelt wird, ist für jeden gleichermaßen von Bedeutung. Aber was für den einen im Mittelpunkt steht, ist für den anderen immer noch extrem nützliches Hintergrundwissen.

Hintergrundwissen braucht man zwar so gut wie nie im Normalbetrieb, aber z.B. die Suche nach Fehlerursachen basiert so gut wie immer (nicht nur bei Computer-unterstützten Systemen!)auf der Kenntnis von Zusammenhängen darüber, wie es – zumindest ungefähr – funktioniert.

Selbst ein einfacher Anwender sollte wissen, wann er einen Fachmann holen muss, und was der genau wissen möchte: z.B. was nicht normal ist, wann, wo und wie häufig ein Problem auftritt usw. Auf diese Dinge sollte der Benutzer natürlich vorher geachtet haben.

.8 „Treiben Sie Sport?“ oder:Wie Lernen wirklich funktioniert

Es war immer die erste Frage, wenn ein Student der Betriebswirtschaft zum Informatik-Professor kam, weil er seine Abschlussarbeit in diesem Nebenfach schreiben wollte: „Treiben Sie Sport?“.

Lernen bedeutet, dass unser Gehirn Höchstleistung bringen muss. Und wenn Sie dieses Buch lesen, wollen Sie doch sicherlich anschließend mehr wissen als vorher, also lernen, oder?

Und weil leider noch so viele Vorurteile über angeblich „fleißiges Lernen“ im Umlauf sind, möchte ich Ihnen zur Sicherheit erst mal einige Dinge dazu sagen. Damit Sie wissen, wie Sie mit geringstem Aufwand so viel wie möglich aus diesem Buch heraus holen – und was ich als Autor dafür tun werde. Auch dabei wird es wahrscheinlich Überraschendes für Sie geben.

Fangen wir an: Unser Gehirn benötigt genauso wie jeder Muskel und jedes andere Organ Sauerstoff und andere Nährstoffe. Die bekommt es natürlich über das Blut. Also...

• vor dem Lernen nichts Schweres essen – denn dann landet das Blut in unserem Verdauungssystem. (Das wussten schon die alten Römer: „Plenus venter non studet libenter.“ – „Voller Bauch studiert nicht gern.“)
• ab und zu Sport treiben, denn das fördert überall die Durchblutung – auch des Gehirns! (Wer wenig Zeit hat: Treppe statt Aufzug genügt meist schon.)
• Und jetzt kommt's! Wer Leistungssport betreibt, wird es wissen: Wichtig ist es, anschließend zu schlafen! Beim Lernen ist es genauso wie beim Sport: Das, was wir „lernen“ oder „trainieren“ nennen, bedeutet nur, dass wir unserem Körper signalisieren, wo etwas getan werden muss – und das erledigt er dann, während wir träumen!

Die Muskeln, die wir beim Training belastet haben, wachsen – und ganz entsprechend wird auch das Gelernte im Gehirn verfestigt. Wenn Ihnen also jemand das Nickerchen auf der Couch, nachdem sie nur wenige Seiten gelesen haben, verwehren möchte und Ihnen Faulheit anstatt Lernen vorwirft, lassen Sie ihn einfach reden und ignorieren Sie den Blödsinn!

Übrigens haben Wissenschaftler mittlerweile herausgefunden: Was mit Spaß gelernt wird, ist anschließend besser im Gedächtnis verfügbar. Quälerei beim Lernen bringt also nichts. Außerdem ist die Auflockerung beim Aneignen von Wissen so wichtig wie die Lockerungsübungen beim Sport.

So, und jetzt machen Sie sich noch eine Tasse Tee oder Kaffee, stellen Sie sich ein Stückchen Obsttorte zurecht und fläzen Sie sich auf die Couch oder in ihren Lieblingssessel: Dann geht es los mit dem ersten Kapitel!

.9 Fragen und Feedback

Wenn Sie Fragen haben oder mir eine Rückmeldung geben möchten, schreiben Sie mir bitte eine Email, möglichst mit einem Betreff, der mit „SQL-Buch: “ anfängt.

Meine Email-Adresse ist: [email protected]

.10 Hinweise zu Hervorhebungen

Einige Dinge sind farblich oder durch die Schrift hervorgehoben:

Allgemein Betontes: rot, kursiv

Stark Betontes: blau, fett

Wörter, die zum Sprachumfang von Standard-SQL gehören: immer in Großbuchstaben und dunkelrot („SELECT“)

Bezeichner (vom Anwender zu vergebene Namen für Tabellen usw.): in Kleinbuchstaben, kursiv und dunkelrot („kapitel_id“)

Funktionen, die zum jeweiligen Datenbank-Management-System gehören: in Kleinbuchstaben und dunkelrot („concat()“)

Code-Abschnitte: Keine Hervorhebungen für SQL, Bezeichner und Funktionen; gegebenfalls aber Betontes

Beispiele

Hinweise

Vorsicht

Wichtiges

Tipps

Übungen

1  Computer und Datenbanken

Das folgende Kapitel ist wichtig, um zu verstehen, was relationale Datenbanken ausmacht, wozu man sie braucht, was ihre Stärken sind und somit auch, was der Einsatzbereich von SQL ist – und insbesondere, wann beispielsweise Dokumentenmanagementsysteme oder sogar ganz andere Alternativen genutzt werden sollten.

All das setzt voraus, dass man zunächst einmal eine sehr genaue Vorstellung davon hat, was das Arbeiten mit Unterstützung durch einen Computer bedeutet. Deswegen wird das erste Unterkapitel diesem Thema gewidmet sein.

1.1 Computer: Ihre Stärken –und ihre Schwächen

In unserem Land muss man das Wissen darüber, was ein Computer eigentlich ist, kann und vor allem auch nicht kann, mit der Lupe suchen. Ohne dieses Wissen ist es aber unmöglich zu verstehen, wann relationale Datenbanken und folglich auch SQL wahre Wunder wirken können – und wo Systeme auf der Basis relationaler Datenbanken schlicht das Verkehrte wären.

Unsere „allgemeinbildenden“ Schulen

Dieser Abschnitt ist unter anderem deswegen hier notwendig, weil es geradezu ein Aberglaube ist anzunehmen, dass unsere allgemeinbildenden Schulen für eine ausreichende Kenntnis im Computer-Bereich sorgen würden. Entsprechende Lehrpläne

• wurden um Jahrzehnte verspätet überhaupt erst entwickelt,
• zwingen die Schüler vorwiegend Theorien zu lernen, die bestenfalls in der ersten Hälfte des vorigen Jahrhunderts noch ein wertvolles Allgemeinwissen darstellten – und heutzutage nur noch für wenige Spezialisten interessant sind (z.B. Algorithmentheorie, Normalisierung).
• enthalten gerade jene Teile, die für die Praxis und damit das spätere Leben der Schüler interessant wären, gar nicht oder bestenfalls in völlig unzureichender Weise (z.B. Gestaltung von Benutzerschnittstellen, Dokumentation).
• sind in keiner Weise der Tatsache angepasst, dass sie ein sich rasend schnell entwickelndes Gebiet betreffen: Von einem Informatiker, der an der renommierten Universität „RWTH Aachen“ studiert hatte, hörte ich schon vor vielen Jahren, dass in seinem Fach die Lehrbücher (und nicht etwa die Lehrpläne!) alle fünf Jahre komplett neu geschrieben würden.

Dazu kommt, dass die Ausbildung der Lehrer – also jener, die das Wissen eigentlich vermitteln sollten – völlig unzureichend ist und viel zu spät begonnen wurde.

Wahrscheinlich sind auch die Kenntnisse derjenigen, deren Verantwortung es ist, die Lehrpläne zu erstellen, auf einem Niveau, das mit einem „mangelhaft“ noch zu gut bewertet wäre:

Anders ist es jedenfalls nicht zu erklären, dass im nordrhein-westfälischen Kernlehrplan für das Fach Informatik an Gymnasium und Gesamtschule zwar von Primär- und Sekundärschlüsseln, von Datenbanken, Kardinalitäten, Entitäten, Relationen und Normalisierung die Rede ist, aber der in diesem Zusammenhang unbedingt notwendige Begriff „Fremdschlüssel“ fehlt – und dieser Fehler offensichtlich

➔ weder denen, die diesen Lehrplan mit einigen Jahrzehnten Verspätung schließlich schreiben mussten,
➔ noch denen, die ihn kontrolliert haben,
➔ noch denen, die ihn benutzen (sollten!!!)

im Verlaufe eines Jahrzehntes aufgefallen ist.

(Primär- und Fremdschlüssel werden in Abschnitt 8.4, erklärt, die Begriffe „Kardinalitäten“, „Entitäten“, „Sekundärschlüssel“ und „Relationen“ habe ich in der Praxis noch nie gebraucht, das Thema „Normalisierung“ ist leider nicht ganz vermeidbar und wird in Abschnitt 3.3.3 besprochen – allerdings aus praktischer Sicht.)

Nebenbei bemerkt:

Es ist eine Unverschämtheit, Schüler in einem Bereich wie der Informatik einem rund zehn Jahre alten Lehrplan auszusetzen. Da fragt man sich: „Soll im Lateinunterricht eigentlich Cäsar gelesen werden – oder persönlich auftreten?“

Was die allgemeine Unwissenheit über Computer noch schlimmer macht, sind die weit verbreiteten Vorurteile, die zumeist auf Dingen basieren wie beispielsweise

• Werbeversprechen,
• großartigen Präsentationen von hochbezahlten Professoren, die Ideen bringen, die nahezu perfekt klingen – aber meistens maximal 5 % von den praktischen Problemen, die sie angeblich lösen, beseitigen können (Ich sollte hier etwas zurückhaltender sein: Zum Teil waren die Ideen der Theoretiker für ihre Zeit sogar wirklich genial. Meist sind sie aber schon seit Jahrzehnten zur Lösung der aktuellen Probleme so geeignet wie ein Sack Kohlen zur Betankung eines Flugzeugs … oder wie Informatik-Lehrpläne dazu, Schülern etwas Brauchbares beizubringen.),
• den Fantasien aus Sonntag-Abend-Krimis oder irgendwelchen Science-Fiction-Romanen,
• dem früher teilweise üblichen Ausdruck „Elektronengehirn“, der bestens dazu geeignet ist, Laien einzureden, ein Computer sei so etwas ähnliches wie ein menschliches Gehirn. (Warum das nicht stimmt, wird weiter unten erläutert.)

Wenn etwas mit Unterstützung durch einen Computer erledigt wird, so ist das – trotz der speziellen Tricks, mit denen man sogar das Erkennen gesprochener Sprache und das Identifizieren von Personen auf Bildern in den Griff bekommen hat – letztendlich nichts anderes als eine Aufgabe mit Hilfe einer Maschine zu bewältigen. Das hat nun mal die dementsprechenden Nachteile, wie z.B.: Extrawürste sind (fast) immer teuer; manchmal sind sie sogar überhaupt nicht zu realisieren.

Die immer noch weit verbreitete Vorstellung „Ach, das macht schon der Computer“ ist völlig realitätsfern und wird mit Sicherheit auch nicht dadurch aus den Köpfen verbannt, dass man Schüler mit Automatentheorie und anderem praxisfernen Unsinn quält – wie er in den entsprechenden Lehrplänen z.B. für NRW zu finden ist. (Die einzige Form von Planwirtschaft, die man trotz des „Kalten Krieges“ auch im Westen offiziell stets für sinnvoll hielt und immer noch hält, ist ja die Lehrplanwirtschaft.)

Mit Computerunterstützung kann man 10 Millionen Rechnungen problemlos an einem Wochenende fertig stellen und sogar auch ausdrucken – aber ein Programm schreiben, das 10 Millionen Sonderwünsche berücksichtigt:

Das geht nicht!

Auch nicht mit Hilfe eines Computers!

Vieles ist natürlich möglich. Beispielsweise kam mir mal die Idee zu einem kaufmännischen Taschenrechner ganz speziell nur für Manager, Vertriebsleute und Politiker. Er sollte lediglich auf die Eingabe von „2 + 2“ mit der Anzeige von „5“ reagieren.

Spaß beiseite: Mit etwas Trickreichtum und Fantasie kann man für viele Sonderwünsche doch eine Lösung finden, zumal Computer heutzutage eine weitaus höhere Leistungsfähigkeit haben als noch vor wenigen Jahrzehnten.

Aber: Ein Computer ist von Hause aus eigentlich dümmer als eine komplette Amtsschimmelreiterei – er kann nur immer wieder dasselbe machen und auch das muss ihm noch jemand bis in die kleinste Einzelheit vorgeschrieben haben.

1.1.1 Stärken

Die Vorteile des Computers dürften Ihnen im Wesentlichen bekannt sein:

• Er erreicht ein geradezu unglaubliches Tempo bei der Arbeit. (Das ist positiv gemeint, liebe Beamte.)
• Er arbeitet ungeheuer zuverlässig, macht so gut wie keine Fehler: Selbst bei Millionen (oder gar Milliarden, also Tausenden von Millionen) von Rechnungen wird es nie vorkommen, dass beim Aufaddieren der Einzelpositionen etwas nicht korrekt ist.
• Er lässt nicht um vier Uhr den Griffel fallen, braucht kein Wochenende und kann problemlos auch nachts arbeiten.
• Entsprechend ausgestattet arbeitet er auch unter Bedingungen, die für Menschen geradezu unerträglich wären: Extreme Hitze, Staub oder giftige Gase sind Computern völlig egal.

Die ungeheure Geschwindigkeit moderner Computer ermöglicht viele Dinge, die ohne den Rechner nur mit Zauberei gingen. Seit man 1986 anfing, SQL zu standardisieren, ist die Rechnerleistung ganz extrem angestiegen:

Ein Programm, das damals ein ganzes Jahrzehnt für eine Arbeit gebraucht hätte, wäre auf einem heutigen Computer mit dem identischen Problem in 10 Minuten fertig – wenn man davon ausgeht, dass der Rechner von 1986 und der von heute gleich viel Geld gekostet hätten. Einen Vergleich mit der Durchführung einer Aufgabe ganz ohne Computer kann ich mir an dieser Stelle wohl sparen. (Um Missverständnissen vorzubeugen: Jahrzehnt und Minuten hier gegenüber zu stellen, ist keine Übertreibung oder gar ein Scherz!)

Mit anderen Worten: Was früher wegen des hohen Aufwands undenkbar war, ist heute eine Kleinigkeit. Viele Tätigkeiten, die damals irgendwie anders erledigt wurden, werden heutzutage mit Hilfe von Computern und Internet gemacht.

1.1.2 Leistungsfähigkeit: Fluch und Segen

Die Leistungsfähigkeit der Rechner hat eine Reihe von – teils positiven, teils negativen und teils zweischneidigen – Auswirkungen im Bereich Datenbanken. Beispiele:

• Wie schon erwähnt sind viele Dinge heutzutage entschieden einfacher, gehen deutlich schneller oder sind sogar erst möglich, weil all das, was zur Informations-Infrastruktur gehört (Computer, Netzwerke usw.), alle fünfzehn bis zwanzig Jahre für das gleiche Geld ungefähr tausendmal so viel leistet.
• Wir sind jetzt aber auch wesentlich stärker von einer funktionierenden Informations-Infrastruktur abhängig: Ein mehrtägiger Ausfall großer Teile des Internets würde unsere gesamte Wirtschaft ruinieren – der Ausfall eines wichtigen Computers kann zur Pleite eines Unternehmens führen. Wer eine Datenbank nutzen möchte, muss sich heutzutage oft auch mit dem Thema „Ausfallsicherheit“ beschäftigen.
• Daten, die früher überhaupt keinen Schutz nötig hatten, erfordern mittlerweile unsere Aufmerksamkeit: Früher wurden sie z.B. gar nicht auf einem Computer gespeichert oder es wäre vielleicht unmöglich gewesen, sie auszuwerten. Berechtigungskonzepte und der Schutz vor illegalen Zugriffen auf Daten („Hackerangriffen“, „Cyberattacken“) haben heute einen viel höheren Stellenwert als früher.
• Die Korrektheit der Informationen in der Datenbank ist viel einfacher sicher zu stellen. Beispiele: Man macht Tippfehler unmöglich, indem man Auswahlfelder statt Texteingaben benutzt, oder prüft Werte gegen Datensammlungen, die im Internet zur Verfügung stehen.
• Die Fehlerfreiheit der Programme ist wesentlich wichtiger: Ein paar tausend Datensätze kann man notfalls noch von Hand korrigieren. (Mit einer derartigen Arbeit habe ich mir als Jugendlicher mal ein prächtiges Taschengeld verdient.) Aber wenn ein Programm zur Verarbeitung von -zig Millionen Einträgen in einer Datenbank-Tabelle nicht einwandfrei arbeitet, sind unter Umständen Millionen von Datensätzen betroffen (selbst wenn sich der Fehler nicht überall auswirkt). Das kann man nicht mehr manuell berichtigen. Die erhöhten Anforderungen an die Softwarequalität wirken sich in erheblichem Umfang auf viele Fragen im Zusammenhang mit der Programmierung aus. Die ist wiederum ein ganz wesentlicher Teil beim Aufbau eines Datenbank-gestützten Systems.
•