Objektorientierte Datenbanken: Konzept, Grundkonzepte, Verw altung, Beispiele

Inhaltsverzeichnis:

Objektorientierte Datenbanken: Konzept, Grundkonzepte, Verw altung, Beispiele
Objektorientierte Datenbanken: Konzept, Grundkonzepte, Verw altung, Beispiele
Anonim

In objektorientierten Datenbanken (OODBs) können Benutzer Operationen für eine bestimmte Datenbank festlegen, die aus Objekten besteht, die von einer Vielzahl von Typen sein können und für die Operationen festgelegt werden. Sie können binäre Informationen wie Multimedia-Objekte effizient handhaben. Ein weiterer zusätzlicher Vorteil von OODB ist, dass es mit geringfügigen Verfahrensunterschieden programmiert werden kann, ohne das gesamte System zu beeinträchtigen.

Voraussetzungen für die Erstellung des Standards

Die Geschichte der objektorientierten OODB-Datenbanken beginnt Ende des letzten Jahrhunderts. Sie wurden entwickelt, um die Anforderungen neuer Anwendungen zu erfüllen. Die Annahme war, dass objektorientierte Datenbanken Softwaresysteme in den 1990er Jahren revolutionieren würden. Inzwischen ist klar, dass dies nicht der Fall ist. Die Wiederbelebung dieses Konzepts durch die Freie-Software-Communities und die Identifizierung geeigneter Anwendungen dafür motiviert jedoch zu einer Überprüfung der EigenschaftenOODB, eine Alternative zu den allgegenwärtigen relationalen Datenbanken.

Voraussetzungen für die Erstellung des Standards
Voraussetzungen für die Erstellung des Standards

Objektorientiert bietet die Flexibilität, einige oder alle Anforderungen zu erfüllen, und ist nicht auf die Datentypen und Abfragesprachen herkömmlicher Datenbanken beschränkt. Ein Schlüsselmerkmal von OODBs ist die Fähigkeit, die sie dem Entwickler bieten, indem es ihm ermöglicht, sowohl die Struktur komplexer Objekte als auch die Anwendungsoperationen zu spezifizieren. Ein weiterer Grund für die Erstellung von OODBs ist die zunehmende Verwendung von Sprachen für die Softwareentwicklung.

Datenbanken sind zur Grundlage vieler Informationssysteme geworden, aber traditionelle Datenbanken sind schwer zu verwenden, wenn die Anwendungen, die auf sie zugreifen, in C++, Smalltalk oder Java geschrieben sind. Beispielsweise wurden objektorientierte 1C-Datenbanken so konzipiert, dass sie direkt in Anwendungen integriert werden können, die objektorientierte Sprachen verwenden, indem sie ihre Konzepte übernehmen: Visual Studio. Net, C ++, C, Microsoft SQL Server und andere.

Der Hauptvorteil von OODB ist die vollständige Beseitigung der Notwendigkeit von RMs1 (Impedanz) mit anschließenden Leistungsverbesserungen.

Der Hauptvorteil von OODB
Der Hauptvorteil von OODB

Fehler:

  1. Sehr primitive Konsultationsmechanismen, keine als Selbststandard akzeptierte Plattform.
  2. Prozeduren können nicht gespeichert werden, da auf Objekte nur im Client zugegriffen werden kann.
  3. Unreife im Markt.
  4. Keine physische Gruppierung von Objekten.

Objektparadigma

Objektparadigma
Objektparadigma

Objektorientierte Datenbanken sind programmierbare Datenbanken, die komplexe Daten und ihre Beziehungen direkt speichern, ohne Zeilen und Sp alten zuzuweisen, wodurch sie sich besser für Anwendungen eignen, die mit großen Stapeln arbeiten. Objekte haben Viele-zu-Viele-Beziehungen und sind durch die Verwendung von Zeigern zugänglich, die ihnen zugeordnet sind, um Beziehungen herzustellen. Wie jedes programmierbare Programm bietet OODB eine Anwendungsentwicklungsumgebung und ein persistentes Repository, das zur Nutzung bereit ist. Es speichert und manipuliert Informationen, die in Form von Objekten digitalisiert werden können, bietet schnellen Zugriff und bietet hervorragende Verarbeitungsmöglichkeiten.

