Um das Abfragen von Datenbanken genauer zu verstehen, werden wir uns zuerst den Aufbau an einem Beispiel genauer ansehen. Doch bevor wir das tun, müssen wir ein paar wichtige Begriffe kennen. Eine Datenbank besteht aus
Stellen wir uns vor, wir wollten eine Übersicht über die Kennzahlen von Städten, Ländern, Bergen, Seen und Meeren unserer Welt anfertigen. Um die Daten bereitzustellen, würden wir einen Atlas1 nehmen und dort alle für uns notwendigen Angaben finden. Um die Informationen anschaulich darzustellen, gibt es zwei Möglichkeiten:
Wir kennen bereits eine konkrete Fragestellung, wie z. B. Welche Städte haben mehr als 800 000 Einwohner und liegen an einem See?. In diesem Fall können wir unsere Suche einschränken und eine entsprechende Tabelle erstellen.
Wir wissen nicht genau was gefragt sein wird. Wir möchten unsere Daten allerdings so aufbereiten, dass alle möglichen Fragen in kurzer Zeit beantwortet werden können. In diesem Fall sollten wir uns wohl am Atlas ein Beispiel nehmen und die Daten unter verschiedenen Stichworten in einzelne Tabellen einordnen. Alle Angaben von Städten kommen in die Tabelle Stadt, alle Daten zu Ländern in die Tabelle Land usw.
Dieses Vorgehen führt uns zum Begriff der relationalen Datenbank, denn zwischen den von uns angefertigten Tabellen bestehen Beziehungen (Relationen), wie zum Beispiel jede Stadt liegt in einem bestimmten Land und umgekehrt liegen verschiedene Städte in einem Land.
Anders als mit den Daten im Atlas können wir unter neuer Fragestellung unsere Tabellen durch Nutzen entsprechender Relationen schnell neu zusammenstellen. Weitere Vorteile sind im Folgenden aufgeführt.
Um auf eine Vielzahl von Fragen antworten zu können, bietet sich also die Nutzung eines relationalen Datenbankmodells an. Es soll ein möglichst exaktes Abbild der realen Welt sein. Eine solche Miniwelt besteht aus gewissen Objekten (sogenannten Entities) wie Stadt, Land, Kontinent usw. Zwischen diesen Objekten existieren Beziehungen, die bestimmte Abläufe oder Abhängigkeiten in der Miniwelt darstellen (z. B. welche Stadt in welchem Land liegt.) Um zu einem Datenmodell zu kommen, fasst man gleichartige Objekte und gleichartige Beziehungen (sogenannten Relationships) jeweils zu Klassen zusammen. Somit ergeben sich
Objekttypen wie Stadt, Land, Kontinent und
|
K_NAME |
FLAECHE |
|---|---|
|
Afrika |
48,00 |
|
Amerika |
39,34 |
|
Asien |
30,00 |
|
Australien |
13,20 |
|
Europa |
10,50 |
Tabelle 2: Kontinent
|
K_NAME |
L_ID |
PROZENT |
|---|---|---|
|
Europa |
A |
100 |
|
Asien |
ADN |
100 |
|
Asien |
AFG |
100 |
|
Europa |
AL |
100 |
|
Europa |
AND |
100 |
|
Amerika |
AUB |
100 |
|
Australien |
AUS |
100 |
Tabelle 1: Ausschnitt aus Umfasst
EINWOHNER
FLAECHE
HAUPTSTADT
L_NAME
L_ID
LT_ID
7862000
83845
Wien
Oesterreich
A
WIE
2360000
332968
Aden
Jemen
ADN
ADN
18630000
647497
Kabul
Afghanistan
AFG
AFG
3389000
28748
Tirana
Albanien
AL
AL
61000
468
Andorra_la_Vella
Andorra
AND
AND
81500
442
Saint_Johns
Antigua_und_Barbuda
AUB
AUB
16028400
7686420
Canberra
Australien
AUS
ACT
Tabelle 3: Auszug aus Land
Im Gegensatz zu den nicht-relationalen Datenbank-Management-Systemen ist eine der Anforderungen an ein relationales Datenbank-Management-System (RDBMS), dass es die Daten in einfachen Tabellen abspeichert.
Das relationale Modell besteht aus der Definition von Objekten, Operationen und Regeln.
|
EINWOHNER |
FLAECHE |
HAUPTSTADT |
L_NAME |
L_ID |
LT_ID |
|---|---|---|---|---|---|
|
7862000 |
83845 |
Wien |
Oesterreich |
A |
WIE |
|
2360000 |
332968 |
Aden |
Jemen |
ADN |
ADN |
|
18630000 |
647497 |
Kabul |
Afghanistan |
AFG |
AFG |
|
3389000 |
28748 |
Tirana |
Albanien |
AL |
AL |
|
61000 |
468 |
Andorra_la_Vella |
Andorra |
AND |
AND |
|
81500 |
442 |
Saint_Johns |
Antigua_und_Barbuda |
AUB |
AUB |
|
16028400 |
7686420 |
Canberra |
Australien |
AUS |
ACT |
Abbildung 1: Auszug aus Land
Alle Daten einer Datenbank werden in sogenannten Relationen gespeichert. Als Relation (Tabelle) bezeichnet man eine logisch zusammenhängende Einheit von Informationen. Sie besteht aus einer festen Anzahl von Attributen (Spalten) und einer variablen Anzahl Tupel (Zeilen). Die Anzahl der Attribute einer Relation wird als Degree (Ausdehnungsgrad) bezeichnet. Eine Relation mit nur einem Attribut wird unär, eine mit zwei Attributen binär genannt. Die Relation Land hat den Degree 6. Eine Relation mit n Attributen wird n-ary genannt.Mit Kardinalität bezeichnet man die Anzahl der Tupel in einer Relation. Diese ist zeitabhängig und kann auch gleich Null sein, wenn die Relation leer ist. Eine Relation hat zusätzlich folgende Eigenschaften:Betrachten wir noch einmal die Tabellen 1, 2 und 3 von Seite . Wir können die Namen aller Länder, die nicht nur auf einem Kontinent liegen, heraussuchen, indem wir die Tabelle Land mit der Tabelle Umfasst verbinden. Dazu nutzen wir den Primärschlüssel L_ID aus Land und den Fremdschlüssel L_ID aus Umfasst. Der SQL-Befehl2 für die Abfrage der beiden Tabellen lautet:
SELECT L_NAME.
FROM UMFASST, LAND
WHERE UMFASST.L_ID = LAND.L_ID AND UMFASST.PROZENT < 100

Abbildung 2



Abbildung 5
1Zugegeben wir nehmen einen idealen Atlas.
2Auf die Verwendung von SQL-Befehlen werden wir später noch ausführlicher eingehen.