Академический Документы
Профессиональный Документы
Культура Документы
Ornelas
Couth
DB
Martnez,
I T S PA
ndice
CouchDB........................................................................................................ 2
Arquitectura de CouchDB............................................................................... 2
Instalacin...................................................................................................... 4
Configuracin y uso....................................................................................... 6
CONCLUSION.................................................................................................... 11
CouchDB
Couch (sof, divn) DB (DataBase) es un nuevo concepto de bases de datos, de la mano de la
comunidad Apache. El nombre no ha sido elegido al azar, ni de manera casustica. Su nombre
evoca relax, y sa es su filosofa. Evoca tranquilidad, debido a que todo ahora es ms sencillo y
produce menos problemas, incluso para personas no tcnicas.
Lo primero que llama la atencin de CouchDB es que no sigue el concepto de base de datos
tradicional entidad-relacin (modelo relacional), si no un modelo de almacenamiento documental,
gestionado por un potente motor de consultas sencillsimo de utilizar.
Cada documento est identificado por un ID nico (cdigo o identificador).
Para gestionar los documentos, CouchDB integra un modelo de vistas que utilizan JavaScript,
las cuales permiten agregar y reportar en los documentos en la base de datos. Las vistas son
construidas dinmicamente y no afectan por debajo al documento, pudiendo tener tantas vistas
diferentes de los mismos datos como se desee.
A diferencia de una base de datos relacional, CouchDB est diseado para almacenar y reportar
grandes cantidades de datos semi-estructuradas orientadas a documentos, sin un esquema o
estructura. En una base de datos relacional, el esquema es predefinido y limita la informacin
que es necesaria, especialmente cuando las necesidades cambian con respecto a las
anticipadas en el diseo. Esto ocasiona problemas en la actualizacin en un medio distribuido.
CouchDB no est forzado por un esquema, y los nuevos tipos de datos pueden ser aadidos sin
problemas
en
documentos
similares.
CouchDB posee utilidades para trabajar en lnea de comandos o directamente a travs de una
URL y un navegador, hablando con el gestor en formato JSON (JavaScript Object Notation).
Asimismo, posee utilidades en una interfaz de administracin, que permiten al usuario realizar
las operaciones sin necesidad de comandos, a travs de la URL:
http://127.0.0.1:5984/_utils/config.html
Arquitectura de CouchDB
El verdadero corazn de CouchDB es un potente motor de almacenamiento B-Tree, una
estructura de datos ordenada que permite bsquedas, inserciones y eliminaciones en tiempo
logartmico. Este sistema permite un alto rendimiento, una alta disponibilidad, mejoras de
velocidad, y la particin de los datos en mltiples nodos sin afectar a la disponibilidad de
consultar
cada
nodo
aisladamente.
El clculo de los resultados de una vista es realizado mediante MapReduces (mapeo y
reduccin), que son aplicados a cada documento de forma aislada, lo que presta a s mismo una
computacin paralela e incremental. Estas funciones (mapeo y reduccin) producen pares de
clave/valor, que son insertados en el motor de almacenamiento B-Tree, ordenados por clave,
haciendo extremadamente eficiente las bsquedas por clave o por rango.
Otra caracterstica de CouchDB es que no utiliza bloqueos, como en las bases de datos
relacionales, en donde una actualizacin de un dato provoca un bloqueo que impide a cualquier
consulta acceder al dato mientras dure la actualizacin. Cuando hay mltiples
actualizaciones/peticiones concurrentes, se est desperdiciando un enorme poder de
procesamiento de los servidores, tomando mucho tempo en decidir quin hace qu, cundo y en
qu orden, en lugar de realizar su trabajo. En lugar de ello, CouchDB utiliza un sistema de
Control de Concurrencia Multi Versin (MVCC en ingls), para gestionar el acceso concurrente a
la base de datos, ejecutando en paralelo las peticiones, incluso en un sistema de carga extrema.
Los documentos son versionados con un sistema de control de versiones (de forma similar a
Subversion). Cada actualizacin genera una nueva versin del documento y lo guarda por
encima del antiguo. Esto optimiza el rendimiento concurrente, ya que una lectura puede leer la
ltima versin mientras an se est actualizando, sin tener que esperar la actualizacin.
La validacin previa de los datos complejos es posible gracias a funciones JavaScript, lo que
permite que cuando se actualiza un documento se realice una validacin del mismo en una copia
del documento, denegando o aprobando el mismo segn sus reglas.
Cuando se trabaja con varios nodos, la consistencia distribuida est asegurada con CouchDB,
gracias a la replicacin incremental, que evita preocuparnos de la disponibilidad de la
informacin en caso que uno de los nodos deje de funcionar, gracias a la copia peridica entre
servidores de los cambios realizados en los documentos. Esta replicacin se puede programar
mediante un gestor de tareas. Despus de cada replicacin, cada nodo es capaz de trabajar de
forma
independiente.
Adems, CouchDB posee un sistema automtico deteccin y resolucin de conflictos, en el caso
de que un documento se intente actualizar en distintos nodos, guardando varias versiones las
actualizaciones, y poniendo como la versin ms reciente la versin ganadora. Para gestionar
conflictos, CouchDB permite acceder a las versiones, cambiar el orden de las versiones, y
guardarlas.
Instalacin
Aceptamos
los
trminos
de
licencia
Dejamos por default el lugar en donde se guardaran los documentos que se crean de la
base de datos couthDB
Y se le da un nombre al folder, en donde esta ser alojada o se busca otra carpeta ya creada
previamente. En esta ocasin la dejaremos por default.
Se observara la ruta de donde se instalara nuestro gestor de base de datos, y los paquetes
que contendr.
Configuracin y uso
Por ultimo esperamos a que se instale. Una vez instalada podremos utilizarlo, por lo que nos
vamos a:
Inicio > Todos los programas > Apache CouchDB > Futon (CouchDB web interface)
Al
inicio,
mostrar
las
bases
de
datos
que
estn
creadas.
Para crear una base de datos, hacer clic en la opcin Create Database situada en la parte
superior izquierda, junto al icono +. Aparecer una caja de dilogo solicitando el nombre de la
nueva base de datos.
Introducir nombre_de la BD y hacer clic en el botn Create. Una vez creada la base de datos
erick1, aparecer a siguiente imagen:
Prcticamente ha generado un documento, cuyo _id ha sido etiquetado con un valor que no se
repetir jams, y que identificar al documento de manera nica.
En la parte superior aparecern las siguientes opciones:
- Save Document: Guarda el documento actual
- Add Field: Agregar un campo
- Upload Attachment: Adjuntar (archivo)
Hacer clic en la opcin Add Field, con lo que nos permitir introducir el nombre de un campo y
el valor del mismo (haciendo doble clic).
Una vez introducidos todos los valores del documento, se guarda el documento mediante la
opcin Save Document. El resultado ser el siguiente:
Los datos han sido guardados, y los campos ordenados por su nombre. En la parte inferior
tendremos acceso a las opciones Previous version y Next version", que nos permitir llegar a
las
versiones
del
documento
actual
que
se
hayan
registrado.
Si se hace clic sobre el botn Source (pestaa superior derecha), se mostrar el cdigo del
documento en formato JSON:
CONCLUSION
En esta prctica hemos aprendido a:
- Instalar CouchDB en un sistema Windows
- Arrancar el servidor de base de datos CouchDB
- Acceder a los comandos mediante navegador
- Acceder a la herramienta FUTON
- Crear una base de datos
- Aadir un documento a la base de datos
- Aadir campos y valores a un documento
- Navegar por la herramienta FUTON