系统架构师(三)数据库系统

3.1 数据库管理系统的类型

数据库管理系统的类型通常有多个分类标准。如按数据模型分类、按用户数分类、按数据库分布站点分类等。

目前常见的 DBMS 按数据模型划分,包括:关系型 DBMS、文档型 DBMS、键值型 DBMS、对象型 DBMS 等。

基础知识

  1. 数据库:DB,指长期存储在计算机内的,有组织的,可共享的数据集合。
  2. 数据库系统:DBS,由数据库,硬件,软件和人员组成,管理的对象时数据。
  3. 数据库管理系统:DBMS,是一种操纵和管理数据库的大型软件,用于建立,使用,和维护数据库。DBMS通常分为三类:关系型数据库(RDBS), 面向对象数据库(OODBS),对象关系数据库(ORDBS)

3.2 数据库模式与范式

数据库模式与范式是数据库系统中的两个重要概念,是进行数据库设计的基础。

3.2.1 数据库的结构与模式

三级模式:

  • 外模式:对应数据库里的视图;描述用户看到或使用的那部分数据的逻辑结构,一个数据库可以有多个外模式。一个应用程序只能使用一个外模式。
  • 概念模式:对应数据库的表;描述整个数据库中数据库的逻辑结构,一个数据库只有一个概念模式。
  • 内模式:也称存储模式,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。定义所有的内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。一个数据库只有一个内模式。

两级映射:

  • 外模式-概念模式映射:如果表发生了变化,只需要修改外模式-概念模式映射,不需要改应用程序
  • 概念模式-内模式映射:内部存储结构改变,只需要修改概念模式-内模式映射关系,不需要改应用程序

数据的独立性包括:数据的物理独立性和数据的逻辑独立性。

  1. 数据的物理独立性: 指当数据库的内模式发生改变时,数据的逻辑结构不变。由于应用程序处理的只是数据的逻辑结构,这样物理独立性可以保证,当数据的物理结构改变,应用程序不用改变,仅仅需要修改概念模式——内模式的映像。
  2. 数据的逻辑独立性: 指用户的应用程序与数据库的逻辑结构是相互独立。数据的逻辑结构发生变化后,用户程序也可以不用修改,仅仅修改外模式——概念模式的映像。

3.2.2 数据模型

数据模型主要有两大类,分别是概念数据模型(实体—联系模型)和基本数据模型(结构数据模型)。

  • 概念数据模型是按照用户的观点来对数据和信息建模,主要用于数据库设计。也称 E-R 模型。
  • 基本数据模型是按照计算机系统的观点来对数据和信息建模,主要用于 DBMS 的实现。

基本数据模型是数据库系统的核心和基础。基本数据模型通常由数据结构、数据操作和完整性约束三部分组成。其中数据结构是对系统静态特性的描述,数据操作是对系统动态特性的描述,完整性约束是一组完整性规则的集合。

常用的基本数据模型有层次模型、网状模型、关系模型和面向对象模型。

3.2.2 关系代数

关系代数的基本运算主要有并、交、差、笛卡尔积、选择、投影、连接和除法运算。
有道云笔记

3.2.3 数据的规范化

函数依赖: 通俗的说,两行数据之间有一定的函数关系,某一列属性相同,则另一列属性也相同。

范式

  • 第一范式:属性不可分,也就是列字段不可再分。
  • 第二范式:表中要有主键, 其他字段都依赖于主键。主键约束。
  • 第三范式:外键约束。就是要求表中不能有其他表中存在的、存储相同信息的字段。通过外键来关联。
  • BC范式:基于第一范式,不依赖于主键约束。

3.3 数据库设计

在这里插入图片描述注意:数据流图,数据字典以及需求说明书都是需求分析阶段的产物,ER模型则为概念结构设计层次的产物,关系模式即为逻辑结构设计层次的产物

数据库的设计过程,按照规范的设计方法,一般分为以下六个阶段:

①需求分析:分析用户的需求,包括数据、功能和性能需求;

