跳到主要内容

2.1.3 存储和数据库

摘要

略。

1. 存储技术

存储分类根据服务器类型分为:封闭系统的存储和开放系统的存储。封闭系统主要指大型机等服务器。开放系统指基于包括麒麟、欧拉、UNIX、Linux等操作系统的服务器。开放系统的存储分为:内置存储和外挂存储。外挂存储根据连接的方式分为直连式存储(Direct-Attached Storage,DAS)和网络化存储(Fabric-Atached Storage,FAS)。网络化存储根据传输协议又分为网络接入存储(Network-Attached Storage,NAS)和存储区域网络(Storage Area Network, SAN)。DAS、NAS、SAN等存储模式之间的技术与应用对比如表2-2所示。

表2-2 常用存储模式的技术与应用对比

存储系统架构DASNASSAN
安装难易度不一定简单困难
数据传输协议SCSI/FC/ATATCP/IPFC
传输对象数据块文件数据块
使用标准文件共享协议是(NFS/CIFS⋯)
异种操作系统文件共享需要转换设备
集中式管理不一定需要管理工具
管理难易度不一定以网络为基础,容易不一定,但通常很难
提高服务器效率
灾难忍受度高,专有方案
适合对象中小组织服务器
捆绑磁盘(JBOD)
中小组织
SOHO族
组织部门
大型组织
数据中心
应用环境局域网
文档共享程度低
独立操作平台
服务器数量少
局域网
文档共享程度高
异质格式存储需求高
光纤通道储域网
网络环境复杂
文档共享程度高
异质操作系统平台
服务器数量多
业务模式一般服务器Web服务器
多媒体资料存储
文件资料共享
大型资料库
数据库等
档案格式复杂度
容量扩充能力

存储虚拟化(Storage Virtualization)是“云存储”的核心技术之一,它把来自一个或多个网络的存储资源整合起来,向用户提供一个抽象的逻辑视图,用户可以通过这个视图中的统一逻辑接口来访问被整合的存储资源。用户在访问数据时并不知道真实的物理位置。它带给人们直接的好处是提高了存储利用率,降低了存储成本,简化了大型、复杂、异构的存储环境的管理工作。

存储虚拟化使存储设备能够转换为逻辑数据存储,虚拟机作为一组文件存储在数据存储的目录中。数据存储是类似于文件系统的逻辑容器。它隐藏了每个存储设备的特性,形成一个统一的模型,为虚拟机提供磁盘。存储虚拟化技术帮助系统管理虚拟基础架构存储资源,提高资源利用率和灵活性,提高应用正常运行时间。

绿色存储(Green Storage)技术是指从节能环保的角度出发,用来设计生产能效更佳的存储产品,降低数据存储设备的功耗,提高存储设备每瓦性能的技术。绿色存储是一个系统设计方案,贯穿于整个存储设计过程,包含存储系统的外部环境、存储架构、存储产品、存储技术、文件系统和软件配置等多方面因素。

绿色存储技术的核心是设计运行温度更低的处理器和更有效率的系统,生产更低能耗的存储系统或组件,降低产品所产生的电子碳化合物,其最终目的是提高所有网络存储设备的能源效率,用最少的存储容量来满足业务需求,从而消耗最低的能源。以绿色理念为指导的存储系统最终是存储容量、性能、能耗三者的平衡。

绿色存储技术涉及所有存储分享技术,包括磁盘和磁带系统、服务器连接、存储设备、网络架构及其他存储网络架构、文件服务和存储应用软件、重复数据删除、自动精简配置和基于磁带的备份技术等可以提高存储利用率、降低建设成本和运行成本的存储技术,其目的是提高所有网络存储技术的能源效率。

2. 数据结构模型

数据结构模型是数据库系统的核心。数据结构模型描述了在数据库中结构化和操纵数据的方法,模型的结构部分规定了数据如何被描述(例如树、表等)。模型的操纵部分规定了数据的添加、删除、显示、维护、打印、查找、选择、排序和更新等操作。

常见的数据结构模型有三种:层次模型、网状模型和关系模型,层次模型和网状模型又统称为格式化数据模型。

1) 层次模型

层次模型是数据库系统最早使用的一种模型,它用“树”结构表示实体集之间的关联,其中实体集(用矩形框表示)为结点,而树中各结点之间的连线表示它们之间的关联。在层次模型中,每个结点表示一个记录类型,记录类型之间的联系用结点之间的连线(有向边)表示,这种联系是父子之间的一对多的联系。这就使得层次数据库系统只能处理一对多的实体联系。

每个记录类型可包含若干个字段,这里记录类型描述的是实体,字段描述实体的属性。每个记录类型及其字段都必须命名。各个记录类型、同一记录类型中各个字段不能同名。每个记录类型可以定义一个排序字段,也称码字段,如果定义该排序字段的值是唯一的,则它能唯一地标识一个记录值。

