SlideShare a Scribd company logo
1 of 15
ac.jose.31@gmail.com
JOSÉ MANUEL
ÁLVAREZ CÁRDENAS
ac.jose.31@gmail.com
 NoSQL – "not only SQL” es un término utilizado para describir
un subconjunto de bases de datos que difiere en varios modos
de bases de datos tradicionales (RDBMS).
 Es una categoría general de sistemas de gestión de bases de
datos que difiere de modelo relacionales clásicos (RDBMS) en
diferente modos:
 Estos datastores no requieren esquemas de información fijas
 Evitan las operaciones JOIN y escalan horizontalmente
 De hecho, tanto las bases de datos NoSQL como las
relacionales son tipos de Almacenamiento Estructurado
 La principal diferencia radica en cómo guardan los datos (por
ejemplo, almacenamiento de un recibo):
 En una RDBMS tendríamos que partir la información en
diferentes tablas y luego usar un lenguaje de programación en la
parte servidora para transformar estos datos en objetos de la
vida real.
 En NoSQL, simplemente guardas el recibo:
 NoSQL es libre de esquemas mas, tú no diseñas tus tablas y su
estructura por adelantado.
¿POR QUÉ NOSQL?
 TENDENCIA 1: TAMAÑO
 Hemos creado más datos en los últimos dos años que en todos
los años anteriores Exabytes por año
 TENDENCIA 2: CONECTIVIDAD
 Los datos están cada vez más entrelazados y conectados
 De documentos de texto a Wikis a RDF a grafos gigantes
conectados
 TENDENCIA 3: DATOS SEMI-ESTRUCTURADOS
 Los datos son cada vez más desestructurados
 TENDENCIA 4: ARQUITECTURA
 El software orientado a servicios actual donde cada servicio
tiene su back-end
 El desarrollo de MongoDB empezó con la empresa de software
10gen en el 2007, cuando estaban desarrollando una
plataforma como servicio (PAAS) similar al conocido Google
App Engine
 Modelo de desarrollo Código abierto
 Lanzamiento inicial 2009
 Última versión estable2.4.3 (info)
23 de abril de 2013; hace 15 días
 Género Base de datos, NoSQL
 Programado en C++
 Sistema operativo
Multiplataforma
 Licencia GNU AGPL v3.0
(drivers: licencia Apache)
 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
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.
CARACTERÍSTICAS PRINCIPALES
 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.
CARACTERÍSTICAS PRINCIPALES
 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.
EJEMPLO DE DOCUMENTO EN MONGODB
{
"_id": ObjectId("4efa8d2b7d284dad101e4bc7"),
"Last Name": "PELLERIN",
"First Name": "Franck",
"Age": 29,
"Address": {
"Street": "1 chemin des Loges",
"City": "VERSAILLES"
}
}
USANDO MONGODB
 Mongo es un shell JavaScript completo, cualquier función
JavaScript, sintáxis o clase puede usarse en el shell
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();
// Iterar a través de los elementos restantes que
// Guarde el cursor del DB en una variable
var cursor = db.things.find();
while (cursor.hasNext()) printjson(cursor.next());
// Uso de las características funcionales de JavaScript
db.things.find().forEach(printjson);
// Cursos como una matriz
var cursor = db.things.find();
printjson(cursor[4]);
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);
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 }
>
MONGODB - NOSQL

More Related Content

What's hot (20)

NoSQL - MongoDB
NoSQL - MongoDBNoSQL - MongoDB
NoSQL - MongoDB
 
Introducción a NoSQL con MongoDB
Introducción a NoSQL con MongoDBIntroducción a NoSQL con MongoDB
Introducción a NoSQL con MongoDB
 
Base de datos
Base de datosBase de datos
Base de datos
 
Mongo db
Mongo dbMongo db
Mongo db
 
Mongo db
Mongo dbMongo db
Mongo db
 
Mongodb
MongodbMongodb
Mongodb
 
CouchDB y el desarrollo de aplicaciones Android
CouchDB y el desarrollo de aplicaciones AndroidCouchDB y el desarrollo de aplicaciones Android
CouchDB y el desarrollo de aplicaciones Android
 
MongoDB
MongoDBMongoDB
MongoDB
 
NoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradasNoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradas
 
MongoDB: la BBDD NoSQL más popular del mercado
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 mercado
 
Bases de datos NoSQL orientadas a documentos
Bases de datos NoSQL orientadas a documentosBases de datos NoSQL orientadas a documentos
Bases de datos NoSQL orientadas a documentos
 
Presentacion BD NoSQL
Presentacion  BD NoSQLPresentacion  BD NoSQL
Presentacion BD NoSQL
 
