GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was ist eine objektorientierte Datenbank

Einführung

Objektorientierte Datenbanken sind eine Art Datenbankverwaltungssystem. Verschiedene Datenbankmanagementsysteme bieten zusätzliche Funktionalitäten. Objektorientierte Datenbanken fügen die Datenbankfunktionalität zu Objektprogrammiersprachen hinzu und schaffen leichter zu verwaltende Codebasen.

Dieser Artikel gibt einen ausführlichen Überblick über objektorientierte Datenbanken mit Beispielen.

Objektdatenbankdefinition

Eine Objektdatenbank wird von einem o verwaltet Objekt-o orientiert d atab wie m Management s System (OODBMS). Die Datenbank kombiniert objektorientierte Programmierkonzepte mit relationalen Datenbankprinzipien.

  • Objekte sind der grundlegende Baustein und eine Instanz einer Klasse, wobei der Typ entweder integriert oder benutzerdefiniert ist.
  • Klassen Bereitstellung eines Schemas oder einer Blaupause für Objekte, die das Verhalten definieren.
  • Methoden bestimmen das Verhalten einer Klasse.
  • Hinweise dabei helfen, auf Elemente einer Objektdatenbank zuzugreifen und Beziehungen zwischen Objekten herzustellen.

Das Hauptmerkmal von Objekten in OODBMS ist die Möglichkeit von vom Benutzer erstellten Typen . Ein in einem Projekt oder einer Anwendung erstelltes Objekt wird unverändert in einer Datenbank gespeichert.

Objektorientierte Datenbanken behandeln Daten direkt als vollständige Objekte. Alle Informationen kommen in einem sofort verfügbaren Objektpaket statt in mehreren Tabellen.

Im Gegensatz dazu sind die Grundbausteine ​​relationaler Datenbanken wie PostgreSQL oder MySQL Tabellen mit Aktionen, die auf logischen Verbindungen zwischen den Tabellendaten basieren.

Aufgrund dieser Eigenschaften eignen sich Objektdatenbanken für Projekte mit komplexen Daten, die einen objektorientierten Programmieransatz erfordern. Ein objektorientiertes Verwaltungssystem bietet unterstützte Funktionalität für die objektorientierte Programmierung, bei der komplexe Objekte im Mittelpunkt stehen. Dieser Ansatz vereint Attribute und Verhalten von Daten in einer Einheit.

Objektorientierte Programmierkonzepte

Objektorientierte Datenbanken sind eng mit objektorientierten Programmierkonzepten verwandt. Die vier Hauptideen der objektorientierten Programmierung sind:

  • Polymorphismus
  • Vererbung
  • Verkapselung
  • Abstraktion

Diese vier Attribute beschreiben die kritischen Merkmale objektorientierter Verwaltungssysteme.

Polymorphismus

Polymorphismus ist die Fähigkeit eines Objekts, mehrere Formen anzunehmen. Diese Fähigkeit ermöglicht, dass derselbe Programmcode mit unterschiedlichen Datentypen arbeitet. Sowohl ein Auto als auch ein Fahrrad können pannen , aber der Mechanismus ist ein anderer. In diesem Beispiel ist die Aktionsunterbrechung ein Polymorphismus. Die definierte Aktion ist polymorph — Das Ergebnis ändert sich je nach Fahrzeugleistung.

Vererbung

Erbschaft erstellt eine hierarchische Beziehung zwischen verwandten Klassen und macht Teile des Codes wiederverwendbar. Das Definieren neuer Typen erbt alle vorhandenen Klassenfelder und Methoden und erweitert sie weiter. Die vorhandene Klasse ist die Elternklasse Klasse, während das Kind Klasse erweitert die Elternklasse.

Zum Beispiel eine übergeordnete Klasse namens Vehicle wird Kinderklassen Auto haben und Fahrrad . Beide Kindklassen erben Informationen aus der übergeordneten Klasse und erweitern die übergeordnete Klasse mit neuen Informationen je nach Fahrzeugtyp.

Kapselung

