Databases Reference
In-Depth Information
SELECTkunden_nr, name, ort
FROM kunde
WHERE ort = 'Kayhude' AND status = 'S';
Auch höchst komplexe Abfragen können so gestellt und beantwortet werden, z.B.:
» Zeige alle Kunden, die zwischen dem 1.3.2003 und dem 31.3.2003 einen Umsatz von
mehr als 100 Euro gemacht haben, wobei sie aber keinen Tee gekauft haben dürfen und im
Vorjahr auch schon einmal etwas bestellt haben müssen 2
SQL verarbeitet grundsätzlich Mengen von Tupeln. Eine Abfrage wie die obige hat
eine Tabelle mit keiner, einer oder beliebig vielen Zeilen als Ergebnis. 3 Dies unter-
scheidet SQL von imperativen Programmiersprachen, die satzweise arbeiten, d. h.
mit einer Anweisung immer nur einen Datensatz zugleich lesen, schreiben, löschen
oder vergleichen können. SQL orientiert sich an der Relationenalgebra. Es muss
aber deutlich festgehalten werden, dass SQL nicht mit Relationen, sondern mit
Tabellen arbeitet. Relationen sind nurmehr ein Spezialfall von Tabellen. Wir haben
in Kapitel 3 gezeigt, dass die Relationenalgebra mit wenigen Modifikationen auf
Tabellen anwendbar ist. 4 Es ist in SQL auch jederzeit möglich, eine Datenabfrage so
zu formulieren, dass das Ergebnis eine Relation ist, also keine mehrfach vorkom-
menden identischen Tupel enthält. Seit 1999 verarbeitet SQL außer Tabellen auch
Strukturen, die als objektrelational bezeichnet werden und für die einige Ein-
schränkungen, wie wir sie in Kapitel 3 formuliert haben, nicht gelten. Mehr dazu
findet sich in Kapitel 9.
Wir beziehen uns im Wesentlichen auf SQL im Sinne des Standards SQL:200n auf
dem Stand von August 2002 (Draft Version). Da zum Zeitpunkt der Manuskripter-
stellung kein DBMS verfügbar ist, das den Standard vollkommen erfüllt, wird
gegebenenfalls auf Abweichungen und Besonderheiten bei existierenden DBMS
(Sybase, ORACLE, etc.) hingewiesen.
4.2 Schemadefinition
Ein SQL-Schema enthält Datenbankobjekte eines einzelnen Benutzers 5 innerhalb
einer Datenbank. Dazu gehören unter anderem von ihm erzeugte Basistabellen,
2 Wir empfehlen dieses Beispiel hier nicht als Übung.
3 Zur Unterscheidung der Begriffe Tupel, Zeile, Attribut, Spalte, Relation und Tabelle vgl. Ab-
schnitt 2.1.
4Näheres findet sich in Kapitel 2.6.
5
Unter einem Benutzer verstehen wir einen in der Datenbank namentlich eingetragenen, mit be-
stimmten Zugriffsrechten ausgestatteten Anwender der Datenbank. Benutzer und Person sind
nicht unbedingt identisch. Einer Person können je nach Anwendungszusammenhang ver-
schiedene Benutzernamen zugeordnet sein, beispielsweise einer für die Rolle als Datenbank-
administrator und ein anderer für die normale Nutzung der Datenbank. Umgekehrt kann es
manchmal organisatorisch sinnvoll sein, einen Benutzernamen (z.B. GAST) einzurichten, un-
ter dem sich verschiedene Personen anmelden können, um allgemein zugängliche Informa-
tionen abzufragen (Auskunftsysteme).
 
Search WWH ::




Custom Search