欢迎来到天天文库
浏览记录
ID:21866126
大小:54.00 KB
页数:5页
时间:2018-10-25
《关系型数据库与nosql数据库》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、关系型数据库与NoSQL数据库:通过对传统关系型数据库以及他目前存在的问题的说明,进而引出了NoSQL数据库,并指出NoSQL数据库的特点以及目前应用状况,最后总结出传统关系型数据库和NoSQL数据库在某种场景下结合使用,并给出具体实例加以说明。 关键词:NoSQL数据库;关系型数据库;CAP理论 :TP311:A:1009-3044(2011)20-4802-03 RelationalDatabaseandNoSQLDatabase ZHANGHua-qiang (AnhuiNariJiyuanSofts,meanmarizeshoescenesan
2、dillustrateseexamples. Keyix,SQLServer,DB2等。 1.2关系型数据库的优势 关系型数据库相比其他模型的数据库而言,有着以下优点: 容易理解:关系模型中的二维表结构非常贴近逻辑世界,相对于X状、层次等其他模型来说更容易理解。 使用方便:通用的SQL语言使得操作关系型数据库非常方便,只需使用SQL语言在逻辑层面操作数据库,而完全不必理解其底层实现。 易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大降低了数据冗余和数据不一致的概率。 1.3关系型数据库存在的问题 传统的关系型数据库具有不错的
3、性能,高稳定型,久经历史考验,而且使用简单,功能强大,同时也积累了大量的成功案例。在90年代的互联X领域,一个X站的访问量一般都不大,用单个数据库完全可以轻松应付。在那个时候,更多的都是静态X页,动态交互类型的X站不多。可是最近几年,互联XongoDB,Dynomite,HBase,CouchDB,Hypertable,Riak,Tin,Flare,Lightcloud,KiokuDB,Scalaris,Kai,ThruDB,......这些NoSQL数据库都有自己的独到之处。有满足极高读写性能需求的Kye-Value数据库:Redis,TokyoCabi,Fl
4、are;还有满足海量存储需求和访问的面向文档的数据库:MongoDB,CouchDB;以及满足高可扩展性和可用性的面向分布式计算的数据库:Cassandra,Voldemort;在此就不详细介绍每款NoSQL数据库了。3关系型数据库与NoSQL数据库结合 伴随着越来越多的NoSQL产品涌现出来,NoSQL数据库会不会替代现有的关系数据库?在说明之前,我们先简单了解下CAP理论,以及ACID、BASE。 3.1CAP理论 CAP: C:Consistency一致性 A:Availability可用性(指的是快速获取数据) P:Toleranceofic
5、ity(原子性),事务中的所有操作,要么全部成功,要么全部不做。 Consistency(一致性),在事务开始与结束时,数据库处于一致状态。 Isolation(隔离性),事务如同只有这一个操作在被数据库所执行一样。 Durability(持久性),在事务结束时,此操作将不可逆转。 BASE: BasicallyAvailable(基本可用) Soft-state(软状态/柔性事务) EventualConsistency(最终一致性) BASE模型是传统ACID模型的反面,不同与ACID,BASE强调牺牲高一致性,从而获得可用性,数据允许在一段
6、时间内的不一致,只要保证最终一致就可以了。 互联XWeb2.0X站由于数据库存在高并发读写、高可扩展性、高可用性,所以要求设计成分布式存储,而在设计一个分布式存储系统时,根据CAP理论,一致性(C),可用性(A),分区容错性(P),三者不可兼得,最多只能同时满足其中的两个。而关系型数据库保证了强一致性(ACID模型)和高可用性,所以要想实现一个分布式数据库集群非常困难,这也解释了为什么关系型数据库的扩展能力十分有限。而NoSQL数据库则是通过牺牲强一致性,采用BASE模型,用最终一致性的思想来设计分布式系统,从而使得系统可以达到很高的可用性和扩展性。 对We
7、b2.0X站来说,可用性与分区容忍性优先级要高于数据一致性,一般会尽量朝着A、P的方向设计,但事实上,数据库系统最大的优势就对一致性的保证,单纯为了P(分布式)而放弃C(一致性)也是不可取的,所以需要通过其它手段来保证对于一致性的商务需求。 3.2NoSQL数据库实际应用缺陷 缺乏强有力的商业支持:大部分的NoSQL数据库都是开源项目,没有世界级的数据库厂商提供完善的服务,如果出现故障,只能自己解决,风险较大。 成熟度不高:NoSQL数据库的实际应用不多,大部分NoSQL产品都在小范围应用。成熟度不高,目前还很难在企业中广泛应用。 NoSQL数据库在设计
8、时难以体现实际:关系型数
此文档下载收益归作者所有