Sichtenhierarchie

Eine Sichtenhierarchie definiert eine Untermengenbeziehung zwischen der Sub- und der Supersicht. Sie baut sich in SQL auf der Basis von Hierarchien benutzerdefinierter Datentypen auf. Es ist ein ähnliches Konzept wie bei den Tabellenhierarchien. Neu ist hier, dass der Typ einer Subsicht nicht zwingend ein unmittelbarer Subtyp des Supersicht-Typs sein muss. Jede Subsicht hat genau eine Supersicht, womit die einfache Spezialisierung umgesetzt ist und die Probleme der Mehrfachvererbung augeschlossen sind.

Folgende Regeln sind unter anderem bei Sichthierarchien einzuhalten:

  • Basis können nur objektrelationale Tabellen sein, keine relationalen.
  • Die Hierarchie der benutzerdefinierten Datentypen und die der Sichten müssen analog zueinander sein, was heißt, dass der Typ einer Subsicht ein Subtyp des Typs der direkten Supersicht sein muss. Wie oben erwähnt, muss es jedoch kein direkter Subtyp sein, es können andere Subtypen dazwischen definiert sein.
  • Die einer Wurzelsicht zugrunde liegende Tabelle oder Sicht muss nicht notwendigerweise eine Wurzeltabelle bzw. -sicht sein.
  • Die einer typisierten Sicht zugrunde liegende Tabelle oder Sicht kann über eine Subtabelle oder -sicht verfügen.
  • Verfügt die zugrunde liegende Tabelle oder Sicht über eine Subtabelle oder -sicht, dann muss eine darauf definierte Wurzelsicht keine Subsicht besitzen.
  • Liegt eine Tabelle oder Sicht einer Subsicht zugrunde, muss diese eine der Supersicht zugrunde liegenden Subtabelle oder -sicht sein, aber nicht zwingend eine direkte Subtabelle oder -sicht.

Eine Subsicht kann theoretisch über zwei verschiedene Wege entstehen:

  • über eine extensionale Sepezialisierung der Supersicht durch Spezifikation zusätzlicher Selektionsprädikate in der Subsicht oder
  • über eine extensionale Erweiterung der Supersicht durch die Objekte der Subsicht.

Die zweite Variante wird von sämtlichen SQL-Sprachen verwendet. Es wird darauf hingewiesen, dass eine Subsichtenbildung durch Spezialisierung der Supersicht auch ohne explizites Subsicht-Konstrukt umgesetzt werden kann. Eine Subsichtenbildung durch Supersichterweiterung erfordert dagegen ein explizites Subsicht-Konstrukt.

Bislang realisieren der SQL-Standard wie auch alle Hersteller die Untermengenbeziehung zwischen Sub- und Supersicht mittels des objektorientierten Konzeptes der extensionalen Erweiterung. (vgl. Spezialisierung?) Bei den Tabellenhierarchien ist es anders, dort wird die extensionale Spezialisierung angewand.

Bei Oracle ist auch der Aufbau von Sichtenhierarchien vorgesehen, die sich wie bei SQL durch eine Trennung zwischen Typhierarchie und Tabellenhierarchie auszeichnet, sowie durch die Verwendung einer einfachen Spezialisierung (auch keine Mehrfachvererbung).

siehe auch: Typhierarchie, Sicht, Typisierte Sichten (SQL), Objektsichten (Oracle)


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
  • Oracle® Database Object-Relational Developer's Guide 11g Release 2 (11.2), E11822-03, http://download.oracle.com/docs/cd/E11882_01/appdev.112/e11822.pdf
  • Türker, Can/Saake, Gunter: "Objektrelationale Datenbanken", dpunkt-verlag, Heidelberg, 2006, ISBN 3-89864-190-2

Kategorien: Objektrelationale DB, S