关系型数据库与非关系型数据库总结

关系型数据库:

     简介:

建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。强调实体和实体之间的联系。

 

      

     优点:

1.      保持数据的一致性(最大优势)

2.      数据更新开销小(数据表设计满足范式规范,相同的字段基本上只保留一处)

3.      可以进行表间级联Join等复杂操作

 

 

缺点:

1.      大量数据写入处理(负载高,处理慢)

2.      大规模数据集合多重数据种类处理困难(针对超大规模和高并发的动态网站问题)

3.      字段不固定的应用场景(表结构经常变更风险高)(扩展性差)

4.      对简单查询需要快速返回结果的处理(处理简单查询时额外开销较大)

 

 

 

 

 

非关系型数据库(NoSQL):

     简介:

       针对关系型数据库的不足,为了应用于特定领域的数据库。

     适用场景:

              1、数据模型比较简单;

2、需要灵活性更强的IT系统;

3、对数据库性能要求较高;

4、不需要高度的数据一致性;

5、对于给定key,比较容易映射复杂值的环境。

 

     与关系型数据库区别:

       关系型数据库是二维表结构,关系型数据库是由二维表以及表间关系组成的一个数据组织。

       而关系型数据库是一种数据结构化存储方法的集合,主要目的是提高海量数据的存储性能。

 

 

 

图1  关系型数据库模型

 

 

 

图2非关系型数据库模型

 

 

     优点:

              1.易于处理没有明确关系的分散数据

 

              2.便于大量数据写入操作

 

3.减少每个服务器上的数据量

 

缺点:

1.      处理数据时思维方式不同,应用困难

 

2.      不具备表间级联Jion等处理能力

 

3.      无法确保数据一致性

 

     分类:

 

 

 

 

 

 

 

 

 

 

分类

实例

应用场景

数据模型

优点

缺点

键值存储

(key-value)

 

Redis

 

Oracle BDB

 

1.内容缓存

2.大量数据的高访问负载

3.日志系统

 

Key 指向 Value 的键值对,通常用hash table来实现

 

1.查找速度快

 

2.简单、易部署

 

数据无结构化,通常只被当作字符串或者二进制数据

列存储数据库

 

Cassandra

 

HBase

 

分布式文件系统

 

以列簇式存储,将同一列数据存在一起,以列为单位读入数据

 

1.查找速度快

2.可扩展性极强,数据增加不会降低处理速度

3.容易进行分布式扩展

4.方便对大量行、少量列进行读取

5.对所有行的特定列进行同时更新

 

功能相对局限

文档型数据库

 

CouchDB

 

MongoDb

 

Web应用(与Key-Value类似,Value是结构化的,不同的是数据库能够了解Value的内容)

 

1.不定义表结构,避免表结构频繁变更问题

 

2.允许使用复杂查询条件

 

数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构

 

查询性能不高,而且缺乏统一的查询语法。

图形(Graph)数据库

I

nfoGrid

 

Infinite Graph

 

社交网络,推荐系统等。专注于构建关系图谱

 

图结构,方便扩展

 

利用图结构相关算法。比如最短路径寻址,N度关系查找等

 

很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案。

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值