Einführung in SQL: Projektorganisation

Aus Wikibooks

PDF-Version[Bearbeiten]

Als Vorbereitung dafür gibt es die folgenden Seiten:

Für spätere PDF-Versionen wird vorzugsweise der bei Jürgen vorhandene lokale LaTeX-Quelltext verwendet: Für Code-Auszüge und Seitenumbruch mussten viele LaTeX-Möglichkeiten ausgenutzt werden, die im Wiki-Quelltext nicht berücksichtigt werden können.

Zielgruppe[Bearbeiten]

Die Zielgruppe dieses Buches sind Schüler, Studenten und Andere, die sich mit relationalen Datenbanken beschäftigen wollen bzw. müssen. Es soll eine Einführung in die Thematik geben.

Ziele des Buches[Bearbeiten]

  • Einführung in SQL anhand einer Beispieldatenbank.
  • Der Leser soll die Beispiele anhand von Übungen auf seinem eigenen Datenbankmanagementsystem nachvollziehen können.

Die Schwerpunkte liegen hierbei auf folgenden Themen:

  • Abfragen von Daten
  • Manipulieren von Daten
  • Einfaches Ändern der Datenbankstruktur

Abgrenzung[Bearbeiten]

Da dieses Buch eine Einführung in SQL geben soll, kann es folgende Anforderungen nicht erfüllen. Das Buch ist:

  • Keine Einführung in die Grundkonzepte relationaler Datenbankmodelle.
  • Keine Einführung in die Modellierung von relationalen Datenbanken.
  • Keine Einführung in die Administration von Datenbankmanagementsystemen.
  • Keine Einführung in das Performance-Tuning von relationalen Datenbanken.
  • Keine Einführung in prozedurale (z.B. PL/SQL) oder objektorientierte Sprachen, die innerhalb der Datenbank gespeichert und genutzt werden können. Diese Themen werden in dem Buch PL/SQL beschrieben.

Für diese Themen gibt es spezielle Quellen im Internet bzw. Literatur, die der interessierte Leser für weitere Vertiefungen nutzen sollte.

Autoren[Bearbeiten]

Wenn Du am Buch mitarbeiten möchtest, dann kannst Du Dich in die Liste eintragen. Das Auflisten der zur Verfügung stehenden DBMS kann hilfreich sein, um sicher stellen zu können, dass die Beispiele auf den verschiedenen Systemen lauffähig sind.

Vorlagen[Bearbeiten]

Für ein einheitliches Erscheinungsbild des Buches werden – von Anfang an – Vorlagen genutzt werden, und zwar soweit möglich Standardvorlagen.

