Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

MongoDB Introduccion

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 19

Open source, high performance database

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

Fácil Mapeo al Drivers para la


Facil de codigo gran mayoría de
Fácil de
Configurar y
Usar orientado a lenguajes de
programacion usar
documentos

Opera en Auto- Dinamicamente


Rapido & velocidad de agrega / remueve
Fragmentacion
Escalable memoria cuando
es posible p/ Sharding
datos sin parar el
sistema

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!

{name: “will”, name: “jeff”, {name: “brendan”,


eyes: “blue”, eyes: “blue”, aliases: [“el diablo”]}
birthplace: “NY”, loc: [40.7, 73.4],
aliases: [“bill”, “la boss: “ben”}
ciacco”], {name: “matt”,
loc: [32.7, 63.4], pizza: “DiGiorno”,
boss: ”ben”} name: “ben”, height: 72,
hat: ”yes”} loc: [44.6, 71.3]}

8
Better data locality In-Memory
Distributed Architecture
Caching

Replication /HA
Relational MongoDB Horizontal Scaling

9
• Soporte intrínseco para el desarrollo Agile

• Rápido acceso a los datos


• Muy poco consumo de CPU

• No se requieren capas de cache adicionales (que se usan para


enlazar joins en RDBMS)

• Construida con soporte para replicas y de Escalabilidad


Horizontal

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

Tabla, Vista Colección

Fila Documento

Columna Campo

Índice Índice

Join Documento Embebido

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, …

• MongoDB almacena data en BSON

• BSON es la representacion binaria de JSON


• Optimiza la performance y navegacion de los documentos
• Mejora la compresion.

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/

• Instalación de MongoDB para Windows:


• http://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/

• Curso de MongoDB – En línea


• https://www.mongodb.com/products/training

18
db.Goodbye.insert({
"Word1": "Thank You"
"Word2": "For your Attention"
})

19

También podría gustarte