②概念结构设计:主要采用E-R模型进行设计,包括画E-R图;

③逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换;

④数据库物理设计:主要是为所设计的数据库选择合适的存储结构和存取路径;

⑤数据库的实施:包括编程、测试和试运行;

⑥数据库运行与维护:系统的运行与数据库的日常维护。

3.4 事务管理

数据库系统运行的基本工作单位是事务,事务相当于操作系统中的进程,是用户定义的一个数据库操作序列,这些操作序列要么全做要么全不做,是一个不可分割的工作单位。事务具有以下特性:

(1)原子性(Atomicity):数据库的逻辑工作单位。

(2)一致性(Consistency):使数据库从一个一致性状态变到另一个一致性状态。

(3)隔离性(Isolation):不能被其他事务干扰。

(4)持续性(永久性)(Durability):一旦提交,改变就是永久性的。

3.4.1 并发控制

数据库的并发操作带来的问题有:丢失更新问题、不一致分析问题(读过时的数据)、依赖于未提交更新的问题(读了“脏”数据)。

处理并发控制的主要方法是采用封锁技术。它有两种类型:排他型封锁(X 封锁)和共享型封锁(S 封锁)

  • 排他型封锁(X 封锁):
  • 共享型封锁(S 封锁):

在多个事务并发执行的系统中,主要采取封锁协议来进行处理。

(1)一级封锁协议。事务 T 在修改数据 R 之前必须先对其加 X 锁,直到事务结束才释放。一级封锁协议可防止丢失修改,并保证事务 T 是可恢复的。但不能保证可重复读和不读“脏”数据

(2)二级封锁协议。一级封锁协议加上事务 T 在读取数据 R 之前先对其加 S 锁,读完后即可释放 S锁。二级封锁协议可防止丢失修改,还可防止读“脏”数据,但不能保证可重复读。

(3)三级封锁协议。一级封锁协议加上事务 T 在读取数据 R之前先对其加 S 锁,直到事务结束才释放。三级封锁协议可防止丢失修改、防止读“脏”数据与防止数据重复读。

(4)两段锁协议。所有事务必须分两个阶段对数据项加锁和解锁。其中扩展阶段是在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁;收缩阶段是在释放一个封锁之后,事务不能再申请和获得任何其他封锁。若并发执行的所有事务均遵守两段封锁协议,则对这些事务的任何并发调度策略都是可串行化的。遵守两段封锁协议的事务可能发生死锁。

死锁: 是指多个用户申请不同封锁,由于申请者均拥有一部分封锁权而又需等待另外用户拥有的部分封锁而引起的永无休止的等待。

预防法:避免死锁发生(顺序申请法、一次性申请法)

死锁解除法:(允许发生死锁,用死锁检验程序和解锁程序处理)

3.4.2 故障与恢复

数据库的故障可用事务的故障来表示,主要分为四类:

  • 事务故障
  • 系统故障
  • 介质故障
  • 计算机病毒

目前数据库系统中最常用的恢复方法是转储和登记日志文件,可根据故障的不同类型,采用不同的恢复策略

3.5 备份与恢复

数据库备份按照不同方式可分为多种,按照备份内容分为物理备份和逻辑备份两类。

(1)物理备份:是在操作系统层面上对数据库的数据文件进行备份,物理备份分为冷备份和热备份两种

(2)逻辑备份是指利用各数据库系统自带的工具软件备份和恢复数据库的内容,例如:Oracle 的导出工具为 exp,导入工具为 imp

3.6 分布式数据库系统

分布式数据库的特点:

(1)数据的分布性:分布式数据库中的数据分布于网络中的各个结点

(2)统一性:主要表现在数据在逻辑上的统一性和数据在管理上的统一性两个方面。

(3)透明性:用户在使用分布式数据库时,与使用集中式数据库一样

