1
INFORME 03: Apache CouchDB
UNIVERSIDAD NACIONAL DEL ALTIPLANO
Escuela Profesional de Ingeniería de Sistemas
Paye Zamata, Kevin Arnold
arnyeld@gmail.com
1. Resumen
En este informe se describe la capacidad de las bases de datos NoSQL y principalmente
de CouchDB una base de datos no relacional de tipo documental cuyo motor de
programación está basado en JavaScript y estructura establecida en JSON. Además se
da un estudio de las principales características de esta base de datos tales como
tolerancia a particiones, y disponibilidad.
Posteriormente se da uso al Teorema CAP para conocer en qué caso es conveniente el
uso de CouchDB y así hacer que la elección de CouchDB sea la más apropiada para algún
proyecto en particular.
Finalmente se muestra un ejemplo simple y practico utilizando el modelo de
programación MapReduce.
2. Introducción
La utilización de una base de datos no relacional ha captado la atención de muchas
empresas en los últimos años, pero esto no significa que sean mejores que las bases de
datos de tipo relacional, sino que son una alternativa para dar solución a determinados
problemas que estas presentan cuando se tratan grandes cantidades de datos.
CouchDB cuenta con características que se enfocan principalmente a la facilidad de uso,
utilizando su interfaz WEB llamada “Futon” para darle funcionalidad, esto la hace
sencilla y de rápido entendimiento intentando no interponerse entre el desarrollador y
la aplicación.
3. Las Bases de Datos NoSQL
Se puede decir el término NoSQL surge con la llegada de la web 2.0, con la aparición de
aplicaciones en donde cualquier usuario podía subir contenido, provocando así un
crecimiento exponencial de los datos. Es en ese momento cuando aparecen las
complicaciones en la gestión de toda esainformación en las bases de datos relacionales,
en un principio, para solucionar estos problemas de accesibilidad, las empresas optaron
por utilizar un mayor número de máquinas pero pronto se dieron cuenta de que esto no
solucionaba el problema, además de ser una solución muy cara. La otra solución era la
creación de sistemas pensados para un uso específico que con el paso del tiempo han
dado lugar a soluciones robustas, apareciendo así el movimiento NoSQL.
2
Las Bases de Datos NoSQL son sistemas de almacenamiento de información que no
cumplen con el esquema entidad–relación. Tampoco utilizan una estructura de datos en
forma de tabla donde se van almacenando los datos sino que para el almacenamiento
hacen uso de otros formatos como clave–valor, mapeo de columnas, orientado a
documentos o grafos.
Figura 1. Clasificación de Bases de datos NoSQL
4. CouchDB
Apache CouchDb más conocido como CouchDB fue creado en abril de 2005 por Damien
Katz (ex desarrollador de Lotus Notes en IBM) y programado en Erlang.
“CouchDB es un gestor de base de datos orientado a documentos que se enfoca
principalmente a la facilidad de uso y que abarca completamente la web”.1
CouchDB Almacena los datos en JSON es capaz de acceder a documentos y consultar
índices con un navegador web a través de HTTP, también posee características tales
como la transformación de documentos y notificaciones en tiempo real. Indexa,
combina y transforma sus documentos con JavaScript o sus aplicaciones de manera
eficiente. Además CouchDB tiene lacaracterísticade detección automática de conflictos
cuando se presenta una falla, todo esto hace que el desarrollo de aplicaciones WEB sea
fácil de utilizar. CouchDB es altamente disponible, tolerante a la partición.
1
Apache CouchDB Release 2.0.0-git
https://media.readthedocs.org/pdf/couchdb/latest/couchdb.pdfpag.1
3
4.1. Relax de CouchDB
“Si hay una palabra que describe a CouchDB, tiene que ser Relax… cuando
arrancamos CouchDB vemos: -Apache CouchDB has started. Time to relax-”.2
CouchDB intenta que su uso sea natural para cualquiera que ha trabajado en un
entorno Web, Relax está dividido en tres áreas de relajación que a continuación se
describen:
 CouchDB procura no interponerse cuando algún desarrollador está intentando
construir una solución especializada.
 Otro punto relajante para el usuario de CouchDB es el entorno de producción,
