En la actualidad las aplicaciones cada vez más demandan y consumen una gran cantidad y volúmenes de datos y requieren seguir teniendo rápidos tiempos de respuesta, es por esto que cada vez toma más fuerza el concepto de NoSql, que fue diseñado para este fin, manejar grandes volúmenes de datos sin afectar la experiencia del usuario, ofreciendo facilidades para la escalabilidad horizontal y el no uso de un esquema rígido para la base de datos (Schema less).
Como respuesta a esto Microsoft combina el concepto de NoSql con el flexible y potente concepto de Cloud, a través del cual nos ofrece un servicio de base de datos NoSql documental llamado DocumentDb alojado en su plataforma en la nube Microsoft Azure.
como mencioné anteriormente DocumentDb es una base de datos NoSql de tipo documental, es decir que almacena la información en documentos, y usa notación JSON para esto, de igual forma como lo hacen otras base de datos como MongoDb y CouchDb por ejemplo. Cabe recordar que la sombrilla de NoSql tiene los siguientes tipos: Documental, clave valor, grafos y familia de columnas, cada tipo con ventajas para diferentes escenarios, si estás interesando en conocer los conceptos básicos de NoSql te invito a darle un vistazo a la siguiente diapositiva:
Introducción a las bases de datos NoSql.
Una de las ventajas de DocumentDb es que podemos realizar consultas a nuestros documentos utilizando un lenguaje de consulta muy similar a Sql, y podemos crear procedimientos almacenados, triggers, y funciones utilizando javascript, en dónde podemos realizar operaciones Crud a través de este lenguaje. Adicional otra ventaja de DocumentDb al ser una base de datos diseñada para la nube es su flexibilidad para escalabilidad y elasticidad que se ajustan a nuestras necesidades.
La estructura de recursos de una base de datos DocumentDb es la siguiente:
Como podemos ver, debemos contar con una cuenta de almacenamiento, y sobre esta cuenta podemos tener N bases de datos, las cuales tienen usuarios con permisos asociados y colecciones, que nos permiten agrupar de una manera lógica nuestro documentos, como por ejemplo podríamos tener una colección para artículos, otra para autores, otra para categorías, etc. Y en cada colección tendremos nuestros documentos Json que contendrán nuestra información y para cada colección podemos manejar procedimientos almacenados, triggers y funciones, que recordemos programaremos con JavaScript.
Ahora, para el tema de desarrollo de aplicaciones DocumentDb nos ofrece una Api Rest a través de la cual expone los recursos de la base de datos, lo cual quiere decir que podemos interactuar con la base de datos mediante cualquier lenguaje o plataforma capaz de consumir servicios de este tipo y adicional al utilizar Apis de tipo Rest podemos consumirlas muy fácilmente desde cualquier dispositivo.
Además del Api Rest que expone DocumentDb también contamos con librerías específicas para plataformas las cuales nos ayudan y facilitan la interacción con la base de datos, en la actualidad tenemos librerías para las siguientes plataformas:
- .Net
- Node Js
- JavaScript
- Pyton
Y bueno amigos eso fue todo de esta introducción sobre DocumentDb la base de datos NoSql del Microsoft Azure, espero sea de utilidad, en próximos artículos observaremos cómo crear la base de datos y sus diferentes recursos, así mismo veremos como interactuar con ella a través del SDK para .Net y también a través de las Apis Rest.
Si quieres profundizar más sobre el tema te recomiendo el sitio oficial de Microsoft Azure:
https://azure.microsoft.com/es-es/services/documentdb/
No olvides visitar mi página en Facebook para mantenerte actualizado de lo que pasa en el Tavo.Net
https://www.facebook.com/eltavo.net
Saludos y buena suerte!