Database
 sql >> Datenbank >  >> RDS >> Database

Einschränkung der Datenflexibilität in einer NoSQL-Datenbank

Keine Einschränkungen in einer NoSQL-Datenbank zu haben, bedeutet vollständige Datenflexibilität. Das klingt zunächst verlockend angesichts der Tatsache, dass es Entwicklungszeit spart, indem es keine Spalten oder Datentypen zum Zeitpunkt der Erstellung Ihrer Sammlungen definiert. Aber so viel Flexibilität hat ihren Preis, insbesondere wenn Ihre Datenbank groß genug wird und einige der Dokumente möglicherweise fehlerhafte Werte oder fehlende Attribute enthalten, die bei Abfragen schwer zu finden sind. Dies kann wiederum die Ergebnismenge Ihrer Abfragen ändern und letztendlich Ihre Geschäftsentscheidungen beeinträchtigen.

Andererseits erfordert eine relationale Datenbank definierte Tabellen und Spalten, bevor Sie auf Ihre Datenbank zugreifen können. Da diese Daten in einem strengen Format gespeichert werden, gibt es keine Möglichkeit für fehlerhafte Werte oder fehlende Attribute und gibt genaue Abfrageergebnisse zurück. Natürlich macht das Sicherstellen strikter Formatregeln jede Datenflexibilität, die Sie hatten, zunichte und verlangsamt die Möglichkeit, neue Daten hinzuzufügen und somit abzufragen.

Eingeschränkte Datenflexibilität

Aber ärgern Sie sich nicht, Sie können das Beste aus beiden Welten haben, indem Sie NoSQL-Trigger verwenden. In NosDB, einer .NET-basierten NoSQL-Dokumentendatenbank, können Sie Trigger verwenden, um Ihre Daten zu validieren und Datenregeln durchzusetzen, um die Datenformatkonsistenz sicherzustellen, egal wie groß Ihre Datenbank wird. Trigger sind Funktionen, die für eine Datenbankoperation registriert sind. Sie werden als Reaktion auf die ausgeführte Operation ausgeführt und „triggern“ somit die Funktion.

Erstellen Sie zur Verwendung einfach eine .NET-Klasse und implementieren Sie Alachisoft.NosDB.Common.Triggers.IDatabaseTrigger aus der NosDB Common-Bibliothek, die sich im Installationsordner befindet. Es stehen zwei Methoden zur Verfügung, aber wir verwenden nur die PreTrigger-Methode und lassen die PostTrigger-Methode unverändert, da wir unsere Daten nur validieren möchten, bevor wir sie der Sammlung hinzufügen. Hier ist Beispielcode:

Dieser Code stellt zwei Dinge sicher.

  • Geben Sie „false“ zurück, um das Objekt abzulehnen, wenn wir ein fehlendes Attribut haben.
  • Aktualisieren Sie ein fehlendes JSON-Dokument mit einem Standardwert und geben Sie „true“ zurück, um die Daten zu akzeptieren.

Wir könnten auch prüfen, ob ein Attribut den genauen Datentyp hat oder nicht, und die Dateneingabe bei Bedarf ablehnen.
Um diesen Auslöser bei einer Sammlung zu registrieren, öffnen Sie das NosDB Management Studio. Verbinden Sie sich mit einem Cluster und wählen Sie eine Sammlung aus einer Datenbank aus. Erweitern Sie bis zu den "Sammlungen" und rufen Sie das Kontextmenü auf, indem Sie mit der rechten Maustaste auf CLR-Trigger klicken. Folgen Sie dem Trigger-Registrierungsassistenten. Werfen Sie zur besseren Vorstellung einen Blick auf die folgende Abbildung:

Da wir nur daran interessiert sind, die Daten auf jeder Einfügung zu validieren (wie aus dem obigen Code ersichtlich ) müssen Sie nur den PreInsert-Trigger registrieren. Und das war's!

NosDB ist Open Source und eine zu 100 % native .NET NoSQL-Datenbank (veröffentlicht unter der Apache 2.0-Lizenz). NosDB ist superschnell und linear skalierbar, sodass Ihre .NET-Anwendungen extreme Transaktionslasten (XTP) bewältigen können, und es funktioniert in Visual Studio.

NosDB hilft Ihnen auch dabei, die .NET-Entwicklung zu beschleunigen, indem es ein flexibles JSON-Schema bereitstellt. Mit JSON können Sie sich schnell an Ihre sich ändernden Datenanforderungen anpassen und so Ihre Markteinführungszeit verkürzen.