1. Por: Daniel Salas Denegri
CoFundador & CTO en KunanTI
GDG Arequipa
@danielsd10 gplus.to/danielsd10
2. Bases de Datos NoSQL
¿Qué es NoSQL?
Tipos de Bases de Datos NoSQL
MongoDB
Acerca de MongoDB
Arquitectura
Instalación
Drivers para Lenguajes de Programación
Aplicación de Demostración: PHP
Google Maps API
Librerías
Conexión a Base de Datos
Colecciones
Consulta de Datos
Edición de Datos
Otras Funcionalidades y Recursos
Funcionalidades de MongoDB
Herramientas y Recursos
3. • Not Only SQL
• Engloba un conjunto de Bases de Datos distintas de las
bases de datos relacionales (RDBMS).
• Las aplicaciones actuales deben responder a nuevas
exigencias:
• Grandes cantidades de información
• Mayor concurrencia
• Flexibilidad de los datos
• Arquitecturas en la Nube
• Para ciertos problemas de almacenamiento, otras
tecnologías se aplican mejor.
¿Qué es NoSQL?
4. Tipos de Bases de Datos NoSQL
Key /Value Column
Document Graph
5. • "humongous"
• Creada en 2009 por 10gen
• Características resaltantes
• Basada en Documentos JSON (BSON)
• Multiplataforma
• Velocidad
• Escalabilidad
• Open Source
• Soportada por muchos lenguajes
• Utilizada por
• Foursquare (Red Social)
• Craiglist (Archivo de anuncios)
• Intuit (Análisis en tiempo real)
• MTV (CMS)
www.mongodb.org www.10gen.com
6. • Jerarquía
• Base de Datos
• Colecciones
• Documentos
• Notación JSON / BSON
• Tipos soportados: String, Double,
Object, Date, Null,Array, Document,
ObjectID, Regex, Null.
• Datos Binarios (GridFS)
• Lenguaje de consultas: Javascript
• Esquema
• Conjunto de claves / valor
• Colecciones no tienen estructura
Arquitectura
www.mongodb.org bsonspec.org
webDB
blogs users
{
_id: ObjectID(«12ba1154cd19»),
title: «GDG Arequipa»,
regdate: new Date(),
tags: [«db», «php»],
location: {«lat»: -70, «lng»: 80}
}
7. • Última versión: 2.4.3 (Abril 2013)
• Versiones de 32 y 64 bits
• Windows
• Descargar y desempaquetar ZIP y ejecutar mongod.exe
• Se puede configurar como Servicio
• Intérprete de comandos: mongo.exe
• Linux
• Código fuente (tgz)
• Instalación rápida: apt-get (deb), yum (rpm)
• Intérprete de comandos: mongo
• MacOS / Solaris
• Código fuente (tgz)
Instalación
www.mongodb.org/downloads
9. «MapTags»
Aplicación que permite colocar etiquetas de temas específicos en un mapa.
Código fuente:
github.com/danielsd10/demo.maptags
Funcionalidades
Visualización de etiquetas por tipo
Herramientas de registro
Formulario de registro
Almacenamiento en Base de Datos
Detalles de una etiqueta
Carga de imágenes a GridFS
Edición de etiqueta
Filtrar etiquetas
…¿Qué más le incluirían?
Integra las siguientes
tecnologías
10. • Versión 3 (3.12)
Google MapsAPI
developers.google.com/maps
Map
Overlays
MapTypes
Layers
Markers
Geocoder
Services
StreetView
12. • Objetos básicos del Driver:
• Mongo / MongoClient
• MongoDB
• MongoCollection
• MongoCursor
• MongoException
Conexión a Base de Datos
php.net/manual/es/book.mongo.php
<?php
$mongo = new MongoClient("mongodb://localhost:27017");
$db = $mongo->selectDB("maptags");
?>
13. • Tipos de «Tags»:
• Lugar que quiero destacar (nombre, descripción)
• Imagen o Fotografía que tomé (archivo)
• Regalo o producto que debo comprar (precio)
• Reunión con varias personas (fecha, asistentes)
• Lugar peligroso que debo evitar (radio)
• Número de colecciones: 1 !!
Colecciones
docs.mongodb.org/manual/tutorial/getting-started
{
_id: new ObjectId(«51972979d08d828815000002»),
type: «gift»,
regdate: new Date(«May 18, 2013»),
pos: {lat: -16.38919, lng: -71.54720}
title: «Tablet»,
descr: «Nexus 7, 32GB, 2GB RAM, Android Jelly Bean»,
price: «1290.00»
}
17. • RockMongo
• Aplicación de PHP para consultar Bases de Datos MongoDB
• Similar a PhpMyAdmin
• rockmongo.com
• MonjaDB
• Extensión de Eclipse para consultar Bases de Datos MongoDB
• www.jumperz.net/index.php
• Consola interactiva para aprender MongoDB
• try.mongodb.org
• Capacitación para MongoDB
• education.10gen.com