分布式数据库优点:

  1. 坚固性好:即系统的可靠性和可用性好,由多个位置上的多台计算机构成的,在个别结点或个别通信链路发生故障的情况下,它仍然可以降低级别继续工作,如果采用冗余技术,还可以获得一定的容错能力。
  2. 可扩充性好。可根据发展的需要增减结点,或对系统重新配置,这比用一个更大的系统代替一个已有的集中式数据库要容易得多。
  3. 可改善性能:可按就近分布,合理地冗余的原则来分布各结点
    上的数据,构造分布式数据库,避免了集中式数据库中的瓶颈问题,减少了系统的响应时间,提高了系统的效率,而且也降低了通信费用。
  4. 自治性好:数据可以分散管理,统一协调,即系统中各结点的数据操纵和相互作用是高度自治的,不存在主从控制

分布式数据库系统的模式结构

分布式数据库系统的模式结构有六个层次:
在这里插入图片描述
(1)全局外模式。它们是全局应用的用户视图,是全局概念模式的子集。
(2)全局概念模式。分布式数据库中数据的整体逻辑结构,全局概念模式中所用的数据模型应该易于向其他层次的模式映像,通常采用关系模型。这样,全局概念模式包括一组全局关系的定义。
(3)分片模式。每一个全局关系可以划分为若干不相交的部分,每一部分称为一个片段,即“数据分片”。分片模式就是定义片段及全局关系到片段的映像。这种映像是一对多的,即每个片段来自一个全局关系,而一个全局关系可对应多个片段。
(4)分布模式。由数据分片得到的片断仍然是 DDB 的全局数据,是全局关系的逻辑部分,每一个片段在物理上可以分配到网络的一个或多个不同结点上。分布模式定义片段的存放结点。分布模式的映像类型确定了分布式数据库是冗余的还是非冗余的。若映像是一对多的,即一个片段分配到多个结点上存放,则是冗余的分布数据库,否则是不冗余的分布数据库。
分片模式和分布模式均是全局的,分布式数据库系统中增加的这些模式和相应的映像使分布式数据库系统具有了分布透明性。
(5)局部概念模式。一个全局关系经逻辑划分成一个或多个逻辑片断,每个逻辑片断被分配在一个或多个场地上,称为该逻辑片断在某场地上的物理映像或物理片断。分配在同一场地上的同一个全局概念模式的若干片断(物理片断)构成了该全局概念在该场地上的一个物理映像。
(6)局部内模式。局部内模式是 DDB 中关于物理数据库的描述,类似于集中式 DB 中的内模式,但其描述的内容不仅包含局部本场地的数据的存储描述,还包括全局数据在本场地的存储描述。

3.7 数据仓库

数据仓库(Data Warehouse)是一个面向主题的、集成的、相对稳定的、且随时间变化的数据集合,用于支持管理决策。可以反映历史变化

数据仓库特点

  1. 面向主题:数据仓库中的数据是按照一定的主题域进行组织的,每一个主题对应一个宏观的分析领域。数据仓库排除对于决策无用的数据,提供特定主题的简明视图。
  2. 集成:数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。
  3. 稳定:数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留
  4. 随时间变化:数据仓库中的数据通常包含历史信息,记录了企业从过去某一时点(如开始应用数据仓库的时点)到目前的各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。

在这里插入图片描述
数据仓库的架构
在这里插入图片描述
(1)数据源。是数据仓库系统的基础。通常包括企业内部信息和外部信息。内部信息包括存放于 RDBMS(关系型 DBMS)中的各种业务处理数据和各
类文档数据。外部信息包括各类法律法规、市场信息和竞争对手的信息等。

(2)数据的存储与管理。是整个数据仓库系统的核心。数据仓库的真正关键是数据的存储和管理。针对现有各业务系统的数据,进行抽取、清理,并有效集成,按照主题进行组织。数据仓库按照数据的覆盖范围可以分为企业级数据仓库和部门级数据仓库(通常称为数据集市)。