Verkapselung ist die Fähigkeit, Daten und Mechanismen in einem einzigen Objekt zu gruppieren, um einen Zugriffsschutz bereitzustellen. Durch diesen Prozess werden Informationen und Details zur Funktionsweise eines Objekts versteckt , was zu Daten- und Funktionssicherheit führt. Klassen interagieren miteinander durch Methoden, ohne dass Sie wissen müssen, wie bestimmte Methoden funktionieren.

Beispielsweise hat ein Auto beschreibende Eigenschaften und Aktionen. Sie können die Farbe eines Autos ändern, aber das Modell oder die Marke sind Beispiele für Eigenschaften, die sich nicht ändern können. Eine Klasse kapselt Alle Fahrzeuginformationen in einer Einheit, in der einige Elemente geändert werden können, andere nicht.

Abstraktion

Abstraktion ist das Verfahren, nur die wesentlichen Datenmerkmale für die benötigte Funktionalität darzustellen . Der Prozess wählt wichtige Informationen aus, während unnötige Informationen verborgen bleiben. Abstraktion hilft, die Komplexität modellierter Daten zu reduzieren und ermöglicht Wiederverwendbarkeit.

Beispielsweise gibt es verschiedene Möglichkeiten für einen Computer, sich mit dem Netzwerk zu verbinden. Ein Webbrowser benötigt eine Internetverbindung. Die Verbindungsart ist jedoch unerheblich. Eine aufgebaute Verbindung zum Internet stellt eine Abstraktion dar , während die verschiedenen Arten von Verbindungen unterschiedliche Implementierungen der Abstraktion darstellen.

Beispiele für objektorientierte Datenbanken

Es gibt verschiedene Arten von Implementierungen von Objektdatenbanken. Die meisten enthalten die folgenden Funktionen:

Funktion Beschreibung
Abfragesprache Sprache, um Objekte zu finden und Daten aus der Datenbank abzurufen.
Transparente Persistenz Fähigkeit, eine objektorientierte Programmiersprache zur Datenbearbeitung zu verwenden.
ACID-Transaktionen ACID-Transaktionen garantieren, dass alle Transaktionen ohne widersprüchliche Änderungen abgeschlossen sind.
Datenbank-Caching Erzeugt eine Teilreplik der Datenbank. Ermöglicht den Zugriff auf eine Datenbank vom Programmspeicher statt von einer Festplatte.
Wiederherstellung Notfallwiederherstellung im Falle eines Anwendungs- oder Systemausfalls.

Edelstein/S

Edelstein/S ist ein Objektdatenbanksystem auf Basis von Smalltalk – einer von Java beeinflussten objektorientierten Programmiersprache. Entwickler, die Anwendungen in Smalltalk schreiben, passen sich leicht an diese Datenbank an. GemStone/S lässt sich nahtlos in bestehende Smalltalk-Anwendungen integrieren und verbessert Geschwindigkeit und Produktivität.

Gemstone/S eignet sich am besten für Projekte mit hoher Verfügbarkeit. Je nach Projektgröße gibt es mehrere Optionen für die Lizenzierung. Der Datenbankserver ist für verschiedene Plattformen verfügbar, darunter Linux, Windows, macOS, Solaris, AIX sowie Raspberry Pi.

ObjektDB

ObjektDB ist eine NoSQL-Objektdatenbank für die Programmiersprache Java. Im Vergleich zu anderen NoSQL-Datenbanken ist ObjectDB ACID-konform. ObjectDB stellt keine API bereit und erfordert die Verwendung einer der beiden integrierten Java-Datenbank-APIs:

  • JPA mit JPA Query Language (JPQL) basierend auf Java-Syntax.
  • JDO mit JDO Query Language (JDQL) basierend auf SQL-Syntax.

ObjectDB enthält alle grundlegenden Datentypen in Java, benutzerdefinierte Klassen und standardmäßige Java-Sammlungen. Jedes Objekt hat eine eindeutige ID. Die Anzahl der Elemente ist nur durch die maximale Datenbankgröße (128 TB) begrenzt. ObjectDB ist plattformübergreifend verfügbar und die Benchmark-Leistung ist außergewöhnlich.

ObjectDatabase++

