剖析文档数据库——NoSQL数据库技术特性

剖析文档数据库——NoSQL数据库技术特性

ID:43950356

大小:184.92 KB

页数:7页

时间:2019-10-17

剖析文档数据库——NoSQL数据库技术特性_第1页
剖析文档数据库——NoSQL数据库技术特性_第2页
剖析文档数据库——NoSQL数据库技术特性_第3页
剖析文档数据库——NoSQL数据库技术特性_第4页
剖析文档数据库——NoSQL数据库技术特性_第5页
资源描述:

《剖析文档数据库——NoSQL数据库技术特性》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、[导读]:现今云计算的从业人员对NoSQL—词并不感到陌生,虽然很多技术人员都长期从事关系数据库的工作,但现在他们对NoSQL技术充满期待。对于企业来说,从关系型数据库到NoSQL数据库转变绝对是个需要深思熟虑的大改变。这涉及的不仅是软件的变化,更多的是对于数据存储上观念性的变化。Redis刑:孕TehbaseCassandraWmongoDB、?^riakPro/ee/VoldemortTokyo.Cabinet屆i.Neo4j/thegraphdatabaseCouchDBrelaxmembaseCouchDB专家兼作者BradleyHolt认为NoSQL

2、并不是反SQL的运动,为对应的工作选择最恰当的工具才是正确的模式。大多数非关系数据库都具有快速和可伸缩的特性。通过放弃关系存储模型和架构,关系数据库便可脱离由紧密结合的架构所带来对其施加的限制。应用程序也无需再链接数据库内表中的数据。MongoDB和CouchDB以及RavenDB(RavenDB是基于Mocrosoft.NETFramework编写的)等文档数据库除了某些特定的转换外,通常都是通过HTTP为其提供数据,然后将数据存储为JSON(JavaScriptObjectNotation)格式的文档,并捉供多种语言的API接口。这三款开源的文档数据库都将

3、简洁、速度和可伸缩性作为其设计的重要指标。RavenDB的创建者AyendeRahien就表示"RavenDB的设计初衷就旨在快速写入并读取”。NoSQL——关系数据库的有力补充VisualGuidetoNoSQLSystemsAvailability;EachclientcanalwaysreadandwriteDataModelsRDBMSs(MySQLPostgres.etc)CassandraSimpleDBCouchDBRiakCPcConsistency:AlclientsalwayshavethesameviewofthedataBigTable

4、HypertableHt>aseMongoDBTerrastoreScalarisBerkeleyDBMemcacheDBRedispPartitionTolerance:Thesystemworkswelldespitephysicalnetworkpartitions.RelatK)nal(comparison)Key-ValueColumn-Oriented/TabularDocument-Onented现今,NoSQL和文档数据库成为关系数据库的有力补充(而非替代品),同时提供了更多的选择。如果企业准备将数据迁移,那么选择NoSQL的重要标准就是要看C

5、AP(Consistency>Availability和PartitionTolerance),也就是我们所说的一致性、可用性和分区容忍性。但CAP原则要求在分布式系统只能选择一致性、可用性和分区容忍性其中的两项。所以如果企业认为一致性是重要的那么关系数据库理应是优先选择的对象。例如在银行等应用领域,一致性是非常重要的,这要求必须随时考虑每个数据块。而CAP原则中的可用性也不容忽视,某些领域的数据可用性要比等待所有交易数据收集齐全更为重要。最后在水平缩放时,分区容忍性对于文档数据库显得尤为关键。但MongoDB并不支持复杂的事务,只支持少量的原子操作,所以不适

6、用于“转帐”等对事务和一致性要求很高的场合。这就要求需要一个关系数据库来对交易进行过髙级别的控制。文档数据库的关键特性RESTfulHTTPAPTRESTfulAPI设计就是为了消除创建松散耦合服务时的依赖关系,这也正是过去分布式体系结构的缺陷。虽然要映射到一些协议需要依赖于元数据的可用性以及方法等,但RESTAPI的设计目标就是不依赖于任何通信协议。众多NoSQL数据库都可通过RESTful的方式访问。这样可以通过URT的方式建立数据库连接,而查询和命令则通过HTTP实现。MongoDB和CouchDB都提供了特定语言的API接口,以便编写和执行查询、更新。

7、但MongoDB的默认设置仍然是使用TCP与数据库进行连接。而RavenDB则具备基于.NET的客户端API,可简化与数据库的交互过程。单个记录中的相关数据大多数人都错误的认为非关系数据库是一种包含没有和对关系结构的记录的文件。而文档数据库中存储的数据包含形状数据——具有节点的树。数据库中的每个记录都是以文档形式存在的。并具备自我描述的功能,而不依赖于任何其他文档。示例代码1:文档数据(MongoDB)屮的典型事例,rname,r:"Jim”,,rscores,r:[75,99,87.2]}示例代码2CouchDB示例,rSubject,r:,rIlikePl

8、anktonrrr,AuthorF,:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。