CouchDB se preocupa una vez más de no molestar al usuario gracias a que su
arquitectura interna tolera fallos, y los errores se dan en un entorno controlado
y se resuelven de manera apropiada, los problemas puntuales no afectan al
servidor entero sino que permanecen aislados en una única consulta.
 El tercer punto de relajación se da a la hora de incrementar o reducir Software.
A primera vista CouchDB parece inflexible pero algunas cosas se han dejado
fuera intencionalmente simplemente porque si CouchDB las tuviera permitirían
al usuario crear aplicaciones que no escalan correctamente.
4.2. Replicación en CouchdB
La función fundamental de la Replicación es sincronizar dos o más bases de datos
de CouchDB. Esto puede sonar simple, pero la simplicidad es la pieza clave para
permitir que la replicación solvente varios problemas: sincronizar de manera fiable
bases de datos entre múltiples máquinas para tener almacenamiento redundante;
distribuir datos a un cluster de instancias de CouchDB que comparten un
subconjunto del total de consultas que llegan a ese cluster (balance de carga).
Figura 2. Replicación en CouchDB
2 http://guide.couchdb.org/editions/1/es/why.html
4
La replicación en CouchDB usa la misma REST API que todos los demás clientes. El
protocolo HTTP es transparente y está estudiado en profundidad. La replicación
funciona de forma incremental; esto es, que si cualquier cosa sale mal durante la
replicación, como una desconexión de red, continuará donde secortó lapróxima vez
que se ejecute. Del mismo modo, solamente transfiere los datos necesarios para
sincronizar las bases de datos.
5. Consideraciones al usar CouchDB
5.1. Teorema CAP
El Teorema CAP, también conocido como Teorema Brewer, demuestra que “Es
imposible garantizar a la vez consistencia, disponibilidad y tolerancia a particiones”.
Este teorema establece las características de cada una de las bases de datos NoSQL
y ayuda a elegir, de entre las múltiples posibilidades, qué sistema de bases de datos
es el más adecuado para satisfacer nuestras necesidades de negocio.
El teorema CAP se describe de la siguiente forma:
 La C se refiere a la consistencia, es decir, todos los clientes deben ver la
misma información al mismo tiempo. La consistencia se consigue
replicando la información.
 La A se refiere a la disponibilidad (Availability) y esto se traduce en que cada
cliente puede siempre leer y/o escribir sobre la base. La disponibilidad se
consigue actualizando la información de todos los nodos.
 La P se refiere a la tolerancia a la partición, que es lo mismo que decir si el
sistema va a funcionar de manera correcta a pesar que se generen
particiones de información entre sus nodos. La tolerancia a la partición se
consigue definiendo reglas que indiquen qué debe hacerse en caso de que
falle un nodo o no se tenga acceso a él.
5.2. Teorema CAP en CouchDB
Para CouchDB el Teorema CAP determina que esta base de datos garantiza la
disponibilidad y la tolerancia a particiones, pero no puede asegurar una total
consistencia. A veces se puede llegar a conseguir una consistencia parcial gracias a
la replicación y a la verificación. En este caso los clientes serán capaces de leer y
escribir siempre, aunque se haya caído un nodo y el sistema continuará funcionado
aunque existan caídas parciales o fallos que lo dividan.
5
Figura 3 Teorema CAP en CouchDB
6. Organizaciones que usan CouchDB
Entre las empresas que han usado o actualmente usan CouchDB se pueden
mencionar:
 Ubuntu para su servicio de sincronización "Ubuntu One" hasta
noviembre de 2011 pero fue descontinuado por problemas de
escalabilidad.13
 La BBC, para sus plataformas de contenidos dinámicos14
 Credit Suisse, para usos internos en el departamento de commodities
para su framework de mercados.11
 Meebo, para su plataforma social (web y aplicaciones) - Meebo fue
adquirido por Google y cesó sus operaciones el 12 de julio de 2012.
 imgb.in gratuito Servicio de carga de imágenes
 Memorize.com Un sitio web para memorizar todo tipo de cosas.
 TwiGroups es una herramienta de redes sociales para su uso en Twitter.
CouchDB como almacenamiento tweets.
 Magnifeast sitio web Restaurante con pedidos en línea de cientos de
