MongoDB Introduccion
MongoDB Introduccion
MongoDB Introduccion
1
En informática, NoSQL (a veces llamado "no sólo SQL") es una amplia clase de
sistemas de gestión de bases de datos que difieren del modelo clásico del sistema de
gestión de bases de datos relacionales (RDBMS) en aspectos importantes, el más
destacado es que no usan SQL como el principal lenguaje de consultas. Los datos
almacenados no requieren estructuras fijas como tablas, normalmente no soportan
operaciones JOIN, ni garantizan completamente ACID (atomicidad, coherencia,
aislamiento y durabilidad), y habitualmente escalan bien horizontalmente.
Los sistemas de bases de datos NoSQL crecieron con las principales compañías de
Internet, como Google, Amazon, Twitter y Facebook. Estas tenían que enfrentarse a
desafíos con el tratamiento de datos que las tradicionales RDBMS no solucionaban.
Con el crecimiento de la web en tiempo real existía una necesidad de proporcionar
información procesada a partir de grandes volúmenes de datos que tenían unas
estructuras horizontales más o menos similares. Estas compañías se dieron cuenta que
el rendimiento y sus propiedades de tiempo real eran más importantes que la
coherencia, en la que las bases de datos relacionales tradicionales dedicaban una gran
cantidad de tiempo de proceso.
2
En ese sentido, a menudo, las bases de datos NoSQL están altamente optimizadas
para las operaciones recuperar y agregar, y normalmente no ofrecen mucho más que
la funcionalidad de almacenar los registros (p.ej. almacenamiento clave-valor). La
pérdida de flexibilidad en tiempo de ejecución, comparado con los sistemas SQL
clásicos, se ve compensada por ganancias significativas en escalabilidad y
rendimiento cuando se trata con ciertos modelos de datos.
3
MongoDB fue
creado para hacer
la codificacion Agile y Escalable
fácil y escalable.
4
Proposito Modelo de Sofisticado
Soporte de
Datos Lenguaje de
General Enriquecido
Indices
Consultas
5
{
title: ‘MongoDB’,
contributors: [
{ name: ‘Eliot Horowitz’,
email: ‘eliot@10gen.com’ },
{ name: ‘Dwight Merriman’,
email: ‘dwight@10gen.com’ }
],
model: {
relational: false,
awesome: true
}
}
6
ORACLE MongoDB
BEGIN; db.contacts.save( {
INSERT INTO contacts VALUES userName: “joeblow”,
(NULL, ‘joeblow’); emailAddresses: [
INSERT INTO contact_emails VALUES “joe@blow.com”,
( NULL, ”joe@blow.com”, “joseph@blow.com” ] } );
LAST_INSERT_ID() ),
( NULL, “joseph@blow.com”,
LAST_INSERT_ID() );
COMMIT;
END;
7
• MongoDB NO necesita ningun esquema de base de datos pre
definido
• ¡Cada documento puede tener diferente estructura!
8
Better data locality In-Memory
Distributed Architecture
Caching
Replication /HA
Relational MongoDB Horizontal Scaling
9
• Soporte intrínseco para el desarrollo Agile
10
• Document Oriented Database
• Datos son almacenados en documentos, no tablas / relaciones
• MongoDB esta implementado en C++ para mayor performance
• Plataformas 32/64 bit Windows Linux, Mac OS-X, FreeBSD,
Solaris
• Drivers de lenguaje para:
• Ruby / Ruby-on-Rails
• Java
• C#
• JavaScript
• C / C++
• Erlang Python, Perl others..... Y mucho mas ! ..
11
• Reemplazo de RDBMS para alto trafico de
aplicaciones web
• Aplicaciones de contenido administrativo
• Análisis en tiempo real
• Velocidad alta de obtención de datos
12
• Necesidad de Transacciones
• Necesidad de Joins
13
RDBMS MongoDB
Fila Documento
Columna Campo
Índice Índice
Partición Fragmentación
14
{ _id : ObjectId("4c4ba5c0672c685e5e8aabf3"),
autor: "roger",
date : "Sat Jul 24 2010 19:47:11 GMT-0700 (PDT)",
texto: ”MongoSF",
enlaces : [ ”San Francisco", ”MongoDB" ] }
Nota:
• _id es unica, pero se le puede asginar el valor que se desee.
15
• JSON es poderoso, pero tiene un limitado tipo de datos
• Mongo aumenta estos tipos de datos con Date, Int types, Id, …
16
• Insertar un documento:
db.ejemplo.insert({cod:1, nombre:”introduccion”,
clase:”Tecnologia Multimedia”})
• Actualizar un documento:
db.ejemplo.update({cod:1},{$set:{nombre:Intro, clase:”TM”,
temas:[“Java”,”MongoDB”]}})
• Elminar un ocumento:
db.ejemplo.remove({cod:1})
• Select de un Documento:
db.ejemplo.find({cod:1})
17
• Documentación de MongoDB:
• http://docs.mongodb.org/manual/
18
db.Goodbye.insert({
"Word1": "Thank You"
"Word2": "For your Attention"
})
19