Relationen und geographische Informationen

separation line
Go to previous page zurück Go to next page vor

5.1.3 Vertiefung: SQL als Sprache zur Datenmanipulation (DML)

Zum besseren Verständnis des Unterschieds von Datendefinition und Datenmaipulation ist es sinnvoll Anfragen bzw. Abfragen hinsichtlich ihrer Wirkungsweise bzw. Zielsetzung zu unterschieden. Während mit der Datendefinition Relationsstrukturen erzeugt werden wird mit der Datenmanipulation eine (temporäre) Veränderung des Datenbestands, also der Inhalte der Relationen benannt. Allerdings gilt es hier genau zu differenzieren:

  • Einfache Abfragen:
    rufen Daten aus einer Datenbank ab. Spezifische Abfragebedingungen identifizieren eine Teilmenge der Daten und extrahieren diese in der gewünschten Präsentationsform ohne die Ausgangsdaten zu verändern.
  • Manipulative Abfragen:
    erzeugen neue Relationen oder manipulieren die Inhalte existierender Relationen.
Manipulative bzw. nicht manipulative AbfragenManipulative bzw. nicht manipulative Abfragen

Ziel der raumbezogenen Selektion und Analyse ist es, räumliche Beziehungen zwischen Elementen eines oder mehrerer Themen zu ermitteln. Selektionen sind nichts anderes als an eine Relation gerichtete Anfragen. Hierzu wird ein Set von Kriterien formuliert, um gesuchte Merkmalsausprägungen zu identifizieren. Prinzipiell sind in GI-Systemen drei Ansätze möglich:

  • Thematische Abfrage:
    Selektiert die Objekte, deren Eigenschaften (Attribute) die gestellten Bedingungen erfüllen. Z. B.: „Selektiere alle Bäume der Art Fichte.“
  • Geometrische Abfrage:
    Selektiert die Objekte, welche die gestellten räumlichen Bedingungen erfüllen. Z. B.: „Selektiere alle Häuser, die weniger als 250 m vom Fluss entfernt sind.“
  • Topologische Abfrage:
    Selektiert die Objekte, welche die gestellten Bedingungen bezüglich den räumlichen Beziehungen zwischen den Objekten erfüllen. Z. B.: „Selektiere alle Gebäude, die vollständig in der Wohnzone II (WII) liegen.“


Einfache Abfragen mit Hilfe der SQL

SELECT * FROM produkte WHERE produkt-ID IN (SELECT produkt-ID FROM bestellungen WHERE rabatt >= .25);

Mit Hilfe der SELECT-FROM-WHERE Struktur können Anfragen an eine Dabenbank gestellt werden. Anfragen bestehen aus einer Auswahl der gewünschten Spalten (SELECT) und einer Liste mit einer oder mehreren Relationen (FROM). In dieser einfachen Form werden immer alle Datensätze zurückgeben. Zusätzlich kann ein Suchkriterium übergeben werden (WHERE). Damit können gezielt Datensätze selektiert werden. Eine SQL Anfrage gibt als Resultat wiederum eine Relationen zurück.

Die Standardform einer Datenbankanfrage mittels SQL ist wie folgt aufgebaut:

SELECT <Attributliste>

FROM <Relationenliste>

WHERE <Bedingungen>;

Wobei:

  • <Attributliste> besteht aus den Namen der Attribute, deren Werte man durch die Anfrage erhalten möchte.
  • <Relationenliste> ist die Aufführung der Namen der Relationen, die für die Anfrage gebraucht werden.
  • <Bedingungen> die jene Tupel identifizieren, die durch die Anfrage zurückgegeben werden sollen.

Verschachtelte Abfragen mit Hilfe der SQL

Wie obiges Beispiel zeigt können Abfragen auf die gesamte Datenbasis angewendet werden. Dieser Leistungsumfang lässt sich sehr wirkungsvoll durch die Möglichkeit dynamisch Teilrelationen durch Abfragen zu generieren und diese wiederum in die eigentliche Abfrage zu integrieren, steigern. Auf diese Weise können Abfragen sehr tief verschachtelt werden. Eine Abfrage in einer Abfrage wird Subquery genannt.

Damit haben wir die Grundstruktur von SQL als Anfragesprache bereits gezeigt. Es gibt nun eine Reihe von möglichen Erweiterungen des obigen Grundschemas, die die Flexibilität von Anfragen massiv erhöhen. Wir unterscheiden folgende Fälle:

  • mehrere Bedingungen (konjunktiv oder disjunktiv verknüpft)
  • komplexere Bedingungen (Unteranfragen, Bereichsanfragen, Verbundoperatoren)
  • spezielle Selektionen (Verknüpfung von Attributen)
  • nicht-relationale Konstrukte (Sortieren, Gruppierungen, Aggregatfunktionen)
  • Mengenoperationen (Vereinigung, Durchschnitt, Differenz)

Versuchen Sie sich den Ablauf und die Wirkungsweise einer Datenbankanfrage mit Hilfe von SQL anhand des nachfolgenden animierten Beispiels zu verdeutlichen. zu

Schrittweise Darstellung des Ablaufs und der Wirkungsweise einer Standardabfrage an eine Relation mit Hilfe von SQL Schrittweise Darstellung des Ablaufs und der Wirkungsweise einer verketteten Abfrage an eine Relation mit Hilfe von SQL Schrittweise Darstellung des Ablaufs und der Wirkungsweise einer verschachtelten Abfrage an eine Relation mit Hilfe von SQL

Denken Sie nach...

  • Gibt es einen Unterschied zwischen einer durch den Befehl CREATE TABLE oder durch eine Datemanipulation aus einer Abfrage angelegten Relation?
separation line