restaurantes. utiliza CouchDB como base de datos principal.
6
7. Soporte de CouchDB
La Fundación Apache Software tiene una postura muy activa en la eliminación de los
problemas de seguridad y de denegación de ataques contra Apache CouchDB.
También posee una cuenta de correo de seguridad para animar a la gente a reportar
algún tipo de problemas. La dirección postal de la seguridad privada es:
security@couchdb.apache.org.
Si lo que se desea es informar de un fallo que no es una vulnerabilidad de seguridad
se debe utilizar la página de informe de errores.
Preguntas sobre:
• Cómo configurar CouchDB de segura
• Si se aplica una vulnerabilidad para su aplicación en particular
• La obtención de más información sobre una vulnerabilidad publicada
• La disponibilidad de parches y / o nuevos lanzamientos
Deben enviarse a la dirección de la página de distribución
8. Ejemplo Práctico
8.1. Instalación de CouchDB
Como ya se mencionó CouchDB está diseñada para que el usuario pueda Instalarla
de forma sencilla,evidentemente para ello senecesita ingresara su sitio Web Oficial
http://couchdb.apache.org/ y buscar el SO y la arquitectura correspondiente a
nuestra necesidad.
Figura 4. Página oficial de CoichDB
Una vez Instalado podemos ingresar a la API llamada “Futon” que es la interfaz de
administración build-in ingresando en un navegador la URL
http://localhost:5984/_utils/
7
Figura 5. Interfaz CouchDB - Futon
8.2. CURL para CouchDB
Para interactuar con CouchDB directamente de forma ideal se procede a instalar
cURL. cURL es software interprete que Soporta los protocolos FTP, FTPS, HTTP,
HTTPS, TFTP, SCP, SFTP, Telnet, DICT, FILE y LDAP, entre otros.
Para comprobar la coneccion se utiliza el comando:
Shell > curl http://127.0.0.1:5984
Figura 6. Test CouchDB
8
8.3. Ejemplo Simple
En un problema supuesto se tiene una base de datos “VentasDB” la cual contiene el
nombre de todos los clientes que compraron x producto, y lo que se desea saber es:
¿Qué clientes han recurrido con mayor frecuencia a comprar productos?
Evidentemente en la Figura 7 la cantidad de datos utilizada para este ejemplo es
poquísima ya que es solo para fines prácticos.
Figura 7. Base de Datos ventasdb - CouchDB
9
En la figura 8 se realiza el mapeado de los clientes y las veces que realizaron una
compra
Figura 8. Función Map y Resultado
En la imagen de la Figura 9. Se aprecia el resultado reducido y la sumatoria de total
de la compra de cada uno de los clientes
10
Figura 9. Función Reduce y resultado
9. Conclusiones
La facilidad de usar esta base de datos NoSQL hace que los procedimientos parezcan
simples y sencillos, hace que Relax esté presente en todo momento y esto le da una
ventaja sobre los demás gestores de bases de datos.
CouchDB se adapta perfectamente a laWeb con suinterfaz Futon y de manera amigable
se pueden realizar operaciones MapReduce, replicación entre otros.
CouchDb es un gestor de base de datos basado en Erlang lo que indica que es altamente
tolerante a fallos.
11
10. Referencias
 http://couchdb.apache.org/ Consultado el 25 de Julio del 2016
 https://media.readthedocs.org/pdf/couchdb/latest/couchdb.pdf consultado el
24 de Julio del 2016
 https://es.wikipedia.org/wiki/CouchDB/ Consultado el 25 de Julio del 2016
 https://neighbourhood.ie/couchdb-support/ Consultado el 23 de Julio del 2016
 https://medium.com/@veronicacomm/cu%C3%A1ndo-utilizar-mongodb-y-
cu%C3%A1ndo-utilizar-couchdb-d94cfcc78c21#.h19zpyxsq Consultado el 25 de
Julio del 2016
 http://www.ciff.net/blog/el-teorema-de-cap-y-la-clasificacion-de-base-de-
datos.html Consultado el 25 de Julio del 2016

Más contenido relacionado

