🏠 » Lexikon » O » Object Exchange Model

Object Exchange Model

Das Object Exchange Model (kurz OEM) dient als Basisdatenmodell in zahlreichen Projekten der Stanford University Database Group, einschließlich Tsimmis (The Stanford-IBM Manager of Multiple Information Sources), Lore und C3.

Des Weiteren hat sich das Object Exchange Model als De-facto-Standard für die Ablage von semistrukturierten Daten durchgesetzt.

Ein Object Exchange Model-Objekt enthält eine Objektkennung, eine beschreibende Textbeschriftung, einen Typ und einen Wert.

In den meisten Fällen wird die Objektkennung nur innerhalb einer Systemimplementierung verwendet und bleibt für den Endbenutzer verborgen.

Ein Wert kann atomar oder komplex sein. Atomare OEM-Werte können Ganzzahlen, Reals, Strings, Bilder, Videoclips, Soundclips, Abfragen, Programme oder andere Datenwerte sein, die von der Datenbank als untrennbar betrachtet werden sollen.

Typen sind immer mit atomaren Werten verknüpft, aber die verschiedenen Typen sind nicht spezifisch für OEM. Ein komplexer OEM-Wert ist dagegen eine Sammlung von 0 oder mehr OEM-Objekten. Das komplexe OEM-Objekt kann als Elternteil einer beliebigen Anzahl von OEM-Kinderobjekten betrachtet werden.

Ein einzelnes Object Exchange Model-Objekt kann mehrere übergeordnete Objekte haben. Mit dieser einfachen rekursiven Definition können beliebig komplexe OEM-Netzwerke aufgebaut werden, um Beziehungen zwischen Daten zu modellieren.

Aufbau und Funktionsweise eines Object Exchange Modells

Leerzeichen

werden in der textuellen OEM-Syntax ignoriert, außer wenn sie Teil einer in Anführungszeichen stehenden Zeichenfolge sind. Kommentare sind in OEM-Textdateien erlaubt, wenn sie die Standard C++ Kommentarsymbole und ihre Semantik verwenden.

String-Konstanten der OEM-Syntax entsprechen der Definition für String-Konstanten in der Sprache C. Zum Beispiel wird ein Zeilenumbruch mit n codiert. Lange String-Konstanten müssen sich über mehrere Zeilen erstrecken. Nur so bleiben sie lesbar.

Zur Unterstützung können mehrere String-Konstanten verkettet werden. Dazu wird das #-Zeichen zwischen die Konstanten gesetzt, zum Beispiel:

"TEST" # "EINER" # "VERKETTUNG" - TESTEINERVERKETTUNG

Allgemein müssen Labels mit einem Unterstrich oder einem Buchstaben beginnen. Folgen dürfen beliebige Buchstaben, Ziffern oder Unterstriche in beliebiger Anzahl.

Object Exchange Model Beispiel

Ein Object Exchange Model Beispiel kann foldenermaßen aufgebaut sein:

<DB:: Eats { // Eine Beispiel Datenbank
<Restaurant {
<Name "Tommis Restaurant">
<Vorspeise {
<Name str "Suppe"> <_595: Preis 5.95>
}>
<Hauptgang {
<Name "Pizza">
<Opinion "Die Pizza ist spitze, " #
"es gibt keine Bessere">
<&_895>
}>
<"Kreditkarte" "Visa">
}>
}>

In Zeile 1 wird dem komplexen Objekt eine Datenbank (SymOID DB) zugeordnet.

In Zeile 5 befinden sich zwei OEM-Objekte in einer Zeile. Die Typbezeichnung "str" ist optional. Außerdem wird die Definition des SymOID 595 gebildet. Die Zeilen 9 und 10 zeigen eine Verkettung.

In Zeile 11 ist eine SymOID-Referenz zu sehen.

Object Exchange Model - Definition & Erklärung - Zusammenfassung

Im Zusammenhang mit dem Lexikoneintrag Object Exchange Model sollte man sich folgende Punkte merken:

  • Das Object Exchange Model hat sich als De-facto-Standard für die Ablage von semistrukturierten Daten durchgesetzt.
  • Ein Object Exchange Model-Objekt enthält eine Objektkennung, eine beschreibende Textbeschriftung, einen Typ und einen Wert.
  • Ein einzelnes Object Exchange Model-Objekt kann mehrere übergeordnete Objekte haben. Mit dieser einfachen rekursiven Definition können beliebig komplexe OEM-Netzwerke aufgebaut werden, um Beziehungen zwischen Daten zu modellieren.