Logo Wissenstransfer Gerhard at CichnaDotCom

>> Wissensdatenbank / Datenmodellierung und Datenbanksysteme

Grundlagen relationaler Datenbanken

Datensätze in der Datenbank suchen

Suchen von Datensätzen in relationalen Datenbanken

Das Suchen und Zurückliefern von Daten aus einer Datenbank sind in der Regel die häufigsten Operationen, die in einem Datenbestand durchgeführt werden.

Die grundsätzliche Vorgehensweise dabei ist wie folgt:

  1. Bestimmen der Relationen (Tabellen) in der Datenbank, in denen die gesuchte Information abgelegt ist. Das schließt ebenso alle Tabellen ein, die ggf. die gesuchte Information nicht direkt enthalten, jedoch zur Identifikation der konkreten Datensätze benötigt werden. Beziehungstabellen sind dafür ein typisches Beispiel.
  2. Als nächstes müssen die konkreten Attribute in den in Schritt 1 gewählten Relationen identifiziert werden, die als Ergebnis zurückgegeben werden sollen.
  3. Häufig sollen nicht alle Datensätze mit den gesuchten Attributen ausgegeben werden, sondern nur gezielt die Datensätze, deren Attributwerte vorher festgelegte Kriterien erfüllen. Daher muss in Schritt 3 die in Schritt 2 identifizierte Wertemenge unter Umständen eingeschränkt werden.
  4. Je nach Bedarf wird die in Schritt 3 ermittelte Ergebnismenge nach festgelegten Kriterien sortiert.

Als Ergebnis einer Anfrage oder Suchoperation an eine relationale Datenbank wird eine Menge von Objekten zurückgeliefert, welche nur die angefragten Attribute haben und deren Werte die in der Anfrage genannten Einschränkungen erfüllen.

Beispiel
Gegeben sind die in den Tabellen KUNDE, ADRESSE und RECHNUNGSADRESSE gespeicherten Daten.

KUNDE
KUNDEID KUNDENNR ANREDE NAME VORNAME EMAIL ADRESSEID
094904 00100 Herr Schwarz David david.schwarz@hkf-online.de 2
112536 00300 Frau Bauer Silke silke334@byom.de 3
348902 00700 Frau Wagner Lisa lisa-wagner@posteo.de 7

ADRESSE
ADRESSEID STRASSE HAUSNUMMER PLZ ORT LAND KUNDEID
2 Berliner Str. 55b 60311 Frankfurt Deutschland 094904
3 Marienstr. 25 10117 Berlin Deutschland 094904
4 Alte Str. 49 53123 Bonn Deutschland 112536
5 Salzburger Straße 27 93047 Regensburg Deutschland 112536
6 Bahnhofstr. 5 69115 Heidelberg Deutschland 112536
7 Domstr. 18 20095 Hamburg Deutschland 348902
8 Stuttgarter Straße 73 01189 Dresden Deutschland 348902

RECHNUNGSADRESSE
ADRESSEID KUNDEID
2 094904
2 112536
4 094904
7 348902
8 348902

Ermitteln Sie alle Orte und deren Postleitzahlen, an welche der Kunde David Schwarz bereits Sendungen hat liefern lassen.

Schritt 1: KUNDE und ADRESSE sind die relevanten Relationen, die Beziehung LIEFERADRESSE zwischen KUNDE und ADRESSE ist im Attribut KUNDEID in der Relation ADRESSE gespeichert.

Schritt 2: Ermitteln der KUNDEID von Hr. Schwarz, Ermitteln aller Adressen, deren Wert in KUNDEID mit der KUNDEID von Hr. Schwarz übereinstimmt.

Schritt 3: Einschränken der gefundenen Adressen auf die Attribute PLZ und ORT.

Ergebnis: (60311 Frankfurt), (10117 Berlin).

Offensichtlich ist für die Formulierung von Suchanfragen an eine Datenbank eine genaue Kenntnis des Datenmodells nötig. Insbesondere die fachliche Bedeutung von Fremdschlüsseln ist oft nicht direkt aus dem Datenmodell erkennbar, sondern nur in der Dokumentation zu finden. So ist nicht direkt aus den Relationen ablesbar, dass beispielsweise das Attribut ADRESSEID in KUNDE die Wohnanschrift ist. Ebenso ist nicht klar aus der Tabelle ersichtlich, welche Bedeutung der Fremdschlüssel KUNDEID in der Relation ADRESSE hat.

KUNDE
KUNDEID KUNDENNR ANREDE NAME VORNAME EMAIL ADRESSEID
094904 00100 Herr Schwarz David david.schwarz@hkf-online.de 2
112536 00300 Frau Bauer Silke silke334@byom.de 3
348902 00700 Frau Wagner Lisa lisa-wagner@posteo.de 7

ADRESSE
ADRESSEID STRASSE HAUSNUMMER PLZ ORT LAND KUNDEID
2 Berliner Str. 55b 60311 Frankfurt Deutschland 094904
3 Marienstr. 25 10117 Berlin Deutschland 094904
4 Alte Str. 49 53123 Bonn Deutschland 112536
5 Salzburger Straße 27 93047 Regensburg Deutschland 112536
6 Bahnhofstr. 5 69115 Heidelberg Deutschland 112536
7 Domstr. 18 20095 Hamburg Deutschland 348902
8 Stuttgarter Straße 73 01189 Dresden Deutschland 348902

RECHNUNGSADRESSE
ADRESSEID KUNDEID
2 094904
2 112536
4 094904
7 348902
8 348902