At have ingen begrænsninger i en NoSQL-database betyder fuldstændig datafleksibilitet. Dette lyder umiddelbart tiltalende i betragtning af, at det sparer udviklingstid ved ikke at definere nogen kolonner eller datatyper på tidspunktet for starten af dine samlinger. Men så meget fleksibilitet har en pris, især når din database bliver stor nok, og nogle af dokumenterne kan indeholde dårlige værdier eller manglende attributter, som er svære at finde fra forespørgsler. Dette kan til gengæld ændre resultatet af dine forespørgsler og i sidste ende skade dine forretningsbeslutninger.
På den anden side kræver en relationsdatabase definerede tabeller og kolonner, før du begynder at få adgang til din database. Fordi disse data er gemt i et strengt format, er der ingen mulighed for dårlige værdier eller manglende attributter og returnerer nøjagtige forespørgselsresultater. At sikre strenge formatregler dræber naturligvis fuldstændig enhver datafleksibilitet, du havde, og forsinker muligheden for at tilføje og derfor forespørge om nye data.
Begrænset datafleksibilitet
Men ærgr dig ikke, du kan få det bedste fra begge verdener ved at bruge NoSQL-triggere. I NosDB, en .NET-baseret NoSQL-dokumentdatabase, kan du bruge triggere til at validere dine data og håndhæve dataregler, der sikrer dataformatkonsistens, uanset hvor stor din database bliver. Triggere er funktioner, der er registreret mod en databaseoperation. De udføres som svar på den handling, der udføres, og 'udløser' derfor funktionen.
For at bruge skal du blot oprette en .NET-klasse og implementere Alachisoft.NosDB.Common.Triggers.IDabaseTrigger fra NosDB Common-biblioteket, der findes i installationsmappen. Der er to tilgængelige metoder, men vi bruger kun PreTrigger-metoden og forlader PostTrigger-metoden som den er, da vi blot vil validere vores data, før vi tilføjer dem i samlingen. Her er eksempelkode:
Denne kode sikrer to ting.
- Returner 'false' for at afvise objektet, hvis vi har en manglende attribut.
- Opdater et JSON-dokument, hvis det mangler, med en standardværdi, og returner "true" for at acceptere dataene.
Vi kunne også kontrollere, om en attribut er af den nøjagtige datatype eller ej, og afvise dataindtastningen efter behov.
For at registrere denne trigger med en samling, skal du åbne NosDB Management Studio. Opret forbindelse til en klynge, og vælg en samling fra en database. Udvid op til 'Samlinger' og få genvejsmenuen frem ved at højreklikke på CLR Triggers. Følg triggerregistreringsguiden. Tag et kig på følgende figur for en bedre idé:
Da vi kun er interesserede i at validere dataene på hver indsættelse (som vist fra koden ovenfor) ) behøver du kun at registrere PreInsert Trigger. Og det er det!
NosDB er Open Source og 100 % native .NET NoSQL-database (udgivet under Apache 2.0-licensen). NosDB er superhurtig og lineært skalerbar, så dine .NET-applikationer kan håndtere ekstreme transaktionsbelastninger (XTP), og det virker i Visual Studio.
NosDB hjælper dig også med at accelerere .NET-udvikling ved at levere et fleksibelt JSON-skema. Med JSON kan du hurtigt tilpasse dig dine skiftende datakrav og derved reducere din time to market.