Direkt zum Inhalt | Direkt zur Navigation

Benutzerspezifische Werkzeuge
Anmelden
Sektionen
Sie sind hier: Startseite bitMagie SQLite SQLite - Grundlegende relationale Operationen

SQLite - Grundlegende relationale Operationen

| abgelegt unter: , ,

SQL basiert auf dem Relationalen Modell, das auf den britischen Mathematiker und Datenbanktheoretiker E. F. Codd zurück geht, in welchem sowohl Informationen , als auch die Beziehungen zwischen diesen Informationen in Form einfacher Tabellen dargestellt werden. Auf der daraus resultierenden Tabellenstruktur lassen sich dann gewisse Mengen-Operationen, in diesem Kontext "relationale" Operationen genannt, durchführen.

Tabelle - Relation

Wie bereits bekannt, lässt sich eine Tabelle mittels des CREATE TABLE - Kommandos erzeugen.  In derart erzeugten Tabellen werden letztlich die Informationen gespeichert, so dass sie  in gewisser Weise die physikalische Struktur einer Datenbank bilden.  Mittels der Spaltenstruktur einer Tabelle werden die problemrelevanten Aspekte der Realität beschrieben. Die Spalten einer Tabelle werden im Relationalen Modell "Attribute" genannt.  Informationen über reale Objekte, im Relationalen Modell "Entitäten" genannt, die sich in dieser Weise beschreiben lassen, können dann zeilenweise in der entsprechenden Tabelle gespeichert werden. Eine Tabelle ist demnach eine Menge im Sinne der Mengenlehre. Die spezielle Mengendarstellung in Form einer Tabelle nennt man eine Relation.

Wie bereits gesagt, lässt sich eine Relation, sprich eine Tabelle, mittels des CREATE TABLE  - Kommandos erzeugen.  Mit Hilfe relationaler Operationen lassen sich aus bestehenden Relationen neue Relationen erzeugen, die dann aber logischer Natur sind und in der Datenbank keine explizite physikalische Entsprechung mehr haben. Die Unterscheidung zwischen "physikalisch" und "logisch" wird dann relevant, wenn es um die Möglichkeit des schreibenden Zugriffs auf eine Relation geht. An dieser Stelle soll zunächst einmal in den Raum gestellt werden, dass der schreibende Zugriff auf eine "logische" Relation prinzipiell nicht möglich ist. Später wird dann aber gezeigt, unter welchen Bedingungen dies in SQLite trotzdem machbar ist.

Damit kann nun folgendes festgestellt werden:

Eine relationale Operation wird auf einer Relation ausgeführt und liefert als Ergebnis wieder eine Relation.

Man unterscheidet drei grundlegende relationale Operationen, nämlich

  • Selektion,
  • Projektion und
  • Join

 

Eine weitere Verfeinerung der Klassifikation der grundlegenden relationalen Operationen wird in diesem Artikel bewusst vermieden, denn hier soll lediglich das Grundprinzip verdeutlicht werden. Alles Weitere sollte sich dann daraus herleiten lassen.

 

Selektion

Die Selektion sortiert in einer Relation all diejenigen Zeilen aus, die einer bestimmten Bedingung genügen.

 

Projektion

Die Projektion blendet bestimmte Spalten aus einer Relation aus und sortiert ggf. die verbleibenden Spalten um.

 

 

Join

Mit einem Join werden Spalten zweier Relationen aufgrund gemeinsamer Attribute miteinander verknüpft.

 

Wenn man das Resultat dieses Join betrachtet wird deutlich, dass hier gleichzeitig eine Selektion stattgefunden haben muss.  Joins lassen sich - nach der Art und Weise wie die Verknüpung gebildet wird -  noch in verschiedene Kategorien unterteilen.  Wie bereits oben gesagt, wird in diesem Artikel darauf verzichtet. An späterer Stelle wird aber auf die eine oder andere Join-Art, die mit SQLLite möglich bzw. praktisch ist, noch  eingegangen.

 

Kombinationen grundlegender relationaler Operationen

Offensichtlich sind Kombinationen der grundlegenden relationalen Operationen möglich. Man spricht auch von relationaler Algebra. Nachfolgend ist z.B. eine Selektion mit kombinierter Projektion dargestellt:

 

 

Zwar ist die Umsortierung der Spalten in einer Projektion keine eigenständige Operation, aber zur Verdeutlichung, was hier mit Umsortierung gemeint ist, wird nachfolgend noch eine Projektion mit Umsortierung der Spalten dargestellt:

 

 

Zum Abschluss sollen noch zwei theoretische Anmerkungen folgen:

  1. Eine Selektion ist gleichzeitig eine Projektion, bei der keine Spalten ausgeblendet werden.
  2. Eine Projektion ist gleichzeitig eine Selektion, bei der alle Zeilen ausgewählt werden.

 

Und warum ist das interessant? Nun - in der Sprache SQL werden diese beiden relationalen Grundoperationen durch ein und dasselbe Kommando,  nämlich SELECT, realisiert.  Weiterhin lässt sich auch der Join mit dem SELECT - Kommando ausdrücken, jedoch gibt es in SQL dafür auch spezielle Sprachkonstrukte.

22.06.2011 11:30
Artikelaktionen