<noinclude><div class="noprint">{{Navigation Buch | Einführung in SQL#Grundlagen | Inhaltsverzeichnis: Grundlagen |Einführung in SQL: Voriges Kapitel| Zurück zu: Voriges Kapitel | Einführung in SQL: Nächstes Kapitel|Weiter zu: Nächstes Kapitel }}</div></noinclude>

Ursprünglich vorgesehen, aber nicht benutzt werden diese buchspezifischen Vorlagen:

  • Einführung in SQL: Vorlage: Entität
  • Einführung in SQL: Vorlage: Grafik
  • Einführung in SQL: Vorlage: TabZeile3H
  • Einführung in SQL: Vorlage: TabZeile3
  • Einführung in SQL: Vorlage: TabZeile4H
  • Einführung in SQL: Vorlage: TabZeile4
  • Einführung in SQL: Vorlage: Übung

Sie wurden deshalb inzwischen gelöscht oder zur Löschung vorgemerkt.

Regeln[Bearbeiten]

Die folgenden Regeln sollen ein einheitliches Erscheinungsbild gewährleisten:

  1. Jedes Kapitel beginnt mit einer Einführung, erst danach kommt der erste Abschnitt mit Überschrift.
  2. Die Überschriften der Abschnitte benutzen mindestens 2 Gleichheitszeichen, aber nicht die Ebene 1.
  3. Jedes Kapitel hat eine kurze Zusammenfassung.
  4. Jedes Kapitel hat Übungen, die auf dem Inhalt des Kapitel anhand der Beispieldatenbank basieren.
  5. Die Lösungen folgen in einem getrennten Abschnitt des Kapitels nach den Übungen.

Regeln für die Beispiele[Bearbeiten]

Die folgende Anleitung steht fast identisch auf Einführung in SQL: Einleitung und dient dort als Arbeitsanleitung, wie die Beispiele zu lesen und zu verstehen sind.

  1. Alle SQL-Befehle und Schlüsselwörter, wie z.B. SELECT, INSERT, DELETE, WHERE, ORDER BY, werden groß geschrieben. SQL selbst verlangt das nicht, sondern arbeitet  case-insensitive; dort werden SELECT, select und sogar sElEcT gleich behandelt.
  2. Tabellen- und Spaltennamen werden vorzugsweise groß geschrieben, und zwar ohne Anführungszeichen.
  3. String-Konstanten werden mit einfachen Anführungszeichen gekennzeichnet.
  4. SQL-Befehle werden mit einem Semikolon abgeschlossen.
  5. Optionale Argumente (d.h. solche, die nicht unbedingt erforderlich sind) werden in [] eingeschlossen.
  6. Variable Argumente (d.h. solche, die mit unterschiedlichem Inhalt vorkommen) werden in <> eingeschlossen.
  7. Wahlmöglichkeiten werden durch das Pipe-Zeichen | (den senkrechten Strich) getrennt.
  8. Listen werden gekennzeichnet durch <inhaltliste>, wobei dies eine Kurzform ist für <inhalt1, inhalt2, ... inhaltn>.

Die Struktur eines Befehls wird dargestellt durch einen einfachen Rahmen mit Courier-Schrift:

 SELECT <spaltenliste>
 FROM   <tabellenname>
[WHERE  <bedingungsliste>]
 ;

In diesem Fall muss der Autor auf Großschreibung und Fettdruck usw. selbst achten.

Ein konkretes Beispiel wird mit einem komplexen Rahmen und unterschiedlichen Inhalten (abweichende Farbe bei Fehlern, mit oder ohne Kopfzeile, mit oder ohne Ausgabefenster) dargestellt:

select * from Beispieltabelle
 where Spalte1 = 'Abc';

Dafür muss der Autor die Vorlage SingleCode mit den unter "Bearbeiten" sichtbaren Optionen verwenden (ggf. mit den Optionen error, valid, output). Diese Vorlage wird in mehreren Büchern verwendet; deshalb sind höchstens andere Optionen sinnvoll.

ToDo-Liste[Bearbeiten]

Offene Aufgaben[Bearbeiten]

Erledigte Aufgaben[Bearbeiten]

  • Erstellen von Views muss noch erweitert werden mit Erläuterungen und Beispielen zu verschiedenen Optionen. -- Juetho 17:56, 28. Okt. 2009 (CET)
  • Beispieldatenbank: alle Beispiele überarbeiten und an die geänderten Schreibweisen von Tabellen und teilweise Spalten anpassen. -- Juetho 12:05, 30. Okt. 2009 (CET)
  • überall: Zusammenfassung hinzufügen -- Juetho 12:05, 30. Okt. 2009 (CET)
  • Beispieldatenbank: Die Schadensfälle 3, 4, 5, 6 (Firebird-Skript) benötigen weitere Datensätze als Fahrzeug, Versicherungsvertrag, Versicherungsnehmer für die "Fremdfahrzeuge". -- Juetho 15:37, 30. Okt. 2009 (CET)
  • natürlich alle noch fehlenden Abschnitte (was jetzt noch fehlt, ist einzeln aufgeführt) -- Juetho 15:37, 30. Okt. 2009 (CET)
  • Vorlage:Übung3 erstellt: Auf jeder Seite steht unter der Überschrift {{:{{PAGENAME}}: Übungen}} ein Verweis auf eine extra Übungsseite; dort stehen alle Übungen zusammen mit {{Übung3}}. -- Juetho 17:00, 31. Okt. 2009 (CET)
  • Prozeduren -- Juetho 13:45, 17. Nov. 2009 (CET)
  • Trigger -- Juetho 19:29, 18. Nov. 2009 (CET)
  • UNION – mehrere Abfragen verbinden muss um INTERSECT, MINUS/EXCEPT ergänzt werden. Entfällt, weil es zu selten angeboten wird; aber Hinweis eingefügt. -- Juetho 16:28, 29. Nov. 2009 (CET)
  • Testdaten erzeugen ergänzt, wie unter Mehrere Tabellen beschrieben. -- Juetho 16:28, 29. Nov. 2009 (CET)
  • Programmierung mit dem Teilbereich "prozedurales SQL" -- Juetho 16:28, 29. Nov. 2009 (CET)
  • Bei allen Seiten mit "Funktionen" sind die Beispiele zu ändern: Für Firebird gilt "from rdb$database", für Oracle ähnlich "from dual". Darauf muss ich hinweisen; deshalb brauchen wir eine allgemeine Formulierung "from ???". -- Juetho 15:53, 05. Dez. 2009 (CET)
  • Bei Prozeduren: Automatisches UPDATE gemäß Bedingungen ist der sachliche Fehler mit den Fahranfängern zu berichtigen. -- Juetho 16:39, 09. Dez. 2009 (CET)
  • Zur Schlussredaktion: Ausführliche SELECT-Struktur Widerspruch zwischen "vollständig" und "nicht alles"; "wir" statt "ich"; Vorlage:Navigation hoch ersetzt durch [[Vorlage:Navigation hochrechts]] -- Juetho 18:39, 10. Dez. 2009 (CET)
Auf die Vorlage "hochrechts" wird jetzt ganz verzichtet, das gehört zu den Einstellungen der Leser. -- Jürgen 14:02, 4. Sep. 2011 (CEST)

Zweite Auflage[Bearbeiten]

Bei der Erstellung des Buches sind nach und nach verschiedene Mängel aufgefallen, die in einer vollständigen Überarbeitung berücksichtigt werden sollten. Hier können wir dafür Themen sammeln.

  • SQL-Standard: Wechsel von 2003 auf 2008 berücksichtigen -- Jürgen 12:41, 15. Jan. 2010 (CET)
  • Beispieldatenbank: Abteilungen hierarchisch gliedern wie unter Fremdschlüssel-Beziehungen -- Jürgen 12:41, 15. Jan. 2010 (CET)
  • Beispieldatenbank: Dienstwagen anders aufbauen, nämlich als Fuhrpark mit Fahrtenbuch (das u.a. ermöglicht schöne Self-Joins) -- Jürgen 12:41, 15. Jan. 2010 (CET)
  • Beispieldatenbank: vielleicht eine rudimentäre Buchhaltung (Rechnungen, Zahlungen) einbauen -- Jürgen 12:41, 15. Jan. 2010 (CET)