Database
 sql >> Database >  >> RDS >> Database

Limitare la flessibilità dei dati in un database NoSQL

Non avere vincoli in un database NoSQL significa completa flessibilità dei dati. All'inizio sembra interessante dato il fatto che consente di risparmiare tempo di sviluppo non definendo colonne o tipi di dati al momento dell'inizio delle raccolte. Ma questa flessibilità ha un costo, soprattutto quando il database cresce abbastanza e alcuni documenti possono contenere valori errati o attributi mancanti, difficili da trovare dalle query. Questo, a sua volta, potrebbe modificare il set di risultati delle tue query e, in definitiva, danneggiare le tue decisioni aziendali.

D'altra parte un database relazionale richiede tabelle e colonne definite prima di iniziare ad accedere al database. Poiché questi dati sono archiviati in un formato rigoroso, non vi è alcuna possibilità di valori errati o attributi mancanti e restituisce risultati di query accurati. Ovviamente, garantire regole di formato rigorose elimina praticamente completamente la flessibilità dei dati che avevi e rallenta la capacità di aggiungere e quindi interrogare nuovi dati.

Limitazione della flessibilità dei dati

Ma non preoccuparti, puoi avere il meglio di entrambi i mondi usando i trigger NoSQL. In NosDB, un database di documenti NoSQL basato su .NET, puoi utilizzare i trigger per convalidare i tuoi dati e applicare regole sui dati assicurando la coerenza del formato dei dati, indipendentemente dall'estensione del tuo database. I trigger sono funzioni registrate rispetto a un'operazione di database. Vengono eseguiti in risposta all'operazione in corso, quindi "attivano" la funzione.

Per utilizzarlo, crea semplicemente una classe .NET e implementa Alachisoft.NosDB.Common.Triggers.IDatabaseTrigger dalla libreria NosDB Common che si trova nella cartella di installazione. Sono disponibili due metodi, ma utilizzeremo solo il metodo PreTrigger e lasceremo il metodo PostTrigger così com'è, poiché vogliamo solo convalidare i nostri dati prima di aggiungerli alla raccolta. Ecco un codice di esempio:

Questo codice garantisce due cose.

  • Restituisci "false" per rifiutare l'oggetto se abbiamo un attributo mancante.
  • Aggiorna un documento JSON, se manca, con un valore predefinito e restituisce "true" per accettare i dati.

Potremmo anche verificare se un attributo è del tipo di dati esatto o meno e rifiutare l'immissione di dati secondo necessità.
Per registrare questo trigger con una raccolta, aprire NosDB Management Studio. Connettiti a un cluster e seleziona una raccolta da un database. Espandi fino a "Raccolte" e apri il menu contestuale facendo clic con il pulsante destro del mouse su CLR Triggers. Segui la procedura guidata di registrazione del trigger. Dai un'occhiata alla figura seguente per avere un'idea migliore:

Poiché siamo interessati solo a convalidare i dati su ogni inserto (come mostrato dal codice sopra ) devi solo registrare il PreInsert Trigger. E questo è tutto!

NosDB è Open Source e database NoSQL .NET nativo al 100% (rilasciato con licenza Apache 2.0). NosDB è super veloce e linearmente scalabile, consentendo alle tue applicazioni .NET di gestire carichi di transazione estremi (XTP) e funziona in Visual Studio.

NosDB ti aiuta anche ad accelerare lo sviluppo .NET fornendo uno schema JSON flessibile. Con JSON, puoi adattarti rapidamente alle mutevoli esigenze dei dati, riducendo così il tuo time-to-market.