sql >> Databasteknik >  >> RDS >> Database

Begränsa dataflexibilitet i en NoSQL-databas

Att inte ha några begränsningar i en NoSQL-databas innebär fullständig dataflexibilitet. Detta låter tilltalande till en början med tanke på det faktum att det sparar utvecklingstid genom att inte definiera några kolumner eller datatyper vid tidpunkten för starten av dina samlingar. Men så mycket flexibilitet har en kostnad, särskilt när din databas växer tillräckligt stor och vissa av dokumenten kan innehålla dåliga värden eller saknade attribut, svåra att hitta från frågor. Detta kan i sin tur förändra resultatet av dina frågor och i slutändan skada dina affärsbeslut.

Å andra sidan kräver en relationsdatabas definierade tabeller och kolumner innan du börjar komma åt din databas. Eftersom denna data lagras i ett strikt format, finns det ingen möjlighet till felaktiga värden eller saknade attribut och returnerar korrekta frågeresultat. Att säkerställa strikta formatregler dödar naturligtvis all dataflexibilitet du hade och saktar ner möjligheten att lägga till och därför fråga efter ny data.

Begränsande dataflexibilitet

Men oroa dig inte, du kan få det bästa av två världar genom att använda NoSQL-utlösare. I NosDB, en .NET-baserad NoSQL-dokumentdatabas, kan du använda triggers för att validera dina data och genomdriva dataregler som säkerställer dataformatkonsistens oavsett hur stor din databas blir. Triggers är funktioner som registreras mot en databasoperation. De exekveras som svar på operationen som utförs och "utlöser" funktionen.

För att använda, skapa helt enkelt en .NET-klass och implementera Alachisoft.NosDB.Common.Triggers.IDabaseTrigger från NosDB Common-biblioteket som finns i installationsmappen. Det finns två tillgängliga metoder men vi kommer endast att använda PreTrigger-metoden och lämnar PostTrigger-metoden som den är, eftersom vi bara vill validera vår data innan vi lägger till den i samlingen. Här är exempelkod:

Den här koden säkerställer två saker.

  • Returnera "falskt" för att avvisa objekt om vi har ett saknat attribut.
  • Uppdatera ett JSON-dokument, om det saknas, med ett standardvärde och returnera "true" för att acceptera data.

Vi kan också kontrollera om ett attribut är av exakt datatyp eller inte, och avvisa datainmatningen vid behov.
För att registrera denna utlösare med en samling, öppna NosDB Management Studio. Anslut till ett kluster och välj en samling från en databas. Expandera upp till "Samlingar" och ta fram snabbmenyn genom att högerklicka på CLR Triggers. Följ triggerregistreringsguiden. Ta en titt på följande figur för en bättre idé:

Eftersom vi bara är intresserade av att validera data för varje infogning (som visas i koden ovan) ) behöver du bara registrera PreInsert Trigger. Och det är det!

NosDB är öppen källkod och 100 % inbyggd .NET NoSQL-databas (släppt under Apache 2.0-licensen). NosDB är supersnabb och linjärt skalbar, vilket gör att dina .NET-applikationer kan hantera extrema transaktionsbelastningar (XTP), och det fungerar i Visual Studio.

NosDB hjälper dig också att påskynda .NET-utvecklingen genom att tillhandahålla ett flexibelt JSON-schema. Med JSON kan du snabbt anpassa dig till dina ändrade datakrav och därigenom minska din tid till marknaden.


  1. Databashantering och övervakning för PostgreSQL 12

  2. Använder Python och MySQL i ETL-processen

  3. Ta bort sql-rader där ID:n inte har en matchning från en annan tabell

  4. Öka värdet i MySQL-uppdateringsfrågan