NoSQL非关系型数据库的发展及应用初探.pdf
《NoSQL非关系型数据库的发展及应用初探.pdf》由会员分享,可在线阅读,更多相关《NoSQL非关系型数据库的发展及应用初探.pdf(2页珍藏版)》请在文库网上搜索。
1、福 建 电 脑 2010 年第 7 期NoSQL非关系型数据库的发展及应用初探黄贤立( 淮阴师范学院计算机科学与技术学院 江苏 淮安 223300 )【 摘 要 】: 随着 Web 2.0 技术的发展 , 网络环境下的数据库应用出现了一些新的变化 。 NoSQL 是在这种新变化之下产生的一种非关系型数据库产品的总称 。 文章分析了 NoSQL 的起源与发展 , 通过与传统关系型数据库产品的对比 , 指出了NoSQL 的优缺点 , 讨论了其应用前景 。【 关键词 】: NoSQL; 数据库 ; 并发 ; Key/Value1、 NoSQL的起源与发展NoSQL 的 发 展 最 早 可 以 追 溯
2、 到 1991 年 Berkeley DB 第 一版的发布 。 Berkeley DB 是一个 Key/Value( 键 /值 ) 类型的 Hush 数据库 。 这种类型的数据库适用于数据类型相对简单 , 但需要极高的插入和读取速度的嵌入式场合 1。NoSQL 得到真正的快速发展开始于 2007 年 , 从 2007 年到现在 , 先后出现了十多种比较流行的 NoSQL 产品 , 从 2009 年开始 , 国内的 NoSQL 领域也开始活跃起来 , 豆瓣的 BeansDB, 人人网的 Nuclear 开源 NoSQL产品以及盛大创新院的 TCDatabase纷纷发布 。NoSQL 能够得到快速
3、的发展 , 其主要背景在于 Web 2.0 技术在网络中的广泛应用 。 在 Web 2.0 环境下 , 用户对于数据库高并发读写的需求 、 对海量数据的高效率存储和访问的需求 、 对数据库的高可扩展性和高可用性的需求等 , 都对传统关系型数据库带来很大的困难 。 典型的例子是北京奥运会的订票方案 , 由于最早实施的是网站 、 电话申请 , 先到先得的原则 。 在开始订票的当天 , 数以百万计的用户同时涌入奥运会官方票务网站 , 大量的并发请求使得该网站在短短几分钟内死机 , 一直到当天晚上才恢复工作 。 而北京奥组委不得不紧急调整了预售方式 , 改为在规定时间内申请 , 之后进行摇号的方式发售
4、 , 这才解决了这一问题 。2、 传统关系型数据库在 Web 2.0 环境下存在的问题通过上述例子可以看出 , 传统的关系型数据库难以适合现在的 Web 2.0 环境下可能出现的众多并发读写请求 , 特别是超大规模和高并发的 SNS类型的 Web 2.0 纯动态网站更是力不从心 。 可以看出 , 传统关系型数据库面临的挑战主要有以下几点 1:( 1) 对数据库高并发读写的需求Web 2.0 网站要根据用户个性化信息来实时生成动态页面和提供动态信息 , 无法使用动态页面静态化技术 , 因此数据库的并发负载非常高 , 往往要达到每秒上万次的读写请求 , 此时的磁盘 I/O 根本无法承受如此之多的读
5、写请求 。( 2) 对海量数据的高效率存储和访问的需求类似 Facebook、 Twitter 和 Friendfeed 这样的 SNS网站 , 每天用户产生海量的用户动态 , 以 FriendFeed为例 , 一个月就达到了2.5 亿条用户动态 , 对于关系型数据库来说 , 在 一 张 2.5 亿 条 记录的表里面进行 SQL 查询 , 效 率 是 极 其 低 下 的 。 再 例 如 大 型Web 网站的用户登录系统 , 如腾讯 、 盛大 , 动辄数以亿计的帐号 ,关系数据库也难以应付 。( 3) 对数据库的高扩展性和高可用性的需求在基于 Web 的架构中 , 数据库是最难进行横向扩展的 ,
6、 当用户量和访问量增加时 , 数据库没有办法像 Web Server那样简单的通过添加更多的硬件和服务结点来扩展性能和负载能力 ,对于很多需要 24 小时不间断服务的网站来说 , 对数据库系统的升级和扩展往往需要停机维护 。3、 NoSQL和关系型数据库的区别 2( 1) 横向和纵向扩展能力关系型数据库通常部署在一台服务器上 , 通过增加处理器 、内存和硬盘来升级 。 部署在多台服务器上的关系型数据库通过是依赖互相复制来保持数据同步 。 NoSQL 数据库可以部署在单服务器上 , 但更多的部署是成云状分布 , 在 NoSQL 的 模 式 一 文中 3, 作者详细介绍了 NoSQL 数据库的部署
7、 、 数据分区 、 数 据 复制等问题的解决方案 。( 2) 列 , key/value 存储 , 数组 ( Tuples) 存储关系型数据库通常是由表或视图里的字段构成 ( 固定的结构 , 用各种操作相互关联 )。 NoSQL数据库通常存储的是一对键值或数组 ( Tuples), 其结构不固定 , 只是一个有顺序的数据队列 。( 3) 数据的内存和硬盘使用关系型数据库通常是驻留在一个硬盘内或一个网络存储空间里 。 SQL 查询或存储过程操作会把数据集提取到内存空间里 。一些 ( 并不是全部 ) NoSQL数据库可以直接在硬盘上操作 , 也可以通过内存来加快速度 。4、 NoSQL存在的不足与
8、 传 统 的 关 系 型 数 据 库 相 比 , NoSQL 非 关 系 型 数 据 库 在Web 2.0 的高并发实时环境下有着一定的优势 , 但也存在着一些问题 , 主要体现在 2:( 1) NoSQL很难实现数据的完整性由于在 NoSQL项目中很难实现数据的完整性 , 而在企业应用中数据完整性又必不可少 。 因此 , 目前的 NoSQL 项目很难以企业中普及开来 。 需要注意的是 , 这一不足在 Web 2.0 的很多应用中并不重要 , 因为很多 Web 实时系统并不要求严格的数据库事务 , 对读一致性要求很低 , 有些场合对写一致性要求也不高 。( 2) 缺乏强有力的技术支持到目前为止
9、 , NoSQL 项目都是开源的 , 他们缺乏供应商技术人员的正式支持 。( 3) 开源数据库从出现到被用户接受需要一个漫长的过程 。( 4) 关系型数据库在设计时更能够体现实际 。5、 NoSQL的应用尽管还存在着一些不足之处 , 但我们更应该看到 NoSQL 在Web 2.0 环境下的应用前景 。 例如 , 在我们所设计的一个类似于ACM 竞赛的在线测试系统中 , 如果采用关系 型 数 据 库 进 行 存储 , 记录数等于用户数与用户数回答题目的乘积 , 当用户很多的时候 , 数据的记录数会非常的多 , 对系统的性能造成影响 。 在系统 设 计 时 我 们 引 入 了 Oracle Ber
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NoSQL 关系 数据库 发展 应用 初探