Download Documento

Document related concepts

CouchDB wikipedia , lookup

Base de datos documental wikipedia , lookup

MongoDB wikipedia , lookup

Servidor de CouchBase wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

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