Eine Sicht (engl. View) stellt eine virtuelle Tabelle dar

Eine Sicht speichert eine Abfrage unter einem neuen Namen im DBMS. Sie stellt also quasi eine eine virtuelle Tabelle dar, die selbst auch abgefragt werden kann.
Wann immer eine Abfrage auf eine Sicht gemacht wird, wird diese zuvor durch das DBMS neu berechnet.

Erstellen einer Sicht

Die Syntax zum Speichern einer Select-Abfrage als Sicht ist:

CREATE VIEWErzeuge Sicht
viewNamemit der Bezeichnung
ASso wie
SELECT-AbfrageSELECT-Abfrage (ohne ORDER BY)


Gehen wir dabei z.B. von diesem konkreten ER-Modell aus,


ER-Diagramm: Mitarbeiterm- Projekt


dann wird eine eine SELECT-Abfrage über alle drei Tabellen folgendermaßen als Sicht gespeichert:

CREATE VIEW viewMitarbeiterProjektbezeichnung
AS 
SELECT Name AS Mitarbeiter, Bezeichnung AS Projektbezeichnung FROM tblMitarbeiter 
	INNER JOIN tblRefMitarbeiterProjekt ON tblMitarbeiter.MitarbeiterID = tblRefMitarbeiterProjekt.MitarbeiterID 
	INNER JOIN tblProjekt ON tblRefMitarbeiterProjekt.ProjektID = tblProjekt.ProjektID
Die Abfrage wird damit noch nicht ausgeführt, sondern lediglich unter einem Namen als Sicht gespeichert.

Daten aus einer Sicht abrufen

Eine Sicht kann jetzt im folgenden wie eine ganz normale Tabelle abgefragt werden:
SELECT * FROM viewMitarbeiterProjektbezeichnung ORDER BY Mitarbeiter
Jetzt erst wird die gespeicherte Abfrage wirklich ausgeführt, d.h. die virtuelle Tabelle gefüllt, die nun ihrerseits abgefragt wird.

(Eine Sortierung erfolgt nicht in der Sicht, sondern die ORDER BY-Klausel wird erst beim Abfragen der Sicht formuliert.)


Gründe für den Einsatz von Sichten

  1. Verbergen von Komplexität

    Komplizierte SQL-Abfragen können mit einer Sicht verborgen werden. Die Abfrage der Sicht ist einfacher, was den Schulungsaufwand verringert.

  2. Rationalisierung

    Es kann viel Arbeitszeit gespart werden, wenn viele Tabellen bereits fertig verknüpft vorliegen.

  3. Berechtigungen einschränken

    Sichten erlauben indirekte Berechtigungen: Eine Gruppe hat die Leseberechtigung für eine Sicht, nicht aber für die der Sicht zu Grunde liegenden Tabellen oder Spalten. Trotzdem können die Daten, die in der Sicht zusammengeführt werden, von der Gruppe abfragt werden.
    So kann ein Abteilungsleiter beispielsweise über eine Sicht für ihn relevante Mitarbeiterdaten abfragen, Informationen der Personalabteilung, die dem Datenschutz unterliegen, bleiben verborgen.

Last modified: Tuesday, 28 August 2018, 8:17 PM