文档数据库的学习报告

文档数据库的学习报告

 

0 目录:

       1 大数据环境下的背景

       2传统关系数据库的瓶颈

       3文档数据库的选择

       4 什么是文档数据库

                4.1 什么是文档?

4.2 JSON数据格式

4.3那么是什么是文档型数据库呢?

4.4有哪些文档数据库?

       5文档数据库的一些关键特点

6 文档数据库数据模型

7文档数据库数据建模技术

8文档数据库的适用场景

    8.1文档数据库适用场景的考虑因子

8.2适用的场景

8.3不适用场景

       9引用参考


1 大数据环境下的背景

随着互联网web2.0网站的兴起,Web 技术的最新进展使得所有用户都可以轻松地提供和使用所有格式的内容. 另外, 后web2.0时代是网络发展中一个重要的阶段,它连接着下一代互联网Web3.0. 在这个时代背景下,互联网、物联网每天都在产生大量的数据,这些庞大的数据资源,使得’‘大数据’‘得以问世. 大数据的出现,直接导致’‘资源’‘的含义发生极大的变化,例如:

                  * 构建一个个人网站(比如,Google Sites)

                  * 创建一个博客(使用 WordPress、Blogger 和 LiveJournal)

                  * 在网络社区进行交互(使用 Facebook、Twitter、LinkedIn等等)

这些渠道已成为商品和工具,使更多的人能够更多元化地轻松创建、使用和传输更多数据,比如,采用博客、微博、微信、社交网络交互、视频、音频和照片的形式,数据可以是结构化的,也可是非结构化的. 就创建、交流、访问内容、共享信息和购买产品而论,快速扩展的新一代基于 Internet 的服务(比如电子邮件、博客、社交媒体、搜索和电子商务)实际上重新定义了 Web 用户的行为和趋势. 由于这些系统的数量的不断增多, 所生成数据和所消耗数据的规模的不断扩大,不断增长的伸缩性需求和新功能需求, 为传统关系型数据库管理系统 (RDBMS) 带来了新的挑战.

 

2 传统关系数据库的瓶颈

         随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速. 而传统的关系数据库在应付 web2.0网站,特别是超大规模和高并发的SNS类型的web2.0动态网站已经显得力不从心,暴露了很多难以克服的问题

                   1对数据库高并发读写的需求

web2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求. 关系数据库应付上万次SQL查询还勉强顶得住,但是应付上万次SQL写数据请求,硬盘IO早已经无法承受了. 其实对于普通的 BBS网站,往往也存在对高并发写请求的需求,例如像JavaEye网站的实时统计在线用户状态,记录热门帖子的点击次数,投票计数等,因此这是一个相当普遍的需求.

     2对海量数据的高效率存储和访问的需求

类似Facebook,Twitter,Instagram,  Friendfeed这样的社交网站,每天用户产生海量的用户动态,以Friendfeed为例,一个月就达到了2.5亿条用户动态. 对于关系数据库来说,在一张2.5亿条记录的表里面进行SQL查询,效率是极其低下乃至不可忍受的. 再例如大型web网站的用户登录系统,例如腾讯,盛大,动辄数以亿计的帐号,关系数据库也很难应付.

3对数据库的高可扩展性和高可用性的需求

在基于web的架构当中,数据库是最难进行横向扩展的,当一个应用系统的用户量和访问量与日俱增的时候, 数据库却没有办法像web server和app server那样简单的通过添加更多的硬件和服务节点来扩展性能和负载能力. 对于很多需要提供24小时不间断服务的网站来说,对数据库系统进行升级和扩展是非常痛苦的事情,往往需要停机维护和数据迁移,为什么数据库不能通过不断的添加服务器节点来实现横向扩展呢?

然而在上面提到的’‘三高’‘需求面前,关系数据库遇到了难以克服的障碍,而对于web2.0网站来说,关系数据库的很多主要特性却往往无用武之地,例如:

