SQL-Einführung

Aus IV
Zur Navigation springen Zur Suche springen
<yambe:breadcrumb>SQL|SQL</yambe:breadcrumb>

Die Auswertung und Analyse aus relationalen Datenbanken gehört zum Repertoire qualifizierter Arbeitsplätze aus allen betrieblichen Bereichen. Die spontane, unmittelbare Nutzung von relationalen Datenbanken durch den Endbenutzer ist für die Vorbereitung betrieblicher Entscheidungen ebenso unabdingbar wie die Unterstützung operativer Aufgaben. Zur Standardausbildung von Wirtschaftswissenschaftern im Bereich der Informationsverarbeitung zählt daher auch die rudimentäre Kenntnis der Datenmanipulationssprache SQL.

Bevor man mit SQL zu arbeiten beginnt, sollte man Wesen und Struktur relationaler Datenbanken verstanden haben. Auf grundlegende Begriffe wie Tabellen, Datensätze, Felder, Zeilen, Spalten usw. wird hier nicht mehr eingegangen. Erwähnung sollten aber "Krümel" aus der großen Theorie der Datenbank-Software finden.

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.

Funktionen eines DBMS sind:

  • Regelungen bei Concurrency (gleichzeitigen Mehrfachzugriffen)
  • Security: Wer darf welche Operation in welchen Objekten ausführen?
  • Integrity: Aufrechterhaltung der Korrektheit der Daten
  • Back-up: Datensicherung
  • Restart: Neustart nach Fehlern oder Änderungen
  • Recovery: Wiederherstellung eines gesicherten 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ähere 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 Computersprache 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:

  • Ein SQL-Befehl wird vom Benutzer geladen oder eingegeben und auf Befehl direkt verarbeitet. Das Ergebnis wird z. B. als Liste ausgegeben (interpretierendes SQL).

oder als embedded-SQL verwendet werden:

  • 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.

SQL-Abfragen, oft auch SQL-Statement oder Query genannt, sind kleine Befehlszeilen, die an die Datenbank oder an den Datenbankserver geschickt und dort abgearbeitet werden. Als Ergebnis bekommt man entweder eine bestimmte Anzahl von Datensätzen zurück oder führt Änderungen an der Datenbank aus. SQL isoliert einzusetzen ergibt wenig Sinn; meist wird SQL in Verbindung mit anderen Programmier- oder Scriptsprachen verwendet (wie z. B. PHP, JSP und ASP.NET), die dann mit den Ergebnisdaten weiterarbeiten.

Eine SQL-Abfrage hat in der Regel folgende Struktur:

  • WAEHLE Nachname AUS Kunde WOBEI Nachname='Maier'

"WAEHLE", "AUS" und "WOBEI" sind Schlüsselwörter der Computersprache, die dürfen daher bei der Benennung von Teilen der Datenbank nicht verwendet werden. "Nachname" und "Kunde" bezeichnen Teile einer konkreten Datenbank, nämlich insofern, dass "Nachname" ein Feld der mit "Kunde" benannten Tabelle bezeichnet. "Maier" ist ein vermuteter Inhalt der Tabelle mit der Bezeichnung "Kunde".

Übertragen auf die offizielle, dem Englischen abgeleitete Syntax der Sprache lautet die Datenbank-Abfrage:

  • SELECT Nachname FROM Kunde WHERE Nachname = 'Maier'

Letzteres ist bereits eine vollständige und funktionsfähige SQL-Abfrage. SELECT leitet die Art der Anweisung ein. FROM gibt an, auf welche Tabelle der Datenbank die Select-Anweisung angewendet werden soll und der letzte Teil WHERE ist eine Bedingung, die nur bestimmte Datensätze aus der bezeichneten Tabelle selektiert.

Die Logik dieser Syntax wird sich in den Kapiteln der SQL-Grundbefehle und den weiteren Beispielen verdeutlichen.

Zitiervorschlag

Mittendorfer in Höller, Informationsverarbeitung, SQL-Einführung (mussswiki.idb.edu/ivwiki)