1 tutorial de mongo db

.. ..
UNIVERSIDAD DE LOS ANDES
REDES SOCIALES
Ing. Diego Hernando Torres Valencia
Tópicos Especiales: Ciencias de los datos
aplicadas a las redes sociales
1. MAP REDUCE
2. PROYECTO EN PHP
1.1. Mongo db
Ing. Diego Hernando Torres Valencia
CONTENIDO:
UNIVERSIDAD DE LOS ANDES
REDES
SOCIALES MAP REDUCE
MapReduce es un modelo de programación utilizado por Google para dar soporte a
la computación paralela sobre grandes colecciones de datos en grupos decomputadoras y
al commodity computing.
El nombre del framework está inspirado en los nombres de dos importantes métodos, macros o
funciones en programación funcional: Map y Reduce.
MapReduce ha sido adoptado mundialmente, ya que existe una
implementación OpenSource denominada Hadoop. Su desarrollo fue liderado inicialmente
por Yahoo y actualmente lo realiza el proyecto Apache.
En esta década de los años 2010 existen diversas iniciativas similares a Hadoop tanto en la
industria como en el ámbito académico. Se han escrito implementaciones de bibliotecas de
MapReduce en diversos lenguajes de programación como C++, Java y Python.
MapReduce se emplea en la resolución práctica de algunos algoritmos susceptibles de ser
paralelizados.
No obstante MapReduce no es la solución para cualquier problema, de la misma forma que
cualquier problema no puede ser resuelto eficientemente por MapReduce.Por regla general se
abordan problemas con datasets de gran tamaño, alcanzando los petabytes de tamaño. Es por
esta razón por la que este framework suele ejecutarse en sistema de archivos
distribuidos (HDFS)
REDES
SOCIALES MAP REDUCE
La función map(): se encarga del mapeo y es aplicada en paralelo para cada ítem en la entrada
de datos. Esto produce una lista de pares (k2,v2) por cada llamada. Después de eso, el
framework de MAPREDUCE junta todos los pares con la misma clave de todas las listas y los
agrupa, creando un grupo por cada una de las diferentes claves generadas.
La función reduce(): cada llamada a Reduce típicamente produce un valor v3 o una llamada
vacía, aunque una llamada puede retornar más de un valor. El retorno de todas esas llamadas se
recoge como la lista de resultado deseado.
BIG DATA = Leer un monton de datos
MAP =Extraer algo que te importa de cada registro Baraja y Ordenar
REDUCE=Agregado, resumir, filtrar o
transformar los resultados escritos.
MONGODB: Características BBDD
orientadas a Documentos
• Modelo de datos: colecciones de documentos que
contienen colecciones de claves-valor
• Ejemplos: CouchDB, MongoDB
• Buenas en:
– Modelado de datos natural
– Amigables al programador
– Desarrollo rápido
– Orientas a la web: CRUD
• Una base de datos orientada a documentos es un programa
diseñado para almacenar, recuperar y gestionar información
semi-estructurada orientada a documentos:
– Un documento encapsula información en un formato estándar (XML,
YAML, JSON o BSON):
• Los documentos en una BBDD orientada a documentos son similares a
registros pero no requieren un esquema estándar con la mismas
secciones, huecos, partes, claves y similar
• Los documentos suelen ser direccionables por una clave que los
representa unívocamente
• Además de la búsqueda por clave de documento, estas BBDD suelen
ofrecer una API o lenguaje de consultas que permite recuperar
documentos en base a sus contenidos
MONGODB: Características BBDD
orientadas a Documentos
MongoDB
BASES DE DATOS QUE USAN LAS
GRANDES EMPRESAS
Empresa Base de datos
Foursquare MongoDB
Foursquare es un
servicio basado en
localización web
aplicada a las redes
sociales. La
geolocalización permite
localizar un dispositivo
fijo o móvil en una
ubicación geográfica
La idea principal de la red es marcar (check-in) lugares específicos donde uno se encuentra e ir ganando
puntos por «descubrir» nuevos lugares; la recompensa son las "Badges", una especie de medallas, y las
"Alcaldías" (Mayorships), que son ganadas por las personas que más hacen "check-ins" en un cierto lugar en
los últimos 60 días. A partir de la información que los usuarios han ido introduciendo, el servicio ha ido
evolucionando hacia un motor de recomendaciones que sugiere lugares interesantes de manera inteligente.
• MongoDB (de la palabra en ingles “humongous” que
significa enorme) es un sistema de base de datos
NoSQL orientado a documentos
• MongoDB guarda estructuras de datos en
documentos tipo BSON (Binary JSON (JSON Binario)
con un esquema dinámico , haciendo que la
integración de los datos en ciertas aplicaciones sea
mas fácil y rápida.
• The MongoDB Manual:
– http://docs.mongodb.org/manual/
MongoDB
Características Principales
• Consultas Ad hoc
– MongoDB soporta la búsqueda por campos, consultas de rangos y expresiones regulares. Las consultas pueden devolver un campo
específico del documento pero también puede ser una función JavaScript definida por el usuario.
• Indexación
– Cualquier campo en un documento de MongoDB puede ser indexado, al igual que es posible hacer índices secundarios. El concepto
de índices en MongoDB es similar a los encontrados en base de datos relacionales.
• Replicación
– MongoDB soporta el tipo de replicación maestro-esclavo. El maestro puede ejecutar comandos de lectura y escritura. El esclavo
puede copiar los datos del maestro y sólo se puede usar para lectura o para copia de seguridad, pero no se pueden realizar
escrituras. El esclavo tiene la habilidad de poder elegir un nuevo maestro en caso del que se caiga el servicio con el maestro actual.
• Balanceo de carga
– MongoDB se puede escalar de forma horizontal usando el concepto de “shard”.
– El desarrollador elije una llave shard, la cual determina como serán distribuidos los datos en una colección. los datos son divididos en
rangos (basado en la llave shard) y distribuidos a través de múltiples shard.
– Un shard es un maestro con uno o más esclavos.
– MongoDB tiene la capacidad de ejecutarse en múltiple servidores, balanceando la carga y/o duplicando los datos para poder
mantener el sistema funcionando en caso que exista un fallo de hardware.
• Almacenamiento de archivos
– MongoDB puede ser utilizado con un sistema de archivos, tomando la ventaja de la capacidad que tiene MongoDB para el balanceo
de carga y la replicación de datos utilizando múltiples servidores para el almacenamiento de archivos.
– Esta función (que es llamada GridFS ) está incluida en los drivers de MongoDB y disponible para los lenguajes de programación que
soporta MongoDB.
• Agregación
– La función MapReduce puede ser utilizada para el procesamiento por lotes de datos y operaciones de agregación. Esta función
permite que los usuarios puedan obtener el tipo de resultado que se obtiene cuando se utiliza el comando SQL “group-by”.
• Ejecución de JavaScript del lado del servidor
– MongoDB tiene la capacidad de realizar consultas utilizando JavaScript, haciendo que estas sean enviadas directamente a la base de
datos para ser ejecutadas.
Casos de uso de MongoDB
• Almacenamiento y registro de eventos
• Para sistemas de manejo de documentos y contenido
• Comercio Electrónico
• Juegos
• Problemas de alto volumen
• Aplicaciones móviles
• Almacén de datos operacional de una página Web
• Manejo de contenido
• Almacenamiento de comentarios
– Votaciones
– Registro de usarios
– Perfiles de usuarios
– Sesiones de datos
• Proyectos que utilizan metodologías de desarrollo iterativo o ágiles
• Manejo de estadísticas en tiempo real
MongoDB
• Similar a CouchDB
• Pretende combinar lo mejor de los almacenes
clave/valor, bases de datos de documentos y RDBMS
• Hace uso de JSON y tiene su propio lenguaje de
consultas
• Implementada en C++
• Es quizás el motor NoSQL más popular
• Usada por SourceForge, Bit.ly, Foursquare o GitHub
• URL: http://www.mongodb.org/
Manipulación de Datos: colecciones y
documentos
• MongoDB guarda la estructura de los datos en documentos tipo JSON (JavaScript
Object Notation) con un esquema dinámico llamado BSON, lo que implica que no
existe un esquema predefinido.
• Los elementos de los datos son llamados documentos y se guardan en
colecciones
• Una colección puede tener un número indeterminado de documentos
– Las colecciones son como tablas y los documentos
– Cada documento en una colección puede tener diferentes campos.
• La estructura de un documento es simple y compuesta por “key-value pairs”
parecido a las matrices asociativas en un lenguaje de programación
– Como valor se pueden usar números, cadenas o datos binarios como imágenes o
cualquier otro “key-value pairs”.
Ejemplo de documento
en MongoDB
{
"_id":
ObjectId("4efa8d2b7d284dad101e4bc7"),
"Last Name": "PELLERIN",
"First Name": "Franck",
"Age": 29,
"Address": {
"Street": "1 chemin des Loges",
"City": "VERSAILLES"
}
}
Utilidades de MongoDB
• Los siguientes comandos pueden ser instalados para el manejo y la administración del
sistema de base de datos:
• mongo: es un Shell interactivo que permite a los desarrolladores ver, insertar, eliminar y
actualizar datos en su base de datos. Este también permite entre otras funciones la
replicación de información, configurar los Shards, apagar los servidores y ejecutar JavaScript.
• mongostat: es un instrumento de línea de comandos que muestra en resumen una lista de
estadísticas de una instancia de MongoDB en ejecución. Esto te permite visualizar cuantas
inserciones, actualizaciones, eliminaciones, consultas y comandos se han ejecutado, pero
también cuanta memoria esta utilizando y cuanto tiempo ha estado cerrada la base de datos.
• mongotop: es un instrumento de línea de comandos que provee un método para dar
seguimiento a la cantidad de tiempo que dura una la lectura o escritura de datos en una
instancia. También provee estadísticas en el nivel de cada colección.
• mongosniff: es un instrumento de línea de comandos que provee un sniffing en la base de
datos haciendo un sniffing en el tráfico de la red que va desde y hacia MongoDB.
• mongoimport/mongoexport: es un instrumento de línea de comandos que facilita la
importación exportación de contenido desde JSON, CSV o TSV. También tiene el potencial de
importar o exportar hacia otros formatos.
• mongodump/mongorestore: es un instrumento de línea de comandos para la creación
de una exportación binaria del contenido de la base de datos. Estos comandos son utilizado
para la estrategia de copias de seguridad cuando se utiliza MongoDB.
Documentación e instalación
• La documentación completa de MongoDB puede encontrarse en:
– http://docs.mongodb.org/manual/
• Instrucciones para instalar MongoDB en Windows:
– Descargar de: http://docs.mongodb.org/manual/tutorial/install-mongodb-on-
windows/
– Crear directorio de datos: mkdir data/db
– Ejecutar el comando: mongod.exe --dbpath ..datadb
– Ejecutar el cliente de mongo y los siguientes comandos en JavaScript:
C:Programmingutilitiesmongodb-win32-x86_64-2.0.6bin>mongo
MongoDB shell version: 2.0.6
connecting to: test
> db.test.save( {a:1} )
> db.test.find()
{ "_id" : ObjectId("4fe6e41b184d3a26629be9b6"), "a" : 1 }
>
Usando MongoDB
• mongo es un shell JavaScript completo, cualquier función JavaScript, sintáxis o clase puede usarse en el shell
use mydb
j = { name : "mongo" };
t = { x : 3 };
db.things.save(j);
db.things.save(t);
db.things.find();
for (var i = 1; i <= 20; i++) db.things.save({x : 4, j : i});
db.things.find();
// Iterate through the remaining items
it
// Store the cursor of the DB in a variable
var cursor = db.things.find();
while (cursor.hasNext()) printjson(cursor.next());
// Use functional features of JavaScript
db.things.find().forEach(printjson);
// cursor like an array
var cursor = db.things.find();
printjson(cursor[4]);
// The query expression is an document itself.
db.things.find({name:"mongo"}).forEach(printjson);
db.things.find({x:4}).forEach(printjson);
db.things.find({x:4}, {j:true}).forEach(printjson);
Documentos de consulta
• Documentos que indican el patrón de claves y valores que deben ser
localizados
• Ejemplos:
– SELECT * FROM things WHERE name="mongo“
• db.things.find({name:"mongo"}).forEach(printjson);
– SELECT * FROM things WHERE x=4
• db.things.find({x:4}).forEach(printjson);
– SELECT j FROM things WHERE x=4
• db.things.find({x:4}, {j:true}).forEach(printjson);
– Recuperar el primer elemento que cumple alguna restricción:
• printjson(db.things.findOne({name:"mongo"}));
– Limitar el número de resultados:
• db.things.find().limit(3);
• More info at:
– SQL to Mongo Mapping Chart
• http://www.mongodb.org/display/DOCS/SQL+to+Mongo+Mapping+Chart
GridFS
• GridFS is a specification for storing large files in MongoDB
– The database supports native storage of binary data
within BSON objects
– BSON objects in MongoDB are limited in size (4MB older versions,
16MB in v1.7/1.8, higher limits in the future)
• GridFS spec provides a mechanism for transparently dividing a
large file among multiple documents
– Each file has a metadata object in a files collection, and one or more
chunk objects in a chunks collection.
• URL: http://www.mongodb.org/display/DOCS/GridFS
– Specification:
http://www.mongodb.org/display/DOCS/GridFS+Specification
MongoDB and Java
• Java Tutorial:
http://www.mongodb.org/display/DOCS/Java+Tutori
al
• Una lista de buenos ejemplos en MongoDB
programados con Java:
– http://www.mkyong.com/tutorials/java-mongodb-
tutorials/
• Ejemplo using GridFS con MongoDB
– http://www.mkyong.com/mongodb/java-mongodb-save-
image-example/
PRATICA con MongoDB
MongoDB
Acceder al icono del softwareNecesitamos instalar el software Robomongo para administrar
la base de datos MongoDB, ya que por medio del software
:Robomongo podemos visualizar por medio de una interfaz
grafica y administrar la base MongoDB de forma mas sencilla.
PAGINA DE DESCARGA:
http://robomongo.org/
Administrador de interfaces de usuario : robomongo
PAGINA DE DESCARGA: http://robomongo.org/ Acceder al icono del software
Administrador de interfaces de usuario : robomongo
PAGINA DE DESCARGA: http://robomongo.org/
Realizo la instalación del programa que me permite administrar por medio de la interfaz grafica
La base de datos MongoDB.
Acceder al icono del software
Administrador de interfaces de usuario : robomongo
CREAMOS LA CONEXIÓN A LA BASE DE DATOS MONGODB.
Administrador de interfaces de usuario : robomongo
Guardamos la CONEXIÓN A LA BASE DE DATOS MONGODB.
Administrador de interfaces de usuario : robomongo
Realizar la CONEXIÓN A LA BASE DE DATOS MONGODB.
NOTA: PARA REALIZAR LA CONEXIÓN CON LA BASE DE DATOS MONGODB, HAY QUE INICIAR LOS
SERVICIOS DE LA BASE DE DATOS POR MEDIO DE 2 TERMINALES SHELL O CMD,como muestro
mas adelante
MongoDB
Comenzamos la pratica para Gestionar la base de datos MongoDB por medio
del terminal o consola de Windows:
MongoDB
Gestionar la base de datos MongoDB por medio del terminal o consola de Windows:
Abrimos dos terminales para ejecutar la base de datos: MongoDB
MongoDB
1. CREAR CONEXIÓN EN UNA PRIMERA VENTANA SHELL
C:Program FilesMongoDB 2.6 Standardbin>mongod.exe
2. CORRER MONGO EN UNA
SEGUNDA VENTANA SHELL
C:Program FilesMongoDB 2.6
Standardbin>mongo.exe
ABRIR DOS VENTANAS SHELL
MongoDB
Gestionar la base de datos MongoDB por medio del terminal o consola de Windows:
Seguiremos utilizando las dos terminales para ejecutar la base de datos: MongoDB
NOTA: IMPORTANTE: En la segunda ventana donde colocamos a correr mongo, por medio del
Comando: mongo.exe , en esta segunda ventana o terminal cmd ; vamos a trabajar con
Diferentes comandos para insertar documentos en la base de datos: MongoDB
MongoDB
En la segunda ventana Shell o cmd, colocamos el comando:
1.INSERTAR DATOS
> db.test.save( {a:1} )
MongoDB
En la segunda ventana Shell o cmd, colocamos el comando:
2.CONSULTAR DATOS
> db.test.find()
MongoDB: comando help
En la segunda ventana Shell o cmd, colocamos el comando help
MongoDB: comando show dbs
COMANDO: show dbs
Mostrar todo lo que hay adentro de mongo o que bases de
datos hay.
show dbs
MongoDB: comando use
COMANDO: use
Crear una base de datos.
use miPrimeraBasededatos
MongoDB: comando de asignación =
para crear variables
COMANDO DE ASIGNACION
Introducir algo a la base de datos. Crear unas variables con datos..
a = { nombre: “Diego Torres Valencia ”}
b = { edad : 28 }
CREAR LA COLECCION
db.personas.insert(a)
db.personas.insert(b)
MongoDB: comando para crear la coleccion
Puebo revisar el estado de:
la base de datos: miPrimeraBasedeDatos,
Colección: personas
y los respectivos campos nombre y edad,
Ademas se crea el id único por medio de la MAC del
Computador haciendo este índice único en todo el mundo.
MongoDB: Robomongo visualiza la base de
datos mongoDB
MongoDB: comando show
collections
COMANDO show collections
show collections
MongoDB: comando
db.personas.find()
COMANDO db.personas.find()
Muestra la colección personas con los 2 documentos que hemos creados, y cada
documento tiene un índice o id único. Nos muestra la colección personas en
formato JSON (JavaScript Object Notation).
db.personas.find( )
MongoDB: crear una segunda
coleccion
CREAR UNA SEGUNDA COLECCIÓN LLAMADA amigos
use.miPrimeraBasedeDatos
db.amigos.insert({ nombre: “Juan ”, teléfono: 31248608 , dirección:”barrio colpet #2-
45” } )
MongoDB: mostrar la segunda
coleccion
MOSTRAR LA SEGUNDA COLECCIÓN LLAMADA amigos
db.amigos.find()
Puebo revisar el estado de:
la base de datos: miPrimeraBasedeDatos,
Colección: amigos y personas
y los respectivos campos nombre y edad,
Ademas se crea el id único por medio de la MAC del
Computador haciendo este índice único en todo el mundo.
MongoDB: Robomongo visualiza la base de
datos mongoDB
MongoDB: Borrar un campo de
un documento
BORRAR UN CAMPO DE UN DOCUMENTO DE UNA
COLECCION LLAMADA personas
db.personas.remove({edad:28})
MongoDB: Actualizar un campo
de un documento
ACTUALIZAR UN CAMPO DE UN DOCUMENTO DE UNA COLECCION LLAMADA personas
db.personas.find()
db.personas.update( {nombre:”Diego Torres Valencia”} , { nombre:” Don Diego”} )
Puebo revisar el estado de:
la base de datos: miPrimeraBasedeDatos,
Colección: personas
y los respectivos campos nombre y edad,
Ademas se revisa que se actualizo el campo nombre de
“Diego Torres Valencia” y el campo quedo actualizado:
“Don Diego”.
MongoDB: Robomongo visualiza la base de
datos mongoDB
MongoDB: Añadir campos a un
documento
AÑADIR O ACTUALIZAR UN CAMPO DE UN DOCUMENTO DE UNA COLECCION LLAMADA personas
db.personas.find()
db.personas.update( {Nombre:” Don Diego”} , { $set :{ apellido:” Valencia” ,alias:”dieguin”} } )
Puebo revisar el estado de:
la base de datos: miPrimeraBasedeDatos,
Colección: personas
y los respectivos campos nombre y edad,
Ademas se visualiza los dos nuevos campos creados
Apellido: “Valencia”
Alias: “Dieguin”
MongoDB: Robomongo visualiza la base de
datos mongoDB
MongoDB:Borrar base de datos
creada
BORRAR BASE DE DATOS CREADA
Use miPrimeraBasedeDatos
db.dropDatabase()
Borramos la base de datos: miPrimeraBasedeDatos,
Ademas se visualiza en Robomongo que se borro la base
de datos .
MongoDB: Robomongo visualiza la base de
datos mongoDB
MongoDB: ERROR: dbpath<datadb>
does not exist.
MongoDB: ERROR: dbpath<datadb>
does not exist.
MongoDB: ERROR: dbpath<datadb>
does not exist.
1 tutorial de mongo db
Bibliografía
Fuentes bibliográficas
• PMBOK. (2003) Guía Fundamental para la Gestión de Proyectos. Edición project
management Institute, Inc.
• Rodríguez Bermúdez, José Ramón; García Mínguez, Jordi; Lamarca Orozco, Ignacio.
(2007): “Gestión de proyectos informáticos: métodos, herramientas y casos”. Editorial
UOC, S.L., Madrid. ISBN 8497885686. Libro guía
• Sánchez Garreta, José Salvador. (2003): “Ingeniería de proyectos informáticos:
actividades y procedimientos”. Edición ilustrada. Editor Universidad Jaume, Córdoba.
ISBN 8480214082, 9788480214087
• Fuentes digitales o electrónicas
• Medellín, (2011, agosto). Dirección de proyectos. Recuperado el 23 de agosto de 2011,
del sitio web http://www.slideshare.net/albinogoncalves/direccin-de-proyectos-de-ti-
i?src=related_normal&rel=130864
Fin de la presentación.
MUCHAS GRACIAS
Copyright 2014, Todos los Derechos
Reservados.
1 sur 57

Recommandé

MongoDB par
MongoDBMongoDB
MongoDBAmérico Uriarte Quispe
1.2K vues15 diapositives
NoSQL - MongoDB par
NoSQL - MongoDBNoSQL - MongoDB
NoSQL - MongoDBJuan Azcurra
1.5K vues29 diapositives
MongoDB: la BBDD NoSQL más popular del mercado par
MongoDB: la BBDD NoSQL más popular del mercadoMongoDB: la BBDD NoSQL más popular del mercado
MongoDB: la BBDD NoSQL más popular del mercadoDiego López-de-Ipiña González-de-Artaza
12K vues129 diapositives
MongoDB par
MongoDBMongoDB
MongoDBMiguel Angel Rivera Robledo
1.1K vues24 diapositives
An Introduction To NoSQL & MongoDB par
An Introduction To NoSQL & MongoDBAn Introduction To NoSQL & MongoDB
An Introduction To NoSQL & MongoDBLee Theobald
17.6K vues21 diapositives
No SQL- The Future Of Data Storage par
No SQL- The Future Of Data StorageNo SQL- The Future Of Data Storage
No SQL- The Future Of Data StorageBethmi Gunasekara
603 vues50 diapositives

Contenu connexe

Tendances

Sql DML Lenguaje de manipulación de datos par
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos josecuartas
38.6K vues26 diapositives
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos par
Tópicos Avanzados de Programación - Unidad 4 Acceso a datosTópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datosJosé Antonio Sandoval Acosta
6.2K vues29 diapositives
Algoritmos De Cifrado Para Claves PúBlicas Y Privadas par
Algoritmos De Cifrado Para Claves PúBlicas Y PrivadasAlgoritmos De Cifrado Para Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para Claves PúBlicas Y Privadasalejandro
14.6K vues15 diapositives
Diferencias entre base de datos relacional y no relacional par
Diferencias entre base de datos relacional y no relacionalDiferencias entre base de datos relacional y no relacional
Diferencias entre base de datos relacional y no relacionalUPCI
31.4K vues4 diapositives
Arquitectura Orientada a Servicios par
Arquitectura Orientada a ServiciosArquitectura Orientada a Servicios
Arquitectura Orientada a Serviciosfinger10
3.7K vues24 diapositives
NoSQL: la siguiente generación de Base de Datos par
NoSQL: la siguiente generación de Base de DatosNoSQL: la siguiente generación de Base de Datos
NoSQL: la siguiente generación de Base de DatosDiego López-de-Ipiña González-de-Artaza
17K vues148 diapositives

Tendances(20)

Sql DML Lenguaje de manipulación de datos par josecuartas
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos
josecuartas38.6K vues
Algoritmos De Cifrado Para Claves PúBlicas Y Privadas par alejandro
Algoritmos De Cifrado Para Claves PúBlicas Y PrivadasAlgoritmos De Cifrado Para Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para Claves PúBlicas Y Privadas
alejandro14.6K vues
Diferencias entre base de datos relacional y no relacional par UPCI
Diferencias entre base de datos relacional y no relacionalDiferencias entre base de datos relacional y no relacional
Diferencias entre base de datos relacional y no relacional
UPCI31.4K vues
Arquitectura Orientada a Servicios par finger10
Arquitectura Orientada a ServiciosArquitectura Orientada a Servicios
Arquitectura Orientada a Servicios
finger103.7K vues
Arquitectura de bases de datos distribuidas par JimRocy
Arquitectura de bases de datos distribuidasArquitectura de bases de datos distribuidas
Arquitectura de bases de datos distribuidas
JimRocy7K vues
Mongodb basics and architecture par Bishal Khanal
Mongodb basics and architectureMongodb basics and architecture
Mongodb basics and architecture
Bishal Khanal2.1K vues
SQLite par maymania
SQLiteSQLite
SQLite
maymania22.1K vues
Bases de datos NoSQL orientadas a documentos par Anthony Sotolongo
Bases de datos NoSQL orientadas a documentosBases de datos NoSQL orientadas a documentos
Bases de datos NoSQL orientadas a documentos
Anthony Sotolongo5.5K vues
Sistemas Sgbd HomogÉNeos Y HeterogÉNeos par Irina Anabel
Sistemas Sgbd HomogÉNeos Y HeterogÉNeosSistemas Sgbd HomogÉNeos Y HeterogÉNeos
Sistemas Sgbd HomogÉNeos Y HeterogÉNeos
Irina Anabel3.1K vues

En vedette

NOSQL: Primeros Pasos en MongoDB par
NOSQL: Primeros Pasos en MongoDBNOSQL: Primeros Pasos en MongoDB
NOSQL: Primeros Pasos en MongoDBVictor Cuervo
7.1K vues76 diapositives
NoSQL Injections in Node.js - The case of MongoDB par
NoSQL Injections in Node.js - The case of MongoDBNoSQL Injections in Node.js - The case of MongoDB
NoSQL Injections in Node.js - The case of MongoDBSqreen
54.5K vues14 diapositives
Mongodb par
MongodbMongodb
MongodbJn F. Mendoza
541 vues31 diapositives
Introducción a NoSQL con MongoDB par
Introducción a NoSQL con MongoDBIntroducción a NoSQL con MongoDB
Introducción a NoSQL con MongoDBScalia
2.9K vues28 diapositives
MongoDB Avanzado par
MongoDB AvanzadoMongoDB Avanzado
MongoDB AvanzadoVictor Cuervo
5.3K vues71 diapositives
Mongo db par
Mongo dbMongo db
Mongo dbUPCI
2K vues8 diapositives

En vedette(16)

NOSQL: Primeros Pasos en MongoDB par Victor Cuervo
NOSQL: Primeros Pasos en MongoDBNOSQL: Primeros Pasos en MongoDB
NOSQL: Primeros Pasos en MongoDB
Victor Cuervo7.1K vues
NoSQL Injections in Node.js - The case of MongoDB par Sqreen
NoSQL Injections in Node.js - The case of MongoDBNoSQL Injections in Node.js - The case of MongoDB
NoSQL Injections in Node.js - The case of MongoDB
Sqreen54.5K vues
Introducción a NoSQL con MongoDB par Scalia
Introducción a NoSQL con MongoDBIntroducción a NoSQL con MongoDB
Introducción a NoSQL con MongoDB
Scalia2.9K vues
Mongo db par UPCI
Mongo dbMongo db
Mongo db
UPCI2K vues
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ... par Severalnines
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
Severalnines1K vues
4.Building a Data Product using apache Zeppelin - Apache Kylin Meetup @Shanghai par Luke Han
4.Building a Data Product using apache Zeppelin - Apache Kylin Meetup @Shanghai4.Building a Data Product using apache Zeppelin - Apache Kylin Meetup @Shanghai
4.Building a Data Product using apache Zeppelin - Apache Kylin Meetup @Shanghai
Luke Han4.2K vues
Data Science with Spark & Zeppelin par Vinay Shukla
Data Science with Spark & ZeppelinData Science with Spark & Zeppelin
Data Science with Spark & Zeppelin
Vinay Shukla6.3K vues
Intro to Big Data Analytics using Apache Spark and Apache Zeppelin par Alex Zeltov
Intro to Big Data Analytics using Apache Spark and Apache ZeppelinIntro to Big Data Analytics using Apache Spark and Apache Zeppelin
Intro to Big Data Analytics using Apache Spark and Apache Zeppelin
Alex Zeltov1.9K vues
Apache Spark: The Analytics Operating System par Adarsh Pannu
Apache Spark: The Analytics Operating SystemApache Spark: The Analytics Operating System
Apache Spark: The Analytics Operating System
Adarsh Pannu1.1K vues
Taller de programación clase #1 par Juan Cardona
Taller de programación   clase #1Taller de programación   clase #1
Taller de programación clase #1
Juan Cardona1.5K vues
Big Data visualization with Apache Spark and Zeppelin par prajods
Big Data visualization with Apache Spark and ZeppelinBig Data visualization with Apache Spark and Zeppelin
Big Data visualization with Apache Spark and Zeppelin
prajods77K vues

Similaire à 1 tutorial de mongo db

Mongo db par
Mongo dbMongo db
Mongo dbGerson Giancarlos C
741 vues10 diapositives
Mongo db par
Mongo dbMongo db
Mongo dbantonio2555
620 vues11 diapositives
MONGODB - NOSQL par
MONGODB - NOSQLMONGODB - NOSQL
MONGODB - NOSQLJOSE MANUEL ALVAREZ CARDENAS
1K vues15 diapositives
Sgbd mongodb par
Sgbd   mongodbSgbd   mongodb
Sgbd mongodbCatherine Gutiérrez
1.3K vues8 diapositives
Introducción mongodb y desarrollo par
Introducción mongodb y desarrolloIntroducción mongodb y desarrollo
Introducción mongodb y desarrolloJuan Ladetto
1.2K vues57 diapositives
Semana 3 Mongodb par
Semana 3   MongodbSemana 3   Mongodb
Semana 3 MongodbRichard Eliseo Mendoza Gafaro
1.1K vues30 diapositives

Similaire à 1 tutorial de mongo db(20)

Introducción mongodb y desarrollo par Juan Ladetto
Introducción mongodb y desarrolloIntroducción mongodb y desarrollo
Introducción mongodb y desarrollo
Juan Ladetto1.2K vues
Sistema gestor de base de datos( mongobd) par Shon AE
Sistema gestor de base de datos( mongobd)Sistema gestor de base de datos( mongobd)
Sistema gestor de base de datos( mongobd)
Shon AE1.4K vues
Practica 2 base de datos par Balta Rdz
Practica 2 base de datosPractica 2 base de datos
Practica 2 base de datos
Balta Rdz107 vues
Big data y las apis (big data spain) par CloudAppi
Big data y las apis (big data spain)Big data y las apis (big data spain)
Big data y las apis (big data spain)
CloudAppi1.3K vues

Plus de .. ..

EL FANTASMA PROVECHOSO.docx par
EL FANTASMA PROVECHOSO.docxEL FANTASMA PROVECHOSO.docx
EL FANTASMA PROVECHOSO.docx.. ..
51 vues2 diapositives
Regimenes y o sistema politico de peru y ecuador 2021 09-14 hora 5_23 pm par
Regimenes y o sistema politico de peru y ecuador 2021 09-14 hora 5_23 pmRegimenes y o sistema politico de peru y ecuador 2021 09-14 hora 5_23 pm
Regimenes y o sistema politico de peru y ecuador 2021 09-14 hora 5_23 pm.. ..
1.1K vues81 diapositives
Reunión de apertura auditoria ejemplo par
Reunión de apertura auditoria ejemploReunión de apertura auditoria ejemplo
Reunión de apertura auditoria ejemplo.. ..
4.8K vues11 diapositives
Determinismo escuelas filosoficas par
Determinismo escuelas filosoficasDeterminismo escuelas filosoficas
Determinismo escuelas filosoficas.. ..
394 vues18 diapositives
Mantenimiento de Equipos de Computo par
Mantenimiento de Equipos de  Computo Mantenimiento de Equipos de  Computo
Mantenimiento de Equipos de Computo .. ..
505 vues246 diapositives
induccion febrero 2019 sena articulacion media tecnica sistemas par
induccion febrero 2019 sena articulacion media tecnica sistemasinduccion febrero 2019 sena articulacion media tecnica sistemas
induccion febrero 2019 sena articulacion media tecnica sistemas.. ..
3.7K vues61 diapositives

Plus de .. ..(20)

EL FANTASMA PROVECHOSO.docx par .. ..
EL FANTASMA PROVECHOSO.docxEL FANTASMA PROVECHOSO.docx
EL FANTASMA PROVECHOSO.docx
.. ..51 vues
Regimenes y o sistema politico de peru y ecuador 2021 09-14 hora 5_23 pm par .. ..
Regimenes y o sistema politico de peru y ecuador 2021 09-14 hora 5_23 pmRegimenes y o sistema politico de peru y ecuador 2021 09-14 hora 5_23 pm
Regimenes y o sistema politico de peru y ecuador 2021 09-14 hora 5_23 pm
.. ..1.1K vues
Reunión de apertura auditoria ejemplo par .. ..
Reunión de apertura auditoria ejemploReunión de apertura auditoria ejemplo
Reunión de apertura auditoria ejemplo
.. ..4.8K vues
Determinismo escuelas filosoficas par .. ..
Determinismo escuelas filosoficasDeterminismo escuelas filosoficas
Determinismo escuelas filosoficas
.. ..394 vues
Mantenimiento de Equipos de Computo par .. ..
Mantenimiento de Equipos de  Computo Mantenimiento de Equipos de  Computo
Mantenimiento de Equipos de Computo
.. ..505 vues
induccion febrero 2019 sena articulacion media tecnica sistemas par .. ..
induccion febrero 2019 sena articulacion media tecnica sistemasinduccion febrero 2019 sena articulacion media tecnica sistemas
induccion febrero 2019 sena articulacion media tecnica sistemas
.. ..3.7K vues
diplomado innovatic . Diplomado para docentes innovadores en el uso pedagogic... par .. ..
diplomado innovatic . Diplomado para docentes innovadores en el uso pedagogic...diplomado innovatic . Diplomado para docentes innovadores en el uso pedagogic...
diplomado innovatic . Diplomado para docentes innovadores en el uso pedagogic...
.. ..1.4K vues
ACTIVAR EL EXCEL, WORD, Y POWER POINT en los portátiles de CPE computadores p... par .. ..
ACTIVAR EL EXCEL, WORD, Y POWER POINT en los portátiles de CPE computadores p...ACTIVAR EL EXCEL, WORD, Y POWER POINT en los portátiles de CPE computadores p...
ACTIVAR EL EXCEL, WORD, Y POWER POINT en los portátiles de CPE computadores p...
.. ..3.4K vues
resumen prendo y aprendo cpe 2018 junio 27 par .. ..
resumen prendo y aprendo cpe 2018 junio 27resumen prendo y aprendo cpe 2018 junio 27
resumen prendo y aprendo cpe 2018 junio 27
.. ..903 vues
LIDER REGIONAL requisitos como tomar fotos y productos 2018 par .. ..
LIDER REGIONAL requisitos como tomar fotos y productos 2018LIDER REGIONAL requisitos como tomar fotos y productos 2018
LIDER REGIONAL requisitos como tomar fotos y productos 2018
.. ..543 vues
LIDER REGIONAL requisitos como tomar fotos y productos par .. ..
LIDER REGIONAL requisitos como tomar fotos y productosLIDER REGIONAL requisitos como tomar fotos y productos
LIDER REGIONAL requisitos como tomar fotos y productos
.. ..444 vues
Visitas a sedes para revisar requisitos de estabilizadores y charla par .. ..
Visitas a sedes para revisar requisitos de estabilizadores y charlaVisitas a sedes para revisar requisitos de estabilizadores y charla
Visitas a sedes para revisar requisitos de estabilizadores y charla
.. ..301 vues
Contenidos para aprender - ulite presentacion power point par .. ..
Contenidos para aprender - ulite presentacion power pointContenidos para aprender - ulite presentacion power point
Contenidos para aprender - ulite presentacion power point
.. ..322 vues
taller prendo y aprendo 2018 CPE par .. ..
taller prendo y aprendo 2018 CPEtaller prendo y aprendo 2018 CPE
taller prendo y aprendo 2018 CPE
.. ..411 vues
requisitos que necesito para cada sede par .. ..
requisitos que necesito para cada sederequisitos que necesito para cada sede
requisitos que necesito para cada sede
.. ..175 vues
LIDER REGIONAL requisitos como tomar fotos y productos par .. ..
LIDER REGIONAL requisitos como tomar fotos y productosLIDER REGIONAL requisitos como tomar fotos y productos
LIDER REGIONAL requisitos como tomar fotos y productos
.. ..187 vues
kiosco vive digital Ejemplos de caso de exito 2016 y 2017 par .. ..
kiosco vive digital Ejemplos de caso de exito 2016 y 2017kiosco vive digital Ejemplos de caso de exito 2016 y 2017
kiosco vive digital Ejemplos de caso de exito 2016 y 2017
.. ..162 vues
DOS Esquemas de rotacion cuando se entrega 110 terminales y 45 terminales par .. ..
DOS Esquemas de rotacion cuando se entrega 110 terminales y 45 terminalesDOS Esquemas de rotacion cuando se entrega 110 terminales y 45 terminales
DOS Esquemas de rotacion cuando se entrega 110 terminales y 45 terminales
.. ..136 vues
Scrum manager par .. ..
Scrum manager Scrum manager
Scrum manager
.. ..3K vues
la guía oficial de Scrum en español par .. ..
la guía oficial de Scrum en españolla guía oficial de Scrum en español
la guía oficial de Scrum en español
.. ..1K vues

Dernier

Fase 4- Estudio de la geometría analítica.pptx par
Fase 4- Estudio de la geometría analítica.pptxFase 4- Estudio de la geometría analítica.pptx
Fase 4- Estudio de la geometría analítica.pptxblogdealgebraunad
33 vues15 diapositives
Inteligencia Artificial en las aulas par
Inteligencia Artificial en las aulasInteligencia Artificial en las aulas
Inteligencia Artificial en las aulasLorena Fernández
124 vues21 diapositives
BDA MATEMATICAS (2).pptx par
BDA MATEMATICAS (2).pptxBDA MATEMATICAS (2).pptx
BDA MATEMATICAS (2).pptxluisahumanez2
43 vues12 diapositives
Tema 3 Modulo IV Redacción de Articulos.pdf par
Tema 3 Modulo IV Redacción de Articulos.pdfTema 3 Modulo IV Redacción de Articulos.pdf
Tema 3 Modulo IV Redacción de Articulos.pdfRevista Crítica con Ciencia (e-ISSN: 2958-9495)
62 vues11 diapositives
Act#14 BT. 3.4 Organizacion Seres Vivos 2023 Online.pptx par
Act#14 BT. 3.4 Organizacion Seres Vivos 2023 Online.pptxAct#14 BT. 3.4 Organizacion Seres Vivos 2023 Online.pptx
Act#14 BT. 3.4 Organizacion Seres Vivos 2023 Online.pptxIntegrated Sciences 8 (2023- 2024)
133 vues65 diapositives
Unicómic 25 años: líneas de investigación para la Didáctica de la Lengua y la... par
Unicómic 25 años: líneas de investigación para la Didáctica de la Lengua y la...Unicómic 25 años: líneas de investigación para la Didáctica de la Lengua y la...
Unicómic 25 años: líneas de investigación para la Didáctica de la Lengua y la...IGNACIO BALLESTER PARDO
28 vues42 diapositives

Dernier(20)

Fase 4- Estudio de la geometría analítica.pptx par blogdealgebraunad
Fase 4- Estudio de la geometría analítica.pptxFase 4- Estudio de la geometría analítica.pptx
Fase 4- Estudio de la geometría analítica.pptx
Unicómic 25 años: líneas de investigación para la Didáctica de la Lengua y la... par IGNACIO BALLESTER PARDO
Unicómic 25 años: líneas de investigación para la Didáctica de la Lengua y la...Unicómic 25 años: líneas de investigación para la Didáctica de la Lengua y la...
Unicómic 25 años: líneas de investigación para la Didáctica de la Lengua y la...
Norma de Evaluacion de Educacion Secundaria LSB-2023 Ccesa007.pdf par Demetrio Ccesa Rayme
Norma de Evaluacion de  Educacion Secundaria LSB-2023  Ccesa007.pdfNorma de Evaluacion de  Educacion Secundaria LSB-2023  Ccesa007.pdf
Norma de Evaluacion de Educacion Secundaria LSB-2023 Ccesa007.pdf
FORTI-DICIEMBRE.2023.pdf par El Fortí
FORTI-DICIEMBRE.2023.pdfFORTI-DICIEMBRE.2023.pdf
FORTI-DICIEMBRE.2023.pdf
El Fortí163 vues

1 tutorial de mongo db

  • 1. UNIVERSIDAD DE LOS ANDES REDES SOCIALES Ing. Diego Hernando Torres Valencia Tópicos Especiales: Ciencias de los datos aplicadas a las redes sociales
  • 2. 1. MAP REDUCE 2. PROYECTO EN PHP 1.1. Mongo db Ing. Diego Hernando Torres Valencia CONTENIDO: UNIVERSIDAD DE LOS ANDES
  • 3. REDES SOCIALES MAP REDUCE MapReduce es un modelo de programación utilizado por Google para dar soporte a la computación paralela sobre grandes colecciones de datos en grupos decomputadoras y al commodity computing. El nombre del framework está inspirado en los nombres de dos importantes métodos, macros o funciones en programación funcional: Map y Reduce. MapReduce ha sido adoptado mundialmente, ya que existe una implementación OpenSource denominada Hadoop. Su desarrollo fue liderado inicialmente por Yahoo y actualmente lo realiza el proyecto Apache. En esta década de los años 2010 existen diversas iniciativas similares a Hadoop tanto en la industria como en el ámbito académico. Se han escrito implementaciones de bibliotecas de MapReduce en diversos lenguajes de programación como C++, Java y Python. MapReduce se emplea en la resolución práctica de algunos algoritmos susceptibles de ser paralelizados. No obstante MapReduce no es la solución para cualquier problema, de la misma forma que cualquier problema no puede ser resuelto eficientemente por MapReduce.Por regla general se abordan problemas con datasets de gran tamaño, alcanzando los petabytes de tamaño. Es por esta razón por la que este framework suele ejecutarse en sistema de archivos distribuidos (HDFS)
  • 4. REDES SOCIALES MAP REDUCE La función map(): se encarga del mapeo y es aplicada en paralelo para cada ítem en la entrada de datos. Esto produce una lista de pares (k2,v2) por cada llamada. Después de eso, el framework de MAPREDUCE junta todos los pares con la misma clave de todas las listas y los agrupa, creando un grupo por cada una de las diferentes claves generadas. La función reduce(): cada llamada a Reduce típicamente produce un valor v3 o una llamada vacía, aunque una llamada puede retornar más de un valor. El retorno de todas esas llamadas se recoge como la lista de resultado deseado. BIG DATA = Leer un monton de datos MAP =Extraer algo que te importa de cada registro Baraja y Ordenar REDUCE=Agregado, resumir, filtrar o transformar los resultados escritos.
  • 5. MONGODB: Características BBDD orientadas a Documentos • Modelo de datos: colecciones de documentos que contienen colecciones de claves-valor • Ejemplos: CouchDB, MongoDB • Buenas en: – Modelado de datos natural – Amigables al programador – Desarrollo rápido – Orientas a la web: CRUD
  • 6. • Una base de datos orientada a documentos es un programa diseñado para almacenar, recuperar y gestionar información semi-estructurada orientada a documentos: – Un documento encapsula información en un formato estándar (XML, YAML, JSON o BSON): • Los documentos en una BBDD orientada a documentos son similares a registros pero no requieren un esquema estándar con la mismas secciones, huecos, partes, claves y similar • Los documentos suelen ser direccionables por una clave que los representa unívocamente • Además de la búsqueda por clave de documento, estas BBDD suelen ofrecer una API o lenguaje de consultas que permite recuperar documentos en base a sus contenidos MONGODB: Características BBDD orientadas a Documentos
  • 8. BASES DE DATOS QUE USAN LAS GRANDES EMPRESAS Empresa Base de datos Foursquare MongoDB Foursquare es un servicio basado en localización web aplicada a las redes sociales. La geolocalización permite localizar un dispositivo fijo o móvil en una ubicación geográfica La idea principal de la red es marcar (check-in) lugares específicos donde uno se encuentra e ir ganando puntos por «descubrir» nuevos lugares; la recompensa son las "Badges", una especie de medallas, y las "Alcaldías" (Mayorships), que son ganadas por las personas que más hacen "check-ins" en un cierto lugar en los últimos 60 días. A partir de la información que los usuarios han ido introduciendo, el servicio ha ido evolucionando hacia un motor de recomendaciones que sugiere lugares interesantes de manera inteligente.
  • 9. • MongoDB (de la palabra en ingles “humongous” que significa enorme) es un sistema de base de datos NoSQL orientado a documentos • MongoDB guarda estructuras de datos en documentos tipo BSON (Binary JSON (JSON Binario) con un esquema dinámico , haciendo que la integración de los datos en ciertas aplicaciones sea mas fácil y rápida. • The MongoDB Manual: – http://docs.mongodb.org/manual/ MongoDB
  • 10. Características Principales • Consultas Ad hoc – MongoDB soporta la búsqueda por campos, consultas de rangos y expresiones regulares. Las consultas pueden devolver un campo específico del documento pero también puede ser una función JavaScript definida por el usuario. • Indexación – Cualquier campo en un documento de MongoDB puede ser indexado, al igual que es posible hacer índices secundarios. El concepto de índices en MongoDB es similar a los encontrados en base de datos relacionales. • Replicación – MongoDB soporta el tipo de replicación maestro-esclavo. El maestro puede ejecutar comandos de lectura y escritura. El esclavo puede copiar los datos del maestro y sólo se puede usar para lectura o para copia de seguridad, pero no se pueden realizar escrituras. El esclavo tiene la habilidad de poder elegir un nuevo maestro en caso del que se caiga el servicio con el maestro actual. • Balanceo de carga – MongoDB se puede escalar de forma horizontal usando el concepto de “shard”. – El desarrollador elije una llave shard, la cual determina como serán distribuidos los datos en una colección. los datos son divididos en rangos (basado en la llave shard) y distribuidos a través de múltiples shard. – Un shard es un maestro con uno o más esclavos. – MongoDB tiene la capacidad de ejecutarse en múltiple servidores, balanceando la carga y/o duplicando los datos para poder mantener el sistema funcionando en caso que exista un fallo de hardware. • Almacenamiento de archivos – MongoDB puede ser utilizado con un sistema de archivos, tomando la ventaja de la capacidad que tiene MongoDB para el balanceo de carga y la replicación de datos utilizando múltiples servidores para el almacenamiento de archivos. – Esta función (que es llamada GridFS ) está incluida en los drivers de MongoDB y disponible para los lenguajes de programación que soporta MongoDB. • Agregación – La función MapReduce puede ser utilizada para el procesamiento por lotes de datos y operaciones de agregación. Esta función permite que los usuarios puedan obtener el tipo de resultado que se obtiene cuando se utiliza el comando SQL “group-by”. • Ejecución de JavaScript del lado del servidor – MongoDB tiene la capacidad de realizar consultas utilizando JavaScript, haciendo que estas sean enviadas directamente a la base de datos para ser ejecutadas.
  • 11. Casos de uso de MongoDB • Almacenamiento y registro de eventos • Para sistemas de manejo de documentos y contenido • Comercio Electrónico • Juegos • Problemas de alto volumen • Aplicaciones móviles • Almacén de datos operacional de una página Web • Manejo de contenido • Almacenamiento de comentarios – Votaciones – Registro de usarios – Perfiles de usuarios – Sesiones de datos • Proyectos que utilizan metodologías de desarrollo iterativo o ágiles • Manejo de estadísticas en tiempo real
  • 12. MongoDB • Similar a CouchDB • Pretende combinar lo mejor de los almacenes clave/valor, bases de datos de documentos y RDBMS • Hace uso de JSON y tiene su propio lenguaje de consultas • Implementada en C++ • Es quizás el motor NoSQL más popular • Usada por SourceForge, Bit.ly, Foursquare o GitHub • URL: http://www.mongodb.org/
  • 13. Manipulación de Datos: colecciones y documentos • MongoDB guarda la estructura de los datos en documentos tipo JSON (JavaScript Object Notation) con un esquema dinámico llamado BSON, lo que implica que no existe un esquema predefinido. • Los elementos de los datos son llamados documentos y se guardan en colecciones • Una colección puede tener un número indeterminado de documentos – Las colecciones son como tablas y los documentos – Cada documento en una colección puede tener diferentes campos. • La estructura de un documento es simple y compuesta por “key-value pairs” parecido a las matrices asociativas en un lenguaje de programación – Como valor se pueden usar números, cadenas o datos binarios como imágenes o cualquier otro “key-value pairs”.
  • 14. Ejemplo de documento en MongoDB { "_id": ObjectId("4efa8d2b7d284dad101e4bc7"), "Last Name": "PELLERIN", "First Name": "Franck", "Age": 29, "Address": { "Street": "1 chemin des Loges", "City": "VERSAILLES" } }
  • 15. Utilidades de MongoDB • Los siguientes comandos pueden ser instalados para el manejo y la administración del sistema de base de datos: • mongo: es un Shell interactivo que permite a los desarrolladores ver, insertar, eliminar y actualizar datos en su base de datos. Este también permite entre otras funciones la replicación de información, configurar los Shards, apagar los servidores y ejecutar JavaScript. • mongostat: es un instrumento de línea de comandos que muestra en resumen una lista de estadísticas de una instancia de MongoDB en ejecución. Esto te permite visualizar cuantas inserciones, actualizaciones, eliminaciones, consultas y comandos se han ejecutado, pero también cuanta memoria esta utilizando y cuanto tiempo ha estado cerrada la base de datos. • mongotop: es un instrumento de línea de comandos que provee un método para dar seguimiento a la cantidad de tiempo que dura una la lectura o escritura de datos en una instancia. También provee estadísticas en el nivel de cada colección. • mongosniff: es un instrumento de línea de comandos que provee un sniffing en la base de datos haciendo un sniffing en el tráfico de la red que va desde y hacia MongoDB. • mongoimport/mongoexport: es un instrumento de línea de comandos que facilita la importación exportación de contenido desde JSON, CSV o TSV. También tiene el potencial de importar o exportar hacia otros formatos. • mongodump/mongorestore: es un instrumento de línea de comandos para la creación de una exportación binaria del contenido de la base de datos. Estos comandos son utilizado para la estrategia de copias de seguridad cuando se utiliza MongoDB.
  • 16. Documentación e instalación • La documentación completa de MongoDB puede encontrarse en: – http://docs.mongodb.org/manual/ • Instrucciones para instalar MongoDB en Windows: – Descargar de: http://docs.mongodb.org/manual/tutorial/install-mongodb-on- windows/ – Crear directorio de datos: mkdir data/db – Ejecutar el comando: mongod.exe --dbpath ..datadb – Ejecutar el cliente de mongo y los siguientes comandos en JavaScript: C:Programmingutilitiesmongodb-win32-x86_64-2.0.6bin>mongo MongoDB shell version: 2.0.6 connecting to: test > db.test.save( {a:1} ) > db.test.find() { "_id" : ObjectId("4fe6e41b184d3a26629be9b6"), "a" : 1 } >
  • 17. Usando MongoDB • mongo es un shell JavaScript completo, cualquier función JavaScript, sintáxis o clase puede usarse en el shell use mydb j = { name : "mongo" }; t = { x : 3 }; db.things.save(j); db.things.save(t); db.things.find(); for (var i = 1; i <= 20; i++) db.things.save({x : 4, j : i}); db.things.find(); // Iterate through the remaining items it // Store the cursor of the DB in a variable var cursor = db.things.find(); while (cursor.hasNext()) printjson(cursor.next()); // Use functional features of JavaScript db.things.find().forEach(printjson); // cursor like an array var cursor = db.things.find(); printjson(cursor[4]); // The query expression is an document itself. db.things.find({name:"mongo"}).forEach(printjson); db.things.find({x:4}).forEach(printjson); db.things.find({x:4}, {j:true}).forEach(printjson);
  • 18. Documentos de consulta • Documentos que indican el patrón de claves y valores que deben ser localizados • Ejemplos: – SELECT * FROM things WHERE name="mongo“ • db.things.find({name:"mongo"}).forEach(printjson); – SELECT * FROM things WHERE x=4 • db.things.find({x:4}).forEach(printjson); – SELECT j FROM things WHERE x=4 • db.things.find({x:4}, {j:true}).forEach(printjson); – Recuperar el primer elemento que cumple alguna restricción: • printjson(db.things.findOne({name:"mongo"})); – Limitar el número de resultados: • db.things.find().limit(3); • More info at: – SQL to Mongo Mapping Chart • http://www.mongodb.org/display/DOCS/SQL+to+Mongo+Mapping+Chart
  • 19. GridFS • GridFS is a specification for storing large files in MongoDB – The database supports native storage of binary data within BSON objects – BSON objects in MongoDB are limited in size (4MB older versions, 16MB in v1.7/1.8, higher limits in the future) • GridFS spec provides a mechanism for transparently dividing a large file among multiple documents – Each file has a metadata object in a files collection, and one or more chunk objects in a chunks collection. • URL: http://www.mongodb.org/display/DOCS/GridFS – Specification: http://www.mongodb.org/display/DOCS/GridFS+Specification
  • 20. MongoDB and Java • Java Tutorial: http://www.mongodb.org/display/DOCS/Java+Tutori al • Una lista de buenos ejemplos en MongoDB programados con Java: – http://www.mkyong.com/tutorials/java-mongodb- tutorials/ • Ejemplo using GridFS con MongoDB – http://www.mkyong.com/mongodb/java-mongodb-save- image-example/
  • 22. MongoDB Acceder al icono del softwareNecesitamos instalar el software Robomongo para administrar la base de datos MongoDB, ya que por medio del software :Robomongo podemos visualizar por medio de una interfaz grafica y administrar la base MongoDB de forma mas sencilla. PAGINA DE DESCARGA: http://robomongo.org/
  • 23. Administrador de interfaces de usuario : robomongo PAGINA DE DESCARGA: http://robomongo.org/ Acceder al icono del software
  • 24. Administrador de interfaces de usuario : robomongo PAGINA DE DESCARGA: http://robomongo.org/ Realizo la instalación del programa que me permite administrar por medio de la interfaz grafica La base de datos MongoDB. Acceder al icono del software
  • 25. Administrador de interfaces de usuario : robomongo CREAMOS LA CONEXIÓN A LA BASE DE DATOS MONGODB.
  • 26. Administrador de interfaces de usuario : robomongo Guardamos la CONEXIÓN A LA BASE DE DATOS MONGODB.
  • 27. Administrador de interfaces de usuario : robomongo Realizar la CONEXIÓN A LA BASE DE DATOS MONGODB. NOTA: PARA REALIZAR LA CONEXIÓN CON LA BASE DE DATOS MONGODB, HAY QUE INICIAR LOS SERVICIOS DE LA BASE DE DATOS POR MEDIO DE 2 TERMINALES SHELL O CMD,como muestro mas adelante
  • 28. MongoDB Comenzamos la pratica para Gestionar la base de datos MongoDB por medio del terminal o consola de Windows:
  • 29. MongoDB Gestionar la base de datos MongoDB por medio del terminal o consola de Windows: Abrimos dos terminales para ejecutar la base de datos: MongoDB
  • 30. MongoDB 1. CREAR CONEXIÓN EN UNA PRIMERA VENTANA SHELL C:Program FilesMongoDB 2.6 Standardbin>mongod.exe 2. CORRER MONGO EN UNA SEGUNDA VENTANA SHELL C:Program FilesMongoDB 2.6 Standardbin>mongo.exe ABRIR DOS VENTANAS SHELL
  • 31. MongoDB Gestionar la base de datos MongoDB por medio del terminal o consola de Windows: Seguiremos utilizando las dos terminales para ejecutar la base de datos: MongoDB NOTA: IMPORTANTE: En la segunda ventana donde colocamos a correr mongo, por medio del Comando: mongo.exe , en esta segunda ventana o terminal cmd ; vamos a trabajar con Diferentes comandos para insertar documentos en la base de datos: MongoDB
  • 32. MongoDB En la segunda ventana Shell o cmd, colocamos el comando: 1.INSERTAR DATOS > db.test.save( {a:1} )
  • 33. MongoDB En la segunda ventana Shell o cmd, colocamos el comando: 2.CONSULTAR DATOS > db.test.find()
  • 34. MongoDB: comando help En la segunda ventana Shell o cmd, colocamos el comando help
  • 35. MongoDB: comando show dbs COMANDO: show dbs Mostrar todo lo que hay adentro de mongo o que bases de datos hay. show dbs
  • 36. MongoDB: comando use COMANDO: use Crear una base de datos. use miPrimeraBasededatos
  • 37. MongoDB: comando de asignación = para crear variables COMANDO DE ASIGNACION Introducir algo a la base de datos. Crear unas variables con datos.. a = { nombre: “Diego Torres Valencia ”} b = { edad : 28 }
  • 39. Puebo revisar el estado de: la base de datos: miPrimeraBasedeDatos, Colección: personas y los respectivos campos nombre y edad, Ademas se crea el id único por medio de la MAC del Computador haciendo este índice único en todo el mundo. MongoDB: Robomongo visualiza la base de datos mongoDB
  • 40. MongoDB: comando show collections COMANDO show collections show collections
  • 41. MongoDB: comando db.personas.find() COMANDO db.personas.find() Muestra la colección personas con los 2 documentos que hemos creados, y cada documento tiene un índice o id único. Nos muestra la colección personas en formato JSON (JavaScript Object Notation). db.personas.find( )
  • 42. MongoDB: crear una segunda coleccion CREAR UNA SEGUNDA COLECCIÓN LLAMADA amigos use.miPrimeraBasedeDatos db.amigos.insert({ nombre: “Juan ”, teléfono: 31248608 , dirección:”barrio colpet #2- 45” } )
  • 43. MongoDB: mostrar la segunda coleccion MOSTRAR LA SEGUNDA COLECCIÓN LLAMADA amigos db.amigos.find()
  • 44. Puebo revisar el estado de: la base de datos: miPrimeraBasedeDatos, Colección: amigos y personas y los respectivos campos nombre y edad, Ademas se crea el id único por medio de la MAC del Computador haciendo este índice único en todo el mundo. MongoDB: Robomongo visualiza la base de datos mongoDB
  • 45. MongoDB: Borrar un campo de un documento BORRAR UN CAMPO DE UN DOCUMENTO DE UNA COLECCION LLAMADA personas db.personas.remove({edad:28})
  • 46. MongoDB: Actualizar un campo de un documento ACTUALIZAR UN CAMPO DE UN DOCUMENTO DE UNA COLECCION LLAMADA personas db.personas.find() db.personas.update( {nombre:”Diego Torres Valencia”} , { nombre:” Don Diego”} )
  • 47. Puebo revisar el estado de: la base de datos: miPrimeraBasedeDatos, Colección: personas y los respectivos campos nombre y edad, Ademas se revisa que se actualizo el campo nombre de “Diego Torres Valencia” y el campo quedo actualizado: “Don Diego”. MongoDB: Robomongo visualiza la base de datos mongoDB
  • 48. MongoDB: Añadir campos a un documento AÑADIR O ACTUALIZAR UN CAMPO DE UN DOCUMENTO DE UNA COLECCION LLAMADA personas db.personas.find() db.personas.update( {Nombre:” Don Diego”} , { $set :{ apellido:” Valencia” ,alias:”dieguin”} } )
  • 49. Puebo revisar el estado de: la base de datos: miPrimeraBasedeDatos, Colección: personas y los respectivos campos nombre y edad, Ademas se visualiza los dos nuevos campos creados Apellido: “Valencia” Alias: “Dieguin” MongoDB: Robomongo visualiza la base de datos mongoDB
  • 50. MongoDB:Borrar base de datos creada BORRAR BASE DE DATOS CREADA Use miPrimeraBasedeDatos db.dropDatabase()
  • 51. Borramos la base de datos: miPrimeraBasedeDatos, Ademas se visualiza en Robomongo que se borro la base de datos . MongoDB: Robomongo visualiza la base de datos mongoDB
  • 56. Bibliografía Fuentes bibliográficas • PMBOK. (2003) Guía Fundamental para la Gestión de Proyectos. Edición project management Institute, Inc. • Rodríguez Bermúdez, José Ramón; García Mínguez, Jordi; Lamarca Orozco, Ignacio. (2007): “Gestión de proyectos informáticos: métodos, herramientas y casos”. Editorial UOC, S.L., Madrid. ISBN 8497885686. Libro guía • Sánchez Garreta, José Salvador. (2003): “Ingeniería de proyectos informáticos: actividades y procedimientos”. Edición ilustrada. Editor Universidad Jaume, Córdoba. ISBN 8480214082, 9788480214087 • Fuentes digitales o electrónicas • Medellín, (2011, agosto). Dirección de proyectos. Recuperado el 23 de agosto de 2011, del sitio web http://www.slideshare.net/albinogoncalves/direccin-de-proyectos-de-ti- i?src=related_normal&rel=130864
  • 57. Fin de la presentación. MUCHAS GRACIAS Copyright 2014, Todos los Derechos Reservados.