Grundlegende Konzepte einer objektorientierten Datenbank:

  • Objektidentität;
  • Konstruktortyp;
  • Sprachkompatibilität;
  • Hierarchien und Vererbung eingeben;
  • Verarbeitung komplexer Objekte;
  • Polymorphismus und Operatorüberladung;
  • Versionen erstellen.
Versionierung
Versionierung

Um alle Aspekte zu berücksichtigen, die eine objektorientierte Datenbank charakterisieren, ist es wichtig, alle wichtigen Objektparadigmen zu beachten:

  1. Encapsulation ist eine Eigenschaft, die es Ihnen ermöglicht, Informationen für andere Objekte zu verbergen und dadurch einen falschen Zugriff oder Konflikte zu verhindern.
  2. Vererbung ist eine Eigenschaft, durch die Objekte das Verh alten in einer Klassenhierarchie erben.
  3. Polymorphismus ist eine Eigenschaft einer Operation, auf die sie angewendet werden kannverschiedene Arten von Objekten.
  4. Die Schnittstelle oder Signatur einer Operation enthält den Namen und die Datentypen ihrer Argumente oder Parameter.
  5. Die Implementierung oder Methode einer Operation wird separat angegeben und kann geändert werden, ohne die Schnittstelle zu beeinflussen. Benutzeranwendungen können mit Daten arbeiten, indem sie bestimmte Operationen über ihre Namen und Argumente aufrufen, unabhängig davon, wie sie implementiert wurden.

Klassen und Funktionen

Klassen und Funktionalität
Klassen und Funktionalität

Wenn man das Konzept der Klassen in OODB betrachtet, muss man zwischen den Begriffen "Klasse" und "Typ" unterscheiden. Ein Typ wird verwendet, um eine Menge von Objekten mit ähnlichem Verh alten zu beschreiben. In diesem Sinne hängt es davon ab, welche Operationen auf dem Objekt aufgerufen werden können. Eine Klasse ist eine Sammlung von Objekten, die dieselbe interne Struktur haben, also definiert sie eine Implementierung, während ein Typ beschreibt, wie sie verwendet wird.

Der Begriff Instanziierung bezieht sich auf die Tatsache, dass die Instanziierung einer Klasse verwendet werden kann, um eine Menge von Objekten zu erzeugen, die dieselbe Struktur und dasselbe Verh alten wie von der Klasse festgelegt haben.

Ein Merkmal, das für die Evolution von Objekten sehr wichtig ist, ist, dass es seine Klasse ändern kann, einschließlich Attribute und Operationen, während es seine Identität beibehält. Dies würde einen Mechanismus erfordern, um die resultierende semantische Integrität zu handhaben.

Das Vererben der objektorientierten Datenbank einer Organisation ermöglicht es, eine Klasse als Unterklasse einer bereits existierenden Oberklasse zu definieren. Es erbt alle Attribute und Methoden von letzterem und kann optional definierenbesitzen. Dieses Konzept ist ein wichtiger Mechanismus zur Unterstützung der Wiederverwendung. Die gleichen Teile der Struktur zweier verschiedener Klassen können nur einmal in einer gemeinsamen Oberklasse definiert werden, daher wird weniger Code geschrieben. Es gibt einige Systeme, die es einer Klasse ermöglichen, eine Unterklasse von mehr als einer Oberklasse zu sein. Diese Funktion wird Mehrfachvererbung im Gegensatz zu Einfachvererbung genannt.

Beispiel einer objektorientierten Datenbank

Es ist oft sinnvoll, denselben Namen für unterschiedliche, aber ähnliche Methoden der Oberklasse media aus den Klassen picture und video zu verwenden. Viele Dateien können von verschiedenen Viewern angezeigt werden. Oftmals müssen sie sich alle Fotos und Videos mit der „View“-Methode ansehen und das entsprechende Programm starten. Wenn die Funktion aufgerufen und ein Link zum Video übergeben wird, wird der Mediaplayer gestartet. Um dieses Merkmal zu implementieren, ist es zunächst erforderlich, die Operation "Präsentation" in der Oberklasse der gemeinsamen Medien aus den Bild- und Videoklassen zu definieren. Jede der Unterklassen definiert die Suchoperation für ihre spezifischen Anforderungen neu. Dies führt zu unterschiedlichen Methoden, die denselben Operationsnamen haben. In diesem Fall hat die Verwendung dieser Funktion einen wichtigen Vorteil.

