关系型和非关系型数据库的区别
-
关系型和非关系型数据库的区别
关系型与非关系型数据库的区别
当前
主流的关系型
数据库
有
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)
扩展性
:
p>
关系型数据库有类似
join
这样的多表查
询机制的限制导致扩
展很艰难。
缺点
:
1)
维护的工具与资料有限
,
因为
nosq
l
就是属于新的技术
,
不能与关系型<
/p>
数据库
10
几年的技术同日而语。
2)
不提供对
sq
l
的支持
,
如果不支持
sql
这样的工业标准
,
将产
生一定用户
的学习与使用成本。
3)
不提供关系型数据库对事物的处理。
关系型和非关系型数据库的区别
非关
系型数据库的优势
:1
、
性能
NOSQL
就是基于键值对的
,
可以想象
成表中的主键与值的对应关系
,
而且不需要经过
SQL
层
的解析
,
所以性
能非常高。
2
、
可扩展性同样也就
是因为基于键值对
,
数据之间没有耦
合
性
,
所以非常容易水平扩展。
关系型数据库的优势
:1
、
< br>
复杂查询可以用
SQL
语句方
便的在一个表以
及多个表之间做非常复杂的数据查询。
2
、
事务支持使得对于安全性能
很高的数据访问要求得以实现。对于这两类数据库
,
对方的优势就就是
自己的弱势
,
反之亦
然。
关系型数据库把所有的数据都通过行与列的二元表现形式
表示出来。
关系型数据库的优势
:
1
、
保持数
据的一致性
(
事务处理
)
2
、
由于以标准化为前提
,
数据更新的开销很小
(
相同的字段基本上都只有
一处
)
3
、
可以进行
Join
等复杂查询
其中能够保持数据的一致性就是关系型数据库的最大优势。
关系型数据库的不足
:
不擅长的处理
关系型和非关系型数据库的区别
1
、
大量数据的写入处理
2
、
为有数
据更新的表做索引或表结构
(schema)
变更
3
、
字段不固定时应用
4
、
对简单查询需要快速返回结果的处理
--
大量数据的写入处理
读写集中在一个数据库上让数据库不堪重负
,
大部
分网站已使用主从复
制技术实现读写分离
,
以提高读写性能与读库的可扩展性。
所以在进行大量数据
操作时
,
会使用数据库主从模式。数据的写入由主
数据库负责
,
数据的读入由从数据库负责
,
可以比较简单地通过增加从数
据库来实现规模化
,
但就是数据的写入却完全没有简单的方法来解决规
模化问题。
第一
,
p>
要想将数据的写入规模化
,
可以考虑把主数
据库从一台增加到两台
,
作为互相关联复制的二元主数据库使用
,
确实这样可以把每台主数据库
的负荷
减少一半
,
但就是更新处理会发生冲突
,
可能会造成数据的不一致
,
为了避免
这样的问题
,
需要把对每个表的请求分别分配给合适的主数据<
/p>
库来处理。
关系型和非关系型数据库的区别
<
/p>
第二
,
可以考虑把数据库分割开来
,
分别放在不同的数据库服务器上
,
比
如将不同的表放在不同的数据库服务器上
,<
/p>
数据库分割可以减少每台数
据库服务器上的数据量
,
以便减少硬盘
IO
的输入、
输出处理
,
实现内存上
的高速处理。但就是由于分别存储字不同服务器上的表之间无法进行
J
oin
处理
,
数据库分
割的时候就需要预先考虑这些问题
,
数据库分割之后
,
如果一定要进行
Join
处理
,
就必须要在程序中进行关联
,
这就是非常困难
的。
关系型和非关系型数据库的区别
--<
/p>
为有数据更新的表做索引或表结构变更
在使用关系型数据库时
,
为了加快查询速度需要创建索引
,
为了增加必要
的字段就一定要改变表结构<
/p>
,
为了进行这些处理
,
< br>需要对表进行共享锁定
,