关系型数据库及其优缺点

关系型数据库(Mysql和Oracle):指采用了关系模型来组织数据的数据库,关系模型指的就是二维表模型,关系型数据库就是由二维表以及表与表之间的联系组成;常见的关系型数据库有Oracle、SQLServer、MySql

关系型数据库 库 表 记录 字段 关系型数据库中的数据_关系型数据库 库 表 记录 字段


先来看一下关系型数据库的常见概念

关系:关系是一张表,像上图那样的一张表,

元组:表中的每行(即数据库中的每条记录)就是一个元组,也称记录,

属性:二维表中的每列就是属性,在数据库中被称为字段;数据库之间列无联系,行有联系

域:属性的取值范围,数据库中每一列的取值限制

关键字:一组可以唯一标识元组的属性,称为主键

优点

1、数据之间有关系,进行数据的增删改查的时候是非常方便的
2、容易理解,结构类似于常见的表格,非常容易理解;
3、易于维护:丰富的完整性大大减少了数据冗余和数据不一致的概率
4、关系型数据库是有事务操作的,保证数据的完整性和一致性。
5、使用方便,SQL语句非常的成熟
缺点
1、因为数据和数据是有关系的,底层是运行了大量的算法,这会降低系统的效率,会降低性能
2、面对海量数据的增删改查的时候会显的无能为力,网站每天产生的数据量是巨大的,在一张包含海量数据的表中查询,效率非常低
3、海量数据对数据进行维护变得非常的无力

使用场景:适合处理一般量级的数据(银行转账和钱)

非关系数据库的(redis和NoSql)

为了处理海量数据,非关系数据库设计之初就是为了替代关系型数据库的关系,有四大分类:键值(Redis)、列存储数据库(HBase)、文档型数据库(MongoDb)、图形数据库(Graph)

关系型数据库 库 表 记录 字段 关系型数据库中的数据_关系型数据库 库 表 记录 字段_02

MongoDB:面向文档的数据库,使用JSON风格的数据格式。它非常适合于网站的数据存储、内容管理与缓存应用,并且通过配置可以实现复制与高可用性功能。

Redis键值存储
这是个开源、高级的键值存储。由于在键中使用了hash、set、string、sorted set及list,因此Redis也称作数据结构服务器。这个系统可以帮助你执行原子操作,比如说增加hash中的值、集合的交集运算、字符串拼接、差集与并集等。Redis通过内存中的数据集实现了高性能。此外,该数据库还兼容于大多数编程语言。

优点
1、海量数据的增删改查是可以的
2、海量数据的维护和处理非常轻松
3、无须经过sql层的解析,读写性能很高
4、基于键值对、数据没有耦合性,容易扩展
5、存储数据的格式丰富多样,有key-value、文档形式、图片形式,
缺点
1、数据和数据没有关系,他们之间就是单独存在的
2、非关系数据库没有关系,没有强大的事务关系,没有保证数据的完整性和安全性
3、不提供SQL支持,学习和使用的成本很高
使用场景:适合处理海量数据,保证效率,不一定安全(统计数据,例如微博数据)