一个层次模型在理论上可以包含任意有限个记录类型和字段,但任何实际的系统都会因为存储容量或实现复杂度而限制层次模型中包含的记录类型个数和字段个数。在层次模型中,同一双亲的子女结点称为兄弟结点,没有子女结点的结点称为叶结点。层次模型的一个基本的特点是任何一个给定的记录值只能按其层次路径查看,没有一个子女记录值能够脱离双亲记录值而独立存在。

2) 网状模型

网状数据库系统采用网状模型作为数据的组织方式。网状模型用网状结构表示实体类型及其实体之间的联系。网状模型是一种可以灵活地描述事物及其之间关系的数据库模型。

现实世界中事物之间的联系更多的是非层次关系的,一个事物和另外的几个都有联系,用层次模型表示这种关系很不直观,网状模型克服了这一弊病,可以清晰地表示这种非层次关系。用有向图结构表示实体类型及实体间联系的数据结构模型称为网状模型。网状模型取消了层次模型的不能表示非树状结构的限制,两个或两个以上的结点都可以有多个双亲结点,则此有向树变成了有向图,该有向图描述了网状模型。

网状模型中以记录为数据的存储单位。记录包含若干数据项。网状数据库的数据项可以是多值的和复合的数据。每个记录有一个唯一标识它的内部标识符,称为码(DatabaseKey, DBK),它在一个记录存入数据库时由数据库管理系统(Database Management System,DBMS)自动赋予。DBK可以看作记录的逻辑地址,可作记录的替身或用于寻找记录。网状数据库是导航式(Navigation)数据库,用户在操作数据库时不但说明要做什么,还要说明怎么做。例如在查找语句中不但要说明查找的对象,而且要规定存取路径。

3) 关系模型

关系模型是在关系结构的数据库中用二维表格的形式表示实体以及实体之间的联系的模型。关系模型是以集合论中的关系概念为基础发展起来的。关系模型中无论是实体还是实体间的联系均由单一的结构类型关系来表示。

关系模型的基本假定是所有数据都表示为数学上的关系,就是说n个集合的笛卡儿积的一个子集,有关这种数据的推理通过二值的谓词逻辑来进行,这意味着对每个命题都只有两种可能的值:要么是真,要么是假。数据通过关系演算和关系代数的一种方式来操作。关系模型是采用二维表格结构表达实体类型及实体间联系的数据模型。

关系模型允许设计者通过数据库规范化的提炼,去建立一个信息的一致性的模型。访问计划和其他实现与操作细节由DBMS引擎来处理,而不应该反映在逻辑模型中。这与SQL DBMS 普遍的实践是对立的,在它们那里性能调整经常需要改变逻辑模型。

基本的关系建造块是域或者叫数据类型。元组是属性的有序多重集(Multiset),属性是域和值的有序对。关系变量(Relvar)是域和名字的有序对(序偶)的集合,它充当关系的表头(Header)。关系是元组的集合。尽管这些关系概念是在数学上的定义的,它们可以宽松地映射到传统数据库概念上。表是关系公认的可视表示;元组类似于行的概念。

关系模型的基本原理是信息原理,即所有信息都表示为关系中的数据值。所以,关系变量在设计时是相互无关联的;反而,设计者在多个关系变量中使用相同的域,如果一个属性依赖于另一个属性,则通过参照完整性来强制这种依赖性。

3. 常用数据库类型

数据库根据存储方式可以分为关系型数据库(SQL)和非关系型数据库(Not Only SQL, NoSQL)。

1) 关系型数据库

网状数据库(以网状数据模型为基础建立的数据库)和层次数据库(采用层次模型作为数据组织方式的数据库)已经很好地解决了数据的集中和共享问题,但是在数据独立性和抽象级别上仍有很大欠缺。用户在对这两种数据库进行在取时,仍然需要明确数据的存储结构,指出存取路径。而后来出现的关系数据库较好地解决了这些问题。关系数据库系统采用关系模型作为数据的组织方式。关系数据库是在一个给定的应用领域中,所有实体及实体之间联系的集合。

关系型数据库支持事务的ACI原则,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),这四种原则保证在事务过程当中数据的正确性。

2) 非关系型数据库

非关系型数据库是分布式的、非关系型的、不保证遵循ACID原则的数据存储系统。NoSQL数据存储不需要固定的表结构,通常也不存在连接操作。在大数据存取上具备关系型数据库无法比拟的性能优势。

常见的非关系数据库分为:

  • 键值数据库:类似传统语言中使用的哈希表。可以通过key来添加、查询或者删除数据库,因为使用key主键访问,会获得很高的性能及扩展性。Key/Value模型对于信息系统来说,其优势在于简单、易部署、高并发。
  • 列存储(Column-oriented)数据库:将数据存储在列族中,一个列族存储经常被一起查询,比如人们经常会查询某个人的姓名和年龄,而不是薪资。这种情况下姓名和年龄会被放到一个列族中,薪资会被放到另一个列族中。这种数据库通常用来应对分布式存储海量数据。
  • 面向文档(Document-Oriented)数据库:文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值,而且文档型数据库比键值数据库的查询效率更高。面向文档数据库会将数据以文档形式存储。
  • 图形数据库:允许人们将数据以图的方式存储。实体会作为顶点,而实体之间的关系则会作为边。比如有三个实体:Steve Jobs、Apple和Next,则会有两个Founded by的边将Apple和Next连接到Steve Jobs。

