关系型数据库/非关系型数据库
数据库类型主要分为两种,一种是关系型数据库,另一种是非关系型数据库(NoSQL)。
区别
关系型数据库,是指存储的数据之间具有关系,这种关系通常用二维表格中的行列来表示,即二维表的逻辑结构能反映表中数据的存储关系。常见的关系型数据库有 MySQL, Oracle, DB2 和 SqlServer 等。
非关系型数据库是相对于关系型数据库的一种泛指,它的特点是去掉了关系型数据库中的关系特性,从而获得更好的扩展性。NoSQL并没有严格的存储方式。但采用不同的存储结构是为了获得更高的性能和更高的并发。根据存储方式大致可分为四大类:键值存储数据库,列存储数据库,文档型数据库,图形数据库。
优缺点
关系型数据库:
优点:
- 二维表格,关系模式容易理解
- 可维护型高,统一使用表结构存储
- 采用通用的查询语言SQL,学习成本低
- 通过SQL可实现多个表之间复杂的查询
缺点:
- 读写性能差
- 以固定表结构存储,灵活性差
- 难以满足高并发的读写需求
非关系型数据库:
优点:
- 格式灵活,没有固定的存储格式
- 可扩展性高
- 无需SQL层解析,读写性能高
- 部署简单,开源软件,价格便宜
缺点:
- 不提供SQL支持,学习和使用成本高
- 无事务处理,不支持ACID特性
- 数据结构相对复杂,复杂查询方面稍欠
主键,外键和索引
主键 | 外键 | 索引 | |
---|---|---|---|
定义: | 唯一标识一条记录,不能有重复的,不允许为空 | 表的外键是另一表的主键, 外键可以有重复的, 可以是空值 | 该字段没有重复值,但可以有一个空值 |
作用: | 用来保证数据完整性 | 用来和其他表建立联系用的 | 是提高查询排序的速度 |
个数: | 主键只能有一个 | 一个表可以有多个外键 | 一个表可以有多个惟一索引 |