Comparación de algunos SGBDR
Comparación de algunos SGBDRComparación de algunos SGBDR
Comparación de algunos SGBDR
 
Mongo db
Mongo dbMongo db
Mongo db
 
Bases de datos avanzado NOSQL
Bases de datos avanzado NOSQLBases de datos avanzado NOSQL
Bases de datos avanzado NOSQL
 
Base de datos
Base de datosBase de datos
Base de datos
 
Bases de Datos No Relacionales
Bases de Datos No RelacionalesBases de Datos No Relacionales
Bases de Datos No Relacionales
 
Mongodb vs couchdb
Mongodb vs couchdb Mongodb vs couchdb
Mongodb vs couchdb
 
Diapositva
DiapositvaDiapositva
Diapositva
 
Mongo DB
Mongo DBMongo DB
Mongo DB
 

Viewers also liked

How and why we evolved a legacy Java web application to Scala... and we are s...
How and why we evolved a legacy Java web application to Scala... and we are s...How and why we evolved a legacy Java web application to Scala... and we are s...
How and why we evolved a legacy Java web application to Scala... and we are s...Katia Aresti
 
Un acercamiento a las bases de datos NoSQL
Un acercamiento a las bases de datos NoSQLUn acercamiento a las bases de datos NoSQL
Un acercamiento a las bases de datos NoSQLJavier Guillot Jiménez
 
Introduction to column oriented databases
Introduction to column oriented databasesIntroduction to column oriented databases
Introduction to column oriented databasesArangoDB Database
 
Sql vs NoSQL
Sql vs NoSQLSql vs NoSQL
Sql vs NoSQLRTigger
 
Hbase: Introduction to column oriented databases
Hbase: Introduction to column oriented databasesHbase: Introduction to column oriented databases
Hbase: Introduction to column oriented databasesLuis Cipriani
 
NoSQL Databases: Why, what and when
NoSQL Databases: Why, what and whenNoSQL Databases: Why, what and when
NoSQL Databases: Why, what and whenLorenzo Alberton
 

Viewers also liked (8)

How and why we evolved a legacy Java web application to Scala... and we are s...
How and why we evolved a legacy Java web application to Scala... and we are s...How and why we evolved a legacy Java web application to Scala... and we are s...
How and why we evolved a legacy Java web application to Scala... and we are s...
 
Sql vs nosql
Sql vs nosqlSql vs nosql
Sql vs nosql
 
Sql vs. NoSql
Sql vs. NoSqlSql vs. NoSql
Sql vs. NoSql
 
Un acercamiento a las bases de datos NoSQL
Un acercamiento a las bases de datos NoSQLUn acercamiento a las bases de datos NoSQL
Un acercamiento a las bases de datos NoSQL
 
Introduction to column oriented databases
Introduction to column oriented databasesIntroduction to column oriented databases
Introduction to column oriented databases
 
Sql vs NoSQL
Sql vs NoSQLSql vs NoSQL
Sql vs NoSQL
 
Hbase: Introduction to column oriented databases
Hbase: Introduction to column oriented databasesHbase: Introduction to column oriented databases
Hbase: Introduction to column oriented databases
 
NoSQL Databases: Why, what and when
NoSQL Databases: Why, what and whenNoSQL Databases: Why, what and when
NoSQL Databases: Why, what and when
 

Similar to MONGODB - NOSQL (20)

MongoDB
MongoDBMongoDB
MongoDB
 
Base de datos rodrigo
Base de datos rodrigoBase de datos rodrigo
Base de datos rodrigo
 
Act 04 rivera_alfredo_bd
Act 04 rivera_alfredo_bdAct 04 rivera_alfredo_bd
Act 04 rivera_alfredo_bd
 
Mongo db
Mongo dbMongo db
Mongo db
 
Mongo db
Mongo dbMongo db
Mongo db
 
Base de datos
Base de datosBase de datos
Base de datos
 
Ultisgbd
UltisgbdUltisgbd
Ultisgbd
 
Servicios de base de datos multimodelo NoSQL con Azure CosmosDB y aplicación...
Servicios de base de datos multimodelo  NoSQL con Azure CosmosDB y aplicación...Servicios de base de datos multimodelo  NoSQL con Azure CosmosDB y aplicación...
Servicios de base de datos multimodelo NoSQL con Azure CosmosDB y aplicación...
 
Jean piere sarumo mongodb
Jean piere sarumo mongodbJean piere sarumo mongodb
Jean piere sarumo mongodb
 
Mongo db
Mongo dbMongo db
Mongo db
 
