Sichten (Views)

Das Konzept der Sichten (engl. Views) bietet in relationalen wie auch objektrelationalen Datenbanksystemen die Möglichkeit, Daten ausgehend von persistent in relationalen oder objektrelationalen Tabellen gespeicherten Daten abzuleiten, zu berechnen. Als Berechnungsvorschrift (Ableitungsregel) dient in SQL, bei Oracle und den übrigen DB-Herstellern eine SELECT-Anfrage beliebiger Komplexität. Eine Sichtdefinition besteht aus jeweils dem Sichtnamen, einem Relationenschema (Liste der Spalten der Sicht) sowie aus der Berechnungsvorschrift.

Für den Anwender sollte es grundsätzlich transparent sein, ob sie mit Tabellen? oder mit Sichten arbeiten. Diese Anforderung bedeutet insbesondere, dass Sichten in Anfragen (SELECT-Ausdrücke), DML-Anweisungen (INSERT, UPDATE, DELETE?), anderen Sichtdefinitionen und auch sonst überall dort verwendet werden können, wo auch auf Tabellen zugegriffen werden kann, wobei sich bei der Ausführung von Manipulationsanweisungen sehr schnell das Problem der änderbaren Sichten ergibt.

Über eine feste Berechnungs-/Ableitungsvorschrift wird von den tatsächlich in der Datenbank gespeicherten Daten eine Sicht abgeleitet, die dann beispielsweise dazu dient, Daten auszublenden oder diese Daten in einer neuen Form zu präsentieren. Eine Sicht kann nicht mehr Daten enthalten, als bereits in der Datenbank enthalten sind, sie kann sie aber z.B. neu zusammenstellen oder neu berechnen. Auf Sichten können wie auf Tabellen? auch Benutzerrechte vergeben werden und stellen somit auch eine Möglichkeit dar, für bestimmte Anwender nur einen eingeschränkten Zugriff auf spezielle Daten zu zulassen. Ein anderer Hauptanwendungsgrund ist es, einfach oft verwendete SELECT-Anfragen nur einmal programmieren zu müssen, sie in der Datenbank zentral zu speichern und immer wieder verwenden zu können.

Es werden positive und negative Abhängigkeiten in den Sichten unterschieden. Positive Abhängigkeiten sind solche, in welchen der WHERE-Bedingungsteil der SELECT-Anfrage eine Enthaltungsmenge durch Operatoren wie „=“ oder „LIKE“ spezifiziert. SELECT-Anweisungen ohne WHERE-Bedingung sind immer positiv. Negative Abhängigkeiten sind solche, in welchen der WHERE-Bedingungsteil explizit Daten ausschließt. Zum Beispiel durch die Verwendung des NOT EXISTS-Quantors oder des NOT IN-Operators für eine Unterabfrage? in der Suchbedingung. Eine weitere Form der negativen Abhängigkeit ist die Verwendung der Mengenoperator MINUS/EXCEPT.

Die Verwendung von Sichten birgt einige Vorteile, wie z.B. die Wiederverwendbarkeit und logische Datenunabhängigkeit. Demgegenüber sind natürlich auch Nachteile bzw. Probleme bei der Verwendung von Sichten bekannt.

Je nach Kontext des zugrunde liegenden Datenbanksystems werden relationale Sichten , objektrelationale Sichten? und dynamische Sichten unterschieden.

Ein anderes Kriterium zur Differenzierung von Sichten ist die Persistenz der abgeleiteten Daten, woraus sich virtuelle Sichten (vgl. CREATE VIEW-Anweisung) ergeben und materialisierte Sichten (vgl. CREATE MATERIALIZED VIEW-Anweisung). Grundsätzlich sind diese beiden Konzepte orthogonal zu der Unterscheidung nach relationale Sichten und objektrelationale Sichten?. Nur wurde bislang lediglich ein Konzept materialisierter Sichten für die relationalen Sichten entwickelt und implementiert. Das Konzept der Materialisierung wurde bislang nicht auf objektrelationale Sichten übertragen.

siehe auch: Sichtaenderungen - InsteadOfTrigger, Sichten zur Modellierung von Generalisierung

Quellen:

  • ANSI/ISO/IEC 9075-1:2003. Part 1 "SQL/Framework", ISO International Organization for Standardization / ANSI American National Standards Institute, September 2003
  • ANSI/ISO/IEC 9075-2:2003. Part 2 "SQL/Foundation", ISO International Organization for Standardization / ANSI American National Standards Institute, Dezember 2003
  • Elmasri, Ramez/Navathe, Shamkant B.: "Grundlagen von Datenbanksystemen" , Pearson Studium, München, 2002, ISBN 3-8273-7021-3
  • Faeskorn-Woyke, Heide/Bertelsmeier, Birgit/Riemer, Petra/Bauer, Elena: "Datenbanksysteme - Theorie und Praxis mit SQL2003, Oracle und MySQL", Pearson Education, München, 2007, ISBN 978-3-8273-7266-6
  • Kemper, Alfons/Eickler, André: "Datenbanksysteme", Oldenbourg, München, 2009, 978-3-486-59018-0
  • Melton, Jim/Simon, Alan R.: "SQL: 1999 - Understanding Relational Language Components", Morgan Kaufmann, San Francisco, 2001, ISBN 1558604561
  • Oracle® Database SQL Language Reference 11g Release 2 (11.2), E17118-03, August 2010, http://download.oracle.com/docs/cd/E11882_01/server.112/e17118.pdf
  • Saake, Gunter/Sattler, Kai-Uwe/Heuer, Andreas: "Datenbanken - Konzepte und Sprachen", mitp-Verlag, Redline GmbH, Heidelberg, 2007, ISBN 3-8266-1664-2
  • Vossen, Gottfried: "Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme", Oldenbourg, München, 2008, ISBN 978-3-486-27574-2

Kategorien: Objektrelationale DB, SQL, S