Download Documento
Document related concepts
Transcript
Iturrioz, Sofia Torielli, Maria Florencia Base de datos documental • Una base de datos documental está constituida por un conjunto de programas que almacenan, recuperan y gestionan datos de documentos o datos de algún modo estructurados. • A diferencia de las bases de datos relacionales, estas bases de datos están diseñadas alrededor de una noción abstracta de "Documento". Base de datos documental • El concepto central de una base de datos orientada a documentos es el concepto mismo de Documento. • Cada documento mantiene sus propios datos y su esquema autocontenido. • Los documentos dentro de una base de datos orientada a documentos son similar, de algún modo, a registros, tuplas o filas en una base de datos relacional pero menos rígidos. No se les requiere ajustarse a un esquema estándar. SQL vs CouchDB SQL CouchDB Relacional No - relacional Tablas Documentos Filas y columnas Campos de los documentos Querys (SQL) Views and shows functions (Javascript) Interacción con aplicaciones vía SQL. (INSERT, DELETE, SELECT, UPDATE) Interacción con aplicaciones vía HTTP (POST, GET, PUT y DELETE) Creación DB Documentos El campo "_id" es un campo que identifica a nuestro documento, podemos definirlo nosotros mismos, pero es mejor si dejamos que el sistema le asigne su valor, pues generará un ID único Universal. El campo "_rev" nos sirve para saber que "versión" del archivo estamos modificando, cada vez que modificamos nuestro archivo, se aumenta +1 en el numero de versión. "_rev" : “4-480277b989ff06c4fa87dfd0366677b6" Documento Código generado - JSON Formato JSON: { ¨nombre_campo¨: ¨valor_campo¨} Vista • En CouchDB, cada vista se construye por medio de una función JavaScript que actúa como la mitad Map de una operación map/reduce. • Las mismas vistas, también son almacenadas como documentos. • CouchDB puede indexar vistas y mantener actualizados esos índices a medida de que se agregan, eliminan o actualizan documentos. Vista El campo "_id“ identifica a nuestra vista. Es un path al que podemos acceder vía protocolo HTTP. Las aplicaciones interactúan con CouchDB vía HTTP. Language: Lenguaje del codigo que genera la vista. Puede ser javascript, python, coffescript, entre otros. Views: Codigo que genera la vista. Map/Reduce • Al momento de generar la vista, se muestra una pantalla con dos cajas: • La primera llamada "Map Function" en donde escribiremos la mayoría de nuestras funciones Map para crear vistas. La función Map: recibe un documento y lo transforma en un único registro, compuesto por una key y un valor y lo retorna. • La segunda llamada "Reduce Function" en donde podremos escribir funciones Reduce que filtren, realicen operaciones u organicen mejor los datos seleccionados por las funciones Map. El uso de una funcion Reduce es opcional. Problema de perfiles • Modelamos un sistema similar al de Linkedin. • Cada perfil conforma un documento. • Cada perfil tiene campos particulares, aunque es posible que entre distintos perfiles existan campos iguales. • Para este tipo de problema, en donde la cantidad de campos es tan variable como el usuario desee, es conveniente usar una base documental. Problema de Perfiles - Vista Problema de Perfiles - Vista Fin de la presentación