ObjectDatabase++ ist eine in Echtzeit integrierbare Objektdatenbank, die für serverseitige Anwendungen entwickelt wurde. Die erforderliche externe Wartung ist minimal.

ObjectDatabase++ unterstützt:

  • Multiprozess mit Multithread-Serveranwendungen.
  • Volle Transaktionskontrolle.
  • Wiederherstellung in Echtzeit.
  • C++ verwandte Sprachen, VB.NET sowie C#.

Die Objektdatenbank ist C++-basiert. Eine der Hauptfunktionen ist die erweiterte automatische Wiederherstellung nach Systemabstürzen, ohne die Datenbankintegrität zu gefährden.

Objektivität/DB

Objektivität/DB nutzt die Macht der Objekte und erfüllt die komplexen Anforderungen innerhalb von Big Data. Die Objektdatenbank ist flexibel, da sie mehrere Sprachen unterstützt:

  • C++
  • C#
  • Python
  • Java

Die Schemaänderungen erfolgen dynamisch ohne Ausfallzeit und ermöglichen Echtzeitabfragen für jeden Datentyp. Objectivity/DB ist für mehrere Plattformen verfügbar, darunter macOS, Linux, Windows oder Unix.

Objektspeicher

Objektspeicher lässt sich in C++ oder Java integrieren und bietet Speicherpersistenz, um die Leistung der Anwendungslogik zu verbessern. Die Objektdatenbank ist ACID-konform. Die Reaktionsfähigkeit ermöglicht es Entwicklern, verteilte Anwendungen plattformübergreifend zu erstellen, ob lokal oder in der Cloud.

Das Hauptmerkmal ist die Cloud-Skalierbarkeit, die den Datenbankzugriff von überall aus ermöglicht. ObjectStore vereinfacht den Datenerstellungs- und -austauschprozess nahtlos.

Versant

Versant bietet primäre transparente Objektpersistenz von C++, Java und .NET. Es gibt jedoch auch Unterstützung für Smalltalk und Python. Versant unterstützt je nach verwendeter Sprache unterschiedliche APIs. Standard-SQL-Abfragen sind ebenfalls verfügbar, was Versant zu einer NoSQL-Datenbank macht.

Die Objektdatenbank ist eine Mehrbenutzer-Client-Server-Datenbank. Versant funktioniert am besten, wenn es für Online-Transaktionssysteme mit großen Datenmengen und gleichzeitigen Benutzern verwendet wird.

Vor- und Nachteile objektorientierter Datenbanken

Jede Datenbankmodellierungstechnik hat Vor- und Nachteile. Bevor Sie sich für objektorientierte Datenbanken entscheiden, müssen Sie zusätzlich zur Anwendungsabsicht die verfügbaren Sprachen kennen.

Vorteile

Die Hauptvorteile sind:

  • Komplexe Daten und eine größere Vielfalt an Datentypen im Vergleich zu MySQL-Datentypen.
  • Einfaches Speichern und schnelles Abrufen von Daten.
  • Nahtlose Integration mit objektorientierten Programmiersprachen.
  • Einfachere Modellierung der fortgeschrittenen realen Probleme.
  • Erweiterbar mit benutzerdefinierten Datentypen.

Nachteile

Einige Nachteile sind:

  • Nicht so weit verbreitet wie relationale Datenbanken.
  • Kein universelles Datenmodell. Fehlende theoretische Grundlagen und Standards.
  • Unterstützt keine Ansichten.
  • Hohe Komplexität verursacht Leistungsprobleme.
  • Ein angemessener Sicherheitsmechanismus und Zugriffsrechte auf Objekte sind nicht vorhanden.

Linux
  1. Was ist ein Linux-Benutzer?

  2. So bestimmen Sie, welches Datenbankformat Ihre Website verwendet

  3. Was ist ein Systemadministrator?

  4. Was ist eine relationale Datenbank?

  5. Was bedeutet Symbolwert vom nm-Befehl?

Was ist eine Dokumentendatenbank?

Was ist eine OLTP-Datenbank?

Was ist Datenbank-Denormalisierung?

Was ist Datenbanknormalisierung?

Was ist eine Datenbank?

Was ist eine verteilte Datenbank und wozu dienen verteilte Datensysteme?