Erste Seite Zurück Weiter Letzte Seite Übersicht Grafik
Objektrelationales SQL
Seit SQL:1999 ist SQL objektrelational.
Notizen:
Objektrelationale Erweiterungen
Alle bisher vorgestellten Konzepte bleiben erhalten, aber zusätzlich können Tabellen abgeleitet werden.
Abgeleitete Tabellen („Subtabellen“) enthalten alle Spalten ihrer Supertabelle, und können selbst weitere spezifizieren.
Alle Zeilen der Subtabelle tauchen auch im Ergebnis von
select * from supertabelle;
auf, aber natürlich „nur“ mit den Spalten der Supertabelle:
„Spezifikation“: Die Objekte aus der Subtabelle sind spezifischere Objekte der Suptertabelle. Dasselbe Konzept existiert in Klassenhierarchien objektorientierter Programmiersprachen wie C++ oder Java.
(Vgl.: o.a. Bsp. des Fuhrparks: Alle PKW sind KFZ, ebenso wie die LKW. ==> KFZ: Supertabelle, daraus abgeleitet: PKW & LKW.)
Außerdem werden neben Relations-Operationen auch benutzerdefinierte Prozeduren & Funktionen f. objektorientierte Strukturen angeboten.
Dazu definiert das Datenbanksystem einen so genannten Object-Identifier (OID). Dieser dient dazu, Datensätze unabhängig von irgendwelchen Feldinhalten zu identifizieren (vgl MS-SQL: Uniqueidentifier).
Für Tabellen mit OID-Spalte können Gespeicherte Prozeduren für Datensätze definiert werden, sodass die Datensätze zu echten Objekten im Sinne der objektorientierten Programmierung werden.
(Vgl.: Methoden bei objektorientierten Programmiersprachen)
Tabelle erstellen mit
create table <subtabelle> of <supertabelle> (
:
)
Beachte: Durch Definition einer Supertabelle mit mehreren Subtabellen entsteht praktisch von selbst eine Subkategorie!
SQL ist seit SQL:1999 objektrelational