<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://demowiki.knowlus.com/index.php?action=history&amp;feed=atom&amp;title=Objektdatenbank</id>
	<title>Objektdatenbank - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://demowiki.knowlus.com/index.php?action=history&amp;feed=atom&amp;title=Objektdatenbank"/>
	<link rel="alternate" type="text/html" href="https://demowiki.knowlus.com/index.php?title=Objektdatenbank&amp;action=history"/>
	<updated>2026-04-08T04:37:31Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Demo Wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://demowiki.knowlus.com/index.php?title=Objektdatenbank&amp;diff=2702&amp;oldid=prev</id>
		<title>imported&gt;Aka: /* Weblinks */ https</title>
		<link rel="alternate" type="text/html" href="https://demowiki.knowlus.com/index.php?title=Objektdatenbank&amp;diff=2702&amp;oldid=prev"/>
		<updated>2023-04-13T10:02:34Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Weblinks: &lt;/span&gt; https&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Eine &amp;#039;&amp;#039;&amp;#039;Objektdatenbank&amp;#039;&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;&amp;#039;objektorientierte Datenbank&amp;#039;&amp;#039;&amp;#039; ist eine [[Datenbank]], die auf dem &amp;#039;&amp;#039;&amp;#039;Objektdatenbankmodell&amp;#039;&amp;#039;&amp;#039; basiert. Im Unterschied zur [[Relationale Datenbank|relationalen Datenbank]] werden Daten hier als [[Objekt (Programmierung)|Objekte]] im Sinne der [[Objektorientierung]] verwaltet. Das zugehörige Datenbankmanagementsystem wird als das &amp;#039;&amp;#039;&amp;#039;objektorientierte Datenbankmanagementsystem&amp;#039;&amp;#039;&amp;#039; bezeichnet. Objektdatenbank und Objektdatenbankmanagementsystem bilden gemeinsam das &amp;#039;&amp;#039;&amp;#039;Objektdatenbanksystem&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Ein Objekt [[Modell|modelliert]] normalerweise einen Gegenstand oder Begriff und enthält insbesondere dazugehörige [[Attribut (Datenbank)|Attribute]]; so gehört zum Beispiel die Farbe und das Gewicht eines Autos zu dem Objekt Auto. Attribute beschreiben ein Objekt näher. Daten und Methoden (die Funktionen zum Zugriff auf die Daten) werden in den Objekten zusammen abgelegt.&lt;br /&gt;
