1、30 福建电脑 2010年第7期NoSQL非关系型数据库的发展及应用初探黄贤立(淮阴师范学院计算机科学与技术学院江苏淮安223300)【摘要】:随着Web 20技术的发展,网络环境下的数据库应用出现了一些新的变化。NoSQL是在这种新变化之下产生的一种非关系型数据库产品的总称。文章分析了NoSQL的起源与发展。通过与传统关系型数据库产品的对比,指出了NoSQL的优缺点。讨论了其应用-gr-景-。【关键词】:NoSQL;数据库;并发;KeyVMuel、NoSQL的起源与发展NoSQL的发展最早可以追溯到1991年Berkeley DB第一版的发布。Berkelev DB是一个KeyValRe(键
2、,值)类型的Hush数据库。这种类型的数据库适用于数据类型相对简单,但需要极高的插入和读取速度的嵌人式场合11。NoSQL得到真正的快速发展开始于2007年从2007年到现在先后出现了十多种比较流行的NoSQL产品从2009年开始,国内的NoSOL领域也开始活跃起来,豆瓣的BeansDB,人人网的Nucbar开源NoSQL产品以及盛大创新院的TCDatabase纷纷发布。NoSQL能够得到快速的发展其主要背景在于Web 2O技术在网络中的广泛应用。在Web 20环境下,用户对于数据库高并发读写的需求、对海量数据的高效率存储和访问的需求、对数据库的高可扩展性和高可用性的需求等都对传统关系型数据库
3、带来很大的困难。典型的例子是北京奥运会的订票方案由于最早实施的是网站、电话申请。先到先得的原则。在开始订票的当天数以百万计的用户同时涌入奥运会官方票务网站。大量的并发请求使得该网站在短短几分钟内死机一直到当天晚上才恢复工作。而北京奥组委不得不紧急调整了预售方式,改为在规定时间内申请之后进行摇号的方式发售,这才解决了这一问题。2、传统关系型数据库在Web 2O环境下存在的问题通过上述例子可以看出。传统的关系型数据库难以适合现在的Web 20环境下可能出现的众多并发读写请求特别是超大规模和高并发的SNS类型的Web 20纯动态网站更是力不从心。可以看出传统关系型数据库面临的挑战主要有以下几点ftl
4、:(1)对数据库高并发读写的需求Web 20网站要根据用户个性化信息来实时生成动态页面和提供动态信息无法使用动态页面静态化技术因此数据库的并发负载非常高往往要达到每秒上万次的读写请求。此时的磁盘I,0根本无法承受如此之多的读写请求。(2)对海量数据的高效率存储和访问的需求类似Facebook、Twitter和Ffiendfeed这样的SNS网站,每天用户产生海量的用户动态,以FfiendFeed为例,一个月就达到了25亿条用户动态对于关系型数据库来说,在一张25亿条记录的表里面进行SQL查询,效率是极其低下的。再例如大型Web网站的用户登录系统,如腾讯、盛大。动辄数以亿计的帐号。关系数据库也难
5、以应付。(3)对数据库的高扩展性和高可用性的需求在基于Web的架构中,数据库是最难进行横向扩展的当用户量和访问量增加时数据库没有办法像Web Server那样简单的通过添加更多的硬件和服务结点来扩展性能和负载能力对于很多需要24小时不问断服务的网站来说对数据库系统的升级和扩展往往需要停机维护3、NoSQL和关系型数据库的区别珥(1)横向和纵向扩展能力关系型数据库通常部署在一台服务器上,通过增加处理器、内存和硬盘来升级。部署在多台服务器上的关系型数据库通过是依赖互相复制来保持数据同步。NoSQL数据库可以部署在单服务器上但更多的部署是成云状分布。在NoSQL的模式一文中p1作者详细介绍了NoSQ
6、L数据库的部署、数据分区、数据复制等问题的解决方案。(2)列,ke3,value存储数组(Tuples)存储关系型数据库通常是由表或视图里的字段构成(固定的结构用各种操作相互关联)。NoSQL数据库通常存储的是一对键值或数组(Tuples),其结构不周定,只是一个有顺序的数据队列。(3)数据的内存和硬盘使用关系型数据库通常是驻留在一个硬盘内或一个网络存储空间里。SOL查询或存储过程操作会把数据集提取到内存空间里。一些(并不是全部)NoSQL数据库可以直接在硬盘上操作,也可以通过内存来加快速度。4、NoSQL存在的不足与传统的关系型数据库相比NoSQL非关系型数据库在Web 20的高并发实时环境
7、下有着一定的优势但也存在着一些问题主要体现在阁:(1)NoSQL很难实现数据的完整性由于在NoSQL项目中很难实现数据的完整性而在企业应用中数据完整性又必不可少。因此,目前的NoSQL项目很难以企业中普及开来。需要注意的是,这一不足在Web 20的很多应用中并不重要因为很多Web实时系统并不要求严格的数据库事务对读一致性要求很低,有些场合对写一致性要求也不高。(2)缺乏强有力的技术支持到目前为止NoSQL项目都是开源的,他们缺乏供应商技术人员的正式支持。(3)开源数据库从出现到被用户接受需要一个漫长的过程。(4)关系型数据库在设计时更能够体现实际。5、NoSOL的应用尽管还存在着一些不足之处但
8、我们更应该看到NoSQL在Web 20环境下的应用前景。例如在我们所设计的一个类似于ACM竞赛的在线测试系统中如果采用关系型数据库进行存储记录数等于用户数与用户数回答题目的乘积,当用户很多的时候,数据的记录数会非常的多,对系统的性能造成影响。在系统设计时我们引入了Omcle Berl【eky DB,将Berkelev DB与MysQL相结合。对于用户注册信息、题目本身的信息等,仍然采用传统的My-SQL关系型数据库而对于注册用户对于问题的解答结果。则采用BerI【eley DB进行存储,从N(-F转第45页)万方数据2010年第7期 福建电脑 45质的角色供超级用户选择。这样每个操作员在处理各
9、种业务时。只能按照本角色具有的权限对数据进行操作这样就可以保证审核、批复数据的合法性,只有建设业主才具有成为系统管理员的可能。22严格控制使用系统的用户公路建设过程是一个动态的管理过程随着项目的开工和竣工。相应的监理单位、承包单位是不断变化的,项目开工参建单位入场时。在系统管理员的授权下,开始使用系统,某一单位离场时,系统管理员收回授权,此单位不能够再使用本系统。严格控制无关用户使用系统,将系统与外界隔离这就需要严格的把好身份验证关。通过对常用的身份验证方式分析(见表1)结合”用户名称+13令”和”IC卡验证”两种方法的特点采用系统分发密钥文件和”用户名称+口令”结合的方式来验证用户的身份是一
10、种比较好的解决方案。密钥文件控制使用单位是否合法在使用单位合法的情况下用”用户名称+口令”用来验证等录用户是否合法。并据此分配操作权限。嘘 安方用 全验证方法 便 使用特点成 性性本 能用户名+13令 低 lf 低 网络环境中暂田根存翳敞播、泄漏,Ic卡技求成牟fI仃椿准可遵循。战奉居高不IC p验证 旆 差 高下,并且携带4:便。利用计掉机出于其管理复杂,是活性较羡,现在仪限于的特征码验 低 差 高特碌的戍朋万面证人体特征码 需要专门的瑶取最八设备。使用仪限j:安全高 差 高验证 性要求擞廓的场合常见的身份验证方法比较表(表1)密钥文件验证机理:用户在每次登陆系统时由应用服务器产生一个随机数
11、发给客户端客户端用此随机数作运算的输入返一个运算结果给服务器,服务器端作相同的计算。并把计算结果与客户端上传的结果相比较结果正确即可进入下一步的操作。全过程可简单由以下关系式来表示:client(S,K)=Server(S,K)其中S代表由服务器提供的随机字符串而K则代表密钥,client(S,l()代表是插在客户端的client所进行的运算Serverf S。K1代表提服务器程序的运算。而等式两端的K并不在客户端出现。也未直接在网上发送这就保证了此认证方案的可行性。密钥文件的管理:系统管理员在注册新单位时,为每个单位生成一对密钥(具有活动非活动状态),这对密钥的生存期为该单位进场和离场之间的
12、时间段。系统管理员将密钥文件(公钥)以软盘为介质给刚进场的单位分发下去系统管理员可以在该单位离场后将该单位密钥(私钥)的状态改为非活动状态。密钥的验证过程:用户的身份验证是在每次登陆系统时进行的其验证步骤如下:第一步:服务器端判断密钥文件的存在与否,若存在则由服务端产生随机数并传给客户端反之不能进行下一步工作。第二步:客户端通过分发的密钥文件对发送的随机数进行加密。从而得到128位的摘要。然后将这个摘要返回给服务器端。第三步:服务端将客户端发来的摘要和使用服务端密钥产生的摘要比较,相同则认为用户合法否则非法。第四步:根据服务器端密钥文件的标志位分析判断该密钥是否处于活动状态。如果处于活动状态,
13、则进行身份和口令验证反之则认为用户非法。第五步:通过用户登陆身份和登陆口令进行判别如果用户的身份和用户口令相吻合即可登陆系统。严格进行身份认证,完成对使用系统用户的控制将系统和外界隔离起来是保证系统性能和数据安全性的有效手段之一。23用户口令和用户身份的保护策略公路工程建设计量与支付软件监理的审核和业主的批复决定着工程款的支付。监理、业主的权限一旦被盗用其后果将非常严重。互联网是通过存储转发的包交换网,数据封闭在IP包中但数据有可能被截获并复制如何保护用户登陆信息尤为重要。系统在用户口令、用户名称等重要信息传输前,先随机产生一序列对每个字符的存储位进行异或运算加密的方法蕴含在只有解密算法方能识
14、别的校验位中加密后的字符和校验位一起由网上发送在服务器端以校验位参数通过约定的算法产生解街的数据序列然后由此序列对数据进行解密就可以得到最终的结果。重要数据特别是用户登陆信息的加密是保护系统重要数据安全性的手段之一。24对运行的数据库监控和管理对于网上运行的应用系统除了提供保护数据的安全防范措施外还需要防范意外加强对数据库的监控和数据库的定期备份。如果发现不合法用户的入侵就可以将损失减少到最小范围。系统对一些重要审核、批复的数据均设有监控管理,将其写入操作记录表中如果发现出现不合法用户入侵便可以查看这些数据运行记录。据此对数据进行恢复操作。参考文献:11基于局城网的web动态数据库方文华工业计
15、量2001-0526f21高速公路工程建设计量支竹管理数据库设计叶智锐工路交通科技工作者2003022031简单实用的计量所信息服务系统刘海燕 中国计量2008一041041基于Web的实时控制系统研究 尹责虎 浙江大学2003-01一01f51基于web服务的网络监控系统设计与实现余运强 浙江大学2005“-02-01616浅谈高速公路计量软件的开发与应用前景 谷英辉 山西建筑200801-10+-+-一-+-卜-卜-十-+-+-+-+-+-+-卜-+-卜-+-+-+-+-+-+-卜-卜-卜+卜卜-卜+-一-+-一+斗(上接第30页)使系统中的答题记录数减少到注册的用户数索的速度,加快系统的
16、响应时间。6、结论从而大大提高检 熟,更好的适应Web 2O环境的要求。参考文献:可以看出,相对于传统的关系型数据库来说,NoSQL在面向较多的并发用户数及海量数据的处理方面存在着一定的优势目前已经在国内的部分网站的建设中得到应用。如视觉中国网站的建设【4】,相信在未来的若干年中,NoSQL能够发展的更为成【1】范凯NoSQL教据库综述D】程序员2010(6):76-7821李莉莎关于NoSQL的思考忉中国传媒科技2010(4):40-4131 Rick=y HoNoSQL的模式】程序员2010(2):95-99【4】潘凡从MySQL到MongoDB一一视觉中国的NoSQL之-*01程序员2010(6):7981万方数据NoSQL非关系型数据库的发展及应用初探作者: 黄贤立作者单位: 淮阴师范学院计算机科学与技术学院,江苏,淮安,223300刊名: 福建电脑英文刊名: FUJIAN COMPUTER年,卷(期): 2010,26(7)参考文献(4条)1.范凯 NoSQL教据库综述 2010(6)2.李莉莎 关于NOSQL的思考 2010(4)3.Picky Ho NoSQL的模式 2010(2)4.潘凡 从MySQL到MongoDB-视觉中国的NoSQL之路 2010(6)本文链接:http:/