1数据库事务一致性需求

很多web实时系统并不要求严格的数据库事务,对读一致性的要求很低,有些场合对写一致性要求也不高. 因此数据库事务管理成了数据库高负载下的一个沉重负担.

2数据库的写实时性和读实时性需求

对关系数据库来说,插入一条数据之后立刻查询,是肯定可以读出来这条数据的,但是对于很多web应用来说,并不要求这么高的实时性,举个例子, 如某用户在某个blog网站上发一条消息之后,过几秒乃至十几秒之后,该用户的订阅者才看到这条动态是完全可以接受的.

3复杂的SQL查询,特别是多表关联查询的需求

任何大数据量的web系统,都非常忌讳多个大表的关联查询,以及复杂的数据分析类型的复杂SQL报表查询,特别是SNS类型的网站,从需求以及产品设计角度来看,就需要避免这种情况的产生. 往往更多的只是单表的主键查询,以及单表的简单条件分页查询,SQL的功能被极大地弱化了.

         在这些情况下, 大部分的MySQL都应该是IO密集型的. 然而事实上,如果MySQL是个CPU密集型的话,那么很可能MySQL在设计存在性能优化问题. 大数据量高并发环境下的MySQL应用开发越来越复杂,也越来越具有技术挑战性. 分表分库的规则把握都是需要经验的. 虽然有像淘宝这样技术实力强大的公司开发了透明的中间件层来屏蔽开发者的复杂性,但是避免不了整个应用架构的复杂性. 分库分表的子库到一定阶段又面临扩展问题. 还有就是需求的变更,可能又需要一种新的分库方式. 除此之外,  MySQL数据库也经常存储一些大文本字段,导致数据库表非常的大,在做数据库恢复的时候就导致非常的慢,不容易快速恢复数据库. 比如1000万4KB大小的文本就接近40GB的大小,如果能把这些数据从MySQL省去,MySQL将变得非常的小.

尽管关系数据库很强大,但是它并不能很好的应付所有的应用场景.  MySQL的扩展性差(需要复杂的技术来实现),大数据下IO压力大,表结构更改困难,正是当前使用MySQL的开发人员面临的问题.

 

3 文档数据库的选择

         如今的社交网站越来越普及,而随着用户量不断壮大,每个用户的使用方式或者是发布的内容类型都不尽相同. 有人会发布风景照片或者剪短的视频、有人发布对时事的评论, 还有人分享音乐用于表达心情等. 面对如此大量而多样性的数据,如果使用关系型模型,就需要不断修改数据操作模式,这样,可能会引起系统负载的大幅度提升,同时也会大大增加处理的响应时间.

         在这个背景下,希望新类型的数据库可以有以下特点:

1易扩展:关系型数据库是一种’’纵向扩展’’的技术,想要扩展容量(无论数据存储还是I/O),都需要更换更大的服务器. 现代应用结构的解决却是使用’’横向扩展’’ --无需新购买更大的服务器,只需要在负载均衡器下增加一般的服务器、虚拟机或是云服务器就可以实现扩展. 此外,容量在不再需要的时候还可以轻易的缩减. 事实上, NoSQL数据库种类繁多,但它们的一个共同特点就是去掉关系数据库的关系型特性. 数据之间无关系,这样就非常容易扩展. 在架构的层面上带来了可扩展的能力.

