关系数据库非关系
A. 为什么要用非关系数据库
而传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如:
1、High performance - 对数据库高并发读写的需求
web2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求。关系数据库应付上万次sql查询还勉强顶得住,但是应付上万次SQL写数据请求,硬盘IO就已经无法承受了。其实对于普通的BBS网站,往往也存在对高并发写请求的需求。
2、Huge Storage - 对海量数据的高效率存储和访问的需求
对于大型的SNS网站,每天用户产生海量的用户动态,以国外的Friendfeed为例,一个月就达到了2.5亿条用户动态,对于关系数据库来说,在一张2.5亿条记录的表里面进行SQL查询,效率是极其低下乃至不可忍受的。再例如大型web网站的用户登录系统,例如腾讯,盛大,动辄数以亿计的帐号,关系数据库也很难应付。
B. 什么是非关系型数据库与关系型数据库区别是啥
我谈一点个人的见解吧。
记得之前看过一篇帖子,讲的是可能我们所说的非关系型数据库是我们翻译错了。年代久远,找不到原贴了,但是大概说的是非关系型数据库的名字叫Not Only Sql,我们简化过来就叫NoSql,所以看着就像是非关系型数据库,然后我们再顾名思义,就是数据之间没有关系的数据库,这个理解我不赞同。
如果从名字上来看,我觉得可以叫做不仅仅是关系型的数据库,更为恰当,当然,我们也不能否认,这类数据库确实在数据关联之间更为自由,约束条件更少,(甚至没有),但是这并不能阻挡它的发展,以“键值对”为基础的NoSql在性能上可以说是碾压对手,大家都知道NoSql不需要经过Sql层的解析的,相比关系型数据库数据之间的高耦合性,这让它具有更高的平行扩展性,当然这方面你需要去看一下相关的知识,高耦合低聚合等等概念需要理解一下。
大概就是我的理解了吧,关系型数据库就不用说了吧,我们常常用到,现在的主流数据库我们也都在接触,大到Oracle,小到Sqlite,相信你也比较熟悉,这些数据库都是支持事务和相当复杂的查询的,往往我们一条查询语句可以上百行(一子句一行)甚至上千行,这些都是NoSql做不到的,(注意我说的是一条查询语句),事务这个概念我也不多提了,这个网上就太多了,如果涉及到高并发之类的,可以多线程+事务,效率更高一些。
最后再补两句,好像现在的NoSql数据库的发展趋势很微妙,描述在往一些关系型数据库的基础模型延伸。
C. 什么是非关系数据库非关系数据库如何关联呀
这个与物理学无关,是数据库的一种类型。
关系数据库 - relational database,是一种通过建立索引来储存数据类型和他们之间的关联的技术。随着互联网的发展,有很多数据访问类型不再需要这种大型的关联逻辑,而是需要储存和读取大量的数据。比如Facebook,人人之类的网站,他们的数据类型如果用关系数据库来表示,则又慢又占地方。
所以最近几年兴起的非关系数据库(NOSQL - No Only SQL),包括键值查询表数据库,图数据库等,就是针对这种不需要关联,不需要多个表JOIN,但是需要储存和读些大量数据的情况而设计的。比如Graph Database,图数据库,储存的是一个Graph上的Node和Edge。这样比如查询你和我之间有多少个共同好友,或者像Linked-In那种查询两个用户之间隔着几个人的查询,只需要做一个Graph Walk就可以。
非关系数据库的并没有关联的概念,它的前提条件就是数据不需要关联。当然,你可以通过Id和索引来读取多个表中的数据,然后手动将他们关联在一起。总的来说,非关系数据库没有为这个情况做任何优化,也不适用于需要大量关联的数据。
D. 关系型和非关系型数据库的区别
关系式数据结构把一些复杂的数据结构归结为简单的二元关系(即二维表格形式)。
非关系型数据库通常分为层次式数据库、网络式数据库。按照网状数据结构建立的数据库系统称为网状数据库系统。用数学方法可将网状数据结构转化为层次数据结构。
层次结构模型实质上是一种有根结点的定向有序树(在数学中"树"被定义为一个无回的连通图)。
E. 关系型数据库跟非关系型数据库有什么区别
关系型数据库通过外键关联来建立表与表之间的关系,非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定
F. 关系型数据库和非关系型区别
一、特点不同
1、关系型数据库:传统的关系型数据库采用表格的储存方式,数据以行和列的方式进行存储,要读取和查询都十分方便;关系型数据库按照结构化的方法存储数据;关系型数据库采用结构化查询语言(即SQL)来对数据库进行查询。
2、非关系型数据库:一个Hibari集群是一个分布式系统;个Hibari集群是线性可伸缩的;一个Hibari集群是高度可用;所有的更新都是持久的;所有的更新都是强一致性;所有客户端操作是无锁的。
二、功能不同
1、关系型数据库:关系型数据库十分强调数据的一致性,并为此降低读写性能付出了巨大的代价,虽然关系型数据库存储数据和处理数据的可靠性很不错,但一旦面对海量数据的处理的时候效率就会变得很差,特别是遇到高并发读写的时候性能就会下降得非常厉害。
2、非关系型数据库:可用于云计算应用,如Web电子邮件、社交网络服务,以及其它日常需要储存TB和PB级规模数据的服务。
三、应用领域不同
1、关系型数据库:主要应用于计算机技术,例如在数据库设计中,指定学生Sstudent,专指本科生。
2、非关系型数据库:Hibari可用于云计算环境中,例如 webmail、SNS 和其他要求T/P级数据存储的环境中。Hibari 支持 Java, C/C++, Python, Ruby, 和 Erlang 语言的客户端。
G. 关系型数据库和非关系型数据库区别
1、数据存储方式不同。
关系型和非关系型数据库的主要差异是数据存储的方式。关系型数据天然就是表格式的,因此存储在数据表的行和列中。数据表可以彼此关联协作存储,也很容易提取数据。
与其相反,非关系型数据不适合存储在数据表的行和列中,而是大块组合在一起。非关系型数据通常存储在数据集中,就像文档、键值对或者图结构。你的数据及其特性是选择数据存储和提取方式的首要影响因素。
2、扩展方式不同。
SQL和NoSQL数据库最大的差别可能是在扩展方式上,要支持日益增长的需求当然要扩展。
要支持更多并发量,SQL数据库是纵向扩展,也就是说提高处理能力,使用速度更快速的计算机,这样处理相同的数据集就更快了。
因为数据存储在关系表中,操作的性能瓶颈可能涉及很多个表,这都需要通过提高计算机性能来客服。虽然SQL数据库有很大扩展空间,但最终肯定会达到纵向扩展的上限。而NoSQL数据库是横向扩展的。
而非关系型数据存储天然就是分布式的,NoSQL数据库的扩展可以通过给资源池添加更多普通的数据库服务器(节点)来分担负载。
3、对事务性的支持不同。
如果数据操作需要高事务性或者复杂数据查询需要控制执行计划,那么传统的SQL数据库从性能和稳定性方面考虑是你的最佳选择。SQL数据库支持对事务原子性细粒度控制,并且易于回滚事务。
虽然NoSQL数据库也可以使用事务操作,但稳定性方面没法和关系型数据库比较,所以它们真正闪亮的价值是在操作的扩展性和大数据量处理方面。
参考资料来源:网络——关系型数据库
参考资料来源:网络——非关系型数据库
H. 关系数据库系统与非关系数据库系统的区别是什么
关系数据库的原理就是二维表
非关系数据库有层次数据库、网状数据库等
大概就是这样
I. NoSQL非关系数据库和关系型数据库的区别是什么
非关系型数据库:非关系型数据库产品是传统关系型数据库的功能阉割版本,通过减少用不到或很少用的功能,来大幅度提高产品性能。
非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。
关系型数据库:是指采用了关系模型来组织数据的数据库。
关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。
对于安全性能很高的数据访问要求可以实现。
价格
目前基本上大部分主流的非关系型数据库都是免费的。而比较有名气的关系型数据库,比如Oracle、DB2、MSSQL是收费的。虽然Mysql免费,但它需要做很多工作才能正式用于生产。
功能
实际开发中,有很多业务需求,其实并不需要完整的关系型数据库功能,非关系型数据库的功能就足够使用了。这种情况下,使用性能更高、成本更低的非关系型数据库当然是更明智的选择。
对于这两类数据库,对方的优势就是自己的弱势,反之亦然。
J. 关系数据库和非关系数据库的区别
1.实质。
非关系型数据库的实质:非关系型数据库产品是传统关系型数据库的功能阉割版本,通过减少用不到或很少用的功能,来大幅度提高产品性能。
2.价格。
目前基本上大部分主流的非关系型数据库都是免费的。而比较有名气的关系型数据库,比如Oracle、DB2、MSSQL是收费的。虽然Mysql免费,但它需要做很多工作才能正式用于生产。
3.功能。
实际开发中,有很多业务需求,其实并不需要完整的关系型数据库功能,非关系型数据库的功能就足够使用了。这种情况下,使用性能更高、成本更低的非关系型数据库当然是更明智的选择。