Apache CouchDB fue desarrollado por Apache Software Foundation y lanzado inicialmente en 2005. CouchDB está escrito en Erlang. Es una base de datos de código abierto que utiliza varios formatos y protocolos diferentes para almacenar, transferir y procesar sus datos. Utiliza JSON para almacenar datos, JavaScript como lenguaje de consulta mediante MapReduce y HTTP para una API. Los documentos son la unidad principal de datos en CouchDB y también incluyen metadatos. Los campos del documento tienen un nombre único y contienen valores de diferentes tipos y no hay un límite establecido para el tamaño del texto o el número de elementos.
Historia
CouchDB fue escrito en el lenguaje de programación Erlang. Fue iniciado por Damien Katz en 2005. CouchDB se convirtió en un proyecto de Apache en 2008. La versión actual de CouchDB es 1.61.
Arquitectura
La arquitectura de CouchDB se describe a continuación:
- CouchDB Engine: se basa en B-tree y, en él, se accede a los datos mediante claves o rangos de claves que se asignan directamente a las operaciones subyacentes de B-tree. Es el núcleo del sistema que logra almacenar datos internos, documentos y vistas.
- Solicitud HTTP: se utiliza para crear índices y extraer datos de documentos. Está escrito en JavaScript que permite crear vistas Adhoc que están hechas de trabajos de MapReduce.
- Documento: Almacena una gran cantidad de datos.
- Réplica de base de datos: se utiliza para replicar datos en una base de datos local o remota y sincronizar documentos de diseño.
Características de CouchDB
Las características de CouchDB incluyen lo siguiente:
- Replicación: Proporciona la forma más simple de replicación y ninguna otra base de datos es tan simple de replicar.
- Almacenamiento de documentos: es una base de datos NoSQL que sigue el almacenamiento de documentos donde cada campo tiene un nombre único y contiene valores de varios tipos de datos, como texto, números, booleanos, listas, etc.
- Propiedades de ACID: el diseño del archivo CouchDB sigue todas las características de las propiedades de ACID.
- Seguridad: también proporciona seguridad a nivel de base de datos y los permisos se dividen en lectores y administradores, donde los lectores pueden leer y escribir en la base de datos.
- Mapear/Reducir: La razón principal de la popularidad de CouchDB es un sistema de mapear/reducir.
- Autenticación: CouchDB le permite mantener la autenticación abierta a través de una cookie de sesión como una aplicación web.
- Diseñado para estar sin conexión: CouchDB puede replicarse en dispositivos como teléfonos inteligentes que tienen una función para desconectarse y manejar la sincronización de datos cuando el dispositivo vuelve a estar en línea.
- Coherencia eventual: CouchDB garantiza la coherencia eventual para proporcionar disponibilidad y tolerancia a la partición.
- API HTTP: todos los elementos tienen un URI único (identificador de recurso único) que se expone a través de HTTP. Utiliza los métodos HTTP como POST, GET, PUT y DELETE para las cuatro operaciones básicas CRUD (Crear, Leer, Actualizar, Eliminar) en todos los recursos.
Ventajas de CouchDB
Las ventajas de CouchDB incluyen lo siguiente:
- La API HTTP se utiliza para facilitar la comunicación.
- Se utiliza para almacenar cualquier tipo de datos.
- ReduceMap permite optimizar la combinación de datos.
- La estructura de CouchDB es muy simple
- Rápida indexación y recuperación.
Desventajas de CouchDB
Las desventajas de CouchDB incluyen lo siguiente:
- CouchDB ocupa mucho espacio para los gastos generales, lo que es una gran desventaja en comparación con otras bases de datos.
- Las consultas arbitrarias son caras.
- Hay un poco de sobrecarga de espacio adicional con CouchDB en comparación con la mayoría de las alternativas.
- Las vistas temporales de grandes conjuntos de datos son muy lentas.
- No admite transacciones.
- La replicación de bases de datos grandes puede fallar.
Publicación traducida automáticamente
Artículo escrito por bansal_rtk_ y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA