El problema radica en que ahora que con el mayor uso de datos y su naturaleza cada vez más compleja, las estructuras tradicionales se están volviendo cada vez más complicadas y con ello su rendimiento se resiente, tanto como en el ámbito de producción como al nivel del desarrollo de aplicaciones.
En la actualidad la fuerza tomada por sistemas no relacionales o NoSQL como también se les conoce, han resuelto algunas de estas complejidades que se muestran con los sistemas tradicionales o relacionales.
COUCHDB Y LA FUERZA DEL HTTP
CouchDB es uno de la nueva camada de sistemas no relacionales, sin embargo su estructura es muy diferente a servicios como MongoDB por ejemplo. Esto se debe a que basa toda su administración en una API que viaja y se comunica únicamente a través de HTTP.
Con lo expuesto anteriormente debemos inferir rápidamente que gracias al uso de HTTP tenemos todos sus métodos para poder hacer nuestro trabajo como POST, GET, PUT DELETE, donde con estas cuatro herramientas del protocolo podemos lograr que todo funcione a nuestro gusto.
MANTENERNOS RELAJADOS
El objetivo final de CouchDB es que podamos relajarnos, aunque suene como algo que no tiene sentido, se cubren tres áreas importantes que refuerzan el concepto de baja problemática al utilizar este sistema de almacenamiento de datos. Veamos a que se refiere:
INSTALACIÓN
Lo primero que necesitamos para empezar a trabajar con CouchDB es instalarlo en nuestro sistema, para ello primero debemos saber que tenemos la posibilidad de instalarlo en Linux, MAC y Windows, por lo que tenemos una gran cantidad de plataformas para elegir la que más nos guste o sobre la cual están basados nuestros servicios.
En Linux la instalación es tan fácil como colocar el siguiente comando en la consola o terminal en los sistemas basados en Debian, como Ubuntu o Mint:
sudo apt-get install couchdbUna vez finalizada la instalación el servicio tiende a ser iniciado automáticamente, en caso que no sea así debemos saber que este se encuentra en /etc/init.d/couchdb por lo que en esa ruta podemos escribir .Start y con ello bastará.
En Mac es un proceso muy fácil también sobre todo si utilizamos homebrew ya que únicamente necesitamos escribir en la terminal o consola lo siguiente:
brew install couchdbUna vez instalado para iniciar el servicio solo debemos escribir couchdb en nuestra consola y el servicio iniciará sin problemas.
Para hacer la instalación en Windows debemos descargar el paquete con el instalador desde la web oficial del proyecto, aquí también contaremos con los archivos para los otros sistemas.
Una vez que tenemos el archivo lo debemos ejecutar y seguir el procedimiento del mismo, esto nos permitirá instarlo como servicio o como aplicación, cualquiera de las opciones que sea válida para nuestros usos.
PROBANDO NUESTRA INSTALACIÓN
Ahora que ya hemos instalado e iniciado el servicio debemos hacer la prueba de fuego para saber si está funcionando adecuadamente, para ello en nuestro navegador debemos dirigirnos a la siguiente ruta:
http:/ /127.0.0.1:5984/_utils/index.htmlUna vez que estemos ahí debemos ver algo similar a lo siguiente:
Adicionalmente en el lado derecho de esta pantalla tenemos varios enlaces que nos ayudaran, por ejemplo un verificador de la instalación,y acceso directo a enlaces con la documentación oficial en caso que surjan dudas.
Lo que vimos es la interfaz web llamada Futon,y es la encargada de darnos la administración de forma visual y amigable del servicio. Para crear una nueva Base de Datos únicamente debemos hacer click en la opción Create Database esto nos llevará a una pequeña interfaz donde definiremos el nombre de la misma, lo cual podemos ver en la siguiente imagen:
Ya que el proceso haya terminado podremos acceder a nuestra Base de Datos e ir agregando documentos, que sería una especie de equivalente con los registros en los sistemas de Base de Datos relacionales.
Al crear un documento inmediatamente tendremos un _id y podremos agregar todos los campos que necesitemos sin necesidad de seguir una estructura o un esquema, veamos en la siguiente imagen esto:
Si hacemos click en la pestaña que dice source, veremos que este documento es en realidad un JSON, lo que nos da mayor versatilidad ya que casi todos los lenguajes tienen librerías que nos permiten manipular este tipo de datos.
SEGURIDAD DE NUESTRO SERVICIO
Al instalar CouchDB este inicia en un modo administrador sin contraseñas, lo que es ventajoso porque nos permite empezar a utilizar el servicio directamente, sin embargo es muy inseguro ya que cualquiera que pueda acceder a nuestro equipo podrá ver nuestros documentos.
Futon nos indica esto en la parte inferior derecha donde nos dice que estamos en modo Admin Party!, y nos da directamente un link para corregirlo.
Al hacer click sobre Fix this podremos definir los usuarios con sus nombres y contraseñas que pueden acceder al servicio. Como vemos en la siguiente imagen al colocar las credenciales y aceptar ya tendremos nuestra primera capa de seguridad en el mismo con unos simples pasos.
MODELOS DE DATOS
Ya que hemos tenido un poco de práctica volvamos un momento a la teoría ya que de esta manera tendremos una base para poder sumar mejores conocimientos. Como dijimos CouchDB no tiene esquema y estructura, esto hace que podamos crear grandes colecciones o agrupaciones de documentos pero cada documento puede tener elementos únicos y esto no hace que la Base de Datos sea menos administrable.
Por el contrario esta estructura es lo que le da una ventaja sobre sistemas relacionales ya que podemos utilizar datos sin necesidad de conocerlos y aun así poder hacerlos funcionar dentro de nuestro sistema. Por ejemplo una ficha de datos de contacto, imaginemos que recibimos un primer contacto con datos:
Nombre: Empresa 1Teléfono: 4445566Correo: rrrr@ejemplo.comPero que sucede si tenemos otra empresa que nos contacta, y esta posee varios contactos, en un sistema relacional tenemos dos opciones: Podemos agregar varios registros o modificamos la estructura y añadimos más campos, en CouchDB únicamente creamos un nuevo documento con una estructura diferente pero que está bajo la misma Base de Datos de contactos por ejemplo:
Nombre: Empresa 2Telefono: 6667788Skype: 8889900Correo: otrocorreo@ejemplo.comSi aplicamos esto a CouchDB debería lucir de la siguiente forma en nuestra interfaz Futon:
Como vemos hemos utilizado la misma Base de Datos del ejemplo de la instalación y sin tener que configurar nada hemos añadido campos diferentes y aun así nuestra Base de Datos funciona sin problemas. Aquí radica su poder ya que podemos tratar las situaciones y cambios de la vida real de forma dinámica. En el aspecto teórico hemos visto cómo funcionan estos nuevos manejadores que no dependen de esquemas, lo que nos da la posibilidad de hacer aplicaciones más dinámicas y que no dependan de cambios constantes para adaptarse.
Con esto finalizamos este tutorial, hemos dado nuestros primeros pasos en el mundo NoSQL que nos plantea CouchDB, lo más interesante es la interfaz web que se nos ofrece ya que a diferencia de servicios como MongoDB donde todo es vía consola, la amigabilidad de la interfaz nos ayuda a desarrollar más rápidamente tanto nuestras aplicaciones como nuestro conocimiento.
Gracias por el aporte Jacosta.