Die .NET NoSQL Datenbank RavenDB im Überblick

03.02.2016

RavenDB-EPS-File-Logo - .NET NoSQL

Im Pool der Alternativen für relationale Datenbanken tummelt sich bereits seit einigen Jahren die NoSQL-Datenbank RavenDB des Herstellers Hibernating Rhinos.
Nicht nur die oftmals geringeren Anforderungen an Konsistenz von Daten sowie die Möglichkeit der horizontalen statt vertikalen Skalierung (Aufrüsten der System-Landschaft statt Aufrüsten des einzelnen Systems) machen NoSQL-Datenbanken im Kontext von BigData sehr attraktiv.

Was steckt hinter RavenDB?
RavenDB gehört der Gattung der dokumentenorientierten Datenbanken an, die eine Unterkategorie von NoSQL Datenbanken darstellt. Im Gegensatz zu relationalen Datenbanken werden bei NoSQL-Datenbanken die Daten nicht in Tabellen abgelegt. Es erfolgt stattdessen die Datenspeicherung in Form von Dokumenten, vorzugsweise in einer JSON-Repräsentation. Aufgrund dessen unterliegt die Speicherung keiner starren Typenbeschränkung.
Somit entspricht ein Dokument einer strukturierten Zusammenstellung bestimmter Daten, während die Dokumente völlig unabhängig voneinander sind.

Die Grundidee dokumentenorientierter Datenbanken basiert auf dem „Key-Value“-Prinzip. Dies bedeutet, dass einem Schlüsselfeld immer ein konkreter Wert zugeordnet ist. RavenDB folgt dabei dem Ansatz der „Document Stores“, bei dem die Werte ebenfalls wieder „Key-Value“-Paare sein können. Eine tiefere Verschachtelung ist somit möglich:

json_beispiel_studio - .NET NoSQL

 

Die Implementierung von RavenDB erfolgt in .NET, sodass ein .NET-Framework für die Lauffähigkeit des Datenbank-Servers zwingend notwendig ist. Die Client-Bibliothek ist jedoch neben .NET auch für Java verfügbar. Entsprechende Paketreferenzen können mittels NuGet bzw. Maven in das eigene Projekt geladen werden.

Wurde der Datenbank-Server lokal gestartet, ist dieser über den Webbrowser beispielsweise über http://localhost:8080 erreichbar. Im sogenannten „Studio“ erlaubt der Hersteller die Administration, Verwaltung und Konfiguration der einzelnen Datenbanken und Document Stores. Hier können sowohl Daten eingepflegt als auch Indizes und Query-Abfragen verwaltet werden.

Beispielapplikation mit .NET NoSQL

Im doubleSlash-Github-Repository steht eine kleine Demo-Applikation in .NET zum freien Download zur Verfügung. Diese zeigt die Interaktion mit RavenDB mittels einfachen CRUD-Datenbankoperationen unter Verwendung von LINQ in C#. Erfreulicherweise unterstützt RavenDB das „Unit of Work“-Pattern, sodass auch Datensätze aus dem Speicher zugreifbar sind.

Kommerzielle Datenbankinstanzen
Für den produktiven Einsatz der Datenbank bietet HibernateRhinos ein weitreichendes Lizenzmodell an. Dies reicht von der Basis-Datenbank mit rudimentärer Hardware bis hin zur Verwendung des eigenen Filesystems (RavenFS) und nahezu unbegrenzten Hardware-Ressourcen. Entsprechend den Anforderungen gestalten sich aber auch die Preise.

Fazit
RavenDB bietet einen komfortablen Weg zur Verwendung von NoSQL-Datenbanken. Durch die umfassende Online-Dokumentation sowie zahlreiche Bücher ist es möglich, zügig eine lauffähige Instanz mit Client-Anbindung lauffähig zu machen.

Durch weitreichende Einstellungsmöglichkeiten wie Backup, Skalierung, Datenreplikation und die Verwendung von Bundles ist auch ein produktiver Einsatz in Kundenprojekten möglich. Die Erweiterbarkeit mittels Plugins (beispielsweise die Verwendung von Triggern) rundet die Flexibilität des Produktes weiter ab.


Quellen:

https://ravendb.net

 

Mehr zu moderner Softwareentwicklung erfahren Sie hier

 

Zurück zur Übersicht

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*Pflichtfelder

*