170 likes | 573 Views
NoSQL - MongoDB. By 乐志炜 陈润泽 曹 璟 毅 何 竺珈 庞涤. What is NoSQL. NoSQL V.S. 关系型数据库 随着 互联网 web2.0 网站的兴起,传统的关系数据库在应付 web2.0 网站,特别是超大规模和高并发的 SNS 类型的 web2.0 纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。. What is NoSQL. Not Only SQL. Why NoSQL. 数据库并发负载高 海量数据存储和访问 数据库数据越来越大 事务管理的负担
E N D
NoSQL - MongoDB By 乐志炜 陈润泽 曹璟毅 何竺珈 庞涤
What is NoSQL • NoSQL V.S. 关系型数据库 • 随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。
What is NoSQL • Not Only SQL
Why NoSQL • 数据库并发负载高 • 海量数据存储和访问 • 数据库数据越来越大 • 事务管理的负担 • 关系型数据库读/写实时性的忽略 • 多表关联查询被弱化
Why NoSQL • 去掉关系型特性 • 非常好的读/写性能 • 不需要提前为要存储的数据建立字段 • 高可用性
NoSQL 缺陷 • 但是一些人承认,没有正式的官方支持,万一出了差错会是可怕的,至少很多管理人员是这样看。 • “我们确实需要做一些说服工作,但基本在他们看到我们的第一个原型运行良好之后,我们就能够说服他们,这是条正确的道路。” • 此外,NoSQL并未形成一定标准,各种产品层出不穷,内部混乱,各种项目还需时间来检验。
What is MongoDB • 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 • 最热门的NoSQL产品,之一 • BSON (Binary Serialized dOcument Notation) {"hello“ : "world"}
What is MongoDB • MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似JSON的BJSON格式,因此可以存储比较复杂的数据类型。 • MongoDB最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它的特点是高性能、易部署、易使用,存储数据非常方便。
What is MongoDB • 文档(类似于“行”) {“age” : 8} {“age” : “8”} {“age” : 8} {“Age” : 8} {“name” : “zhangsan”, “name” : “lisi”} • 集合(类似“表”) 一组文档。 无模式——文档可以是各种各样的
MongoDB Database • 多个文档组成集合,多个集合组成数据库 • JavaScript shell > x = 200 200 > x / 5; 40
MongoDB Database • JavaScript shell > function factorial (n) { if (n <= 1) return 1; return n * factorial(n - 1); } > factorial (5) 120
MongoDB Database • JavaScript shell > use mydb switched to mydb > db mydb
MongoDB Database • 创建 > post = {“title” : “My Blog Post”, “content” : “Here’s my blog post. ”, “date” : new Date() } { “title” : “My Blog Post”, “content” : “Here’s my blog post. ”, “date” : “Sat Dec 12 2009 11:23:21 GMT-0500 (EST)” } > db.blog.insert(post)
MongoDB Database • 读取 > db.blog.findOne() { “_id” : ObjectId(“4b23c3ca7525f35f94b60a2d”) “title” : “My Blog Post”, “content” : “Here’s my blog post. ”, “date” : “Sat Dec 12 2009 11:23:21 GMT-0500 (EST)” }
MongoDB Database • 更新 > post.comments = [] [ ] >db.blog.update({title : “My Blog Post”}, post) > db.blog.find() { “_id” : ObjectId(“4b23c3ca7525f35f94b60a2d”) “title” : “My Blog Post”, “content” : “Here’s my blog post. ”, “date” : “Sat Dec 12 2009 11:23:21 GMT-0500 (EST)” “comments” : [ ] }
MongoDB Database • 删除 > db.blog.remove({title : “My Blog Post”}) 集合现在又是空的了