Database
 sql >> Base de données >  >> RDS >> Database

Contraindre la flexibilité des données dans une base de données NoSQL

L'absence de contraintes dans une base de données NoSQL signifie une flexibilité totale des données. Cela semble attrayant au premier abord étant donné que cela permet de gagner du temps de développement en ne définissant aucune colonne ou type de données au moment de la création de vos collections. Mais cette grande flexibilité a un coût, en particulier lorsque votre base de données devient suffisamment grande et que certains documents peuvent contenir de mauvaises valeurs ou des attributs manquants, difficiles à trouver à partir de requêtes. Ceci, à son tour, peut modifier l'ensemble de résultats de vos requêtes et finalement nuire à vos décisions commerciales.

D'autre part, une base de données relationnelle nécessite des tables et des colonnes définies avant de commencer à accéder à votre base de données. Étant donné que ces données sont stockées dans un format strict, il n'y a aucune possibilité de mauvaises valeurs ou d'attributs manquants et renvoie des résultats de requête précis. Bien sûr, garantir des règles de format strictes tue presque complètement toute flexibilité de données dont vous disposiez et ralentit la possibilité d'ajouter et donc d'interroger de nouvelles données.

Contraindre la flexibilité des données

Mais ne vous inquiétez pas, vous pouvez avoir le meilleur des deux mondes en utilisant des déclencheurs NoSQL. Dans NosDB, une base de données de documents NoSQL basée sur .NET, vous pouvez utiliser des déclencheurs pour valider vos données et appliquer des règles de données garantissant la cohérence du format des données, quelle que soit la taille de votre base de données. Les déclencheurs sont des fonctions enregistrées par rapport à une opération de base de données. Ils sont exécutés en réponse à l'opération en cours, donc "déclenchement" de la fonction.

Pour l'utiliser, créez simplement une classe .NET et implémentez Alachisoft.NosDB.Common.Triggers.IDatabaseTrigger à partir de la bibliothèque NosDB Common trouvée dans le dossier d'installation. Deux méthodes sont disponibles, mais nous n'utiliserons que la méthode PreTrigger et laisserons la méthode PostTrigger telle quelle, car nous souhaitons simplement valider nos données avant de les ajouter à la collection. Voici un exemple de code :

Ce code garantit deux choses.

  • Renvoyer 'false' pour rejeter l'objet si nous avons un attribut manquant.
  • Mettez à jour un document JSON, s'il est manquant, avec une valeur par défaut et renvoyez "true" pour accepter les données.

Nous pourrions également vérifier si un attribut est du type de données exact ou non, et rejeter la saisie de données si nécessaire.
Pour enregistrer ce déclencheur avec une collection, ouvrez le NosDB Management Studio. Connectez-vous à un cluster et sélectionnez une collection dans une base de données. Développez jusqu'aux "Collections" et affichez le menu contextuel en cliquant avec le bouton droit sur les déclencheurs CLR. Suivez l'assistant d'enregistrement du déclencheur. Jetez un oeil à la figure suivante pour une meilleure idée :

Étant donné que nous sommes uniquement intéressés par la validation des données sur chaque insertion (comme indiqué dans le code ci-dessus ), il vous suffit d'enregistrer le déclencheur de préinsertion. Et c'est tout !

NosDB est une base de données Open Source et 100 % native NoSQL .NET (publiée sous la licence Apache 2.0). NosDB est super rapide et linéairement évolutif, permettant à vos applications .NET de gérer des charges de transaction extrêmes (XTP), et cela fonctionne dans Visual Studio.

NosDB vous aide également à accélérer le développement .NET en fournissant un schéma JSON flexible. Avec JSON, vous pouvez vous adapter rapidement à l'évolution de vos besoins en données, réduisant ainsi votre délai de mise sur le marché.