关系型和非关系型数据库的区别

巡山小妖精
649次浏览
2021年02月11日 16:52
最佳经验
本文由作者推荐

-

2021年2月11日发(作者:五一哪里好玩)


关系型和非关系型数据库的区别



关系型与非关系型数据库的区别



当前 主流的关系型


数据库



Oracle< /p>



DB2



Mi crosoft


SQL


Server



M


icrosoft


Acces s



MySQL


等。

< br>


非关系型数据库有



NoSq l



Cloudant




nosql


与关系型数据库比较?



优点


:


1)


成本


:nosql


数据库简单易部署


,


基本都就是开源软件


,


不需要像使用< /p>


oracle


那样花费大量成本购买使用


,


相比关系型数据库价格便宜。



2)


查询速度


:nosql


数据库将数据存 储于缓存之中


,


关系型数据库将数据


存 储在硬盘中


,


自然查询速度远不及


no sql


数据库。



3)


存储数据的格式


:nosql


的存储格式就是


key,value


形式、文档形式、


图片形式 等等


,


所以可以存储基础类型以及对象或者就是集合等各种格< /p>



,


而数据库则只支持基础类型。



4)


扩展性


:


关系型数据库有类似


join


这样的多表查 询机制的限制导致扩


展很艰难。



缺点


:


1)


维护的工具与资料有限


,


因为


nosq l


就是属于新的技术


,


不能与关系型< /p>


数据库


10


几年的技术同日而语。



2)


不提供对


sq l


的支持


,


如果不支持


sql


这样的工业标准


,


将产 生一定用户


的学习与使用成本。



3)


不提供关系型数据库对事物的处理。



关系型和非关系型数据库的区别



非关 系型数据库的优势


:1



< p>
性能


NOSQL


就是基于键值对的


,


可以想象


成表中的主键与值的对应关系


,


而且不需要经过


SQL


层 的解析


,


所以性


能非常高。

< p>
2




可扩展性同样也就 是因为基于键值对


,


数据之间没有耦


合 性


,


所以非常容易水平扩展。



关系型数据库的优势


:1


< br>


复杂查询可以用


SQL


语句方 便的在一个表以


及多个表之间做非常复杂的数据查询。


2




事务支持使得对于安全性能


很高的数据访问要求得以实现。对于这两类数据库


,


对方的优势就就是


自己的弱势


,


反之亦 然。



关系型数据库把所有的数据都通过行与列的二元表现形式 表示出来。





关系型数据库的优势


:



1




保持数 据的一致性


(


事务处理


)



2



由于以标准化为前提


,


数据更新的开销很小


(


相同的字段基本上都只有


一处


)


3




可以进行


Join


等复杂查询



其中能够保持数据的一致性就是关系型数据库的最大优势。





关系型数据库的不足


:



不擅长的处理



关系型和非关系型数据库的区别



1




大量数据的写入处理



2




为有数 据更新的表做索引或表结构


(schema)


变更



3




字段不固定时应用



4




对简单查询需要快速返回结果的处理



--


大量数据的写入处理


< p>
读写集中在一个数据库上让数据库不堪重负


,


大部 分网站已使用主从复


制技术实现读写分离


,

以提高读写性能与读库的可扩展性。



所以在进行大量数据 操作时


,


会使用数据库主从模式。数据的写入由主


数据库负责


,


数据的读入由从数据库负责

< p>
,


可以比较简单地通过增加从数


据库来实现规模化


,


但就是数据的写入却完全没有简单的方法来解决规

< p>
模化问题。



第一


,


要想将数据的写入规模化


,


可以考虑把主数 据库从一台增加到两台


,


作为互相关联复制的二元主数据库使用


,


确实这样可以把每台主数据库


的负荷 减少一半


,


但就是更新处理会发生冲突


,


可能会造成数据的不一致


,


为了避免 这样的问题


,


需要把对每个表的请求分别分配给合适的主数据< /p>


库来处理。



关系型和非关系型数据库的区别



< /p>


第二


,


可以考虑把数据库分割开来


,


分别放在不同的数据库服务器上


,



如将不同的表放在不同的数据库服务器上


,< /p>


数据库分割可以减少每台数


据库服务器上的数据量


,


以便减少硬盘


IO


的输入、


输出处理


,


实现内存上


的高速处理。但就是由于分别存储字不同服务器上的表之间无法进行


J


oin


处理


,


数据库分 割的时候就需要预先考虑这些问题


,


数据库分割之后

< p>
,


如果一定要进行


Join


处理


,


就必须要在程序中进行关联


,


这就是非常困难


的。



关系型和非关系型数据库的区别







--< /p>


为有数据更新的表做索引或表结构变更



在使用关系型数据库时


,


为了加快查询速度需要创建索引


,


为了增加必要


的字段就一定要改变表结构< /p>


,


为了进行这些处理


,

< br>需要对表进行共享锁定


,

-


-


-


-


-


-


-


-