SQL-Einführung

Aus IV1

Die selbständige Abfrage von relationalen Datenbanken gehört in zunehmendem Maße zum Repertoire qualifizierter Arbeitsplätze, z.B. im Controlling, Marketing oder Personalwesen. Die spontane, unmittelbare Nutzung von relationalen Datenbanken durch den Endbenutzer ist für die Vorbereitung einer Vielzahl von betrieblichen Entscheidungen unabdingbar geworden. Diese spontane Nutzung ist die Voraussetzung, um aus Daten mit Hilfe von weiteren Analysewerkzeugen Entscheidungsgrundlagen zur Unternehmenssteuerung zu schaffen. Zu einer modernen Standardausbildung von Wirtschaftswissenschaftern im Bereich der Informationsverarbeitung zählt daher auch das Beherrschen wichtiger SQL-Befehle und darauf aufbauender Abfragesysteme.

Bevor man mit SQL zu arbeiten beginnt, sollte man die grundsätzliche Logik von relationalen Datenbanken verstanden haben. Auf grundlegende Begriffe wie verbundene Tabellen, Datensätze, Felder, Zeilen, Spalten usw. wird hier nicht mehr eingegangen, sondern die Abfragesprache SQL, die zur Manipulation von Datenbanken dient, gezielt behandelt.

Funktionen eines DBMS

Ein Datenbank-Management-System unterstützt das Erstellen von Tabellen mit deren Feldern, das Erstellen von Views (künstlichen Tabellen, welche die Sicht der Benutzer abbilden) und Indizes. Indizes beschleunigen vor allem die Zugriffszeit und den Sortierprozess.

Eine View könnte z.B. folgendermaßen aussehen:

  • Kundenumsätze (Kunde.Nr, Kunde.Nachname, PLZ.Ort, SUMME(Auftragpos.Menge * Buch.Preis)

Ergänzt um Sortierkriterien und zeitlich/regionalen Einschränkungen (Selektion) kann diese View (künstliche Tabelle) unter dem Namen Kundenumsätze abgespeichert und durch Aufruf jederzeit auch von "Nichtprogrammieren" aktiviert werden.

Weitere Funktionen eines DBMS sind:

  • Regelungen bei Concurrency (Mehrfachzugriff)
  • Security: Wer darf welche Operation in welchen Objekten ausführen?
  • Integrity: Einschränkungen zur Aufrechterhaltung der Korrektheit der Daten
  • Back-up: Datensicherung
  • Restart: Neustart nach Fehlern oder Änderungen
  • Recovery: Wiederherstellung des fehlerfreien Zustandes

Hierzu kommen die Anwendung von Verwaltungsinstrumenten (Führen des Systemkataloges, insb. Tabellen, Tabellennamen, Eignernamen) sowie Instrumente zur Optimierung der Zugriffszeit.

Der Prozess der Entwicklung einer Datenbank (z.B. die Datenmodellierung) kann teilweise durch den Einsatz von einschlägigen Softwareentwicklungswerkzeugen (CASE-Tools, Computer Aided Software Engineering-Tools) unterstützt oder automatisiert werden.

Sichten auf eine Datenbank

Den unterschiedlichen Aufgaben und Sichtweisen im Zusammenhang mit der Planung, Implementierung und dem Betrieb einer Datenbank entsprechend sind zweckmäßigerweise drei Schichten auseinander zuhalten. Es sind dies das konzeptionelle Schema, die Benutzersichten und das interne Schema.

Die globale, logische Datenbankbeschreibung wird als konzeptionelles Schema (logische Datensicht) bezeichnet. Das bei den Normalformen vorgestellte endgültige Modell, ergänzt durch nähre Angaben über die Felder, kann als konzeptionelles Schema angesehen werden.

Die einzelnen Benutzer in den unterschiedlichen Fachabteilungen bzw. die Anwendungsprogramme aus den verschiedenen Bereichen eines Unternehmens benötigen jeweils voneinander unterschiedliche Ausschnitte aus der Wirklichkeit und somit auch aus dem konzeptionellen Schema. Diese unterschiedlichen Sichten des Datenmodells werden als Benutzersichten, Subschemata oder externe Schemata bezeichnet. Die zuvor entwickelte View kann als Beispiel für ein Subschema gelten.

Nach Festlegung des konzeptionellen Schemas bzw. der externen Schemata werden die physische Anordnung der Daten auf den Speichermedien und die Zugriffspfade gestaltet. Ergebnis ist das interne Schema. Hier geht es insbesondere um die Ausnutzung von Speichern sowie um die Optimierung von Zugriffszeiten.

Da die Verbindung des internen Schemas mit den betrieblichen Aufgaben und Geschäftsmodellen kaum mehr auszumachen ist, entzieht es sich jeglicher Darstellung in dieser Dokumentation.

SQL

SQL (Structured Query Language) ist die Standard-Datensprache für relationale Datenbankverwaltungssysteme (RDBMS) und Desktop-Datenbanken wie z.B. MS Access. SQL ist nicht prozedural und setzt eine einfache und einheitliche, normalisierte tabellarische Datenstruktur voraus. Die durch das American National Standards Institute (ANSI) normierte Sprachschnittstelle SQL wird von einer Reihe einschlägiger Softwarepakete verwendet.

SQL kann interpretierend oder als embedded-SQL verwendet werden:

  • Ein SQL-Befehl wird vom Benutzer geladen oder eingegeben und auf Befehl direkt verarbeitet. Das Ergebnis wird z.B. als Liste ausgegeben. (interpretierendes SQL)
  • Die SQL-Befehle sind in einem mittels Programmiersprache (z.B. Java, C++) erstellten Programm eingebettet. (embedded SQL)

Die auf dem Markt angebotenen Datenbank-Softwarepakete (SQL-Implementierungen) stellen in der Regel auch Ergänzungen der SQL durch Sprachzusätze (z.B. JDBC) zur Verfügung. Trotz ANSI- und ISO-Normung ist SQL in einer Reihe von Datenbank-Softwarepaketen im Detail unterschiedlich implementiert, d.h. nicht alle SQL-Anweisungen sind auf allen Datenbank-Implementierungen ausführbar.