Post on 22-Nov-2014
description
Bases de datos NoSQLOrientadas a documentos
Anthony R. Sotolongo León
asotolongo@uci.cu
Sumario
• Introducción a BDs orientadas a documentos.
• Teorema CAP
• MongoDB y CouchDB.
• Modelación con NoSQL- orientadas a documentos.
• Proyectos relacionados.
• Artículos relacionados
• Documentación relacionada.
¿Qué son las BDs- NoSQL orientada a documentos?
• Almacena la información en pares(Key-Value)
• Almacenan documentos!!! – JSON{ "_id": "doc#", “attributeN”:”valor”}
• Se describen ellos mismo(libres de esquemas).
• Los documentos se aproxima a las filas de las tablas de BD-Relacionales
Algunas…
ravendb
Teorema CAP
• Consistency : Todos los clientes ven la misma versión de los datos
• Availability: Todos los clientes pueden acceder a alguna versión de los datos(en tiempo adecuado)
• Partition tolerance: Los datos pueden estar particionados en varios servidores y si alguno cae sigue funcionando el sistema
NoSQL-orientadas a documentos en CAP
C
AP
Sistemas Relacionales
Language C++ Erlang
Object Store Collection, Documents Documents, Views
concurrency Write in place MVCC
Map/reduce
support
Yes Yes
Replication Master-Slave Master -Master
interface TCP/IP HTTP
Store Files GridFS Attachments
Almacenamiento de objetosCollections
document document
documentdocument
document
document
document
document
V IEWS
Function
Índices ensureIndex(Atributo)
ConcurrenciaCollections
document
documentdocument
document
document
document
document
V IEWS
Function
UPDATE
document
ConcurrenciaCollections
document
documentdocument
document
document
document
document
V IEWS
Function
UPDATEUPDATE
document
ConcurrenciaCollections
document
documentdocument
document
document
document
document
V IEWS
Function
UPDATEUPDATE
document
_rev
document
Map/Reduce
function(doc) {if(doc.contenido==‘HOLA MUNDO’)emit(null,{doc.titulo,doc.contenido});}
function() {if ( this.contenido==‘HOLA MUNDO’ ) emit(this.contenido,this.titulo}
Replicación
Maestro-Maestro
-Filtros (funciones)
Maestro-esclavoReplica-SetShared Mode
Estudio del comportamiento con concurrencia
Escritura 100 docs
Estudio del comportamiento con concurrencia
lectura 100000 docs
Estudio del comportamiento con concurrencia
Lectura - Map/Reduce100000 docs
Estudio del comportamiento con concurrencia
Subida de archivos- 9.62 MB
¿Se trata de?
¿Quienes los utilizan?
Métricas y trazas de sus app
Replicación
¿Quienes los utilizan en la UCI?
Naire
Modelación con NoSQL orientado a documentos
• Desnormalización
• Agregación (nested entities)
E-Commerce System with MongoDB
• Christian Kvalheim, Node.js driver developer.
Categoría
Producto Carro_compra Usuarios
Modelo relacional
Ejemplo E-Commerce MongoDB
• Christian Kvalheim, Node.js driver developer.
Modelo MongoDBColección-productos
Colección-carro_compra
{Id_product, name, details(weight,height) , price ,quantity,Categorie}
{ id_user,Status,quantity: 2, total: 2000, products: [] }
Agregación
Desnormalizacion
Proyectos…
• CouchBase : Couchdb+Memcached
• BigCouch: Couchdb + Cluster
• Humongous: Standalone Mongo Browser for
Ruby, using HTML5.
• MonjaDB: MongoDB GUI client.
Artículos …
• From ISIS to CouchDB: Databases and Data Models for Bibliographic Records.
• Moving Towards Non-Relational Databases
Documentación
Bases de datos NoSQLOrientadas a documentos
Anthony R. Sotolongo León
asotolongo@uci.cu