简单了解关系型数据库与非关系型数据库

什么是数据库?

数据库,即数据的集合,是按照数据结构来组织、存储和管理数据的仓库。

什么是关系型数据库?

RDBMS,关系型数据库是指依据关系模型来创建的数据库,主要用于储存结构化的数据。

 关系模型包括一对一、一对多、多对多等,举个简单的例子:一个学校有很多个班级,学校与班级的对应关系就是一对多;一个班级有多个老师和多个学生,老师与学生的对应关系是多对多;每个学生有一个学号,学生与学号的的对应关系为一对一。

关系模型包含三个方面:

1)、数据结构:解决数据存储,eg:表中的行和列;

2)、操作指令:sql语句;

3)、完整性约束:表内数据约束,表中行(单条数据)存在内部联系,列数据(只能一类的值,eg:姓名等)存在内部约束;表与表之间(通过外键)的约束。

关系型数据库遵循ACID原则

A:原子性

那什么是原子性?事务里的所有操作只有两种情况发生,要么全部做完,要么都不做。事务成功意味着该事务中所有操作都成功,只要有一个操作失败,该事务就失败并进行回滚(数据回到事务前的状态)。

举个例子:你的某宝里有1000元,你朋友的某宝里也有1000元。你转账100元给你朋友,那么我们把分成两个步骤:1)、你的某宝减去100元;2)、你朋友的某宝多100元。这两步要么一起完成(事务成功),要不一起不完成(事务失败回滚),如果只完成了第一步,没有完成第二步,就会有100元不翼而飞,你会找某宝的麻烦。

C:一致性

数据库会一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。

还是上面的例子,你和你朋友总共是2000元,那么不管你和你朋友怎么样转账(事务),不考虑其他因素的影响,事务结束后,你和你朋友还是有2000元,否则事务失败。

I:隔离性

并发的事务之间不会互相影响,当事务A访问的数据正在被事务B修改,只要事务B未提交,那么事务A所访问的数据就不受事务B的影响。

还是上面的例子,你转账100元给你朋友,当还没有成功的情况下,你朋友看到自己余额一直是1000元,只有在转账成功(事务完成)后,你朋友才能卡电脑自己的余额为1100元。

D:持久性

持久性是指一旦事务提交后,造成的影响是永久性的。即数据的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。

上面的例子,你转账100给你朋友后,你余额为900元,你朋友的余额为1100元,在没有其他事务提交的时间内,会一直保持这组数据。

什么是非关系型数据库?

NOSQL,非关系型数据库。与传统的关系型数据库有所区别 ,主要是存储没有固定格式的超大规模数据。

CAP理论

C:一致性

所有节点在同一时间具有相同的数据

A:可用性

保证每个请求不管成功或者失败都有响应

P:分区容忍性

系统中任意信息的丢失或失败不会影响系统的继续运作

CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。

因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:

CA :单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。

CP : 满足一致性,分区容忍性的系统,通常性能不是特别高。

AP :满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。

 

BASE

Basically Availble --基本可用

Soft-state --软状态/柔性事务

Eventual Consistency -- 最终一致性

    BASE就是为了解决关系数据库强一致性引起的问题而引起的可用性降低而提出的解决方案。通过牺牲高一致性(系统对某一时刻数据一致性的要求),获得可用性或可靠性。

RDBMS vs NoSQL

RDBMS
- 高度组织化结构化数据
- 结构化查询语言(SQL) (SQL)
- 数据和关系都存储在单独的表中。
- 数据操纵语言,数据定义语言
- 严格的一致性
- 基础事务

NoSQL
- 代表着不仅仅是SQL
- 没有声明性查询语言
- 没有预定义的模式
-键 - 值对存储,列存储,文档存储,图形数据库
- 最终一致性,而非ACID属性
- 非结构化和不可预知的数据
- CAP定理
- 高性能,高可用性和可伸缩性

常见数据库

 

 

如果有写的不对的地方,请大家多多批评指正,非常感谢!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值