OODB-Struktur

OODB-Struktur
OODB-Struktur

Das objektorientierte Paradigma basiert auf der Kapselung von Daten und Code, die sich auf jedes Objekt in einem einzigen Modul beziehen. Konzeptionell werden alle Interaktionen zwischen ihm und dem Rest des Systems unter Verwendung von Nachrichten ausgeführt. Daher die Schnittstellezwischen ihnen wird durch die erlaubte Menge bestimmt.

Im Allgemeinen ist jedem Objekt eine Menge zugeordnet:

  1. Variablen, die Objektdaten enth alten und ER-Modellattributen entsprechen.
  2. Nachrichten, auf die er antwortet. Jeder kann Parameter haben oder nicht, einen oder mehrere.
  3. Methoden, von denen jede ein Code ist, der Nachrichten implementiert und als Antwort darauf einen Wert zurückgibt.

Messaging in einer OO-Umgebung impliziert nicht die Verwendung von physischen SMS in Computernetzwerken. Im Gegenteil, es bezieht sich auf den Austausch von Anforderungen zwischen Objekten, unabhängig von den korrekten Details ihrer Implementierung. Manchmal ruft ein Ausdruck eine Methode auf, um auszulösen, dass eine Nachricht an ein Objekt gesendet wurde, und verwendet die Ausführung der entsprechenden Methode.

Objektidentität

Objektidentität
Objektidentität

Das objektorientierte Datenbanksystem bietet eine eindeutige Identifikation für jedes unabhängige Objekt, das in der Datenbank gespeichert ist. Es wird normalerweise unter Verwendung einer vom System generierten eindeutigen Objektkennung oder OID implementiert. Der OID-Wert ist für den externen Benutzer unsichtbar, aber das System verwendet ihn intern, um Verknüpfungen zwischen Objekten zu verw alten.

Die Haupteigenschaft einer OID ist, unveränderlich zu sein. Der OID-Wert für ein bestimmtes Objekt sollte sich nie ändern. Dadurch bleibt die Identität der dargestellten realen Welt erh alten. Es wird auch bevorzugt, dass jede OID nur einmal verwendet wird, selbst wenn sie aus der Datenbank entfernt wird, sollte ihre OID keiner anderen zugewiesen werden. Es wird auch oft als unangemessen angesehen, es auf eine körperliche Grundlage zu stützendie Adresse des Objekts im Speicher, da eine Reorganisation in der Datenbank die OID ändern kann. Einige Systeme verwenden jedoch die physische Adresse als OID, um die Effizienz beim Abrufen von Objekten zu erhöhen. Ein objektorientiertes Framework erlegt automatisch relationale Beschränkungen auf, die normalerweise zutreffender sind: Domäne, Schlüssel, Objektintegrität und referenzielle Integrität.

Drei Hauptkonstruktoren

Drei Hauptkonstrukteure
Drei Hauptkonstrukteure

In OODB können Werte oder Zustände komplexer Objekte mithilfe von Konstruktoren bestimmter Typen aus anderen erstellt werden. Eine Möglichkeit, sie darzustellen, besteht darin, sich jedes als Triplett (i, c, v) vorzustellen, wobei i der eindeutige Bezeichner (OID) des Objekts und c der Konstruktor ist, d. h. ein Zeiger auf den Wert des Objekts erstellt, und v ist der Wert oder Zustand des Objekts. Je nach Datenmodell und OO-System kann es mehrere Konstruktoren geben.

Drei grundlegende objektorientierte Datenbankkonstruktoren:

  • Atome;
  • Tupel;
  • sets.

Andere häufigere Anwendungen sind Listen und Diagramme. Es gibt auch die D-Domäne, die alle grundlegenden atomaren Werte enthält, die direkt auf dem System verfügbar sind. Sie umfassen normalerweise Ganzzahlen, reelle Zahlen, Zeichenfolgen, Datumsangaben und alle anderen Datentypen, die das System direkt verarbeitet. Sowohl die Struktur von Objekten als auch Operationen sind in Klassendefinitionen enth alten.

Kompatibilität mit Programmiersprachen

Die Kernkonzepte objektorientierter Datenbanken werden in verwendetals Design-Tools und kodifiziert, um mit der Datenbank zu arbeiten.

