MongoDB la base de datos NoSQL

2,765 views
2,608 views

Published on

Conferencia dictada en el Auditorio del Area de Energia de la Universidad Nacional de Loja dentro del ciclo de conferencias organizado por los docentes de la asignatura de Bases de Datos para sus alumnos.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,765
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
124
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

MongoDB la base de datos NoSQL

  1. 1. Carrera de Ingeniería en SistemasUniversidad Nacional de Loja La Base de Datos NoSQL Milton Labanda Departamento de Desarrollo de Software UNL - 2012
  2. 2. Siempre va bien un poco de historia● 1970 Aparecen las Bases de Datos Relacionales: – Origen en las Universidades, costosas, necesitan normalizarse, se abstraen de la aplicación● 1980 Las Bases de Datos se hacen comerciales: – Aparece SQL, prolifera el modelo Cliente Servidor● 1990 El modelo Cliente/Servidor evoluciona: – Arquitecturas de 3 y n capas, Internet y la Web● 2000 Web 2.0: – Social Media, e-commerce, hardware más barato (en vez de comprar monstruos costosos se compran varias máquinas pequeñas)● 2000 – 2010: Debilidades y oportunidades: – Desarrollo Agil – ORMs / sincronización con la aplicación, escalabilidad horizontal, desarrollo mas veloz, modelos de datos mas flexible
  3. 3. el antiguo mundo relacional ...
  4. 4. .. los nuevos mundos NoSQL Key-Value Column Graph Document
  5. 5. Ejemplos BD NoSQL
  6. 6. Características de MongoDB● Consultas Ad-hoc● Indexación● Replicación● Balanceo de Carga● Almacenamiento de archivos● Framework de agregación● JavaScript como lenguaje
  7. 7. MongoDB: Alta disponibilidad (ReplicaSets)
  8. 8. MongoDB: escalabilidad horizontal(sharding) MongoS MongoS MongoS Key Range Key Range Key Range Key Range 0..25 26..50 51..75 76.. 100 Primary Primary Primary Primary Secondary Secondary Secondary Secondary Secondary Secondary Secondary Secondary
  9. 9. MongoDB: Fácil Administración● Pocas cosas que configurar● Fácil de instalar● Fácil de Administrar
  10. 10. Equivalencias y ComparativaSQL MongoDBBase de Datos Base de DatosTabla ColecciónÍndice ÍndiceFila DocumentoColumna Campo JSON/BSONJoin Embedding / LinkingPrimary key _idGroup By Agregations
  11. 11. MongoDB basado en documentos{ _id : ObjectId("4e77bb3b8a3e000000004f7a"), fecha : Date("2011-09-19T02:10:11.3Z", autor : "Robet Stam", titulo : "Particionamiento (Sharding) en MongoDB", texto : "This is the text of the post. It could be very long.", etiquetas : [ "nosql", "database", “mongodb”, “escalabilidad” ], comentarios : [ { quien : "jane", fecha : Date("2011-09-19T04:00:10.112Z"), comentario : "Estoyde acuerdo." }, { quien: "bryan", fecha : Date("2011-09-20T14:36:06.958Z"), comentario : "Interesante etc ..." } ]}
  12. 12. MongoDB: consultasdb.asistentes.find(){ "_id" : ObjectId("4fefe96331d02ad8370ec780"), "nombre" : "Gabriel", "edad" : 19,"ciudad" : "Guayaquil", "institucion" : "ESPOL" }{ "_id" : ObjectId("4fefe98731d02ad8370ec781"), "nombre" : "Juan Pablo", "edad" :30, "ciudad" : "Loja", "institucion" : "UNL" }{ "_id" : ObjectId("4fefe9ab31d02ad8370ec782"), "nombre" : "Matias", "edad" : 24,"ciudad" : "Latacunga", "institucion" : "ESPE" }{ "_id" : ObjectId("4fefe9c631d02ad8370ec783"), "nombre" : "Carlos", "edad" : 28,"ciudad" : "Loja", "institucion" : "UNL" }{ "_id" : ObjectId("4fefeb3d31d02ad8370ec784"), "nombre" : "Pedro", "edad" : 34,"ciudad" : "Quito", "empresa" : "EXTREMA", "titulo" : "Ingeniero en Sistemas" }>
  13. 13. MongoDB: Consultas> db.asistentes.findOne(){"_id" : ObjectId("4fefe96331d02ad8370ec780"),"nombre" : "Gabriel","edad" : 19,"ciudad" : "Guayaquil","institucion" : "ESPOL"}> db.asistentes.find({ciudad:Loja}, {nombre:true, ciudad:true, _id:false}){ "nombre" : "Juan Pablo", "ciudad" : "Loja" }{ "nombre" : "Carlos", "ciudad" : "Loja" }>
  14. 14. MongoDB: inserciones> var a = {nombre: Trisha, edad: 30, ciudad: Atlanta, institucion: 10gen}> db.asistentes.insert(a)> db.asistentes.findOne({institucion: 10gen}){"_id" : ObjectId("50c9eaa52a8c4ec0e6cfc2c9"),"nombre" : "Trisha","edad" : 30,"ciudad" : "Atlanta","institucion" : "10gen"}
  15. 15. MongoDB: actualizaciones> db.asistentes.update({ciudad: Loja}, {$set: {ciudad: Loxa}})> db.asistentes.find({},{_id:false}){ "nombre" : "Gabriel", "edad" : 19, "ciudad" : "Guayaquil", "institucion" : "ESPOL" }{ "nombre" : "Matias", "edad" : 24, "ciudad" : "Latacunga", "institucion" : "ESPE" }{ "nombre" : "Carlos", "edad" : 28, "ciudad" : "Loxa", "institucion" : "UNL" }{ "nombre" : "Pedro", "edad" : 34, "ciudad" : "Quito", "empresa" : "EXTREMA","titulo" : "Ingeniero en Sistemas" }{ "nombre" : "Trisha", "edad" : 30, "ciudad" : "Atlanta", "institucion" : "10gen" }
  16. 16. MongoDB: eliminaciones● db.asistentes.remove({ciudad: Quito})
  17. 17. Programación con MongoDB● Programación con drivers, todos comunitarios● Soporte oficial para una docena de lenguajes: .Net, Python, Java, Ruby, ...● Los Drivers tienen dos responsibilities principales: – Conectar a los servidorres MongoDB – Traducir BSON a los tipos nativos● Una relación natural entre objetos (OO) y Documentos● Frameworks de alto nivel ODM: Morphi en Java, MongoEngine en python (django)
  18. 18. Usos Manejo de contenido Inteligencia de operaciones E-Commerce Procesamiento de datos de alto Manejo de datos de usuarios volúmen
  19. 19. Quienes la están usando
  20. 20. Recursos Oficiales 10gen● MongoDB Downloads www.mongodb.org/downloads● Free Online Training education.10gen.com● Webinars and Events www.10gen.com/events● White Papers www.10gen.com/white-papers● Customer Case Studies www.10gen.com/customers● Presentations www.10gen.com/presentations● Documentation docs.mongodb.org● Additional Info info@10gen.com
  21. 21. Creditos Créditos de las imágenes: ● http://mechanitis.blogspot.com/2012/10/nosql-is-stupid-name.html – Trisha Gee, Software Engineer at 10gen ● http://www.10gen.com/webinar/introducción-a-nosql – Robert Stam, Software Engineer at 10gen
  22. 22. Créditos @miltonlab
  23. 23. FelizNavidad :)

×