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

关系型数据库与非关系型数据库的区别文章目录1.关系型数据库1.1概念1.2优点1.3瓶颈2.从关系型到非关系型3.非关系型数据库3.1概念3.2分类3.3缺点4.对比4.1存储上4.2事务4.3数据集4.4结构1.关系型数据库1.1概念  关系型数据库是指采用了关系模型来组织数据的数据库。简单来说,关系模式就是二维表格模型。  主要代表SQLserver,Oracle,Mysql1.2优点  1.容易理解,二维表的结构非常贴近现实世界  2.使用方便,使用sql语句使得操作关系型数据库非常方便  3.易

1.关系型数据库

1.1 概念

  关系型数据库是指采用了关系模型来组织数据的数据库。简单来说,关系模式就是二维表格模型。
  主要代表SQL server,Oracle,Mysql

1.2 优点

  1.容易理解,二维表的结构非常贴近现实世界
  2.使用方便,使用sql语句使得操作关系型数据库非常方便
  3.易于维护,数据库的ACID属性,大大降低了数据的冗余和数据不一致的问题

1.3 瓶颈

  1.海量数据的读写效率
  对于网站的并发量高,往往达到每秒上万次的请求,对于传统关系型数据库来说,硬盘IO是一个很大的挑战
  2.高扩展性和高可用性
  在基于web的结构中,数据库是最难以横向拓展的,当一个应用系统的用户量和访问量与日俱增的时候,数据库没有办法像web server那样简单的通过添加更多的硬件和服务结点来拓展性能和负载能力。

2.从关系型到非关系型

  关系型数据库的最大优点就是事务的一致性,这个特性,是的关系数据库可以适用于一切要求一致性比较高的系统中。比如银行系统

  但是在网页应用中,对这种一致性的要求不是那么严格,允许有一定的时间间隔,所以非关系型数据库这个特点不是那么重要了。相反,关系型数据库为了维护一致性所付出的巨大代价就是读写性能较差。而像微博、facebook这类应用,对于并发读写能力要求极高,关系型数据库已经无法应付。所以必须用一种新的数据结构存储来代替关系型数据库。所以非关系型数据库出现了。

3.非关系型数据库

3.1概念

  NoSQL非关系型数据库,主要是指那些非关系的、分布式的,且一般不保证ACID的数据存储系统,主要代表MongoDB,Redis、CounchDB。
  NoSQL提出了另一种理念,以键值来存储,且结构不稳定,每一个元组都可以有不一样的字段,这种就不会局限于固定的结构,可以减少一些时间和空间的开销。使用这种方式,为了获取用户的不同信息,不需要像关系型数据中,需要进行多表查询。仅仅需要根据key来取出相应的value值即可。

3.2分类

  非关系型数据库大部分是开源的,实现比较简单,大都是针对一些特性的应用需求出现。根据结构化方法和应用场景的不同,分为一下几类。
  1.面向高性能并发读写的key-value数据库
  主要特点是具有极高的并发读写能里,例如Redis,Tokyo Cabint等
  2.面向海量数据访问的面向文档数据库
  特点是,可以在海量的数据库快速查询数据。例如MongoDb以及CouchDB
  3.面向可拓展的分布式数据库
  解决的主要问题是传统数据库的扩展性上的缺陷

3.3 缺点

由于NoSQL的约束少,所以不能够像sql哪样提供where字段属性的查询。因此适合存储较为简单的数据。

4.对比

4.1 存储上

  关系型数据库是以表格的形式进行存储的,而非关系型数据库是以key-value的形式存储的

4.2 事务

  关系型数据库汇总有事务的概念,而非关系型数据库中没有,它的每一个数据集都是原子级别的

4.3 数据集

  关系型数据库的是表格型的,存储在数据表的行和列中,彼此关联,容易提取。而非关系型是大块存储的再一起的。

4.4 结构

  关系型数据库的结构是预先定义好的的,例如主键、索引、外键等,定义好这些结构之后才能添加数据。
  在非关系型数据库中,数据可以在任何时候任何地方添加。不需要预先定义。

今天的文章关系型数据库与非关系型数据库的区别分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/9927.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注