Anda di halaman 1dari 9

Base de datos 2

Miguel Zapata Leandro Pasten

Introduccin
Actualmente hay un sinfin de problemas que no pueden ser resueltos por las base de datos relacionales. Por ejemplo cuando varios objetos del mismo tipo tienen una distinta estructura interna. En base a las mltiples necesidades se ha comenzado a utilizar el concepto de bases de datos NOSQL, o bases de datos documentales.
Un documento es un conjunto de informacin o conocimiento humano.

Una Bases de Datos Documentales se ocupa de la gestion de documentos optimizando el almacenaje y facilitando su recuperacin. Una de las BD documentales mas conocidas y utilizadas es CouchDB, la cual utilizaremos para implementar la demo.

Modelo de datos
En una base de datos documental todo lo que almacenamos es un documento sin schema, lo cual nos permite guardar juntos documentos con distintos campos dentro de la misma BD. Para lograr esto se utiliza un modelo de datos de "clave: valor". En un modelo de datos relacional, se trabaja con tablas con columnas y filas, pero en un modelo de datos clave: valor se tienen contenedores llamados cabinets, en cada contenedor se pueden mantener tantas parejas clave-valor como uno quiera. Por ejemplo, para asignar una clave: valor puede ser "Nombre: Miguel", o "Edad: 23" etc.
Para almacenar informacin, las claves y valores se agrupan en un archivo Json.

JSON
JSON (JavaScript Object Notation - Notacin de Objetos de JavaScript) es un formato ligero de intercambio de datos. Leerlo y escribirlo es simple para humanos, mientras que para las mquinas es simple interpretarlo y generarlo. JSON est constitudo por dos estructuras: Una coleccin de pares de nombre/valor. En varios lenguajes esto es conocido como un objeto, registro, estructura, diccionario, tabla hash, lista de claves o un arreglo asociativo. Una lista ordenada de valores. En la mayora de los lenguajes, esto se implementa como arreglos, vectores, listas o sequencias.

Un ejemplo tpico de JSON : { "_id" : "234a41170621c326ec63382f846d5764", "_rev" : "1-480277b989ff06c4fa87dfd0366677b6", "tipo" : "articulo", "titulo" : "Esto es una prueba", "cuerpo" : "Soy el contenido de un artculo de prueba", "tags" : ["cine", "comedia"] }

Lenguaje de consulta
Consultas al estilo MapReduce Map: Es una funcin que se ejecuta para cada documento. Esta funcin recibe como parmetro el propio documento y puede devolver pares de clave-valor. function(doc) { for (var i in doc.tags) emit(doc.tags[i], doc); } Reduce: A grandes rasgos esta agrupa los resultados del Map para obtener un nmero. De esta forma si la parte Map anterior fuera : function(doc) { for (var i in doc.tags) emit(doc.tags[i], 1); } Podemos definir una funcion reduce tal que asi: function(keys, values) { return sum(values); } En la nomenclatura de CouchDB un par de funciones MapReduce se llama view (no siendo obligatorio definir la parte reduce).

Acceder a datos por REST


REST nos permite acceder a nuestro datos de una forma muy sencilla a travs de URLs.

Por ejemplo : recuperar nuestro documento con id 6e1295ed6c29495e54cc05947f18c8af de nuestra BD albums accederamos a esta URL que nos devuelve el documento JSON correspondiente:

http://localhost:5984/albums/6e1295ed6c29495e54cc05947f18c8af

De forma similar si queremos acceder a una view iremos a la URL:

http://localhost:5984/blog/_design/doc/_view/tag?key=cine

Esta URL quiere decir que estamos accediendo a la BD llama blog, para recuperar un design document (donde se guardan las views dentro de la BD) llamado doc y dentro de este a la view llamada tag.

Comparacin con Modelo Relacional


Teora
Las bases de datos documentales, a diferencia de las bases de datos relacionales, estn libres de esquemas y de estructuras. La gran ventaja de no poseer esquema (y la consiguiente rigidez de estructuras y relaciones), es que son muy eficientes al trabajar con grandes cantidades de documentos. Las principales ventajas de una base de datos documental con respecto a una relacional son: Libre de esquemas.

Los sistemas de bases de datos documentales ganan rapidez dedicndose ms en exclusiva al almacenamiento y la recuperacin de la informacin

Los campos vacos (null) no se aaden al documento,

Cada documento puede tener estructuras diferentes

Los datos almacenados no necesitan adaptaciones por las aplicaciones

{ "_id": "16791812-3", "nombre": "Miguel Angel", "apellido_pat": "Zapata", "area_profesional": { "aos": "5", "descripcion": "ingeniero en software" }, "formacion_academica": [ { "ao": "2007-2012", "nombre_titulacion": "Licenciado ", "descripcion": "Carrera " }, { "ao": "2010", "nombre_titulacion": "Certificacion ", "descripcion": "Desarrollo de aplicaciones en Android" }], "otros": { "idiomas": "Ingles,Espaol", } }

Demo
Descripcion
-Visualizacion y busqueda de Curriculums Vitaes

-Aplicacion movil para sistema Android.

Objetivos
-demostrar la ventaja de las base de datos documentales sobre las relacionales en casos de uso especficos

Elementos necesarios
-No se utilizara ninguna biblioteca (API) -se utilizara un servicio gratuito , www.cloudant.com el cual permite crear y administrar bases de datos couchdb. -Se utilizara el modelo de CV funcional

Anda mungkin juga menyukai