3) 不同存储方式数据库的优缺点

关系型数据库和非关系型数据库的优缺点,如表2-3所示。

表2-3 常用存储数据库类型优缺点

数据库类型特点描述
关系型数据库优点- 容易理解:二维表结构是非常贴近逻辑世界的一个概念,关系模型相对网状、层次等其他模型来说更容易理解
- 使用方便:通用的SQL语言使得操作关系型数据库非常方便
- 易于维护:丰富的完整性实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率
关系型数据库缺点- 数据读写必须经过SQL解析,大量数据、高并发下读写性能不足(对于传统关系型数据库来说,硬盘I/O是一个很大的瓶颈)
- 具有固定的表结构,因此扩展困难
- 多表的关联查询导致性能欠佳
非关系型数据库优点- 高并发:大数据下读写能力较强(基于键值对的,可以想象成表中的主键和值的对应关系,且不需要经过SQL层的解析,所以性能非常高)
- 基本支持分布式:易于扩展,可伸缩(因为基于键值对,数据之间没有耦合性,所以非常容易水平扩展)
- 简单,弱结构化存储
非关系型数据库缺点- 事务支持较弱
- 通用性差
- 无完整约束,复杂业务场景支持较差

4. 数据仓库

传统的数据库系统中缺乏决策分析所需的大量历史数据信息,因为传统的数据库一般只保留当前或近期的数据信息。为了满足中高层管理人员预测、决策分析的需要,在传统数据库的基础上产生了能够满足预测、决策分析需要的数据环境——数据仓库。数据仓库相关的基础概念包括:

  • 清洗/转换/加载(Extract/Transformation/Load,ETL):用户从数据源抽取出所需的数据,经过数据清洗、转换,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。
  • 元数据:关于数据的数据,指在数据仓库建设过程中所产生的有关数据源定义、目标定义、转换规则等相关的关键数据。同时元数据还包含关于数据含义的商业信息。典型的元数据包括:数据仓库表的结构、数据仓库表的属性、数据仓库的源数据(记录系统)、从记录系统到数据仓库的映射、数据模型的规格说明、抽取日志和访问数据的公用例行程序等。
  • 粒度:数据仓库的数据单位中保存数据的细化或综合程度的级别。细化程度越高,粒度级就越小;相反,细化程度越低,粒度级就越大。
  • 分割:结构相同的数据被分成多个数据物理单元。任何给定的数据单元属于且仅属于一个分割。
  • 数据集市:小型的,面向部门或工作组级的数据仓库。
  • 操作数据存储(Operation Data Store,ODS):能支持组织日常的全局应用的数据集合,是不同于DB的一种新的数据环境,是DW扩展后得到的一个混合形式。它具有四个基本特点:面向主题的、集成的、可变的、当前或接近当前的。
  • 数据模型:逻辑数据结构,包括由数据库管理系统为有效进行数据库处理提供的操作和约束;用于表示数据的系统。
  • 人工关系:在决策支持系统环境中用于表示参照完整性的一种设计技术。

数据仓库是一个面向主题的、集成的、非易失的且随时间变化的数据集合,用于支持管理决策。常见的数据仓库的体系结构如图2-2所示。

图2-2

图2-2 数据仓库体系结构

(1) 数据源。它是数据仓库系统的基础,是整个系统的数据源泉。通常包括组织内部信息和外部信息。内部信息包括存放于关系型数据库管理系统中的各种业务处理数据和各类文档数据。外部信息包括各类法律法规、市场信息和竞争对手的信息等。

(2) 数据的存储与管理。它是整个数据仓库系统的核心。数据仓库的真正关键是数据的存储和管理。数据仓库的组织管理方式决定了它有别于传统数据库,同时也决定了其对外部数据的表现形式。要决定采用什么产品和技术来建立数据仓库的核心,则需要从数据仓库的技术特点着手分析。针对现有各业务系统的数据,进行抽取、清理并有效集成,按照主题进行组织。数据仓库按照数据的覆盖范围可以分为组织级数据仓库和部门级数据仓库(通常称为数据集市)

(3) 联机分析处理(On-Line Analytic Processing,OLAP)服务器。OLAP对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。其具体实现可以分为:基于关系数据库的OLAP(Relational OLAP,ROLAP)、基于多维数据组织的OLAP(Multidimensional OLAP,MOLAP)和基于混合数据组织的OLAP(Hybrid OLAP, HOLAP)。ROLAP基本数据和聚合数据均存放在RDBMS之中;MOLAP基本数据和聚合数据均存放于多维数据库中;HOLAP基本数据存放于关系数据库管理系统(Relational Database Management System,RDBMS)之中,聚合数据存放于多维数据库中。

(4)前端工具。前端工具主要包括各种查询工具、报表工具、分析工具、数据挖掘工具以及各种基于数据仓库或数据集市的应用开发工具。其中数据分析工具主要针对OLAP服务器,报表工具、数据挖掘工具主要针对数据仓库。