(3)OLAP 服务器。对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。其具体实现可以分为:ROLAP、MOLAP 和 HOLAP。

  • ROLAP 基本数据和聚合数据均存放在 RDBMS 之中;
  • MOLAP 基本数据和聚合数据均存放于多维数据库中;
  • HOLAP 基本数据存放于 RDBMS 之中,聚合数据存放于多维数据库中。

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

数据仓库的实现方法

从整体的角度来看,数据仓库的实现方法主要有自顶向下法、自底向上法和联合方法。

  1. 自顶向下法:首先应找出数据仓库解决方案所要满足的商业需求,把商业需求视为实现
    数据仓库的首要任务。
  2. 自底向上法:一般从实验和基于技术的原形入手。先选择一个特定的、众所周知的商业
    问题的子集,再为该子集制订方案。实现自底向上一般是比较快的。在数据仓库领域,自底向上方法是快速实现数据集市、部门级数据仓库的有效手段。
  3. 联合方法:在保持自底向上方法的快速实现和机遇应用的同时,还可以利用自顶向下方法的规划和决策性质。这种方法依赖于以下两个因素:
    (1)自顶向下的结构、标准和设计小组,可以从一个项目向另外一个项目传递知识,
    也可以把战术决策变为战略决策。
    (2)自底向上方法的项目小组,它直接负责在短期内实现一个集中的、部门级的商务
    解决方案。

3.8 数据挖掘

数据挖掘是指一个完整的过程,该过程从大型数据库中挖掘先前未知的,有效的,可实用的信息,并使用这些信息做出决策或丰富知识。

数据挖掘常用技术

常用的数据挖掘技术包括关联分析、序列分析、分类、预测、聚类分析及时间序列分析
等。

  • 关联分析:主要用于发现不同事件之间的关联性,即一个事件发生的同时,另一个事件也经常发生。关联分析的重点在于快速发现那些有实用价值的关联发生的事件。其主要依据是事件发生的概率和条件概率应该符合一定的统计意义。
  • 序列模式分析:主要用于发现一定时间间隔内接连发生的事件,这些事件构成一个序列,发现的序列应该具有普遍意义,其依据除了统计上的概率之外,还要加上时间的约束。
  • 分类分析:通过分析具有类别的样本特点,得到决定样本属于各种类别的规则或方法。利用这些规则和方法对未知类别的样本分类时应该具有一定的准确度。其主要方法有基于统计学的贝叶斯方法、神经网络方法、决策树方法等。
  • 聚类分析:根据“物以类聚”的原理,将本身没有类别的样本聚集成不同的组,并且对每个这样的组进行描述的过程。其主要依据是聚集到同一个组中的样本应该彼此相似,而属于不同组的样本应该足够不相似。聚类分析法是分类分析法的逆过程。

数据挖掘的流程

1.问题定义:就是熟悉背景知识,弄清用户的需求。
2.建立数据挖掘库:要进行数据挖掘必须收集要挖掘的数据资源。一般建议把要挖掘的数据都收集到一个数据库中,而不是采用原有的数据库或数据仓库。
3.分析数据:就是通常所进行的对数据深入调查的过程。从数据集中找出规律和趋势,用聚类分析区分类别,最终要达到的目的就是搞清楚多因素相互影响的、十分复杂的关系,发现因素之间的相关性。
4.调整数据:
通过上述步骤的操作,对数据的状态和趋势有了进一步的了解,这时要尽可能对问题解决的要求能进一步明确化、进一步量化。针对问题的需求对数据进行增删,按照对整个数据挖掘过程的新认识组合或生成一个新的变量,以体现对状态的有效描述。
5.模型化:
在问题进一步明确,数据结构和内容进一步调整的基础上,就可以建立形成知识的模型。这一步是数据挖掘的核心环节,一般运用神经网络、决策树、数理统计、时间序列分析等方法来建立模型。
6.评价和解释:评估确定哪些是有效的、有用的模式。评估的一种办法是直接使用原先建立的挖掘数据库中的数据来进行检验,另一种办法是另找一批数据并对其进行检验,再一种办法是在实际运行的环境中取出新鲜数据进行检验。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值