一、存储系统
- 什么是存储系统? 存储系统是一个提供读写和控制类接口的软件,能够安全有效地将数据持久化到硬件设备中。
- 存储系统的特点:
- 后端软件的底座,性能敏感,需要具备高性能。
- 存储系统的架构容易受硬件影响,需要与硬件发展相适应。
- 存储系统代码既简单又复杂,需要处理多种异常分支。
- 存储系统的硬件:存储器 存储器的容量和速度存在负相关关系。
- 存储系统的软件特点:
- 缓存在整个存储体系中起着重要的作用。
- 拷贝操作代价昂贵,应尽量减少拷贝操作。
- 硬件设备类型繁多,需要有抽象统一的接入层。
- RAID技术 RAID(Redundant Array of Inexpensive Disks)技术是为了提高单机存储系统的性能、性价比和可靠性而出现的技术。
- RAID 0:将多块磁盘简单组合,通过数据条带化存储提高磁盘带宽,但没有额外的容错设计。
- RAID 1:一块磁盘对应一块镜像盘,容错能力强但真实空间利用率仅为50%。
- RAID 0+1:结合了RAID 0和RAID 1的优点,具有较强的容错能力和良好的写入带宽。
二、关系型数据库
-
关系(Relation)是什么?
关系是由任意元素组成的有序偶对构成的集合,反映事物之间的关系。
-
关系代数
关系代数是一种抽象查询语言,用于对关系进行运算,包括交、并、差、笛卡尔积等运算。SQL是一种方便人类阅读的关系代数表达形式。
-
关系型数据库的特点:
- 结构化数据友好,可以以表的形式进行管理。
- 支持事务(ACID),保证数据的一致性和完整性。
- 支持复杂查询语言,提供灵活简洁的查询方式。
三、非关系型数据库
- 非关系型数据库的特点:
- 半结构化数据友好,不要求严格的结构化。
- 可能支持事务(ACID)。
- 可能支持复杂查询语言。
四、数据库与经典存储系统的比较
- 数据管理: 数据库将数据以表的形式进行管理,而经典存储系统将数据写入文件自行管理。
- 事务能力: 数据库具备强大的事务支持,事务具有原子性、一致性、隔离性和持久性的特点,保证数据的完整性和一致性。 经典存储系统的事务能力较弱。
- 复杂查询能力: 数据库支持灵活简洁的复杂查询,而传统存储系统的查询方式相对僵化复杂。