OrientDB: Unterschied zwischen den Versionen
Ntr (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Ntr (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 10: | Zeile 10: | ||
=== Implementierung === | === Implementierung === | ||
''''' Informationen in | ''''' Informationen in diesem Absatz sind zu Version 2.2.x und veraltet ''''' | ||
Um OrientDB zu implementieren, werden eine Reihe von bekannten und gängigen [[Programmiersprachen]] verwendet. Darunter sind zum Beispiel: | Um OrientDB zu implementieren, werden eine Reihe von bekannten und gängigen [[Programmiersprachen]] verwendet. Darunter sind zum Beispiel: | ||
Zeile 30: | Zeile 30: | ||
=== Datenstruktur === | === Datenstruktur === | ||
JSON Dateien, Clusters, Classes, Vertices, Edge | |||
=== Programmierung === | === Programmierung === | ||
Zeile 36: | Zeile 36: | ||
Damit OrientDB für viele Nutzer einfach zu verstehen ist, wurde ein Dialekt zum [[SQL]]-Syntax entworfen und verwendet. Dafür wurde sich entschieden, da [[SQL]] eine standardisierte Sprache ist, heutzutage allgegenwärtig in der Datenbank Welt 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. | Damit OrientDB für viele Nutzer einfach zu verstehen ist, wurde ein Dialekt zum [[SQL]]-Syntax entworfen und verwendet. Dafür wurde sich entschieden, da [[SQL]] eine standardisierte Sprache ist, heutzutage allgegenwärtig in der Datenbank Welt 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 ===== | ||
<syntaxhighlight> | <syntaxhighlight lang="sql" line="1"> | ||
SELECT FROM OUser | |||
</syntaxhighlight> | |||
===== WHERE ===== | |||
<syntaxhighlight lang="sql" line="1"> | |||
SELECT FROM OUser WHERE name LIKE 'l%' | |||
</syntaxhighlight> | |||
===== ORDER BY ===== | |||
<syntaxhighlight lang="sql" line="1"> | |||
SELECT FROM Employee WHERE city='Rome' ORDER BY surname ASC, name ASC | |||
</syntaxhighlight> | |||
===== GROUP BY ===== | |||
<syntaxhighlight lang="sql" line="1"> | |||
SELECT SUM(salary) FROM Employee WHERE age < 40 GROUP BY job | |||
</syntaxhighlight> | |||
===== LIMIT ===== | |||
<syntaxhighlight lang="sql" line="1"> | |||
SELECT FROM Employee WHERE gender='male' LIMIT 20 | |||
</syntaxhighlight> | |||
===== SKIP ===== | |||
<syntaxhighlight lang="sql" line="1"> | |||
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 | |||
</syntaxhighlight> | |||
===== INSERT ===== | |||
Standard ANSI-92 Syntax: | |||
<syntaxhighlight lang="sql" line="1"> | |||
INSERT INTO Employee(name, surname, gender) VALUES('Jay', 'Miner', 'M') | |||
</syntaxhighlight> | |||
Vereinfachte ANSI-92 Syntax: | |||
<syntaxhighlight lang="sql" line="1"> | |||
INSERT INTO Employee SET name='Jay', surname='Miner', gender='M' | |||
</syntaxhighlight> | |||
JSON Syntax: | |||
<syntaxhighlight lang="sql" line="1"> | |||
INSERT INTO Employee CONTENT {name : 'Jay', surname : 'Miner', gender : 'M'} | |||
</syntaxhighlight> | |||
===== UPDATE ===== | |||
Standard ANSI-92 Syntax: | |||
<syntaxhighlight lang="sql" line="1"> | |||
UPDATE Employee SET local=TRUE WHERE city='London' | |||
</syntaxhighlight> | |||
JSON Syntax, benutzt mit MERGE Keyword | |||
<syntaxhighlight lang="sql" line="1"> | |||
UPDATE Employee SET local=TRUE WHERE city='London' | |||
</syntaxhighlight> | |||
==== | ===== DELETE ===== | ||
<syntaxhighlight lang="sql" line="1"> | |||
DELETE FROM Employee WHERE city <> 'London' | |||
</syntaxhighlight> | |||
== Notizen == | == Notizen == |
Version vom 23. März 2023, 11:15 Uhr
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
Informationen in diesem Absatz sind zu Version 2.2.x und veraltet
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:
- Native Binary Remote
Welcher direkt über die TCP/IP Verbindung via eines Binär Protokolls arbeitet
- HTTP REST/JSON
Welcher direkt über die TCP/IP Verbindung via eines HTTP Protokolls arbeitet
- 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 zum SQL-Syntax entworfen und verwendet. Dafür wurde sich entschieden, da SQL eine standardisierte Sprache ist, heutzutage allgegenwärtig in der Datenbank Welt 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'
Notizen
- No more Joins: relationships are physical links to the records. - Traverses parts of or entire trees and graphs of records in milliseconds. - Better RAM use. - OrientDB can be distributed across different servers and used in different ways to achieve the maximum of performance, scalability and robustness.
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 🇬🇧