&lt;br /&gt;
== Objektdatenbankmanagementsystem ==&lt;br /&gt;
Das Datenbankmanagementsystem (DBMS) ist die Software, die zur Verwaltung einer Datenbank benötigt wird. Im Falle einer Objektdatenbank wird diese als das Objektdatenbankmanagementsystem (ODBMS) bezeichnet. Das ODBMS ist für die Speicherung und den zuverlässigen Zugriff auf die Daten zuständig. Neben den klassischen Eigenschaften eines DBMS hat es folgende zusätzliche Anforderungen zu erfüllen, um als vollwertiges ODBMS verwendbar zu sein:&lt;br /&gt;
&lt;br /&gt;
* Verwaltung &amp;#039;&amp;#039;komplexer Objekte&amp;#039;&amp;#039;. Ein Objekt setzt sich aus beliebigen anderen [[Datentyp]]en zusammen.&lt;br /&gt;
* Sicherstellung der &amp;#039;&amp;#039;Objektidentität&amp;#039;&amp;#039;. Jedes Objekt bekommt eine systemweit eindeutige Identifikation &amp;#039;&amp;#039;OID&amp;#039;&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;Kapselung&amp;#039;&amp;#039; der Objekte nach dem Konzept der objektorientierten Programmierung. Der Zugriff auf das Objekt findet über Methoden statt.&lt;br /&gt;
* Objekte sind einer &amp;#039;&amp;#039;Objektklasse&amp;#039;&amp;#039; zugeordnet.&lt;br /&gt;
* Objektklassen sind in einer &amp;#039;&amp;#039;Klassenhierarchie&amp;#039;&amp;#039; angeordnet.&lt;br /&gt;
* Durch [[Polymorphie (Programmierung)#Inklusionspolymorphie|späte Bindung]] werden bei vererbten Objekten die überladenen Methoden verwendet.&lt;br /&gt;
* Das ODBMS muss eine [[Turing-Vollständigkeit|Turing-vollständige]] [[Data Manipulation Language|Manipulationssprache (DML)]] bereitstellen.&lt;br /&gt;
&lt;br /&gt;
Neben diesen Eigenschaften gibt es eine Reihe optionaler Anforderungen, die hier nicht im Einzelnen dargestellt sind. Sie wurden auf der Konferenz [[DOOD]]’98 festgelegt.&lt;br /&gt;
&lt;br /&gt;
Als Abfragesprache wurde von der [[ODMG]] die Sprache [[Object Query Language]] (OQL) standardisiert. Als Datenmanipulationssprache wird [[Object Database Management Group#Komponenten|Object Definition Language]] (ODL) verwendet.&lt;br /&gt;
&lt;br /&gt;
== Vorteile ==&lt;br /&gt;
Objektdatenbanksysteme schließen eine Lücke, die bei der Programmierung moderner Datenbankanwendungen entsteht, wenn die Anwendung in einer objektorientierten Programmiersprache entwickelt wurde, die Datenbank jedoch ein klassisches relationales Datenbanksystem ist. Beide Konzepte widersprechen sich in einigen wichtigen Punkten. Dieses Problem wird allgemein als der „[[object-relational impedance mismatch]]“ bezeichnet. Als Lösung für das Problem werden sogenannte [[objektrelationale Abbildung]]en verwendet. Dies sind Softwarekomponenten, die zwischen einer relationalen Datenbank und einer objektorientierten Software vermitteln. Durch die Verwendung eines Objektdatenbanksystems wird diese Vermittlung überflüssig. Die Anwendung kann direkt mit der Datenbank kommunizieren.&lt;br /&gt;
&lt;br /&gt;
Das Zusammensetzen komplexer Datenobjekte mittels [[Relationale Algebra#Join|Joins]] über mehrere Datenbanktabellen entfällt. Objekte können einfach über die in der Datenbank gespeicherten Beziehungen abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
Weiterhin hilft ein ODBMS beim Zugriff auf Daten. Da Objekte eine komplexe Struktur haben können, sind semantische Zusammenhänge zwischen Objekten dem Datenbanksystem bekannt. Das Datenbanksystem hat also ein Verständnis davon, welche Daten zusammengehören. Dieses Wissen kann bei der Abfrage der Daten mittels einer Abfragesprache wie OQL verwendet werden. Im Gegensatz zu relationalen Datenbanksystemen ist das Ergebnis einer Anfrage nicht eine Menge von Datensätzen. OQL erlaubt die Abfrage einzelner Objekte.&lt;br /&gt;
&lt;br /&gt;
Außerdem wird das Problem der Objektidentität gelöst. Während bei relationalen Datenbanken der Datenbankentwickler oft einen künstlich erzeugten Schlüssel ([[Surrogate Key]]) zu seinen Daten hinzufügen muss, wird dies von einem ODBMS automatisch in Form eines OIDs gemacht. Die Verwaltung dieser IDs wird dabei vollständig vom System übernommen.&lt;br /&gt;
&lt;br /&gt;
== Nachteile ==&lt;br /&gt;
Objektdatenbanken haben bis heute nur eine geringe Verbreitung. Entsprechend sind viele Schnittstellen und Tools wie [[Java Database Connectivity|JDBC]]/[[Open Database Connectivity|ODBC]], [[ETL-Prozess|ETL]] oder [[Online Analytical Processing|OLAP]] für den Einsatz mit einem ODBMS nicht vorbereitet.&lt;br /&gt;
&lt;br /&gt;
Die Schnittstellen zwischen Anwendungsprogramm und Objektdatenbank sind nicht standardisiert, sodass sich bei Problemen das Datenbanksystem nur mit immensem Aufwand nachträglich durch ein leistungsfähigeres ersetzen lässt. Bei den objektrelationalen Abbildungen dagegen gibt es mehrere etablierte Lösungen, die den Zugriff auf im Masseneinsatz erprobte und in unzähligen Projekten verwendete relationale Datenbanksysteme bieten.&lt;br /&gt;
&lt;br /&gt;
Bei bestimmten Anfragen sind Objektdatenbanken noch immer im Nachteil gegenüber relationalen Datenbanken. Dies ist beispielsweise durch Zugriffspfade zu Objekten über mehrere Pfadarten (bspw. Vererbung und Assoziation) verursacht. Dies führt bei Schreiboperationen in der Sperrverwaltung zu einer exponentiellen Komplexität und somit zu Performanceproblemen. Die Leistungsprobleme wurden in den objektrelationalen Datenbanken aufgegriffen, in denen nur die Konstrukte aus objektorientierten Datenbanken mit niedrigerer Komplexität (bspw. &amp;lt;math&amp;gt;n \cdot \log(n)&amp;lt;/math&amp;gt;) übernommen wurden.&lt;br /&gt;
&lt;br /&gt;
== Geschichte ==&lt;br /&gt;
Objektdatenbanken wurden Ende der 1980er Jahre entwickelt. Somit gehören sie zu den vergleichsweise neuen Datenbankkonzepten. Bis heute spielen sie auf dem Datenbankmarkt, der von den relationalen Datenbanksystemen dominiert wird, eine eher geringe Rolle. Dennoch sind seit 2004 mehrere Objektdatenbanksysteme wie zum Beispiel [[db4o]] entwickelt worden, deren Weiterentwicklung im Jahr 2011 eingestellt wurde, die zum Teil als [[Open Source]] verfügbar sind.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Datenbankmodell]]&lt;br /&gt;
* [[Netzwerkdatenbankmodell]]&lt;br /&gt;
* [[Objektrelationale Datenbank]]&lt;br /&gt;
* [[EDA-Datenbank]]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Heuer, Andreas: &amp;#039;&amp;#039;Objektorientierte Datenbanken – Konzepte, Modelle, Standards und Systeme.&amp;#039;&amp;#039; 2., aktualisierte Auflage – Bonn: Addison-Wesley-Longman 1997: ISBN 3-89319-800-8&lt;br /&gt;
* {{Literatur&lt;br /&gt;
 | Autor= [[Gunter Saake]], Ingo Schmitt, Can Türker&lt;br /&gt;
 | Titel=Objektdatenbanken – Konzepte, Sprachen, Architekturen&lt;br /&gt;
 | Verlag=International Thomson Publishing&lt;br /&gt;
 | Ort=Bonn&lt;br /&gt;
 | Auflage=1.&lt;br /&gt;
 | Jahr=1997&lt;br /&gt;
 | ISBN=3-8266-0258-7&lt;br /&gt;
}}&lt;br /&gt;
* Unland, Rainer: &amp;#039;&amp;#039;Objektorientierte Datenbanken. Konzepte und Modelle.&amp;#039;&amp;#039; Thomson Publishing, Bonn 1995, ISBN 3-929821-82-6&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://www.odbms.org/ www.odbms.org] – Resource Portal for Education and Research on Object Databases (englisch)&lt;br /&gt;
* [https://www.odbms.org/blog/ ODBMS Industry Watch blog] (englisch)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Datenbanken]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Aka</name></author>
	</entry>
</feed>