Es gibt mehrere mögliche Sprachen, in die diese Konzepte integriert werden können:

  1. Erweiterung einer Sprache für die Datenverarbeitung wie SQL durch Hinzufügen komplexer Typen und OOP. Systeme bieten objektorientierte Erweiterungen relationaler Systeme, sogenannte objektorientierte relationale Systeme.
  2. Verwenden einer bestehenden objektorientierten Programmiersprache und deren Erweiterung auf die Arbeit mit Datenbanken. Sie werden als persistente Programmiersprachen bezeichnet und ermöglichen es Entwicklern, direkt mit Daten zu arbeiten, ohne eine Datenverarbeitungssprache wie SQL durchlaufen zu müssen. Sie werden persistent genannt, weil die Daten nach dem Ende des Programms, das sie erzeugt hat, weiter existieren.

Beachten Sie bei der Entscheidung, welche Option Sie verwenden möchten, dass persistente Sprachen in der Regel leistungsfähig sind und dass es relativ einfach ist, Programmierfehler zu machen, die die Datenbank beschädigen. Die Komplexität von Sprachen erschwert automatische Optimierungen auf hoher Ebene, wie z. B. die Reduzierung von Festplatten-I/O. In vielen Anwendungen ist die Möglichkeit, deklarative Abfragen zu machen, wichtig, aber persistente Sprachen lassen solche Abfragen derzeit nicht ohne Probleme zu.

Hierarchie der Vererbungsarten

Objektorientierte Datenbankschemata erfordern normalerweise eine große Anzahl von Klassen. Einige Klassen ähneln sich jedoch gegenseitig. Um eine direkte Darstellung der Ähnlichkeiten zwischen ihnen zu ermöglichen, müssen Sie putsie in eine Hierarchie von Spezialisierungen einordnen. Dieses Konzept ähnelt ER-Modellen. Klassenspezialisierungen werden als Unterklassen bezeichnet, die zusätzliche Attribute und Methoden für eine vorhandene Klasse definieren. Mit Unterklassen erstellte Objekte erben alles von der übergeordneten Klasse. Einige dieser ererbten Eigenschaften wurden möglicherweise selbst von denjenigen entlehnt, die in der Hierarchie höher stehen.

Objekte gelten als komplex, da sie viel Speicherplatz benötigen und nicht zu den Standarddatentypen gehören, die das objektorientierte Datenbankmanagement (OODBS) normalerweise anbietet. Da die Größe von Objekten erheblich ist, kann SOOBMS einen Teil eines Objekts empfangen und ihn einer Anwendung bereitstellen, bevor das gesamte Objekt erfasst wird. Es kann auch Puffer- und Cache-Methoden verwenden, um Teile eines Objekts vorzeitig abzurufen, bevor eine Anwendung darauf zugreifen kann.

OODB ermöglicht es Benutzern, neue Typen zu erstellen, die sowohl Strukturen als auch Operationen enth alten, in diesem Fall das erweiterbare Typsystem. Sie können Bibliotheken neuer Typen erstellen, indem Sie ihre Struktur und Operationen definieren. Viele von ihnen können ein großes strukturiertes Objekt in Form von Zeichenketten und Zeichen oder Bits speichern und empfangen, die "wie sie sind" zur Interpretation an das Anwendungsprogramm übergeben werden.

Die Methode kann über den Namen direkt auf die Attribute des Zielobjekts zugreifen, einschließlich aller von Elternklassen geerbten Attribute, muss aber mit sekundären Signalen auf Attribute anderer Objekte zugreifen. Das Konzept ermöglicht es Ihnen, den gleichen Operatornamen oder das gleiche Symbol damit zu verknüpfenzwei oder mehr verschiedene Implementierungen davon, abhängig von der Art der Objekte, auf die es sich bezieht.

Apps erstellen

Anwendungserstellung
Anwendungserstellung

Viele Datenbankanwendungen, die OO-Systeme verwenden, erfordern mehrere Versionen desselben Objekts. Typischerweise werden Wartungsaktivitäten auf ein Softwaresystem angewendet, wenn sich seine Anforderungen ändern, und beinh alten das Ändern einiger der Entwicklungs- und Implementierungsmodule. Wenn das System bereits läuft und ein oder mehrere Module geändert werden müssen, muss der Entwickler jeweils eine neue Version erstellen, indem er Änderungen vornimmt.