Base de datos
Base de datosBase de datos
Base de datos
 
Act. 4 screencast y base de datos norma
Act. 4 screencast y base de datos normaAct. 4 screencast y base de datos norma
Act. 4 screencast y base de datos norma
 
Rila
RilaRila
Rila
 
Actividad 4
Actividad 4Actividad 4
Actividad 4
 
Pricipales bases de datos
Pricipales bases de datosPricipales bases de datos
Pricipales bases de datos
 
Practica 2 base de datos
Practica 2 base de datosPractica 2 base de datos
Practica 2 base de datos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Principales bases de datos existentes
Principales bases de datos existentesPrincipales bases de datos existentes
Principales bases de datos existentes
 
Mongo db
Mongo dbMongo db
Mongo db
 

Recently uploaded

Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
Éteres. Química Orgánica. Propiedades y reacciones
Éteres. Química Orgánica. Propiedades y reaccionesÉteres. Química Orgánica. Propiedades y reacciones
Éteres. Química Orgánica. Propiedades y reaccionesLauraColom3
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
CLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdfCLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdfJonathanCovena1
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxlupitavic
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 

Recently uploaded (20)

Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Éteres. Química Orgánica. Propiedades y reacciones
Éteres. Química Orgánica. Propiedades y reaccionesÉteres. Química Orgánica. Propiedades y reacciones
Éteres. Química Orgánica. Propiedades y reacciones
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
CLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdfCLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdf
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 

MONGODB - NOSQL

  • 2.  NoSQL – "not only SQL” es un término utilizado para describir un subconjunto de bases de datos que difiere en varios modos de bases de datos tradicionales (RDBMS).  Es una categoría general de sistemas de gestión de bases de datos que difiere de modelo relacionales clásicos (RDBMS) en diferente modos:  Estos datastores no requieren esquemas de información fijas  Evitan las operaciones JOIN y escalan horizontalmente  De hecho, tanto las bases de datos NoSQL como las relacionales son tipos de Almacenamiento Estructurado
  • 3.  La principal diferencia radica en cómo guardan los datos (por ejemplo, almacenamiento de un recibo):  En una RDBMS tendríamos que partir la información en diferentes tablas y luego usar un lenguaje de programación en la parte servidora para transformar estos datos en objetos de la vida real.  En NoSQL, simplemente guardas el recibo:  NoSQL es libre de esquemas mas, tú no diseñas tus tablas y su estructura por adelantado.
  • 4. ¿POR QUÉ NOSQL?  TENDENCIA 1: TAMAÑO  Hemos creado más datos en los últimos dos años que en todos los años anteriores Exabytes por año  TENDENCIA 2: CONECTIVIDAD  Los datos están cada vez más entrelazados y conectados  De documentos de texto a Wikis a RDF a grafos gigantes conectados  TENDENCIA 3: DATOS SEMI-ESTRUCTURADOS  Los datos son cada vez más desestructurados  TENDENCIA 4: ARQUITECTURA  El software orientado a servicios actual donde cada servicio tiene su back-end
  • 5.  El desarrollo de MongoDB empezó con la empresa de software 10gen en el 2007, cuando estaban desarrollando una plataforma como servicio (PAAS) similar al conocido Google App Engine  Modelo de desarrollo Código abierto  Lanzamiento inicial 2009  Última versión estable2.4.3 (info) 23 de abril de 2013; hace 15 días  Género Base de datos, NoSQL  Programado en C++  Sistema operativo Multiplataforma  Licencia GNU AGPL v3.0 (drivers: licencia Apache)
  • 6.  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
  • 7. 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.
  • 8. CARACTERÍSTICAS PRINCIPALES  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.
  • 9. CARACTERÍSTICAS PRINCIPALES  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.
  • 10. EJEMPLO DE DOCUMENTO EN MONGODB { "_id": ObjectId("4efa8d2b7d284dad101e4bc7"), "Last Name": "PELLERIN", "First Name": "Franck", "Age": 29, "Address": { "Street": "1 chemin des Loges", "City": "VERSAILLES" } }
  • 11. USANDO MONGODB  Mongo es un shell JavaScript completo, cualquier función JavaScript, sintáxis o clase puede usarse en el shell 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(); // Iterar a través de los elementos restantes que // Guarde el cursor del DB en una variable var cursor = db.things.find(); while (cursor.hasNext()) printjson(cursor.next()); // Uso de las características funcionales de JavaScript db.things.find().forEach(printjson); // Cursos como una matriz var cursor = db.things.find(); printjson(cursor[4]);
  • 12. 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);
  • 13.
  • 14. 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 } >