2大数据量,高性能࿱

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Oracle数据库学习官方文档是Oracle公司官方提供的关于Oracle数据库的详细文档。这些文档包含了Oracle数据库的各个方面的知识和技术,从基础的数据库概念到高级的性能调优和安全管理,都能在官方文档中找到相应的内容。 首先,官方文档提供了全面而系统的数据库知识,包括数据库架构、SQL语言、数据类型、查询优化、索引设计等。无论是初学者还是有经验的数据库管理员,都可以通过官方文档学习和掌握数据库相关的知识。 其次,官方文档中还提供了丰富的示例和实践指导,帮助用户理解和应用所学的数据库知识。通过这些示例,用户可以了解数据库操作的具体步骤和实际应用场景,提高自己的实践能力。 此外,官方文档还介绍了Oracle数据库的高级特性和功能,如分布式数据库、数据复制和备份恢复等。这些知识对于企业级数据库管理和应用开发非常重要,而且只有通过官方文档才能获得最权威的信息。 总而言之,Oracle数据库学习官方文档学习和使用Oracle数据库的重要参考资料。通过学习官方文档,用户可以系统地掌握Oracle数据库的核心知识和技术,提升自身的数据库能力。而且,官方文档还可以帮助用户解决实际问题和应对挑战,是Oracle数据库学习和应用的必备工具。 ### 回答2: Oracle数据库学习官方文档是Oracle官方为用户提供的学习和使用Oracle数据库的指南和参考资料。它涵盖了各个方面的内容,旨在帮助用户深入了解和掌握Oracle数据库的各种功能和特性。 这些官方文档以易于理解和系统化的方式组织,从基础知识到高级技巧都有详细的说明和示例。学习者可以根据自己的需求选择不同的主题进行学习和参考,比如数据库管理、SQL语言、备份恢复、性能调优等。 Oracle数据库学习官方文档内容全面且经过验证,可以被认为是学习Oracle数据库的权威指南之一。它包含了许多实际案例和最佳实践,可以帮助用户更好地理解和应用Oracle数据库的特性,提高工作效率和数据库的性能。 此外,Oracle数据库学习官方文档不仅包含文字说明,还提供了丰富的图表、示意图和代码示例,使用户可以更直观地理解和学习。用户可以通过在线阅读或下载文档的方式获取所需信息,并根据自己的进度和需求进行学习。 总而言之,Oracle数据库学习官方文档是Oracle官方为用户提供的学习和参考资料,它详细介绍了Oracle数据库的各个方面,帮助用户深入了解和掌握Oracle数据库的功能和特性。通过学习官方文档,用户可以提高数据库技术水平,更好地应用Oracle数据库。 ### 回答3: Oracle数据库学习官方文档是指由Oracle公司官方发布的有关Oracle数据库学习资料和文档。这些文档包括了Oracle数据库的各个方面,包括了基本概念、架构、常用功能和高级特性等内容。以下是关于Oracle数据库学习官方文档的一些重要特点和重要性: 1. 全面而详细:Oracle数据库学习官方文档提供了对Oracle数据库各个方面的详细说明,包括了数据库的基本原理、SQL语言、PL/SQL编程、数据库管理等内容。这些文档能够帮助学习者全面了解并掌握Oracle数据库的技术细节。 2. 权威可靠:由于Oracle公司的官方发布,这些学习文档具有高度的可信度和权威性。学习者可以通过学习官方文档,了解到Oracle数据库的最新版本的特性和更新。 3. 丰富的实例和示例:Oracle数据库学习官方文档中包含了大量的实例和示例代码,这些实例能够帮助学习者更好地理解和掌握数据库的使用方法和技巧。 4. 完备的参考手册:Oracle数据库学习官方文档也作为一份完备的参考手册存在,学习者可以在实际使用Oracle数据库时随时查阅相关文档来解决问题和获取帮助。 5. 更新迭代及时:Oracle公司会对数据库进行不断的更新和迭代,并相应地更新和发布学习官方文档,以保持其与最新版本的数据库同步。 对于学习和使用Oracle数据库的人来说,Oracle数据库学习官方文档是一份非常有价值的学习资料。通过阅读官方文档学习者能够对数据库有更深入的了解,掌握数据库相关的知识和技能,并在实践中应用所学知识。同时,官方文档也能够帮助学习者及时了解到Oracle数据库的最新特性和功能,使其能够保持在技术的前沿。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值