Transcript
  • 1. Carrera de Ingeniera en SistemasUniversidad Nacional de LojaLa Base de Datos NoSQLMilton LabandaDepartamento de Desarrollo de Software UNL - 2012

2. Siempre va bien un poco de historia 1970 Aparecen las Bases de Datos Relacionales: Origen en las Universidades, costosas, necesitan normalizarse, se abstraen dela aplicacin 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 ms barato (en vez de comprar monstruoscostosos se compran varias mquinas pequeas) 2000 2010: Debilidades y oportunidades: Desarrollo Agil ORMs / sincronizacin con la aplicacin, escalabilidadhorizontal, desarrollo mas veloz, modelos de datos mas flexible 3. el antiguo mundo relacional ... 4. .. los nuevos mundos NoSQLKey-Value Column Graph Document 5. Ejemplos BD NoSQL 6. Caractersticas de MongoDB Consultas Ad-hoc Indexacin Replicacin Balanceo de Carga Almacenamiento de archivos Framework de agregacin JavaScript como lenguaje 7. MongoDB: Alta disponibilidad (ReplicaSets) 8. MongoDB: escalabilidad horizontal(sharding)MongoS MongoS MongoS Key RangeKey RangeKey RangeKey Range 0..2526..50 51..75 76.. 100PrimaryPrimaryPrimaryPrimarySecondarySecondarySecondarySecondarySecondarySecondarySecondarySecondary 9. MongoDB: Fcil Administracin Pocas cosas queconfigurar Fcil de instalar Fcil de Administrar 10. Equivalencias y ComparativaSQLMongoDBBase de DatosBase de DatosTablaColeccinndice ndiceFila DocumentoColumnaCampo JSON/BSONJoin Embedding / LinkingPrimary key_idGroup By Agregations 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. 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. 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. 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. 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. MongoDB: eliminaciones db.asistentes.remove({ciudad: Quito}) 17. Programacin con MongoDB Programacin 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 relacin natural entre objetos (OO) y Documentos Frameworks de alto nivel ODM: Morphi en Java,MongoEngine en python (django) 18. UsosManejo de contenidoInteligencia de operacionesE-Commerce Procesamiento de datos de altoManejo de datos de usuarios volmen 19. Quienes la estn usando 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 [email protected] 21. CreditosCrditos de las imgenes: http://mechanitis.blogspot.com/2012/10/nosql-is-stupid-name.html Trisha Gee, Software Engineer at 10gen http://www.10gen.com/webinar/introduccin-a-nosql Robert Stam, Software Engineer at 10gen 22. Crditos @miltonlab 23. FelizNavidad :)


Recommended