初识存储&数据库 | 青训营

99 阅读4分钟

1.存储系统

(1)定义

  “一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,就可以称为存储系统”

存储系统是指用于存储和管理数据的一组硬件和软件组件的集合。它允许计算机系统将数据持久地保存在非易失性存储介质中,以便后续访问和处理。存储系统的主要目标是提供高效的数据存取、可靠的数据保护和备份,以及有效地管理数据的存储和检索。

设计存储系统的过程中,除了要考虑用户、媒介和内存,多数时候也需要把网络设计纳入考虑范畴,以实现大容量存储。

(2)特点

① 作为后端软件的底座,性能敏感;

② 存储系统软件架构,容易受硬件影响;

③ 存储系统代码,既“简单”又“复杂”(I/O路径上代码简单,错误处理的准备复杂)

(3)RAID技术(磁盘阵列)

R(edundant) A(rray) of I(nexpensive) D(isks)”

目的:实现单机存储系统的高性能 /高性价比 /高可靠性

不同的RAID级别具有不同的特性,适用于不同的应用场景。以下是一些常见的RAID级别:

RAID 0: 也称为条带化,数据被分割成小块,分别存储在不同的硬盘上。这提高了性能,但没有容错性。如果一个硬盘故障,所有数据都可能丢失。

RAID 1: 也称为镜像,数据在两个硬盘之间进行镜像复制,提供了数据冗余和容错性。如果一个硬盘故障,数据仍然可以从另一个硬盘恢复。

RAID 10(或RAID 1+0): 这是RAID 1和RAID 0的组合,首先将数据镜像成对,然后将镜像的数据条带化。它提供了很高的性能和容错性,但需要更多的硬盘。

2.数据库

关系型数据库(RDBMS)和非关系型数据库(NoSQL)是两种不同类型的数据库管理系统,用于存储和管理数据。它们在数据模型、数据结构、查询语言和应用场景等方面存在显著的差异。

关系型数据库(RDBMS):

  1. 数据模型: 关系型数据库使用表格(也称为关系)来存储数据,每个表都有固定的列和数据类型。表之间可以建立关系(关联),通过主键和外键来表示数据之间的联系。
  2. 数据结构: 数据以行和列的形式存储在表格中,类似于电子表格。每行表示一个记录,每列表示一个属性。
  3. 查询语言: 关系型数据库使用结构化查询语言(SQL)进行数据查询和操作。SQL语言具有丰富的功能,用于检索、更新、插入和删除数据。
  4. 一致性: 关系型数据库通常支持强一致性,即数据在多个副本之间保持同步,确保数据的准确性和一致性。
  5. 事务支持: 关系型数据库提供事务支持,确保在数据库操作中的原子性、一致性、隔离性和持久性(ACID属性)。
  6. 应用场景: 适用于需要严格的数据一致性、事务支持以及需要复杂查询和关系分析的应用,如企业级应用、金融系统、CRM系统等。

非关系型数据库(NoSQL):

  1. 数据模型: 非关系型数据库采用多种数据模型,如文档、键值对、列族、图等,以更灵活的方式存储和组织数据。
  2. 数据结构: 数据结构可以根据需要自由定义,每个数据项可以具有不同的属性,不需要遵循固定的表格结构。
  3. 查询语言: 非关系型数据库通常使用非SQL查询语言,或者具有较为简化的查询语法。查询功能可能不如SQL丰富,但更适合某些特定用途。
  4. 一致性: 非关系型数据库通常提供多种一致性模型,可以根据应用需求进行选择,包括强一致性、最终一致性等。
  5. 事务支持: 一些非关系型数据库提供事务支持,但在一致性和可用性之间可能存在权衡。
  6. 应用场景: 适用于大规模数据存储、高吞吐量、分布式环境以及需要水平扩展的应用,如社交媒体、大数据分析、实时数据处理等。

需要根据具体的应用需求来选择合适的数据库类型。关系型数据库适用于需要严格的数据一致性和事务支持的应用,而非关系型数据库适用于需要灵活的数据模型、高吞吐量和大规模数据存储的应用。