DOCX
Cuadro comparativo sgbd
PPTX
2. Estándar IEEE 802.x (Características, Fundamentos, Controladores de Dispos...
PPTX
Estimación de Proyectos de Software
PDF
DOC
03 7n2is trabajo-interfaz usuario
PDF
Documentación base de datos
PPT
PROCESAMIENTO DE CONSULTAS
Cuadro comparativo sgbd
2. Estándar IEEE 802.x (Características, Fundamentos, Controladores de Dispos...
Estimación de Proyectos de Software
03 7n2is trabajo-interfaz usuario
Documentación base de datos
PROCESAMIENTO DE CONSULTAS

La actualidad más candente (20)

PDF
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
PPTX
Diseño fisico
PDF
Graficacion por Computadora
PPTX
Requerimientos del software
PPTX
Etapas en el diseño de Base de Datos
PPTX
Metodología RUP
PPTX
2 2 estilos arquitectonicos
PPTX
Dispositivos de Redes
PPTX
2 1 vistas arquitectonicas
DOCX
Glosario de terminos del modelo entidad relacion extendido
PPTX
Fundamentos de BD - Unidad 5 algebra relacional
PDF
Modelo relacional
PPTX
Objeto SqlDataAdapter
DOC
JDBC MONOGRAFIA
PPT
Abstracción de datos
PPTX
Modelo cascada
PDF
Ejemplo soa
PPTX
Arquitectura multicapa
PPSX
Javascript
PPT
Base de datos
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
Diseño fisico
Graficacion por Computadora
Requerimientos del software
Etapas en el diseño de Base de Datos
Metodología RUP
2 2 estilos arquitectonicos
Dispositivos de Redes
2 1 vistas arquitectonicas
Glosario de terminos del modelo entidad relacion extendido
Fundamentos de BD - Unidad 5 algebra relacional
Modelo relacional
Objeto SqlDataAdapter
JDBC MONOGRAFIA
Abstracción de datos
Modelo cascada
Ejemplo soa
Arquitectura multicapa
Javascript
Base de datos
Publicidad

Similar a Apache CouchDB (20)

PPTX
MANUFACTURAS AGROPECUARIAS EN TIEMPOS DE COVID .pptx
PDF
Cloud Computing: las nuevas Capas de Persistencia
PDF
Mongodb vs couchdb
PDF
José Ramón Palanco - NoSQL Security [RootedCON 2011]
PDF
NoSql introducción -Innova4j
PPTX
NoSQL: la siguiente generación de Base de Datos
PPTX
CouchDB y el desarrollo de aplicaciones Android
PPTX
Introducción mongodb y desarrollo
PDF
Desarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQL
PPTX
PDF
Pgpymongo y pgpycouch
PDF
MongoDB: la BBDD NoSQL más popular del mercado
PPTX
descarga e instalación de cassandra nosql
DOCX
Base de datos no sql
PDF
Bases de datos no sql
PPTX
Introducción a NoSQL
PDF
Bases de datos NoSQL - Huancayo - 2010
PPTX
Mongo bd michael landeo vargas
MANUFACTURAS AGROPECUARIAS EN TIEMPOS DE COVID .pptx
Cloud Computing: las nuevas Capas de Persistencia
Mongodb vs couchdb
José Ramón Palanco - NoSQL Security [RootedCON 2011]
NoSql introducción -Innova4j
NoSQL: la siguiente generación de Base de Datos
CouchDB y el desarrollo de aplicaciones Android
Introducción mongodb y desarrollo
Desarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQL
Pgpymongo y pgpycouch
MongoDB: la BBDD NoSQL más popular del mercado
descarga e instalación de cassandra nosql
Base de datos no sql
Bases de datos no sql
Introducción a NoSQL
Bases de datos NoSQL - Huancayo - 2010
Mongo bd michael landeo vargas
Publicidad

Último (8)

PPTX
Programación Orientada a Objetos POO.pptx
PPTX
Navegadores de internet Ricardo Enriquez.pptx
PPTX
423439882-Auditoria-de-Base-de-Datos.pptx
PPTX
Casos de Éxito IA para incrementar la productividad
PDF
investigacion de documento como hacer la documentacion de un proyecto
PPTX
Fundamentos de Programación introducción a la computación
PDF
MONGO DB GESTOR DE BASE DE DATOS NO RELACIONAL
PPTX
Diagrama de componentes Arquitectura de software.pptx
Programación Orientada a Objetos POO.pptx
Navegadores de internet Ricardo Enriquez.pptx
423439882-Auditoria-de-Base-de-Datos.pptx
Casos de Éxito IA para incrementar la productividad
investigacion de documento como hacer la documentacion de un proyecto
Fundamentos de Programación introducción a la computación
MONGO DB GESTOR DE BASE DE DATOS NO RELACIONAL
Diagrama de componentes Arquitectura de software.pptx

Apache CouchDB

  • 1. 1 INFORME 03: Apache CouchDB UNIVERSIDAD NACIONAL DEL ALTIPLANO Escuela Profesional de Ingeniería de Sistemas Paye Zamata, Kevin Arnold [email protected] 1. Resumen En este informe se describe la capacidad de las bases de datos NoSQL y principalmente de CouchDB una base de datos no relacional de tipo documental cuyo motor de programación está basado en JavaScript y estructura establecida en JSON. Además se da un estudio de las principales características de esta base de datos tales como tolerancia a particiones, y disponibilidad. Posteriormente se da uso al Teorema CAP para conocer en qué caso es conveniente el uso de CouchDB y así hacer que la elección de CouchDB sea la más apropiada para algún proyecto en particular. Finalmente se muestra un ejemplo simple y practico utilizando el modelo de programación MapReduce. 2. Introducción La utilización de una base de datos no relacional ha captado la atención de muchas empresas en los últimos años, pero esto no significa que sean mejores que las bases de datos de tipo relacional, sino que son una alternativa para dar solución a determinados problemas que estas presentan cuando se tratan grandes cantidades de datos. CouchDB cuenta con características que se enfocan principalmente a la facilidad de uso, utilizando su interfaz WEB llamada “Futon” para darle funcionalidad, esto la hace sencilla y de rápido entendimiento intentando no interponerse entre el desarrollador y la aplicación. 3. Las Bases de Datos NoSQL Se puede decir el término NoSQL surge con la llegada de la web 2.0, con la aparición de aplicaciones en donde cualquier usuario podía subir contenido, provocando así un crecimiento exponencial de los datos. Es en ese momento cuando aparecen las complicaciones en la gestión de toda esainformación en las bases de datos relacionales, en un principio, para solucionar estos problemas de accesibilidad, las empresas optaron por utilizar un mayor número de máquinas pero pronto se dieron cuenta de que esto no solucionaba el problema, además de ser una solución muy cara. La otra solución era la creación de sistemas pensados para un uso específico que con el paso del tiempo han dado lugar a soluciones robustas, apareciendo así el movimiento NoSQL.
  • 2. 2 Las Bases de Datos NoSQL son sistemas de almacenamiento de información que no cumplen con el esquema entidad–relación. Tampoco utilizan una estructura de datos en forma de tabla donde se van almacenando los datos sino que para el almacenamiento hacen uso de otros formatos como clave–valor, mapeo de columnas, orientado a documentos o grafos. Figura 1. Clasificación de Bases de datos NoSQL 4. CouchDB Apache CouchDb más conocido como CouchDB fue creado en abril de 2005 por Damien Katz (ex desarrollador de Lotus Notes en IBM) y programado en Erlang. “CouchDB es un gestor de base de datos orientado a documentos que se enfoca principalmente a la facilidad de uso y que abarca completamente la web”.1 CouchDB Almacena los datos en JSON es capaz de acceder a documentos y consultar índices con un navegador web a través de HTTP, también posee características tales como la transformación de documentos y notificaciones en tiempo real. Indexa, combina y transforma sus documentos con JavaScript o sus aplicaciones de manera eficiente. Además CouchDB tiene lacaracterísticade detección automática de conflictos cuando se presenta una falla, todo esto hace que el desarrollo de aplicaciones WEB sea fácil de utilizar. CouchDB es altamente disponible, tolerante a la partición. 1 Apache CouchDB Release 2.0.0-git https://media.readthedocs.org/pdf/couchdb/latest/couchdb.pdfpag.1
  • 3. 3 4.1. Relax de CouchDB “Si hay una palabra que describe a CouchDB, tiene que ser Relax… cuando arrancamos CouchDB vemos: -Apache CouchDB has started. Time to relax-”.2 CouchDB intenta que su uso sea natural para cualquiera que ha trabajado en un entorno Web, Relax está dividido en tres áreas de relajación que a continuación se describen:  CouchDB procura no interponerse cuando algún desarrollador está intentando construir una solución especializada.  Otro punto relajante para el usuario de CouchDB es el entorno de producción, CouchDB se preocupa una vez más de no molestar al usuario gracias a que su arquitectura interna tolera fallos, y los errores se dan en un entorno controlado y se resuelven de manera apropiada, los problemas puntuales no afectan al servidor entero sino que permanecen aislados en una única consulta.  El tercer punto de relajación se da a la hora de incrementar o reducir Software. A primera vista CouchDB parece inflexible pero algunas cosas se han dejado fuera intencionalmente simplemente porque si CouchDB las tuviera permitirían al usuario crear aplicaciones que no escalan correctamente. 4.2. Replicación en CouchdB La función fundamental de la Replicación es sincronizar dos o más bases de datos de CouchDB. Esto puede sonar simple, pero la simplicidad es la pieza clave para permitir que la replicación solvente varios problemas: sincronizar de manera fiable bases de datos entre múltiples máquinas para tener almacenamiento redundante; distribuir datos a un cluster de instancias de CouchDB que comparten un subconjunto del total de consultas que llegan a ese cluster (balance de carga). Figura 2. Replicación en CouchDB 2 http://guide.couchdb.org/editions/1/es/why.html
  • 4. 4 La replicación en CouchDB usa la misma REST API que todos los demás clientes. El protocolo HTTP es transparente y está estudiado en profundidad. La replicación funciona de forma incremental; esto es, que si cualquier cosa sale mal durante la replicación, como una desconexión de red, continuará donde secortó lapróxima vez que se ejecute. Del mismo modo, solamente transfiere los datos necesarios para sincronizar las bases de datos. 5. Consideraciones al usar CouchDB 5.1. Teorema CAP El Teorema CAP, también conocido como Teorema Brewer, demuestra que “Es imposible garantizar a la vez consistencia, disponibilidad y tolerancia a particiones”. Este teorema establece las características de cada una de las bases de datos NoSQL y ayuda a elegir, de entre las múltiples posibilidades, qué sistema de bases de datos es el más adecuado para satisfacer nuestras necesidades de negocio. El teorema CAP se describe de la siguiente forma:  La C se refiere a la consistencia, es decir, todos los clientes deben ver la misma información al mismo tiempo. La consistencia se consigue replicando la información.  La A se refiere a la disponibilidad (Availability) y esto se traduce en que cada cliente puede siempre leer y/o escribir sobre la base. La disponibilidad se consigue actualizando la información de todos los nodos.  La P se refiere a la tolerancia a la partición, que es lo mismo que decir si el sistema va a funcionar de manera correcta a pesar que se generen particiones de información entre sus nodos. La tolerancia a la partición se consigue definiendo reglas que indiquen qué debe hacerse en caso de que falle un nodo o no se tenga acceso a él. 5.2. Teorema CAP en CouchDB Para CouchDB el Teorema CAP determina que esta base de datos garantiza la disponibilidad y la tolerancia a particiones, pero no puede asegurar una total consistencia. A veces se puede llegar a conseguir una consistencia parcial gracias a la replicación y a la verificación. En este caso los clientes serán capaces de leer y escribir siempre, aunque se haya caído un nodo y el sistema continuará funcionado aunque existan caídas parciales o fallos que lo dividan.
  • 5. 5 Figura 3 Teorema CAP en CouchDB 6. Organizaciones que usan CouchDB Entre las empresas que han usado o actualmente usan CouchDB se pueden mencionar:  Ubuntu para su servicio de sincronización "Ubuntu One" hasta noviembre de 2011 pero fue descontinuado por problemas de escalabilidad.13  La BBC, para sus plataformas de contenidos dinámicos14  Credit Suisse, para usos internos en el departamento de commodities para su framework de mercados.11  Meebo, para su plataforma social (web y aplicaciones) - Meebo fue adquirido por Google y cesó sus operaciones el 12 de julio de 2012.  imgb.in gratuito Servicio de carga de imágenes  Memorize.com Un sitio web para memorizar todo tipo de cosas.  TwiGroups es una herramienta de redes sociales para su uso en Twitter. CouchDB como almacenamiento tweets.  Magnifeast sitio web Restaurante con pedidos en línea de cientos de restaurantes. utiliza CouchDB como base de datos principal.
  • 6. 6 7. Soporte de CouchDB La Fundación Apache Software tiene una postura muy activa en la eliminación de los problemas de seguridad y de denegación de ataques contra Apache CouchDB. También posee una cuenta de correo de seguridad para animar a la gente a reportar algún tipo de problemas. La dirección postal de la seguridad privada es: [email protected]. Si lo que se desea es informar de un fallo que no es una vulnerabilidad de seguridad se debe utilizar la página de informe de errores. Preguntas sobre: • Cómo configurar CouchDB de segura • Si se aplica una vulnerabilidad para su aplicación en particular • La obtención de más información sobre una vulnerabilidad publicada • La disponibilidad de parches y / o nuevos lanzamientos Deben enviarse a la dirección de la página de distribución 8. Ejemplo Práctico 8.1. Instalación de CouchDB Como ya se mencionó CouchDB está diseñada para que el usuario pueda Instalarla de forma sencilla,evidentemente para ello senecesita ingresara su sitio Web Oficial http://couchdb.apache.org/ y buscar el SO y la arquitectura correspondiente a nuestra necesidad. Figura 4. Página oficial de CoichDB Una vez Instalado podemos ingresar a la API llamada “Futon” que es la interfaz de administración build-in ingresando en un navegador la URL http://localhost:5984/_utils/
  • 7. 7 Figura 5. Interfaz CouchDB - Futon 8.2. CURL para CouchDB Para interactuar con CouchDB directamente de forma ideal se procede a instalar cURL. cURL es software interprete que Soporta los protocolos FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, FILE y LDAP, entre otros. Para comprobar la coneccion se utiliza el comando: Shell > curl http://127.0.0.1:5984 Figura 6. Test CouchDB
  • 8. 8 8.3. Ejemplo Simple En un problema supuesto se tiene una base de datos “VentasDB” la cual contiene el nombre de todos los clientes que compraron x producto, y lo que se desea saber es: ¿Qué clientes han recurrido con mayor frecuencia a comprar productos? Evidentemente en la Figura 7 la cantidad de datos utilizada para este ejemplo es poquísima ya que es solo para fines prácticos. Figura 7. Base de Datos ventasdb - CouchDB
  • 9. 9 En la figura 8 se realiza el mapeado de los clientes y las veces que realizaron una compra Figura 8. Función Map y Resultado En la imagen de la Figura 9. Se aprecia el resultado reducido y la sumatoria de total de la compra de cada uno de los clientes
  • 10. 10 Figura 9. Función Reduce y resultado 9. Conclusiones La facilidad de usar esta base de datos NoSQL hace que los procedimientos parezcan simples y sencillos, hace que Relax esté presente en todo momento y esto le da una ventaja sobre los demás gestores de bases de datos. CouchDB se adapta perfectamente a laWeb con suinterfaz Futon y de manera amigable se pueden realizar operaciones MapReduce, replicación entre otros. CouchDb es un gestor de base de datos basado en Erlang lo que indica que es altamente tolerante a fallos.
  • 11. 11 10. Referencias  http://couchdb.apache.org/ Consultado el 25 de Julio del 2016  https://media.readthedocs.org/pdf/couchdb/latest/couchdb.pdf consultado el 24 de Julio del 2016  https://es.wikipedia.org/wiki/CouchDB/ Consultado el 25 de Julio del 2016  https://neighbourhood.ie/couchdb-support/ Consultado el 23 de Julio del 2016  https://medium.com/@veronicacomm/cu%C3%A1ndo-utilizar-mongodb-y- cu%C3%A1ndo-utilizar-couchdb-d94cfcc78c21#.h19zpyxsq Consultado el 25 de Julio del 2016  http://www.ciff.net/blog/el-teorema-de-cap-y-la-clasificacion-de-base-de- datos.html Consultado el 25 de Julio del 2016