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

关系型数据库

1.存储方式:
采用表格进行储存,数据以行和列的方式进行存储,读取和查询十分方便

2.存储结构:
结构化的方法存储数据,数据表必须定义好各个字段,再根据表的结构存入数据。
a.优点:数据的形式和内容在存入数据之前就已经定义好了,所以整个数据表的可靠性和稳定性都比较高。
b.缺点:一旦存入数据后修改表的结构会很困难

3.存储规范:
关系型数据库为了避免重复,规范化数据以及充分利用好存储空间,把数据按照最小关系表的形式进行存储,这样数据管理就可以变得很清晰,一目了然,当然这是一张表的情况。多张数据表就不是这样了,由于涉及到多张数据表,数据表之间存在着复杂的关系,随着数据表数量的增加,数据管理会越来越复杂。

4.扩展方式:
由于关系型数据库将数据存储在数据表中,数据操作的瓶颈出现在多张数据表的操作中,而且数据表越多这个问题越严重,如果要缓解这个问题,只能提高处理能力,也就是选择速度更快性能更高的计算机,这样的方法虽然可以一定的拓展空间,但这样的拓展空间一定有非常有限的,也就是关系型数据库只具备纵向扩展能力

5.查询方式:
采用结构化查询语言(SQL),SQL可以采用类似索引的方法加快查询操作

6.规范化:
在数据库的设计开发过程中开发人员通常会面对同时需要对一个或者多个数据实体(数组,列表,嵌套数据)进行操作,这样在关系型数据库中,一个数据实体一般首先要分割成多个部分,然后再对分割的部分进行规范化,规范化以后再分别存入到多张数据表中,这是一个复杂的过程。好消息是随着软件技术的发展,相当多的软件开发平台都提供一些简单的解决方法,例如,可以利用ORM层(也就是对象关系映射)来将数据库中对象模型映射到基于SQL的关系型数据库中去以及进行不同类型系统的数据之间的转换。

7.事务性:
ACID原则:原子性,一致性,隔离性,持久性

8.读写性能:
关系型数据库十分强调数据的一致性,并为此降低读写性能付出了巨大的代价。虽然关系型数据存储数据和处理数据的可靠性很不错,但一旦面对海量数据的处理时候效率会变得很差,特别是遇到高并发读写的时候性能会下降的非常厉害。

非关系型数据库

1.易扩展:数据之间没有关系,非常容易扩展

2.大数据量,高性能
a.具备非常高的读写性能,尤其在大数据量下
b.数据结构简单,一般MySQL使用Cache Query。NoSQL的Cache是记录级的,是一种细粒度的Cache,性能更高。

3.灵活的数据模型
a.无需实现为要存储的数据建立字段,随时可以存储自定义的数据格式

4.高可用:
a.NoSQL在不太影响性能的情况下,可以方便的实现高可用架构。比如Cassandra,Habase模型,通过复制模型也能实现高可用。

NoSQL的体系框架:由下至上

1.数据持久层:定义数据存储格式

2.整体分布层:定义数据是如何分布的

3.数据逻辑模型层:数据的逻辑表现形式

4.接口层:方便的数据调用接口


NoSQL的适用场景:

1.数据模型比较简单

2.灵活性更强的IT系统

3.对数据库性能要求过高

4.不需要数据高度一致性

5.对于给定Key,比较容易映射复杂值的环境
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值