siehe auch
MySQL-Datenbank-Handbuch
von Guido Stepken

|
|
SQL-Befehle setzen sich aus zwei Teilen zusammen,
- der Data Definition Language (DDL) zum Aufsetzen einer Datenbankstruktur und
- der Data Manipulation Laguage (DML) zur Manipulation der enthaltenen Daten.
Relationale Datenbanken arbeiten mengen- und gruppenorientiert. Wer sich also mit SQL
beschäftigt, der muß sich ein wenig in Mengenlehre auskennen. Dr. E.F. Codd entwickelte
1970 Regeln, die eine relationale Datenbank definieren:
- Ein relationales Datenbankmodell
muß in der Lage sein, Datenbanken vollständig über seine relationalen Fähigkeiten zu
verwalten.
- Darstellung von Informationen: Alle Informationen in einer relationalen Datenbank
(einschließlich Namen von Tabellen und Spalten) sind explizit als Werte in Tabellen
darzustellen.
- Zugriff auf Daten: Jeder Wert in einer relationalen Datenbank muß durch Kombination von
Tabellenname, Primärschlüssel und Spaltenname eindeutig zu finden sein.
- Behandlung von Nullwerten: Das DBMS behandelt Nullwerte durchgängig als unbekannte oder
fehlende Daten und unterscheidet so von Standardwerten. Zahlen können also drei Werte
annehmen, 0, einen Wert und NULL für "Wert nicht vorhanden". Man spricht hier
auch von der Dreiwertigkeit.
- Struktur einer Datenbank: Die Datenbank und ihre Inhalte werden in einem sogenannten
Systemkatalog auf derselben logischen Ebene wie die Daten selbst - also in Tabellen -
beschrieben. Demzufolge läßt sich der Katalog mit Hilfe der Datenbanksprache abfragen.
- Abfragesprache: Zu einem relationalen System gehört mindestens eine Abfragesprache mit
einem vollständigen Befehlssatz für Datendefinition, Manipulation, Integritätsregeln,
Autorisierung und Transaktionen.
- Aktualisieren von VIEWS (Sichten): Alle VIEWS, die theoretisch aktualisiert werden
können, lassen sich auch vom System aktualisieren.
- Abfragen und Bearbeiten ganzer Tabellen: Das DBMS unterstützt nicht nur Abfragen,
sondern auch die Operationen für Einfügen, Aktualisieren und Löschen in Form ganzer
Tabellen.
- Physikalische Datenunabhängigkeit: Der logische Zugriff auf die Daten durch Anwendungen
muß unabhängig von den physikalischen Zugriffsmethoden oder den Speicherstrukturen der
Daten sein.
- Logische Datenunabhängigkeit: Änderungen der Tabellenstrukturen dürfen keinen
Einfluß auf die Logik der Anwendungen haben.
- Unabhängigkeit der Integrität: Integritätsregeln müssen sich in der Datenbanksprache
definieren lassen. Die Regeln müssen im Systemkatalog gespeichert werden. Es darf nicht
möglich sein, die Regeln zu umgehen.
- Verteilungsunabhängigkeit: Der logische Zugriff auf die Daten durch Anwendungen darf
sich beim Übergang von einer nicht verteilten zu einer verteilten Datenbank nicht
ändern.
- Kein Unterlaufen der Abfragesprache: Integritätsregeln, die über die Datenbanksprache
definiert sind, dürfen sich nicht mit Hilfe von Low-Level Sprachen umgehen lassen.
Dr. E. F. Codd hat in SQL alle Elemente der Algebra integriert, um Daten mengenmäßig
zu erfassen, zu speichern, und diese in Relation zueinander zu setzen. Hierbei können
Schnittmengen, Vereinigungsmengen, Restmengen u.s.w. gebildet und ausgegeben werden. Diese
werden durch sogenannte JOINS durchgeführt.
Bei dem Aufbau von einer SQL Datenbank müssen die Daten so aufgeteilt werden, daß sie
voneinander verschiedene, eindeutige Datensätze bilden. Das praktische an SQL ist, daß
wenn man die Abfragesprache einmal erlernt hat (so schwer ist es wirklich nicht), kann man
aus riesigen Datenmengen wirklich alle Informationen auslesen, die man braucht. Z.B. kann
man Daten sortieren, verändern, filtern, Statistiken erheben, u.s.w. Mit Hilfe von
Datenbankschnittstellen, wie z.B. ODBC und ASCII
Im/Export kann man Daten mit beliebigen Datenbanken austauschen und sogar diese mit
einbinden. Die ODBC Schnittstelle dient hier als Datenbank unabhängige Schnittstelle zu
Applikationen unter Windows und UNIX.
Mit ANSI-92 SQL wurde ein gemeinsamer Standard geschaffen.
|