sql >> Database >  >> RDS >> Database

Beperking van gegevensflexibiliteit in een NoSQL-database

Geen beperkingen in een NoSQL-database betekent volledige gegevensflexibiliteit. Dit klinkt in eerste instantie aantrekkelijk, aangezien het ontwikkeltijd bespaart door geen kolommen of gegevenstypen te definiëren op het moment dat uw verzamelingen worden gestart. Maar zoveel flexibiliteit brengt een prijs met zich mee, vooral wanneer uw database groot genoeg wordt en sommige documenten mogelijk slechte waarden of ontbrekende kenmerken bevatten, die moeilijk te vinden zijn op basis van zoekopdrachten. Dit kan op zijn beurt de resultatenset van uw zoekopdrachten veranderen en uiteindelijk uw zakelijke beslissingen schaden.

Aan de andere kant vereist een relationele database gedefinieerde tabellen en kolommen voordat u toegang krijgt tot uw database. Omdat deze gegevens in een strikte indeling worden opgeslagen, is er geen kans op slechte waarden of ontbrekende kenmerken en worden nauwkeurige queryresultaten geretourneerd. Als u zich aan strikte opmaakregels houdt, wordt natuurlijk vrijwel alle dataflexibiliteit die u had volledig vernietigd en wordt de mogelijkheid om nieuwe gegevens toe te voegen en dus op te vragen, vertraagt.

Beperkende gegevensflexibiliteit

Maar maak je geen zorgen, je kunt het beste van twee werelden hebben door NoSQL-triggers te gebruiken. In NosDB, een op .NET gebaseerde NoSQL-documentdatabase, kunt u triggers gebruiken om uw gegevens te valideren en gegevensregels af te dwingen, zodat de consistentie van de gegevensindeling wordt gegarandeerd, hoe groot uw database ook wordt. Triggers zijn functies die zijn geregistreerd voor een databasebewerking. Ze worden uitgevoerd als reactie op de bewerking die wordt uitgevoerd, waardoor de functie wordt 'getriggerd'.

Om te gebruiken, maakt u eenvoudig een .NET-klasse aan en implementeert u Alachisoft.NosDB.Common.Triggers.IDatabaseTrigger uit de NosDB Common-bibliotheek in de installatiemap. Er zijn twee methoden beschikbaar, maar we gebruiken alleen de PreTrigger-methode en laten de PostTrigger-methode ongewijzigd, omdat we onze gegevens alleen willen valideren voordat ze aan de verzameling worden toegevoegd. Hier is een voorbeeldcode:

Deze code zorgt voor twee dingen.

  • Retourneer 'false' om het object te weigeren als we een kenmerk missen.
  • Update een JSON-document, als het ontbreekt, met een standaardwaarde en retourneer 'true' om de gegevens te accepteren.

We kunnen ook controleren of een attribuut van het exacte datatype is of niet, en de gegevensinvoer indien nodig weigeren.
Om deze trigger bij een verzameling te registreren, opent u de NosDB Management Studio. Maak verbinding met een cluster en selecteer een verzameling uit een database. Vouw uit naar de 'Collecties' en open het contextmenu door met de rechtermuisknop op CLR-triggers te klikken. Volg de triggerregistratiewizard. Bekijk de volgende afbeelding voor een beter idee:

Aangezien we alleen geïnteresseerd zijn in het valideren van de gegevens op elke insert (zoals blijkt uit de bovenstaande code ) hoeft u alleen de PreInsert Trigger te registreren. En dat is het!

NosDB is Open Source en 100% native .NET NoSQL Database (uitgebracht onder de Apache 2.0-licentie). NosDB is supersnel en lineair schaalbaar, waardoor uw .NET-applicaties extreme transactiebelastingen (XTP) aankunnen, en het werkt in Visual Studio.

NosDB helpt u ook de ontwikkeling van .NET te versnellen door een flexibel JSON-schema te bieden. Met JSON kunt u zich snel aanpassen aan uw veranderende gegevensvereisten, waardoor uw time-to-market wordt verkort.


  1. Verbinding maken met Oracle met behulp van Service Name in plaats van SID

  2. Waarom kan ik een tabel maken met PRIMARY KEY op een nullable kolom?

  3. SQL Server-prestaties:testen in de cloud

  4. Hoe de DateTime()-functie werkt in SQLite