Beachten Sie, dass es mehr als zwei Versionen eines Objekts geben kann, falls zwei zusätzlich zum ursprünglichen Modul benötigt werden. Eigene Versionen des gleichen Softwaremoduls können gleichzeitig aktualisiert werden. Dies wird als paralleles objektorientiertes Datenbankdesign bezeichnet. Es kommt jedoch immer ein Punkt, an dem sie zusammengeführt werden müssen, damit die hybride OODB die vorgenommenen Änderungen übernimmt, damit sie kompatibel sind.

Objektorientierte Bedingungen

Alle Computersysteme müssen Eigenschaften ihrer Architektur haben, um berücksichtigt zu werden. Beispielsweise muss ein System über Tabellen verfügen, um als relational zu gelten. OODB ist keine Ausnahme und enthält einige grundlegende Eigenschaften der Objektarchitektur. In der realen Welt werden jedoch viele dieser Eigenschaften diskutiert, und einige, wie z. B. Mehrfachvererbung, werden eher als Erweiterungen des objektorientierten Datenbankmodells betrachtetals Teil der Grundlinie. Beispielsweise wird in der objektorientierten Sprache Smalltalk Mehrfachvererbung nicht unterstützt, obwohl sie als Teil der Objektarchitektur betrachtet wird.

Methoden für eine Klasse definieren eine Reihe von Operationen, die an einem Objekt ausgeführt werden können. Wenn es beispielsweise auf ein Objekt angewendet wird, gibt es entweder einen Wert zurück oder führt eine Operation aus, um die Werte zu aktualisieren. Manchmal geben Methoden es nicht zurück. Wenn die Methode darauf ausgelegt wäre, die Anzahl der Passagiere für ein Fahrzeug zu aktualisieren, würde kein Wert zurückgegeben, aber das Datenelement im Ziel würde ihn ändern.

Objekte sind ein grundlegendes Konzept in OODB. Im Wesentlichen sind Objekte eine abstrakte Darstellung der Dinge der realen Welt, die darin gespeichert sind. Ein Objekt ist eine Instanz einer Klasse in dem Sinne, dass es von ihrer Definition ausgeschlossen ist.

Sie können sich ein Objekt als ein in sich geschlossenes Paket vorstellen, das aus drei Teilen besteht:

  1. Eigene persönliche Informationen, Datenwerte.
  2. Private Prozeduren, die Werte über die Klassendefinition manipulieren.
  3. Schnittstelle öffnen, damit dieses Objekt mit anderen kommunizieren kann.

OODB-Beispiele

Die Verwendung von OODB vereinfacht die Konzeptualisierung, da es natürlicher ist, die Informationen darzustellen, die gespeichert werden müssen. Um die Struktur oder Logik einer Datenbank zu modellieren, ermöglicht die Verwendung von Klassendiagrammen die Einführung von Klassen mit ihren strukturellen Beziehungen und ihrer Vererbung. Um einen Teil der Dynamik, Interaktion uVerh alten zwischen Objekten wird ein Sequenzdiagramm verwendet, um die Interaktion zwischen Objekten darzustellen, die sich in einer temporären Beziehung befinden, wobei die möglichen Zustände beschrieben werden, sodass sie angesichts des geänderten Zustands gefunden werden können, nachdem das Ereignis eintritt.

OODB-Beispiele
OODB-Beispiele

Ein Beispiel einer objektorientierten Datenbank ist unten abgebildet.

Beispiele für objektorientierte Datenbanken
Beispiele für objektorientierte Datenbanken

Sie haben einen Namen und eine Lebensdauer, die vorübergehend oder dauerhaft sein kann. Der OODB-Schlüssel ist die Fähigkeit, die sie dem Entwickler bereitstellen, um anzugeben, wie viele Strukturen und Operationen auf sie angewendet werden. Es gibt Flexibilität und Unterstützung für die Handhabung komplexer Datentypen. Sie können Klassen und Unterklassen erstellen, zum Beispiel kann der Kundenstamm eine Unterklasse der Verknüpfung dieses Kunden haben, und sie wird alle Attribute und Eigenschaften der ursprünglichen Klasse erben, dieser Ansatz ermöglicht Ihnen, komplexe Daten schnell und flexibel zu verarbeiten.

Empfohlen: