关系型数据库/非关系型数据库

数据库类型主要分为两种,一种是关系型数据库,另一种是非关系型数据库(NoSQL)。

区别

关系型数据库,是指存储的数据之间具有关系,这种关系通常用二维表格中的行列来表示,即二维表的逻辑结构能反映表中数据的存储关系。常见的关系型数据库有 MySQL, Oracle, DB2 和 SqlServer 等。

非关系型数据库是相对于关系型数据库的一种泛指,它的特点是去掉了关系型数据库中的关系特性,从而获得更好的扩展性。NoSQL并没有严格的存储方式。但采用不同的存储结构是为了获得更高的性能和更高的并发。根据存储方式大致可分为四大类:键值存储数据库,列存储数据库,文档型数据库,图形数据库。

优缺点

关系型数据库:

  • 优点:

    • 二维表格,关系模式容易理解
    • 可维护型高,统一使用表结构存储
    • 采用通用的查询语言SQL,学习成本低
    • 通过SQL可实现多个表之间复杂的查询
  • 缺点:

    • 读写性能差
    • 以固定表结构存储,灵活性差
    • 难以满足高并发的读写需求

非关系型数据库:

  • 优点:

    • 格式灵活,没有固定的存储格式
    • 可扩展性高
    • 无需SQL层解析,读写性能高
    • 部署简单,开源软件,价格便宜
  • 缺点:

    • 不提供SQL支持,学习和使用成本高
    • 无事务处理,不支持ACID特性
    • 数据结构相对复杂,复杂查询方面稍欠

主键,外键和索引

主键 外键 索引
定义: 唯一标识一条记录,不能有重复的,不允许为空 表的外键是另一表的主键, 外键可以有重复的, 可以是空值 该字段没有重复值,但可以有一个空值
作用: 用来保证数据完整性 用来和其他表建立联系用的 是提高查询排序的速度
个数: 主键只能有一个 一个表可以有多个外键 一个表可以有多个惟一索引