【系统分析师】第5章-基础知识:数据库系统(核心总结)
文章目录
- 5.1 数据库管理系统
- 5.1.1 概述
- 5.1.2 三级划分法
- 5.1.3 数据筷型
- 5.2 关系数据库
- 5.2.1 关系的基本概念
- 5.2.2 关系模型
- 5.2.3 规范化理论
- 5.3 数据库控制功能
- 5.3.1 并发控制
- 5.3.2 数据库的完整性
- 5.3.3 数据库的安全性
- 5.3.4 备份与恢复技术
- 5.3.5 数据库性能优化
- 5.4 数据库设计与建模
- 5.4.1 数据库设计阶段
- 5.4.2 实休联系模型
- 5.5 分布式数据库系统
- 5.5.1 分布式数据库概述
- 5.5.2 数据分片
- 5.6 数据仓库技术
- 5.6.1 联机分析处理
- 5.6.2 数据仓库概述
- 5.6.3 数据仓库的设计方法
- 5.7 数据挖掘技术
- 5.7.2 常用技术与方法
- 5.7.3 数据挖掘技术的应用
- 5.8 非关系数据库
- 5.8.1 概述
- 5.8.2 相关理论基础
- 5.8.3 列数据库
- 5.8.4 文档数据库
- 5.8.5 键值数据库
- 5.8.6 图数据库
在当今的知识经济时代,信息是经济发展的战略资源,信息技术已经成为社会生产力中重 要的组成部分。人们充分认识到,数据库是信息化社会中信息资源管理与开发利用的基础,当 今的计算机信息系统也都以数据库技术为基础。对千一个国家来说,数据库的建设规模和使用 水平已成为衡量该国信息化程度的重要标志。因此,数据库课程是计算机领域中的一门重要课程,也是系统分析师必须要掌握的专业知识与技能。
5.1 数据库管理系统
数据库是长期存储在计算机内的、有组织的、可共享的数据集合
,数据库系统是指在计算机信息系统中引入数据库后的系统,一般由数据库、数据库管理系统 (DataBase Management System, DBMS) 、应用系统、数据库管理员 (DataBase Administrator, DBA) 和用户构成。
5.1.1 概述
数据库管理系统是一种操纵和管理数据库的大型软件,用千建立、使用和维护数据库。 它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过 DBMS 访问 数据库中的数据,数据库管理员也通过 DBMS 进行数据库的维护工作。 DBMS 可以支持多个 应用程序和用户用不同的方法在同时或不同时刻去建立、修改和询问数据库。大部分 DBMS 提供数据定义语言 (Data Definition Language, DDL) 和数据操作语言 (Data Manipulation Language, DML), 供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等 操作。
简单地说,数据库管理系统是一个能够提供数据录入、修改、查询的数据操作软件,具有数据定义、数据操作、数据存储与管理、数据维护、通信等功能,且能够允许多用户使用。
5.1.2 三级划分法
数据库系统的结构划分可以有多种不同的层次或不同的角度,典型的是三级划分法,就是 把数据库系统划分为三级模式,在三级模式之间提供两级映射,这两级映射保证了数据库中的 数据具有较高的物理独立性和逻辑独立性。
1 .三级模式
数据库系统的三级模式如图 5-1 所示,从图 5-1 中可以看出,数据库系统由外模式、概念模式和内模式
三级构成。
外模式
:也称为子模式或用户模式,对应千用户级数据库。外模式用以描述用户(包括程 序员和终端用户)看到或使用的那部分数据的逻辑结构,是数据库用户的数据视图,是与某 一应用有关的数据的逻辑表示。
概念模式
:也称为模式或逻辑模式,对应于概念级数据库。概念模式是数据库中全体数据的 逻辑结构和特征的描述,是所有用户的公共数据视图,用以描述现实世界中的实体及其性质与 联系,定义记录、数据项、数据的完整性约束条件及记录之间的联系。
内模式
:对应千物理级数据库,是数据物理结构和存储方式的描述,是数据在数据库内部的 表示方式。内模式不同于物理层,它假设外存是一个无限的线性地址空间。内模式定义的是存 储记录的类型、存储域的表示和存储记录的物理顺序,以及索引和存储路径等数据的存储组织。 一个数据库只有一个内模式。
2.两级独立性
数据库系统的两级独立性是指物理独立性和逻辑独立性。三个抽象级别之间通过两级映射(外模式/模式映射和模式/内模式映射)进行相互转换,使得数据库的三级模式形成一个统一的整体。
5.1.3 数据筷型
数据模型是现实世界数据特征的抽象。通过这种抽象,可以将现实世界的问题转化到计算 机上进行分析与解决。数据模型所描述的内容包括 3 个部分,分别是数据结构、数据操作和数 据约束。其中,数据结构主要描述数据的类型、内容、性质和数据间的联系等。数据结构是数 据模型的基础,数据操作和数据约束都建立在数据结构上。不同的数据结构具有不同的操作和 约束。数据操作主要描述在相应的数据结构上的操作类型和操作方式。数据约束主要描述数据 结构内数据间的语法和词义联系、它们之间的制约和依存关系,以及数据动态变化的规则,以 保证数据的正确、有效和相容。人们提出过很多种基本数据模型,其中最著名的有层次模型、 网状模型、关系模型和面向对象模型。
1 .层次模型
层次模型是最早出现的数据模型,由于它采用了树状结构作为数据的组织方式,在这种结构中,每一个结点可以有多个孩子结点,但只能有一个双亲结点,这样,整体结构也是分层状 的,所以称其为层次模型。层次模型数据库系统的典型代表是 IBM 公司的 IMS 数据库管理系 统,该系统是 1968年推出的,曾经作为大型商用数据库系统被广泛使用。
2. 网状模型
网状模型用有向图表示实体类型和实体之间的联系。网状模型的优点是记录之间的联系通 过指针实现,多对多的联系容易实现,查询效率高;其缺点是编写应用程序比较复杂,程序员 必须熟悉数据库的逻辑结构。由图和树的关系可知,层次模型是网状模型的一个特例。
3.关系模型
关系模型用表格结构表达实体集,用外键表示实体之间的联系。关系模型建立在严格的数学概念基础上,概念单—、结构简单、清晰,用户易懂易用;存取路径对用户透明,从而数据独立性和安全性好,能简化数据库开发工作。其缺点主要是由千存取路径透明,查询效率往往 不如非关系数据模型关系模型是目前应用最广泛的一种数据模型,例如, Oracle、 DB2、 SQL Server、 Sybase 和MySQL等都是关系数据库系统。
4.面向对象模型
面向对象模型是用面向对象的观点来描述现实世界实体的逻辑组织、对象之间的限制和 联系等的模型。目前,已有多种面向对象数据库产品,例如, ObjectStore、 Versant Developer、 Suite Poet和 Objectivity等,但其具体的应用并不多。目前主流的方式是在现有的关系模型数据 库系统中增加对对象模型的支待,如 Oracle等。
5.2 关系数据库
关系数据库是目前应用非常广泛的数据库之一,有一套完整的理论做支持。关系模型是关 系数据库的基础,由关系数据结构、关系操作集合和关系完整性规则三部分组成。本节介绍关 系模型的基本概念、关系代数和关系演算以及关系规范化理论方面的内容。
5.2.1 关系的基本概念
关系数据库应用数学方法来处理数据库中的数据。最早提出将这类方法用于数据处理的是CODASYL (数据系统语言会议)于1962年发表的“信息代数”一文,之后DavidChild千 1968年在 7090机上实现了集合论数据结构,但系统而严格地提出关系模型的是美国 IBM公司 的 E.F.Codd。
关系数据库中涉及的基本术语有:
(1)属性 (Attribute)
。在现实世界中,要描述一个事物常常取若干特征来表示,这些特征称为属性。例如,学生用学号、姓名、性别、系别、年龄、籍贯等属性来描述。
(2) 域 (Domain)
。每个属性的取值范围所对应的值的集合,称为该属性的域。例如,学号的域是 6 位整型数,姓名的域是 10 位字符,性别的域为{男,女}等。一般在关系数据模型 中,对域还加了一个限制,所有的域都应是原子数据 (AtomicData)。例如,整数、字符串是原子数据,而集合、记录、数组是非原子数据。
(3)目或度 (Degree)
。二维表关系R (DI’ D2, …队)中的R表示关系的名字, n是关系的目或度。
(4) 候选码(CandidateKey)
。若关系中的某一属性或属性组的值能唯一地标识一个元组,则称该属性或属性组为候选码。
(5) 主码 (PrimaryKey)
。或称主键,若—个关系有多个候选码,则选定其中一个为主码。 (6) 主属性 CPrime Attribute) 。包含在任何候选码中的属性称为主属性。不包含在任何候
选码中的属性称为非主属性 (Nonprime Attribute) 。
(7) 外码( Foreign Key)
。如果关系模式 R 中的属性或属性组非该关系的码,但它是其他关系的码,那么该属性集对关系模式 R 而言是外码。例如,客户与贷款之间的借贷联系 c-1 (c- id, loan-no), 属性 c-id是客户关系中的码,所以 c-id是外码:属性 loan-no是贷款关系中的码。
(8) 全码 (All-key)
。关系模型的所有属性组是这个关系模式的候选码,称为全码。例如,关系模式 R (T, C, S), 属性 T表示教师,属性 C表示课程,属性 S表示学生。假设一个教师 可以讲授多门课程,某门课程可以由多个教师讲授,学生可以听不同教师讲授的不同课程,那 么,要想区分关系中的每一个元组,这个关系模式 R 的码应为全属性 T、 C 和 S, 即 All-key。
5.2.2 关系模型
在关系模型中,实体以及实体间的联系都是用关系来表示的。在一个给定的现实世界领域中,所有实体及实体间的联系的关系的集合构成了一个关系数据库。关系的描述称为关系模式,关系模 式通常可以简记为 R(A1, A2, … ,An), 其中 R 为关系名, A1、 A2、…、 An 为属性名。关系实际上 就是关系模式在某一时刻的状态或内容。也就是说,关系模式是型,关系是它的值。关系模式是 静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中 的数据。但在实际应用中,通常将关系模式和关系统称为关系,读者可以从上下文中加以区别。
1. 关系运算
关系代数的基本运算主要有并、差、交、笛卡儿积、投影、选择、连接和除。
2. 元组演算
在元组演算中,元组演算表达式简称为元组表达式,其一般形式为{t IP(t)}'其中,t是元 组变量表示一个元数固定的元组; P(t)是公式,在数理逻辑中也称为谓词,也就是计算机语言 中的条件表达式。{t IP(t)}表示满足公式 P 的所有元组t的集合。
5.2.3 规范化理论
设有一个关系模式 R(SNAME, CNAME, TNAME, TADDRESS), 其属性分别表示学生姓名、 选修的课程名、任课教师姓名和任课教师地址。仔细分析一下,就会发现这个模式存在下列异 常问题:
(I)数据冗余。如果某门课程有 100 个学生选修,那么在 R 的关系中就要出现 100 个元组, 这门课程的任课教师姓名和地址也随之重复出现 100次。
(2) 修改异常。由千上述冗余问题,当需要修改这个教师的地址时,就要修改 100 个元组中的地址值,否则就会出现地址值不一致的现象。
(3)插入异常。如果不知道听课学生名单,这个教师的任课情况和家庭地址就无法进入数据库,否则就要在学生姓名处插入空值。
(4) 删除异常。如果某门课程的任课教师要更改,那么原来任课教师的地址将随之丢失。
因此,关系模式 R 虽然只有 4 个属性,但却是性能很差的模式。产生这些异常的原因与关 系模式属性值之间的联系直接相关。在关系模式 R 中,学生与课程有直接联系,教师与课程有 直接联系,而教师与学生无直接联系,这就产生了关系模式 R 的异常问题。如果将 R 分解成下 列两个关系模式,即 Rl (SNAME, CNAME) 和 R2 (CNAME, TNAME, TADDRESS), 则能消 除上述的存储异常现象。
1. 函数依赖与键
函数依赖是数据库的一种约束,决定了关系模式属于哪种范式。
2. 范式
为了设计一个好的数据库,人们定义了一些好的关系模式标准, 称它们为规范的关系模式或范式 (Normal Form, NF) 。目前共定义了多个范式,分别为 lNF、 2NF、 3NF、 BCNF、 4NF和 5NF。但在实际应用中,一般只要达到 3NF。
(1)第一范式 (lNF) 。在关系模式 R 中,当且仅当所有属性只包含原子值,即每个分量都是不可再分的数据项,则称 R 满足 lNF。
(2) 第二范式 (2NF) 。当且仅当关系模式 R 满足 lNF,且每个非键属性(即不属千任何 候选键的属性,也称为非主属性)完全依赖千候选键时,则称 R 满足 2NF。例如,有选课关系 模式 SC(Sno, Cno, Grade, Cre小t),其中,(Sno, Cno)- Grade, Cno 一 Credit。因此, SC 的 候选键为 (Sno, Cno)。这样, Cno 一 Credit就构成了 Credit对候选键 (Sno, Cno) 的部分函数依 赖。因此, SC 不满足 2NF。若要将 SC 转化为 2NF, 可以将它拆分为 SCI (Sno, Coo, Grade) 和SC2(Cno, Credit)。
(3)第三范式 (3NF) 。当且仅当关系模式 R 满足 2NF, 且 R 中消除了非键属性传递依赖于候选键时,则称R满足3NF。
(4) BCNF。如果关系模式 R 满足 lNF,且 R 中没有属性传递依赖 千候选键时,则称 R 满足 BCNF。
(5) 第四范式 (4NF) 。第四范式是 BCNF 的推广,是针对有多值依赖的关系模型所定义的规范化形式。
3.关系模式分解
如果某关系模式存在修改异常等问题,则可通过分解该关系模式来解决问题。将一个关系 模式分解成几个子关系模式,需要考虑的是该分解是否保持函数依赖,是否是无损联接。
5.3 数据库控制功能
要想使数据库中的数据达到应用的要求,必须对其进行各种控制,这就是 DBMS 的控制功 能,包括并发控制、性能优化、数据库的完整性和安全性,以及数据备份与恢复等。这些技术 虽然给人们的感觉是边缘性技术,但对 DBMS 的应用而言却是至关重要的。
5.3.1 并发控制
在多用户共享系统中,许多事务可能同时对同一数据进行操作,称为并发操作。此时, DBMS 的并发控制子系统负责协调并发事务的执行,保证数据库的完整性不受破坏,同时,避 免用户得到不正确的数据。
1.事务的基本概念
DBMS 运行的基本工作单位是事务,事务是用户定义的一个数据库操作序列,这些操作序 列要么全做,要么全不做,是一个不可分割的工作单位。事务具有以下特性:
(l) 原子性 (Atomicity)
。事务是数据库的逻辑工作单位,事务的原子性保证事务包含的 一组更新操作是原子不可分的,也就是说,这些操作是一个整体,不能部分地完成。
(2) 一致性 (Consistency)
。一致性是指使数据库从一个一致性状态变到另一个一致性状 态。例如,在转账的操作中,各账户金额必须平衡。一致性与原子性是密切相关的,一致性在 逻辑上不是独立的,它由事务的隔离性来表示。
(3)隔离性 Osolation)
。隔离性是指一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
它要求即使有多个事务并发执行,但看上去每个事务是按串行调度执行一样。这一性质也称为 可串行性,也就是说,系统允许的任何交错操作调度等价于一个串行调度。
(4) 持久性 (Durability)
。持久性也称为永久性,是指事务一旦提交,改变就是永久性的, 无论发生何种故障,都不应该对其有任何影响。
事务的原子性、一致性、隔离性和持久性` 通常统称为 ACID 特性。
2.数据不一致问题
数据库的并发操作会带来一些数据不一致问题,例如,丢失修改、读"脏数据“和不可重复读等。
(l) 丢失修改
。事务 A 与事务 B 从数据库中读入同一数据并修改,事务 B 的提交结果破坏 了事务 A 提交的结果,导致事务 A 的修改被丢失。
(2) 读“脏数据“
。事务 A 修改某一数据,并将其写回磁盘,事务 B 读取同一数据后,事 务 A 由于某种原因被撤销,这时事务 A 已修改过的数据恢复原值,事务 B 读到的数据就与数据库中的数据不一致,是不正确的数据,称为"脏数据“。
(3)不可重复读
。不可重复读是指事务 A 读取数据后,事务 B 执行了更新操作,事务 A 使 用的仍是更新前的值,造成了数据不一致性。
3. 封锁协议
处理并发控制的主要方法是采用封锁技术,主要有两种封锁,分别是 X 封锁和 S 封锁。
在多个事务并发执行的系统中,主要采取封锁协议来进行处理。常见的封锁协议如下:
(1)一级封锁协议。事务 T 在修改数据 R 之前必须先对其加 X 锁,直到事务结束才释放。 一级封锁协议可防止丢失修改,并保证事务 T 是可恢复的,但不能保证可重复读和不读“脏 数据“。
(2) 二级封锁协议。一级封锁协议加上事务 T 在读取数据 R 之前先对其加 S 锁,读完后即 可释放 S 锁。二级封锁协议可防止丢失修改,还可防止读“脏数据“,但不能保证可重复读。
(3)三级封锁协议。一级封锁协议加上事务 T 在读取数据 R 之前先对其加 S 锁,直到事务 结束才释放。三级封锁协议可防止丢失修改、读“脏数据“,且能保证可重复读。
(4) 两段锁协议。所有事务必须分两个阶段对数据项加锁和解锁。
4. 死锁问题
采用封锁的方法虽然可以有效防止数据的不一致性,但封锁本身也会产生一些麻烦,最主
要的就是死锁问题。死锁是指多个用户申请不同封锁,由千申请者均拥有一部分封锁权,而又 需等待其他用户拥有的部分封锁而引起的永无休止的等待。
5.3.2 数据库的完整性
数据库的完整性是指数据库中数据的正确性和相容性。数据库的完整性由各种各样的完整 性约束来保证,完整性约束可以通过 DBMS 或应用程序来实现,基于 DBMS 的完整性约束作为 关系模式的一部分存入数据库中。
1.完整性约束条件
完整性约束条件是指对数据库中数据本身的某些语法或语义限制、数据之间的逻辑约束,以及数据变化时应遵守的规则等。
2.实体完整性
实体完整性要求主键中的任一属性不能为空,所谓空值是“不知道”或“无意义”的值。
3. 参照完整性
若基本关系 R 中含有与另一基本关系 S 的主键 PK 相对应的属性组 FK (FK 称为 R 的外 键),则参照完整性要求,对 R 中的每个元组在 FK 上的值必须是 S 中某个元组的 PK 值,或者为空值。
4.用户定义的完整性
实体完整性和参照完整性适用千任何关系型 DBMS。除此之外,不同的数据库系统根据其 应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性就是针对某一具体数据 库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。
5.触发器
触发器是在关系型 DBMS 中应用得比较多的一种完整性保护措施,其功能比完整性约束要强得多。一般而言,在完整性约束功能中,当系统检查出数据中有违反完整性约束条件时,仅 给出必要提示以通知用户。
5.3.3 数据库的安全性
就整个信息系统的安全而言,数据的安全是最重要的。数据库系统的安全性在技术上依赖 千两种方式:一种是 DBMS 本身提供的用户身份识别、视图、使用权限控制和审计等管理措施, 大型 DBMS 均有此功能;另一种就是靠应用程序来实现对数据库访问进行控制和管理,也就是 说,数据的安全控制由应用程序里面的代码来实现。目前,一些大型 DBMS 都提供了一些技术 手段来保证数据的安全,如表
下面主要介绍 用户标识和鉴别、数据授权、视图以及审计与跟踪等措施。
1 .用户标识和鉴别
用户的身份认证是用户使用 DBMS 系统的第一个环节,是系统提供的最外层保护。进行用 户标识和鉴别的常用方式有口令认证和强身份认证。
2.数据授权
当用户通过身份认证以后,并不是所有的用户都能操作所有的数据,要分不同的用户角色来区别对待,例如,普通用户只能查看自己的个入信息,而 DBA 则可以查看所有用户的信息。 要达到这一效果,需要对不同用户角色进行不同级别的数据授权。
3. 视图
视图可以被看成是虚拟关系或存储查询,可通过视图访问的数据不作为独特的对象存储在 数据库内,数据库内存储的是 SELECT 语句。 SELECT 语句的结果集构成视图所返回的虚拟关 系。用户可以用引用关系所使用的方法,在 SQL 语句中通过引用视图名称来使用虚拟关系。
4. 审计与跟踪
如果身份认证是一种事前的防范措施,审计则是一种事后监督的手段。跟踪也是 DBMS 提 供的监视用户动作的功能,然而,审计和跟踪是两个不同的概念,主要是两者的目的不同。
5.3.4 备份与恢复技术
需要备份与恢复技术来进一步保障数据的安全,即当数据被破坏后, 在一定时间内将数据库调整到破坏前的状态。
数据库备份有多种分类方式。
- 按备份的实现方式,可分为物理备份与逻辑备份,而物理备份又可以分为冷备份与热备份。
- 按备份的数据量情况,可分为完全备份、增量备份与差异备份。 其中,完全备份是指将整个数据库中的数据进行备份;增量备份是指备份上一次备份(包括完 全备份、增量备份和差异备份)后发生变化的数据;差异备份是指备份上一次完全备份后发生 变化的所有数据。由于备份方式存在多样性,
因此,制定一个合适的可操作的备份和恢复策略至关重要,其基本原则是保证数据丢失得尽量少或完全不丢失,且备份和恢复时间尽量短,保 证系统最大的可用性。
1 .物理备份
物理备份是在操作系统层面上对数据库的数据文件进行备份,可分为冷备份和热备份两种。 冷备份也称为静态备份,是将数据库正常关闭,在停止状态下,将数据库的文件全部备份(复 制)下来。
2.逻辑备份
逻辑备份是指利用 DBMS 自带的工具软件备份和恢复数据库的内容。
3. 日志文件
事务日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中。
4.数据恢复
将数据库从错误状态恢复到某一个已知的正确状态的功能,称为数据库的恢复。数据恢复 的基本原理就是冗余,建立冗余的方法有数据备份和登录日志文件等。可根据故障的不同类型,
采用不同的恢复策略。
5.3.5 数据库性能优化
通常,对一个集中式数据库的性能进行优化,可以从硬件升级、数据库设计、索引优化策
略和查询优化等方面入手。
5.4 数据库设计与建模
数据库设计是指对一个给定的应用环境,提供一个确定最优的数据模型与处理模式的逻辑设计,以及一个确定数据库存储结构与存取方法的物理设计,建立起能反映现实世界信息和信 息联系及满足用户数据要求和加工要求,以能够被某个 DBMS 所接受,同时能实现系统目标, 并有效存取数据的数据库。
5.4.1 数据库设计阶段
基于数据库系统生命周期的数据库设计可分为如下 5 个阶段:规划、需求分析、概念设计、逻辑设计和物理设计。
5.4.2 实休联系模型
E-R 模型也称为 E-R 图,它是描述概念世界、建立概念模型的实用工具。在 E-R 图中,主要包括以下三个要素:
- (1)实体(型)。实体用矩形框表示,框内标注实体名称。
- (2) 属性。单值属性用椭圆形表示,并用连线与实体连接起来;如果是多值属性,在椭圆 形虚线外面再套实线椭圆:如果是派生属性,则用虚线椭圆表示。
- (3)实体之间的联系
5.5 分布式数据库系统
分布式数据库系统是数据库技术与网络技术相结合的产物,其基本思想是将传统的集中式 数据库中的数据分布千网络上的多台计算机中。分布式数据库系统通常使用较小的计算机系统, 每台计算机可单独放在一个地方,每台计算机中都有 DBMS 的一份完整的复制副本,并具有自已局部的数据库,位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局 的大型数据库。
5.5.1 分布式数据库概述
分布式数据库是由一组数据组成的,这组数据分布在计算机网络的不同计算机上,网络中 的每个节点具有独立处理的能力(称为场地自治),它可以执行局部应用,同时,每个节点也能 通过网络通信子系统执行全局应用。分布式数据库系统是在集中式数据库系统技术的基础上发 展起来的,具有如下特点:
- (1)数据独立性。在分布式数据库系统中,数据独立性这一特性更加重要,并具有更多的 内容。除了数据的逻辑独立性与物理独立性外,还有数据分布独立性(分布透明性)。
- (2) 集中与自治共享结合的控制结构。各局部的 DBMS 可以独立地管理局部数据库,具有 自治的功能。同时,系统又设有集中控制机制,协调各局部 DBMS 的工作,执行全局应用。
- (3) 适当增加数据冗余度。在不同的场地存储同一数据的多个副本,这样可以提高系统的可靠性和可用性,同时也能提高系统性能。
- (4) 全局的一致性、可串行性和可恢复性。
1.分布式数据库的体系结构
在分布式数据库中,局部 DBMS 中的内模式和概 念模式与集中数据库中是完全一致的,不同之处在千新增的全局 DBMS, 而整个全局 DBMS 可以看作是相对于局部概念模式的外模式。
外模式部分由一系列的分布模式、分片模式、全局概念模式和全局外模式以及多级映射组成,这样用户在使用分布式数据库时,可以使用与集中式数据库相同的方式。
2 分布式数据库的优点
分布式数据库的物理层面分布、逻辑层面统一的特色,让它具有一些集中式数据库所不可及的优点:
(1) 分布式数据库可以解决企业部门分散而数据需要相互联系的问题。例如,就银行系统而言,总行与各分行处于不同的城市或城市中的不同地区,在业务上它们需要处理各自的数据,也需要彼此之间的交换和处理,这就需要分布式数据库系统。
(2) 如果企业需要增加新的相对自主的部门来扩充机构,则分布式数据库系统可以在对当前机构影响最小的情况下进行扩充。
(3)分布式数据库可以满足均衡负载的需要。数据的分片使局部应用达到最大,这使得各服务器之间的相互干扰降到最低。负载在各服务器之间分担,可以避免临界瓶颈。
(4) 当企业已存在几个数据库系统,而且实现全局应用的必要性增加时,就可以由这些数据库自下而上构成分布式数据库系统。
(5) 相等规模的分布式数据库系统在出现故障的概率上不会比集中式数据库系统低,但由于其故障的影响仅限于局部数据应用,因此,就整个系统来说,它的可靠性是比较高的。
5.5.2 数据分片
数据分片将数据库整体逻辑结构分解为合适的逻辑单位(片段),然后由分布模式来定义片段及其副本在各场地的物理分布,其主要目的是提高访问的局部性,有利千按照用户的需求, 组织数据的分布和控制数据的冗余度。
分片的方式有多种:
水平分片和垂直分片
是两种基本的分片方式;混合分片和导出分片
是较复杂的分片方式。
5.6 数据仓库技术
数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支待 管理决策。近年来,人们对数据仓库技术的关注程度越来越高,其原因是过去的几十年中,建 设了无数的应用系统,积累了大量的数据,但这些数据没有得到很好的利用,有时反而成为企 业的负担。如图所示为数据仓库的体系结构。
在图中,数据源是数据仓库系统的基础,是整个系统的数据源泉。 OLAP (On-L ine Analytical Processing,联机分析处理)服务器对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。前端工具主要包括各种报表工具、 查询工具、数据分析工具和数据挖掘工具,以及各种基千数据仓库或数据集市的应用开发工 具。其中,数据分析工具主要针对 OLAP 服务器,报表工具、数据挖掘工具主要针对数据 仓库。
5.6.1 联机分析处理
数据处理大致可以分成两大类,分别是联机事务处理 (On-Line Transaction Processing, OLTP) 和联机分析处理 (OLAP) 。
- OLTP 是传统数据库的主要应用,支持基本的、日常的事务 处理;
- OLAP 是数据仓库系统的主要应用,支待复杂的分析操作,侧重决策支持,并且提供直观 易懂的查询结果。
下表列出了 OLTP 与 OLAP 之间的比较。
5.6.2 数据仓库概述
企业数据仓库的建设,是以现有企业业务系统和大量业务数据的积累为基础的。数据仓库不是静态的概念,只有将信息及时交给需要这些信息的使用者,供他们做出改善其业务经营的决策,信息才能发挥作用。而将信息加以整理归纳和重组,并及时提供给相应的管理决 策人员,是数据仓库的根本任务。因此,从产业界的角度看,数据仓库建设是一个工程,是 一个过程。
1. ETL 过程
针对现有各业务系统的数据,进行抽取、清理,并有效集成,按照主题进行组织,整个过 程可以简称为抽取、转换和加载 (Extraction-Transformation-Loading, ETL) 过程。 ETL 负责将 分布的、异构数据源中的数据(例如,关系数据、平面数据文件等)抽取到临时中间层后进行清洗、转换和集成,最后加载到数据仓库或数据集市中,成为 OLAP 和数据挖掘的基础。
2.数据仓库的分类
从结构的角度看,有三种数据仓库模型,分别是企业仓库 (Enterprise Warehouse)、数据集市 (Datamart)和虚拟仓库 (Virtual Warehouse) 。
3.非结构化数据与数据仓库
对于一个用于决策分析的系统而言,仅有企业内部数据是不够的。合理地采用外部数据(例如,报纸、期刊、电视等媒体的报道,一些商业机 构的调查报告)能使分析和决策更为准确。而这些外部数据通常都是非结构化的数据。因此, 如何用数据仓库管理非结构化数据,也是数据仓库应用中的一个重要问题。
5.6.3 数据仓库的设计方法
数据仓库的设计方法通常有三种,分别是自顶向下的方法、自底向上的方法,以及两者结合的混合方法。
5.7 数据挖掘技术
数据挖掘是采用数学的、统计的、人工智能和神经网络等领域的科学方法,从大量数据中挖掘出隐含的、先前未知的、对决策有潜在价值的关系、模式和趋势,并用这些知识和规则建立用于决策支持的模型,为商业智能系统服务的各业务领域提供预测性决策支持的方法、工具和过程。
数据挖掘与传统的数据分析(例如,查询、报表、联机应用分析)的本质区别是数据挖掘 是在没有明确假设的前提下去挖掘信息、发现知识。数据挖掘所得到的信息应具有先前未知、 有效和可实用三个特征。先前未知的信息是指该信息是预先未曾预料到的,即数据挖掘是要发 现那些不能靠直觉发现的信息或知识,甚至是违背直觉的信息或知识,挖掘出的信息越是出乎 意料,就可能越有价值。
1.数据挖掘的体系结构
如图所示为数据挖掘的体系结构,它展示了数据挖掘的流程,说明了数据挖掘是怎样 找到新规律的。
2.数据挖掘的流程
数据挖掘是一个完整的过程,该过程从大型数据库中挖掘先前未知的、有效的、可实用的 信息,并使用这些信息做出决策或丰富知识。数据挖掘的流程大致如下:
- (1) 问题定义。
- (2) 建立数据挖掘库。
- (3) 分析数据。
- (4) 调整数据。
- (5) 模型化。
- (6) 评价和解释。
5.7.2 常用技术与方法
从技术上来看,数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用 数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。这个定义包括几层含义:数据源必须是真实的、大量的、含噪声的;发现的是用户感兴趣的知识; 发现的知识要可接受、可理解、可运用;并不要求发现放之四海而皆准的知识,仅支持特定地 发现问题即可。
从商业角度来看,数据挖掘是一种新的商业信息处理技术,其主要特点是对商业数据库中的大痲业务数据进行抽取、转换、分析和其他模型化处理,从中提取辅助商业决策的关键性数据。
1,数据挖掘的常用技术
数据挖掘中的关键技术是进行模式和关系识别的算法。下面介绍几种数据挖掘和知识发现 的技术,它们分别从不同的角度进行数据挖掘和知识发现。
(l) 决策树方法。
决策树方法利用信息论中的互信息(信息增益)寻找数据库中具有最大信息量的属性,建立决策树的一个结点,再根据属性的不同取值建立树的分支。
(2) 分类方法。
分类方法将数据按照含义划分成组,可用该方法生成感兴趣的侧面,可用 于自动发现类,例如,模式识别、侧面生成、线性聚簇和概念聚簇等。
(3)粗糙集 (Rough Set)方法。
粗糙集的研究主要基千分类。分类和概念 (Concept)同 义,一种类别对应于一个概念。知识由概念组成,如果某知识中含有不精确概念,则该知识就 不精确,粗糙集通过上近似概念和下近似概念来表示不精确概念。
(4) 神经网络。
神经网络通过学习待分析数据中的模式来构造模型,它可对隐式类型进行分析,适用千对非线性的、复杂的或高噪声的数据进行建模。神经网络技术模拟人脑神经元结构,由神经元互连或按层组织的结点构成。通常,神经模型由三个层次组成,分别是输入层、中间层和输出层。每个神经元求得输入值,再计算总输入值,由过滤机制(例如,阑值)比较总输入,然后确定它自己的输出值。
(5) 关联规则。
关联规则是指搜索业务系统中的所有细节和事务,从中找出重复出现概率很高的模式,它以大的事务数据库为基础,其中每个事务都被定义为一系列相关数据项。
(6) 概念树方法。
对数据库中记录的属性按归类方式进行抽象,建立起来的层次结构称为概念树。
(7) 遗传算法。
遗传算法是模拟生物进化过程的算法,由繁殖、交叉和变异三个基本算子组成。繁殖也称为选择,是从一个旧种群(父代)选出生命力强的个体产生新种群(后代)的 过程;交叉也称为重组,是指选择两个不同个体(染色体)的部分(基因)进行交换,形成新 个体;变异也称为突变,是指对某些个体的某些基因进行变异 (1 变 0、 0 变 l)。遗传算法可起 到产生优良后代的作用,这些后代需满足适应值,经过若干代的遗传,将得到满足要求的后代 (问题的解)。
(8) 依赖性分析。
依赖性分析是指在数据仓库的条目或对象之间抽取依赖性,它展示了数 据之间未知的依赖关系,依赖性是一个带有置信度因子的可能值。可以用依赖性分析方法从某 个数据对象的信息来推断另一个数据对象的信息。
(9) 公式发现。
在工程和科学数据库中,对若干数据项(变量)进行一定的数学运算,求 得相应的数学公式。其基本思想是,对数据项进行初等数学运算,形成组合数据项,若它的值 为常数项,就得到了组合数据项等千常数的公式。
(l0) 统计分析方法。
在数据库属性之间通常存在两种关系,分别是函数关系(能用某个函 数表示的确定性关系)和相关关系(不能用函数表示的确定性关系)。对这些关系的分析可以采 用回归分析、相关分析或主成分分析等统计分析方法。
(11) 模糊论方法。
利用模糊集合理论对实际问题进行模糊评判、模糊决策、模糊模式识 别和模糊聚类分析。模糊性是客观存在的,系统的复杂性越高,精确化能力就越低,即模糊性 越强。
(12) 可视化分析。
可视化分析可给出带有多变量的图形化分析数据,帮助用户进行分析。
2.数据挖掘的分析方法
从功能上可以将数据挖掘的分析方法划分为 6 种,即关联分析、序列分析、分类分析、聚 类分析、预测分析和时间序列分析。
5.7.3 数据挖掘技术的应用
数据挖掘和数据仓库的协同工作,一方面可以迎合和简化数据挖掘过程中的重要步骤,提高数据挖掘的效率和能力,确保数据挖掘中数据来源的广泛性和完整性;另一方面,数据挖掘技术已经成为数据仓库应用中极为重要和相对独立的一个方面和工具。 数据挖掘和数据仓库的融合与互动发展,使数据挖掘得到了广泛的应用。目前,数据挖掘已经形成了多个分支,例如,空间数据挖掘( Spatial Data Mining, SDM)
、多媒体数据挖掘 (MultimediaDataMining, MDM)
和文本数据挖掘 (TextDataMining, TDM)
等。
5.8 非关系数据库
NoSQL 是非关系数据存储的广义定义,它打破了长久以来关系数据库与 ACID 理论大一统 的局面。 NoSQL 数据存储不需要固定的表结构,通常也不存在连接操作,在大数据存取上具备关系数据库无法比拟的性能优势。该术语在 2009 年初得到了广泛认同。
5.8.1 概述
随着互联网 Web 2.0 网站的兴起,非关系数据库成了一个极其热门的新领域,非关系数据 库产品的发展非常迅速。而传统的关系数据库在应对 Web 2.0 网站,特别是超大规模和高并发的 SNS (Soc ial Network Site, 社交网站)类型的 Web 2.0 纯动态网站时已经显得力不从心,暴露了很多难以克服的问题,例如,对数据库高并发读写的需求,对海量数据的高效率存储和访问的需求,对数据库的高可扩展性和高可用性的需求。
NoSQL数据库分类与特点:
5.8.2 相关理论基础
1. CAP 理论
简单地说, CAP理论就是对千一个分布式系统,一致性 (Consistency)、可用性 (Availability)和分区容忍性 (Partition tolerance) 三个特点最多只能三选二。
2. 分区
分区的一些主要方法如下:
- (1)内存缓存
- (2) 集群
- (3)读写分离
- (4) 范围分割技术/分片 (Shading)
3.存储布局
存储布局确定了如何访问磁盘,以及如何直接影响性能,主要分为 4种,分别是 基于行的存储布局、列存储布局、带有局部性群组的列存储布局、 LSM-Tree。
5.8.3 列数据库
传统的关系数据库都是以行为单位来进行数据存储的,擅长进行以行为单位的数据处理,比如特定条件数据的获取。因此,关系数据库也被称为面向行的数据库。相反,面向列的数据库是以列作为单位来进行数据存储的,擅长进行以列为单位的数据处理。
面向列的数据库具有高扩展性,即使数据增加也不会降低相应的处理速度,所以它主要应 用千需要处理大噩数据的情况。另外,利用面向列的数据库的优势,也可以把它作为批处理程 序的存储器,来对大量数据进行更新。
列存储数据库的主要产品有 Google的BigTable、由 BigTable衍生的 HyperTable和 HBase、 Cassandra 等。
5.8.4 文档数据库
在传统的数据库中,数据被分割成离散的数据段,而文档存储则是以文档为存储信息的基 本单位。文档存储一般用类似JSON 的格式存储,存储的内容是文档型的。面向文档的数据库 具有以下特征:即使不定义表结构,也可以像定义了表结构一样来使用;面向文档的数据库可以通过复杂的查询条件来获取数据。虽然不具备事务处理和JOIN 等关系数据库所具有的处理能 力,但其他的处理基本都可以实现。
5.8.5 键值数据库
键值存储模型是最简单也是最方便使用的数据模型,它支持简单的键对值的键值存储和提 取。根据—个简单的字符串(键)能够返回一个任意类型的数据(值)。键值存储最大的好处是 不用为值指定一个特定的数据类型,这样就能在值里存储任意类型的数据。系统将这些信息按 照 BLOB 大对象进行存储,当收到检索请求时,返回同样的 BLOB。由应用来决定被使用的数 据是什么类型,如字符串、图片和 XML 文件等。键值存储数据库的主要特点是具有极高的并 发读写性能。
键值存储中存在三种操作:put、get和 delete。这三种操作规定了程序员与键值存储交互的 基本方式。应用开发者使用put、get和 delete 函数访问和操作键值存储。
键值存储产品主要有亚马逊的 Memcached、 Redis、 Dynamo、 ProjectVoldemort、 Tokyo Tyrant、Riak、 Scalaries 这几个数据库,这里主要介绍一下 Redis。
Redis 是一种主要基千内存存储和运行,能够快速响应的键值数据库。属千临时性保存和永久性保存兼具的类型,有点像 Memcached, 整个数据库统统加载在内存当中进行操作,但是通过定期异步操作把数据库数据flush 到硬盘上进行保存。因为是纯内存操作, Redis 的性能非常 出色,每秒可以处理超过 10 万次读写操作。
Redis 的数据库存储模式,是在键值 (Key-Value) 基本存储原理
的基础上进行细化分类, 构建了具有自身特点的数据结构类型。像 MySQL 这样的关系数据库,表的结构比较复杂,会包含很多字段,可以通过 SQL 语句来实现非常复杂的查询需求。而 Redis客户只包含“键”和 “值”两部分,只能通过"键”来查询“值“。正是因为这样简单的存储结构,让 Re小s 的读写 效率非常高。键的数据类型是字符串,但是为了丰富数据存储的方式,方便开发者使用,值的 数据类型很多,它们分别是字符串、列表、字典、集合、有序集合。
5.8.6 图数据库
图存储在那些需要分析对象之间的关系或者通过一个特定的方式访问图中所有节点的应用中尤为重要。图存储针对有效存储图节点和联系进行了优化,让你可以对这些图结构进行查询。 图数据库对千那些对象之间具有复杂关系的业务问题很有用,如社交网络、规则引擎、生成组合和那些需要快速分析复杂网络结果并从中找出模式的图系统。
图存储是一个包含一连串的节点和关系的系统,当它们结合在一起时,就构成了一个图。 图存储有三个字段:节点、关系和属性。图节点通常是现实世界中对象的表现,如人名、组织、 电话号码、网页或计算机节点。而关系可以被认为是这些对象之间的联系,通常被表示为图中两个节点之间连接线。 如果图存储的节点众多、关系复杂、属性很多,那么传统的关系数据库将要建很多大型的表,并且表的很多列可能是空的,在查询时还极有可能进行多重 SQL 语句的嵌套。可是图存储 就可以很优异,基于图的很多高效的算法可以大大提高执行效率。