Selektion (Informatik)
# Selektion (Informatik)

Als Selektion bezeichnet man in der Informatik die Auswahl von Datenobjekten aus einer Datenmenge. Die in einer Datenbank enthaltenen Daten werden erst durch Selektion nutzbar. In der Relationalen Algebra ist die Selektion einer der fünf Operatoren, die in Relationalen Datenbanken eingesetzt werden.

## Aufgabe

Dabei werden Datenobjekte nach ihren Eigenschaften ausgewählt, um sie anzuzeigen, zu exportieren, zu verändern (Update) oder als Referenz für einen Vergleich zu verwenden. Hierbei kann man zwischen eindeutigen Anfragen unterscheiden, die nur ein einziges Tupel als Resultat zurückgeben und solchen, die eine Liste mit Tupeln liefern.

## Implementierung

Die jeweilige Implementierung hängt stark von der verwendeten Datenbank ab. Da solche Systeme von ihrer Konzeption auf das Auffinden von Datensätzen ausgelegt sind, wird keine lineare Suche verwendet. Eine solche Suche über große Datenmengen ist ineffizient und häufig technisch nicht realisierbar. Hier kommen stattdessen Indizes zum Einsatz, die es erlauben, mit einem Schlüssel Daten schnell in einer Datenmenge zu finden. Solche Indizes verwenden sogenannte Indexstrukturen. Ein Schwerpunkt liegt bei der Realisierung vor allem auch auf der Skalierbarkeit und Parallelisierung über verschiedene Computer sowie der Minimierung von Festplattenzugriffen.

## Beispiele

Heute hat sich SQL auf dem Markt als Standard-Anfragesprache für relationale Datenbanksysteme durchgesetzt. Eine Selektion erfolgt hier über die sog. "WHERE"-Klausel, in der die Selektionskriterien angegeben werden. Das einleitende Schlüsselwort "SELECT" einer SQL-Anfrage realisiert dagegen die Projektion, d. h. die Einschränkung der Ergebnis-Tupel auf einzelne Attribute:

* "SELECT * FROM Tabelle": Liefert alle Zeilen (= Tupel) der Tabelle.
* "SELECT * FROM Tabelle WHERE a=25": Gibt jene Tupel zurück, deren Attribut 'a' den Wert 25 hat.
* "SELECT Name FROM Tabelle WHERE a=25": Gibt das Attribut 'Name' jener Tupel zurück, deren Attribut 'a' den Wert 25 hat.
