OID (SQL)

Das Akronym OID bezeichnet das Konzept des "Object Identifiers" zur eindeutigen Identifikation von Objekten aus der objektorientierten Programmierung im Kontext von objektrelationalen Datenbanksystemen. Im SQL-Standard selbst wird auch der Begriff "self-referencing column" verwendet, weil es die Spalte ist, deren Wert auf das 'eigene' Objekt verweist.

Folgende Eigenschaften gelten für eine solche OID-Spalte im SQL-Standard:

  • Unveränderbar (Zustandsunabhängigkeit)
  • NOT NULL (Pflichteingabe)
  • UNIQUE (Eindeutigkeit - nur bei Basistabellen, nicht bei typisierten Sichten)
  • Für eine Sub-Tabelle wird keine eigene OID spezifiert, sie übernimmt die OID der Super-Tabelle. (vgl. Tabellenhierarchie)

Für eine SQL-OID kommen drei Varianten in Frage:

  • REF SYSTEM GENERATED:
    • systemgeneriert und eindeutig nur innerhalb der zugehörigen typisierten Tabelle bzw. Tabellenhierarchie.
    • Die OID-Spalte ist systemintern erstellt und weist eine systeminternen Repräsentation (Datentyp/Struktur) auf.
    • Die Werte für die OID-Spalte werden beim Einfügen eines Objekts vom System generiert. Bei der INSERT-Anweisung fehlt diese Spalte.
  • REF FROM (<Spaltennamenliste>):
    • abgeleitet von Spalten der Typisierten Tabellen, deren Namen in der Spaltennamenliste aufgeführt werden
    • Die Spalte(n) der OID sind Spalten der Tabelle, für die entweder der Primärschlüssel oder ein Eindeutigkeitsschlüssel mit NOT NULL (Pflichteingabe) für alle Attribute definiert sind. (vgl. CONSTRAINTs)
    • Die Werte für die OID-Spalte werden beim Einfügen eines Objekts vom System aus der angegebenen Spaltenliste abgeleitet und gefüllt. Bei der INSERT-Anweisung fehlt diese Spalte.
  • REF USING <Typname>:
    • benutzergeneriert
    • Die OID-Spalte hat eine benutzerdefinierte Repräsentation (Datentyp/Struktur).
    • Die Werte für die OID-Spalte(n) wird/werden bein Einfügen eines Objekts vom Benutzer vorgegeben und sind damit Teil der Werte, die mit der INSERT-Anweisung übergeben werden.

siehe auch: OID (Oracle) CREATE-TYPE-Anweisung in SQL, CREATE-typisierte-TABLE-Anweisung, Typisierte Tabelle, Typisierte Sicht

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
  • Türker, Can, Saake, Gunter: "Objektrelationale Datenbanken", dpunkt-verlag, Heidelberg, 2006, ISBN 3-89864-190-2

Kategorie: Objektrelationale DB, O