目录
一、数据库分类
数据库根据数据结构可分为关系型数据库、非关系型数据库。非关系型数据库中根据应用场景又可分为键值数据库、列存储数据库、面向文档数据库、搜索引擎数据库等。
1、 关系型数据库
这种类型的数据库是最古老的数据库类型,关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式), 如图2是一个二维表的实例。通常该表第一行为字段名称,描述该字段的作用,下面是具体的数据。在定义该表时需要指定字段的名称及类型。
典型产品:MySQL、SqlServer、Oracle、PostgreSQL、SQLite等。
在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上。在大型系统中通常有多个表,且表之间有各种关系。实际使用就是通过对这些关联的表格分类、合并、连接或选取等运算来实现数据库的管理。
2、 非关系型数据库
(1)键值存储数据库
键值数据库是一种非关系数据库,它使用简单的键值方法来存储数据。键值数据库将数据存储为键值对集合,其中键作为唯一标识符。
典型产品:Redis、Memcached等。
如图2是某公有云的键值存储示意图,其中键包含分区键和排序键,而值包含更多的实际信息。比如实际使用是可以以学号为键,姓名、性别、年龄和班级等信息为值进行存储。实际存储形式很灵活,是业务需求自行定义即可。
(2)列存储数据库
列式存储 是相对于传统关系型数据库的行式存储 来说的。简单来说两者的区别就是对表中数据的存储形式的差异。MySQL都是一行一行数据存储的(行存储)。
如图3是传统行数据库和列数据库表中数据在磁盘上的存储形式的差异对比。对于行存储数据库,表中的数据是以行为单位逐行存储在磁盘上的;而对于列存储数据库,表中的数据则是以列为单位逐列存储在磁盘中。
列存储解决的主要问题是