OrientDB
OrientDB ist Open Source und gehört zur 2. Generation von NoSQL-Datenbanken. Das Datenbanksystem kombiniert mehrere Datenmodelle, einschließlich Graphen-, Dokumenten-, Objekt- und Key-Value-Modelle und ist somit ein Multi-Model DBMS. Dadurch wird eine umfassende Datenverwaltung geboten und es kommt mehr Funktionalität sowie Flexibilität.
OrientDB wurde in Java geschrieben und läuft somit auf jedem System, welches Java-Anwendungen unterstützt.
Dazu ist OrientDB leistungsstark genug, um ein operatives DBMS zu ersetzen, da es vor allem durch sehr schnelle Lese- sowie Schreibgeschwindigkeiten heraussticht, welche bis zu 120.000 Datensätze pro Sekunde erreichen können. Dabei wird diese Geschwindigkeit nicht beeinträchtigt durch die Datenbankgröße.
Anwendung
Der Anwendungsbereich von OrientDB ist durch die Flexibilität genauso divers.
Implementierung
Folgende Teile dieses Artikels scheinen seit 2018 nicht mehr aktuell zu sein: Informationen in diesem Absatz sind zu Version 2.2.x und veraltet!
Bitte hilf uns dabei, die fehlenden Informationen zu recherchieren und einzufügen.
Um OrientDB zu implementieren, werden eine Reihe von bekannten und gängigen Programmiersprachen verwendet. Darunter sind zum Beispiel:
Bei der Implementierung lässt sich außerdem aus drei verschiedenen Arten von Treibern wählen, welche je nach Sprache unterschiedlich nutzbar sind:
- Java-wrapped Eine Verbindung, welche mit natürlichen Java Treibern arbeitet. Das ist sehr einfach die in der JVM laufen, wie z.B.: JRuby oder Scala
Weitere Informationen zu Sprachen und Treibern ist hier zu finden: OrientDB.com
Datenstruktur
JSON Dateien, Clusters, Classes, Vertices, Edge
Programmierung
SQL
Damit OrientDB für viele Nutzer einfach zu verstehen ist, wurde ein Dialekt zur SQL-Syntax entworfen und verwendet. Dafür wurde sich entschieden, da SQL eine standardisierte Sprache ist, heutzutage allgegenwärtig in der Datenbankwelt ist und somit von vielen schon verstanden wird. Die SQL-Syntax wurde erweitert mit Funktionen, damit komplexere Graphen-Konzepte unterstützt werden, wie Bäume und Graphen.
SELECT
SELECT FROM OUser
WHERE
SELECT FROM OUser WHERE name LIKE 'l%'
ORDER BY
SELECT FROM Employee WHERE city='Rome' ORDER BY surname ASC, name ASC
GROUP BY
SELECT SUM(salary) FROM Employee WHERE age < 40 GROUP BY job
LIMIT
SELECT FROM Employee WHERE gender='male' LIMIT 20
SKIP
SELECT FROM Employee WHERE gender='male' LIMIT 20
SELECT FROM Employee WHERE gender='male' SKIP 20 LIMIT 20
SELECT FROM Employee WHERE gender='male' SKIP 40 LIMIT 20
INSERT
Standard ANSI-92 Syntax:
INSERT INTO Employee(name, surname, gender) VALUES('Jay', 'Miner', 'M')
Vereinfachte ANSI-92 Syntax:
INSERT INTO Employee SET name='Jay', surname='Miner', gender='M'
JSON Syntax:
INSERT INTO Employee CONTENT {name : 'Jay', surname : 'Miner', gender : 'M'}
UPDATE
Standard ANSI-92 Syntax:
UPDATE Employee SET local=TRUE WHERE city='London'
JSON Syntax, benutzt mit MERGE Keyword
UPDATE Employee SET local=TRUE WHERE city='London'
DELETE
DELETE FROM Employee WHERE city <> 'London'
Weblinks
- https://de.wikipedia.org/wiki/OrientDB 🇩🇪
- https://en.wikipedia.org/wiki/OrientDB 🇬🇧
- https://orientdb.com/docs/2.2.x/Programming-Language-Bindings.html 🇬🇧
- https://orientdb.org/docs/3.0.x/misc/Overview.html 🇬🇧
- https://orientdb.com/docs/last/gettingstarted/Tutorial-SQL.html 🇬🇧
- https://orientdb.org/docs/3.0.x/distributed/Distributed-Architecture.html 🇬🇧