sql >> Base de Datos >  >> RDS >> Database

Restricción de la flexibilidad de los datos en una base de datos NoSQL

No tener restricciones en una base de datos NoSQL significa una flexibilidad de datos completa. Esto suena atractivo al principio dado que ahorra tiempo de desarrollo al no definir ninguna columna o tipo de datos en el momento del inicio de sus colecciones. Pero tanta flexibilidad tiene un costo, especialmente cuando su base de datos crece lo suficiente y algunos de los documentos pueden contener valores incorrectos o atributos faltantes, difíciles de encontrar en las consultas. Esto, a su vez, podría cambiar el conjunto de resultados de sus consultas y, en última instancia, perjudicar sus decisiones comerciales.

Por otro lado, una base de datos relacional requiere tablas y columnas definidas antes de comenzar a acceder a su base de datos. Debido a que estos datos se almacenan en un formato estricto, no hay posibilidad de valores incorrectos o atributos faltantes y devuelve resultados de consulta precisos. Por supuesto, garantizar reglas de formato estrictas elimina prácticamente por completo cualquier flexibilidad de datos que tuviera y ralentiza la capacidad de agregar y, por lo tanto, consultar nuevos datos.

Restringir la flexibilidad de los datos

Pero no se preocupe, puede tener lo mejor de ambos mundos usando disparadores NoSQL. En NosDB, una base de datos de documentos NoSQL basada en .NET, puede usar activadores para validar sus datos y hacer cumplir las reglas de datos, lo que garantiza la consistencia del formato de datos sin importar cuán grande sea su base de datos. Los disparadores son funciones registradas en una operación de base de datos. Se ejecutan en respuesta a la operación que se está realizando, por lo tanto, "activan" la función.

Para usarlo, simplemente cree una clase .NET e implemente Alachisoft.NosDB.Common.Triggers.IDatabaseTrigger desde la biblioteca NosDB Common que se encuentra en la carpeta de instalación. Hay dos métodos disponibles, pero usaremos solo el método PreTrigger y dejaremos el método PostTrigger como está, ya que solo queremos validar nuestros datos antes de agregarlos a la colección. Aquí hay un código de ejemplo:

Este código asegura dos cosas.

  • Devuelva 'falso' para rechazar el objeto si falta un atributo.
  • Actualice un documento JSON, si falta, con un valor predeterminado y devuelva "verdadero" para aceptar los datos.

También podríamos verificar si un atributo es del tipo de datos exacto o no, y rechazar la entrada de datos según sea necesario.
Para registrar este activador con una colección, abra NosDB Management Studio. Conéctese con un clúster y seleccione una colección de una base de datos. Expanda hasta las 'Colecciones' y abra el menú contextual haciendo clic con el botón derecho en CLR Triggers. Siga el asistente de registro del disparador. Eche un vistazo a la siguiente figura para una mejor idea:

Dado que solo estamos interesados ​​en validar los datos en cada inserción (como se muestra en el código anterior ) solo necesita registrar el PreInsert Trigger. ¡Y eso es todo!

NosDB es código abierto y base de datos .NET NoSQL 100% nativa (lanzada bajo la licencia Apache 2.0). NosDB es súper rápido y linealmente escalable, lo que permite que sus aplicaciones .NET manejen cargas de transacciones extremas (XTP), y funciona en Visual Studio.

NosDB también lo ayuda a acelerar el desarrollo de .NET al proporcionar un esquema JSON flexible. Con JSON, puede adaptarse rápidamente a sus requisitos de datos cambiantes, lo que reduce su tiempo de comercialización.