Brak ograniczeń w bazie danych NoSQL oznacza pełną elastyczność danych. Na pierwszy rzut oka brzmi to zachęcająco, biorąc pod uwagę fakt, że oszczędza czas programowania, nie definiując żadnych kolumn ani typów danych w momencie tworzenia kolekcji. Ale ta duża elastyczność ma swoją cenę, zwłaszcza gdy baza danych jest wystarczająco duża, a niektóre dokumenty mogą zawierać nieprawidłowe wartości lub brakujące atrybuty, które trudno znaleźć w zapytaniach. To z kolei może zmienić zestaw wyników Twoich zapytań i ostatecznie zaszkodzić Twoim decyzjom biznesowym.
Z drugiej strony relacyjna baza danych wymaga zdefiniowanych tabel i kolumn przed rozpoczęciem dostępu do bazy danych. Ponieważ dane te są przechowywane w ścisłym formacie, nie ma możliwości wystąpienia złych wartości lub brakujących atrybutów i zwracają dokładne wyniki zapytania. Oczywiście, zapewnienie ścisłych reguł formatowania prawie całkowicie zabija jakąkolwiek elastyczność danych, którą miałeś i spowalnia możliwość dodawania, a tym samym zapytań, nowych danych.
Ograniczenie elastyczności danych
Ale nie martw się, możesz mieć to, co najlepsze z obu światów, używając wyzwalaczy NoSQL. W NosDB, bazie danych dokumentów NoSQL opartej na platformie .NET, możesz używać wyzwalaczy do sprawdzania poprawności danych i egzekwowania reguł danych zapewniających spójność formatu danych, bez względu na to, jak duża jest Twoja baza danych. Wyzwalacze to funkcje zarejestrowane w operacji bazy danych. Są one wykonywane w odpowiedzi na wykonywaną operację, stąd „uruchamianie” funkcji.
Aby użyć, po prostu utwórz klasę .NET i zaimplementuj Alachisoft.NosDB.Common.Triggers.IDatabaseTrigger z biblioteki NosDB Common znajdującej się w folderze instalacyjnym. Dostępne są dwie metody, ale będziemy używać tylko metody PreTrigger i pozostawić metodę PostTrigger bez zmian, ponieważ chcemy tylko zweryfikować nasze dane przed dodaniem ich do kolekcji. Oto przykładowy kod:
Ten kod zapewnia dwie rzeczy.
- Zwróć „false”, aby odrzucić obiekt, jeśli brakuje nam atrybutu.
- Zaktualizuj dokument JSON, jeśli go brakuje, domyślną wartością i zwróć „prawda”, aby zaakceptować dane.
Moglibyśmy również sprawdzić, czy atrybut ma dokładnie ten sam typ danych, czy nie, iw razie potrzeby odrzucić wprowadzanie danych.
Aby zarejestrować ten wyzwalacz w kolekcji, otwórz Studio zarządzania NosDB. Połącz się z klastrem i wybierz kolekcję z bazy danych. Rozwiń do „Kolekcje” i wywołaj menu kontekstowe, klikając prawym przyciskiem myszy Wyzwalacze CLR. Postępuj zgodnie z kreatorem rejestracji wyzwalacza. Aby uzyskać lepszy pomysł, spójrz na poniższy rysunek:
Ponieważ interesuje nas tylko sprawdzanie poprawności danych na każdej wstawce (jak pokazano w powyższym kodzie ) wystarczy zarejestrować wyzwalacz PreInsert. I to wszystko!
NosDB to baza danych typu Open Source i w 100% natywna baza danych .NET NoSQL (wydawana na licencji Apache 2.0). NosDB jest superszybki i skalowalny liniowo, pozwalając aplikacjom .NET na obsługę ekstremalnych obciążeń transakcyjnych (XTP) i działa w Visual Studio.
NosDB pomaga również przyspieszyć rozwój platformy .NET, zapewniając elastyczny schemat JSON. Dzięki JSON możesz szybko dostosować się do zmieniających się wymagań dotyczących danych, skracając w ten sposób czas wprowadzania na rynek.