1.掌握数据库技术的基本概念、原理、方法和技术
2.能够使用SQL语言实现数据库操作
3.具备数据库系统安装、配置及数据库管理和维护的基本
4.掌握数据库管理与维护的基本方法
5.掌握数据库性能优化的基本方法
6.了解数据库应用系统的生命周期及其设计、开发过程
7.熟悉常用的数据库管理和开发工具、具备用指定的工具管理、开发简单数据库应用系统的能力
8.了解数据库技术的最新发展
1.数据库应用系统分析及规划(选择题)
2.数据库设计及实现(选择题和应用题)
3.数据库存储技术(选择题、应用题、设计与应用题)
4.数据库编程技术(设计与应用题)
5.事务管理(选择题、应用题、设计与应用题)
6.数据库维护和管理(选择题、应用题)
7.数据库技术的发展及新技术(选择题、应用题)
1.硬件环境:PC兼容机,硬盘剩余10GB或以上
2.软件环境:操作系统:中文windows7 应用软件:SQL Server 2008
1.考试形式:无纸化上机考试
2.考试时间:120分钟
3.考试时间由系统自动进行及时,提前5分钟自动报警提醒考生存盘
4.考试剩余时间为0时,系统自动交卷
1.满分100分
2.题型有三种
数据(Data)是数据库中存储的基本对象。
定义:描述事物的符号序列
数据的种类:数字、文字、图形、图像声音及其他符号。
数据举例:学生记录(李明,男1994,湖南,计算机学院)
计算机中的数据分为两部分:
临时性数据
持久性数据
数据有型(Type)与值(Value)之分
型:数据表示的类型,如整型、字符型
值:给出了符合给定型的值
数据库——Database,简称DB
数据的集合,具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被哥哥应用程序所共享
按数据所提供的数据模型存放的
数据库系统——Database System,简称DBS
指在计算机系统中引入数据库和数据库管理系统(DBMS)后的完整系统
在不引起混淆的前提下常常把数据库系统简称为数据库
实现有组织的、动态的存储大量相关数据,提供数据处理和资源共享服务
组成:数据库(数据)数据库管理系统(软件)数据库管理人员(人员)硬件平台:计算机和网络 软件平台:操作系统、数据库系统开发工具、接口软件
数据库应用系统——Database Application System,简称DBAS
组成:数据库系统+应用软件+界面
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9nYW4h6U-1582357290406)(D:\计算机等级考三级数据库\1.png)]
1968年北大西洋公约组织的工作会议上Firtz Bauer 首先提出”软件工程概念“,提出要用工程化的思想开发软件。从此,软件生产进入软件工程时代。
软件工程是用工程、科学和数学的原则与方法来开发、维护计算机软件有关技术和管理方法
软件工程由方法、工具和过程三部分组成——软件工程三要素
一般来说,软件产品从定义开始,经过开发,使用与维护,知道退役的全过程称为软件生存周期。
数据库应用系统的开发是一项软件工程,但又有自己的特点,所以特称为”数据库工程“。数据库工程按内容可分为两部分,一部分书数据库设计,另一部分是相应的设计与实现。
数据库应用系统的设计开发必须有软件过程模型作为指导。
典型的软件开发模型有:瀑布模型,快速原型模型,螺旋模型等。
参照软件工程中软件开发瀑布模型原理,DBAS的生命周期由项目规划、需求分析、系统设计、实现与部署、运行管理和维护等五个基本活动组成
根据DBAS的软件组成和各自功能,分为数据组织与存储设计、数据访问与处理设计、应用设计三条设计主线,分别用于设计数据库、数据库事务和应用程序
根据数据库系统三级模式结构,DBAS设计阶段分为概念设计、逻辑设计、物理设计三个步骤,每一步设计内容涵盖了三条设计主线
是**DBAS生命周期的第一步**,目标是面向实际应用和需求,确定整个数据库应用系统的目标和任务,从技术,操作和经济三个方面进行可行性分析,并制定合理的项目开发计划
规划与分析的主要工作内容:
系统规划与定义:任务陈述、确定任务目标、确定范围和边界、确定用户视图
可行性分析:技术、经济、操作可行性及开发方案选择
项目规划:项目团队、环境、活动、成本预算、进度计划
准确了解与分析用户需求(包括数据与处理)
最困难、最耗费时间的一步
需求分析过程由需求获取、需求分析、需求描述与规范说明、需求验证等步骤组成
各种需求的主要工作:
数据需求分析:描述用户需要组织的信息内容形成数据字典
功能需求分析:描述系统做什么数据处理需求分析、业务规则需求分析
性能需求分析:描述系统应当做到什么程度数据操作需要时间、系统吞吐量、硬件资源
其他需求:存储需求、安全性需求、备份与恢复
如果需求分析阶段的任务是解决”干什么“的问题。那么系统设计阶段的任务是确定”怎么干“
系统设计包括:
也成为DBAS的实施。需要根据设计结果建立数据库,编写应用程序,基础DBAS软硬件,组成完整的DBAS。
包括建立 数据库结构,数据加载,事务和应用程序的的编码及测试,系统集成。测试与运行。系统部署
主要包括日常维护、系统监控与分析、系统性能调整、系统进化升级等。这些工作主要由DBA负责
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aFx7xBno-1582357290407)(C:\Users\ADMINI~1\AppData\Local\Temp\1577623729954.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qbqSiGNK-1582357290407)(C:\Users\ADMINI~1\AppData\Local\Temp\1577623929051.png)]
需求是指用户对软件功能和性能的要求,就是用户希望软件能做什么事情,完成什么样的功能,达到什么性能。
需求分析是在计算机系统的软件功能分配和软件设计之间起重要桥梁作用的一项软件工程活动。描述待开发的系统所要完成的功能。
需求分析使系统工程师能够刻画出软件的功能和性能,指明软件和系统其他元素的接口,并建立软件必须满足的约束。
需求分析的目标是深入描述软件的功能和性能,确定软件设计的约束和软件同其它系统元素的接口细节,定义软件的其他有效性需求
软件功能复杂,需求的可变性,软件产品的不可见性
-面谈:系统分析员与用户方的专家和业务人员进行知识交流、与他们会谈获得需求
-实地观察:实地观察用户的操作规程。对比现有的系统,思考如何采取更高效的方式
-问卷调查:若需要访谈的个体太多,且无需回答容易确定的细节问题,可采取问卷调查
-查阅资料:收集和查阅相关的文献资料,如组织机构图、规章制度、相关文档、图表及报告等
面谈(用户访谈):
实地考察
问卷调查
适合使用情况
访问的个体太多
需要回答容易确定的细节问题
希望有详细的结果
注意事项
使用问卷表尽可能的简短
估计回答问题需要时间,并在问卷表开头标明
制定问题前,先确定你需要的答案
查阅资料
收集用户以下材料
A、标识问题:需求分析的第一步,通过对问题和标识获得的对所有求解问题及其运行环境的理解
B、建立需求模型:目前在信息系统的需求分析中可使用结构化分析模型或面向对象分析模型。
C、描述需求:需求、功能、信息、性能、环境、其他需求
D、确认需求:需求确认及评审。审核功能需求、数据需求、性能、数据管理及其他需求
目前在信息系统的需求分析中可使用如下方法
结构化分析和建模方法
如:DFD建模、IDEF建模
面向对象分析和建模方法(第五章)
如:UML用例建模
结构化分析的任务
建立分析模型。SA模型是描述软件需求的一组模型,主要包括功能模型、数据模型和行为模型
编写需求规格说明书。SRS是分析阶段编写的以文字为主的文档,主要包括:引言、信息描述、功能描述、行为描述、质量保证、接口描述以及其他需求等
结构化分析的指导思想:抽象和分解是结构化分析的主要指导思想。
数据流图(Data Flow Diagram,DFD):DFD建模方法的核心是数据流,从应用系统的数据流着手以图形方法刻画表示一个具体业务系统的数据处理过程和数据流
数据流
数据流是数据在系统内传播的路径因此由一组成分固定的数据组成。如订票单由旅客姓名、年龄、单位、身份证号、日期、目的地等数据项组成。由于数据流是流动中的数据,所以必须有流向,除了与数据存储之间的数据流不用命名外,数据流应该用名词或名词短语命名
数据源(终点)
代表系统之外的实体,可以是人、物或其他软件系统。
对数据的加工(处理)
加工是对数据进行处理的单元,它接受一定的数据输入,对其进行处理,并产生输出
数据存储
表示信息的静态存储,可以代表文件、文件的一部分、数据库的元素等
具体建模过程及步骤:
(1)明确目标,确定系统范围
将用户对目标系统的功能需求完整、准确、一致地描述出来。
(2)建立顶层DFD图
说明系统边界,即系统的输入和输出数据流,顶层DFD只有一张
(3)构建第一次DFD分解图
中间层DFD,描述了某个过程的分解,而他的组成部分又要进一步分解
(4)开发DFD层次结构图(原则:保持均匀你的模型深度,按困难程度选择)
底层DFD,由一些不可再分解的过程组成
(5)检查确认DFD图
5条规则
检查确认DFD图的5条规则:
UML方法采用面向对象思想建模,使用图例来描述系统功能需求。用例图由系统、角色、用例三种模型元素及其之间的关系构成。
一个设计良好的数据库,在很大程度上决定了系统的成功与否。
一般分为
概念设计是数据库设计的核心环节。通过对用户需求进行综合归纳与抽象、形成一个独立于具体DBMS的概念模型。
依据:
数据库概念设计以需求分析的结果为依据,即需求说明书、DFD图以及在需求阶段收集到的应用领域中的各类报表等。
结果:
概念设计的结果是概念模型(ER)与概念设计说明书
过程:
(1)明确建模目标(概念覆盖范围)
(2)定义实体类(自底向上标识和定义实体集)
(3)定义联系(实体间关联关系)
(4)建立信息模型(构建ER模型)
(5)确立实体集属性(属性描述一个实体集的特征和性质)
(6)对信息模型进行集成与优势(检查和消除命名不一致,结构不一致等)
概念设计是DB设计的核心环节。概念数据模型是对现实世界的抽象和模拟
概念设计目前采用最广泛的是ER建模方法,将现实世界抽象为具有属性的实体及联系
1976年。Peter.Chen提出E-R模型(Entity-Relationship Model),即实体联系模型,用E-R图来描述数据库的概念模型。
观点:世界由一组称为实体的基本对象和这些对像之间的联系构成的。
与E-R模型有关的概念
实体(Entity)或实例(Instance)
客观存在并可相互区分的事物叫实体。如学生张三、计算机系、数据库概论
实体集(Entity Set)
同型实体的集合称为实体集。如全体学生
属性(Attribute)
实体所具有的某一特性。一个实体可以由若干个属性来刻画。每个属性取值范围称为域。例如,学生可有学号、姓名、年龄、系、年级组成。
码(Key)键
实体集中唯一标识每一个实体属性或属性组合。用来区别同一实体集中的不同实体的称作主码(主键)。一个实体集中任意两个实体在主码上的取值不能相同。如学号是学生实体的主码。
联系(Relationship)
描述实体之间的相互关系。如学生与老师间的授课关系,学生与学生间有班长关系。联系也可以又属性,如学生与课程之间有选课联系,每个选课联系都有一个成绩作为其属性。同类联系的集合称为联系集。
实体间的联系有三类
实体之间的联系的数量,即一个实体通过一个联系集能与另一实体集相关联的实体的数目
一对一联系(1:1)
如:“系”与“系主任”(一个系只有一个系主任,一个系主任只负责管理一个系)
一对多联系(1:n)
如:“系”与“学生”(一个系招收若干学生,一个学生只属于一个系)
多对多联系(m:n)
如:“学生”与“课程”(一名学生可选修多门课程,每门课程可被多名学生选修)
E-R模型的表示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pSF29XKU-1582357290408)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1580200478627.png)]
E-R图示例
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SkCc6pLx-1582357290409)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1580200466991.png)]
将概念模型(如ER图)转化为DBMS支持的数据模型(如关系模型),并对其进行优化。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ejLZQgFt-1582357290409)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1580200422307.png)]
有三种主要的数据模型:层次模型、网状模型、关系模型。其中关系模型简单灵活,并有着坚实的理论基础,已成为当前最流行的数据模型。
关系模型就是用二维表结构来表示实体与实体之间的联系的模型
关系的描述称为关系模型。关系模型由五部分组成,即他的五个元组:R(U,D,DOM,F)
R:关系名 U:组成盖棺内西的属性名集合 D:属性组U中属性所来自的域 DOM:属性到域的映射
F:属性组U上的一组数据依赖
由于D、DOM对模式设计的关系不大,这里吧关系模型简化为一个三元组:R,当且仅当U上的一个关系R满足F时,R称为关系模型R的一个关系
按照一定的原则及数量众多而又相互关联的数据中,构造出一组既能较好的反映现实世界,而又有良好的操作性能的关系模式。
新奥尔良发,数据库设计步骤:
需求分析->概念那结构设计(ER图)->逻辑结构设计(关系模式设计)->物理结构设计
定义:设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性组不等,则称“X函数确定Y”或“Y函数依赖于X”,记作X—>Y。
关系内部属性与属性之间的一种约束关系,是现实世界属性相互联系的抽象,数据的内在性质,语义的体现
完整约束的表现形式
限定属性的取值范围,如年龄<60
定义属性间值的相互关联(主要体现于值的相等与否)这就是数据依赖
函数依赖(Functional Dependency,FD)
普遍存在于生活中,这种依赖关系类似于数学中的函数y=f(x),自变量x确定之后,相应的函数值也就唯一地确定了。
如关系:公民(身份证号码,姓名,地址,工作单位)
身份证号码一确定,则地址唯一确定,因此地址函数依赖身份证号码
而姓名一确定,不一定确定地址。
多值依赖(Multivalued Dependency,MD)
教师号可能多值依赖课程号,因为给定一个(课程号,参考书号)的组合,可能有对应多个教师号。这是因为多个老师可以使用相同或不同参考书上同一门课。
简单点讲,函数就是唯一确定的关系:多值依赖却不能唯一确定
完全依赖与部分函数依赖
传递函数依赖
我们已经知道,如果某属性组的值能唯一确定整个元组的值,则称该属性组为候选码或候选关键字。
例如(学号,姓名,性别,年龄)中学号是关键字,(学号,姓名)不是关键字。性别不是关键字。候选码如果有多个,可以选其中一个作为主码(Primary key)。
属性或属性组X不是关系模式R的码(既不是主码也不是候选码),但X是另一个关系模式的码,则称X是R的外部码,也称外码(Foreign key)
例如:在SC(Sno,Cno,Grade)中,Sno既不是码,但Sno是关系模型S(Sno.Sdept,Sage)的码,则Sno是关系模式SC的外码
关系数据库的设计主要是关系模式设计。关系模式设计的好坏直接影响到数据库设计的成败。将关系模式规范化,是设计较好的关系模式的唯一途径。
关系模式的规范化主要是由关系范式来完成的。
关系模式的规范化:把一个的低一级的关系模式分解为高一级的关系模式的过程。
关系数据库的规范化理论是数据库逻辑设计的工具。
目的:尽量消除插入、删除异常、修改复杂、数据冗余的问题。
范式
范式:关系模式满足的约束条件称为范式。根据满足规范化的程度不同,范式由低到高分为1NF,2NF,3NF,BCNF,4NF,5NF.
1NF:如果关系模式R,其所有属性都是不可再分的基本数据项,则称R属于第一范式
2NF: 如果关系模式R属于1NF,且每个非主属性完全函数依赖于主码,则称R属于第二范式 例:判断R(学号,姓名,年龄,课程,名称,成绩,学分)是否属于第二范式(否)
3NF:如果关系模型R为2NF,且R中的每个非主属性不传递依赖于R的主码,则称关系R是属于第三范式 例:判断R(学号,姓名,年龄,所在学院,学院地点,学院电话)是否属于第三范式(否,传递依赖)。
设计逻辑结构分为三步:
- 将概念结构转化为一般的关系模型
将转化来的关系模型向特定的DBMS支持下的数据模型转化
对数据模型进行优化
如果是关系型数据库管理系统,就应将概念模型转化为关系模型,即将E-R图中的实体和联系转化为关系模式。
数据库逻辑模型的产生
概念模型按照一定的规则可以转化成数据模型。这种转换的原则如下:
物理数据库设计是设计数据库的存储结构和物理实现方法。
目的:将数据的逻辑描述转换为实现技术规范,设计数据存储方案,以便提供足够好的性能并确保数据库数据的完整性,安全性,可靠性。
物理设备上的存储结构与存取方法称为数据库的物理结构。
数据库中的数据以文件形式存储在外设存储介质上。
一个文件在物理上可看作是存放记录的一系列磁盘块组成的,称为物理文件。
数据库的物理结构需要解决如下问题:文件组织、文件结构、文件存取、索引技术
索引(Index)是数据库中独立的存储结构,其作用是提供一种无需扫描每个页面(存储表格数据的物理块)而快速访问数据页的方案。索引技是一种快速数据访问技术。
索引技术的关键:建立记录域取值到记录的物理地址(如页码)间的映射关系,即索引。索引能提高性能,但是有代价的。设计和创建索引是,应确保对性能的提高程度大于在存储空间和处理资源方面的代价。
有序索引
索引文件机制,利用索引文件(索引记录组成)实现记录域(查找吗,排序域)取值到记录物理地址之间的映射关系。
数据文件和索引文件(索引记录或索引项的集合)是有序索引技术中的两个主体,数据文件常采用顺序文件结构
散列索引
哈希(Hash)索引计指,利用散列函数实现记录域取值到记录物理地址间的直接映射关系
目标:目标是得到存储空间占用少,数据访问效率高和维护代价低的数据库物理模式,数据库底层物理存储与存取,与DBS所依赖的硬件环境、操作系统和DBMS密切相关。目前绝大部分DBS都是关系数据库系统
环节:数据库物理设计包括五个环节。
(1)数据库逻辑模式的描述
根据数据库逻辑结构信息设计目标DBMS可支持的 关系表(这款i称为基本表)的模式信息,这个过程称为数据库逻辑模式描述。
关系模式及其视图转换成基本表 和视图,利用完整性计指(如触发器)设计面向应用的业务规则。
SQL Server采用T-SQL语言
为基本表选择合适的文件结构(堆文件,顺序文件,聚集文件,索引文件和散列文件)
(2)文件的组织与存取设计
基本原则
根据应用情况将易变部分与稳定部分、存取频率较高部分与存取频率较低部分分开存放,以提高系统性能。
分析理解数据库事务访问特性:使用事务-基本表交叉引用矩阵;估计各事务执行频率;汇总每张基本表各十五操作频率信息;根据结果设计文件结构。
什么是存取路径:
在关系数据库中,选择存取路径主要指确定如何建立索引。
对同一个关系要建立多条存取路径才能满足多用户的多种应用要求。
物理设计的第一个 任务就是要确定选择那些存取方法。
DBMS常用存取方法:
索引方法,目前主要是B+树索引方法
聚簇方法
HASH方法
建立索引原则:
一个(组)属性经常在操作条件中出现
一个(组)属性经常在连接操作的连接条件中
一个(组)属性经常作为聚集函数的参数
(3)数据分布设计
不同类型的数据的物理分布
将应用数据(基本表)、索引、日志、数据库备份数据等合理安排在不同介质中。
应用数据的划分与分布
根据数据的使用特征划分
根据时间、地点划分
分布式数据库系统(DDBS中的数据划分)
派生属性数据划分
关系模式的去规范化
(4)确定系统的配置
DBMS产品一般都提供了一些存储分配参数:条设使用数据库的用户数、数据库大小、时间片大小…
(5)物理模式评估
对数据库物理设计结果从存取时间、存储空间、维护代价等方面进行评估,重点是时间和空间效率
如果评价结果满足原设计要求则可进入到物理实施阶段,否则,就需要重新设计或修改物理结构,有时甚至要返回逻辑设计阶段修改数据模型。
DBAS功能设计包括应用软件中的数据库事务设计和应用程序设计
功能设计过程一般被划分为总体设计、概要设计和详细设计。而具体到数据库事务设计部分,又可分为事务概要设计和事务详细设计。
完成系统设计工作之后,就进入系统实现与部署阶段。
软件体系结构
软件设计过程
进行数据设计、过程设计及人机界面设计。
主要内容包括:
1、表示层概要设计
2、业务逻辑层概要设计
3、数据访问层概要设计
补充:
4、数据持久层概要设计
人机界面采用原型迭代法合适,三个步骤:
设计各模块内部处理流程和算法、具体数据结构、详细接口等。
五个方面:
DBAS实施阶段主要包括以下工作
考虑因素:初始空间大小;数据库增量大小;访问性(并发数,访问频率)
步骤:筛选数据-转换数据格式-输入数据-校验数据
UML是一种基于面向对象的可视化通用建模语言,该方法结合了Booch,OMT,和OOSE方法的有点,统一了符号体系,并从其他方法和工程实践中吸收了许多经过实际校验的概念和技术,UML只是一种建模语言,不是一种建模方法。
建模方法应包括建模语言和建模过程两部分:
由语义(自然语言)与表示法(可视化标准符号)组成。其语义定义在一个四层建模概念框架中:
元元模型(Meta-Meta Model),代表要定义的所有事物。
元模型(Meta Model),UML的基本元素 ,“事务概念”的实例。
模型层(Model),UML的模型,类模型或类型模型。
用户模型(User Model),UML模型的实例,对象模型或实例模型。
UML的五种视图:结构、实现、行为、环境和用例视图
13钟视图(UML2.0):静态结构图及行为图两类 。
活动图主要描述系统、用例和程序模块中逻辑流程的执行次序,并行次序。
最适合描述系统或子系统的工作流程。
活动图用于低层次程序模块的作用类似于流程图,但活动图可以描述并行操作,而流程图只能描述串行操作。
一张活动图中有且只能由一个起点,可以有多个结束点。
系统需求:用户心中的真正期望
用例模型是把满足用户需求的所用功能表示出来的工具。
用例模型由用例、角色、系统三部分组成。
系统:各种用力的“黑匣子”
角色:与系统交互的人或其他实体
用例:完整功能的所有动作(一次操作)集
系统内部结构一般分为静态结构和动态结构。
在UML中,用类图来描述系统静态结构,用顺序图和通信图来表示系统动态结构。
类图主要表达的是问题领域的概念模型。
类图由类名、属性及操作组成。
类和类之间的关系
关联(聚集(共享聚集,组成或组合)),集成(泛化),依赖,精华(实现)
针对每一个特定用例,如何利用类图规范的对象来完成用例交付的任务,必须要利用顺序图
顺序图主要用于描述系统内对象之间的消息发送和接收序列,
顺序图中所有的元素,都必须在类图中存在。
通信图是交互图的一种,也称为协作图。
通信图显示对象间组织交互关系和链接。不侧重交互顺序,用序列号来确定消息及其并发线程顺序。
顺序图强调时间,通信图强调空间。
系统设计中,需要考虑细节部分。UML中,对于细节方面的内容可用对象图。状态机图及时间图来表达、分析和描述某个特定状况下系统的运作情况。
对象图是类图的实例,描述特定时间中所有对象在系统中的结构,是一个快照。
状态图用来描述有关事件或对象的状态转移
状态图只能有一个起始状态,可有多个结束状态。
状态间的转移由事件驱动。
当状态的转换由时间因素决定时,使用时间图来描述状态的变化。
描述时间驱动的状态转换,即当状态维持多少时间后转移。
时间图中,整个矩形框就是一个生命线。
宏观设计指将涉及的焦点放在研究比较大范围中的元素之间的联系,如包、命名空间、子系统等。
一个良好的命名空间,便于开发人员的理解,并使得各个命名空间之间 能够松耦合,而命名空间内则可满足高内聚的要求。
包图表示系统中不同包、命名空间或不同项目间的彼此关系,也就是逻辑层次上与实体层次上的关联性。
是将活动图和顺序图嫁接在一起的图。
以活动图为基础,在控制流间的连接交互图,从而将所有的交互图关系呈现出来。
交互概述图可以把不同的交互图结合在同一张图中来表达。
外部系统的整合关系着项目的成败。
在项目开始前,最好将待开发的系统与外部系统的关系做一个初步的定义。
复合结构图适用于系统间的沟通接口,适合做架构师在初期阶段评估系统复杂度的工具,也可以时系统维护的参考图。
组件图用来表示系统的静态实现视图。
用来展现一组组件间的组织与依赖,用于对源代码、可执行的发布、管理数据库等的系统建模。
组件时逻辑设计中定义的概念和功能在物理架构中的体现。
部署图又叫配置图,描述系统中硬件和 软件的物理配置情况与系统体系结构。
部署图说明实体组件,如可执行程序,将如何部署到实际的计算机中。
部署图要在项目中进行集成测试前提供。
SQL Server的发展史
SQL Server的特色
SQL Server版本
安装SQL Server2008对资源的需求
最低硬件需求
要求 | 32位 | 64位 |
---|---|---|
处理器 | Pcntium Ⅲ或更高 | Itanium、Opteron、Athcion或具有EM64T支持的Xcon/Pcntium |
处理器速度 | 10GHz或更高 | 1.6GHz或更高 |
内存 | 512MB | 512MB |
SQL Server中的数据库分类
定义数据库的数据文件和日志文件所需信息:
文件名及其位置
逻辑文件名,物理文件名
初始大小
不能小于model数据库主要数据文件大小
增长方式
可指定文件是否自增长(默认)
最大大小
文件增长的最大限制。默认无限制
创建数据库一般有两种方式:
举例-创建学生数据库
CREATE DATABASE Studentdb
ON
{
NAME='Studentdb_Data',
FILENAME='E:\Studentdb.mdf',
SIZE=3MB,
MAXSIZE=50MB,
FILEGROWTH=10%
}
LOG ON
{
NAME='Studentdb_Log',
FILENAME='E:\Studentdb.ldf',
SIZE=2MB,
MAXSIZE=5MB,
FILEGROWTH=1MB
}
GO
收缩数据库空间
即释放数据库中未使用的空间,文件的收缩从末尾开始。
自动收缩:AUTO_SHRINK,默认false.
手工收缩:收缩数据库中某个文件大小;按比例收缩整个数据库
删除和添加数据库文件
扩大指定文件的大小:
ALTER DATABASE STU_DB
MODIFY FILE(NAME=student_data,SIZE=8MB)
添加新的数据文件:
ALTER DATABASE STU_DB
ADD FILE(NAME=student_data2,
FILENAME='E:\Data\student_data2.ndf',
SIZE=6MB,
FILEGROWTH=0)
收缩整个数据库大小:
DBCC SHRINKDATABASE
收缩指定文件大小:
DBCC SHRINKFILE
删除数据库文件:
ALTER DATABASE STU_DB
REMOVE FILE student_log1
注意
添加文件时,每个文件组中的数据文件按比例填充,日志文件是依次增加的,文件空才能删除。
分离数据库
作用:实现将数据库从一台数据库服务器移到另一台,不需要重建。
从实例中删除,不删除数据文件和日志文件,保持了数据文件和日志文件完整一致性。使用sp_detach_db系统存储过程实现。如:
EXEC sp_detach_db'student','true'
附加数据库
将分离的数据库重新附加到数据库管理系统中。必须指定主要数据库文件的物理存储位置和文件名
CREATE DATABASE…FOR ATTACH|ATTACH_REBUILD LOG
例如:
CREATE DATABASE students
On(FILENAME-'F:\Data\students_data1.mdf')
FOR ATTACH
架构(Schema,也称模式),是数据库下的一个逻辑命名空间,是数据库对象的容器,一个数据库包含一个或多个架构,同一个数据库内架构名唯一。
定义架构
CREATE SCHEMA[<架构名>]
AUTHORIZATION<用户名>
删除架构
DROP SCHEMA[<架构名>]
分区表是将表中的数据按照水平分割成不同子集,并将数据子集存储在数据库一个或多个文件组中。物理上将大表分成几个小表,逻辑上还是一个大表。
合理使用分区能提高数据库性能。
是否创建分区取决于表当前数据量大小,以及将来数据量,还取决与表中数据的操作特点。
表包含(或将包含)以多种不同方式使用的大量数据
数据是分段的,比如以年份分隔。
三个步骤
创建分区函数:告诉DBMS以什么方式进行分区
CREATE PARTITION FUNCTION
创建分区方案:作用是将分区函数生成的分区映射到文件组中
CREATE PARTITION SCHEME
使用分区创建表
CREATE [UNIQUE][CLUSTERED|NONCLUSTERED]
INDEX index_name
ON table_name(column_name...)
[WITH FILLFACTOR=x]
UNIQUE表示唯一索引,可选
CLUSTERED、NONCLUSTERED表示聚集索引还是非聚集索引,
可选FILLFACTOR表示填充因子,指定一个0-100之间的值,该值指示索引页填满的空间所占的百分比。
DROP INDEX
'tablename.indexname|viewtable.indexname'[....n]
标准视图也称虚拟表,返回结果集与基本表一致。标准视图的结果集不永久存放;
建立唯一聚集索引的视图,称为索引视图,也成为物化视图。建立索引后,视图的结果集存放在数据库中。
对基本表的修改会反映到索引视图存储的数据中。
很少更新基础数据,索引视图效果更好
若基础数据以批处理形式定期更新,且主要是作为只读数据进行处理,可考虑在更新前删除所有索引视图,然后重建,提高更新性能。
创建聚簇索引前视图必须符合的条件
定义索引视图时,视图只能引用基本表,不能时其他视图。引用的所有基本表和视图同一数据库,所有者相同,必须用SCHEMABINDING选项建视图,视图中表达式引用的所有函数必须确定。对视图建立的第一个索引时唯一聚簇索引,之后在创建其他。
SELECT[DISTINCT][TOP n]select_list
[INTO new_table]
[FROM table_source]
[WHERE search_condition]
[GROUP BY group_by_expression]
[HAVING search_condition]
[ORDER BY order_expression[ASC|DESC]]
[COMPUTE expression]
TOP n[percent][WITH TIES]
【例一】查询单价最高的前三种商品名、商品类别和单价,包括并列情况。
SELECT TOP 3 WITH TIES GoodsName,
GoodsClassName,SaleUnitPrice,FROM Table_Goods a JOIN Table_GoodsClass b
ON a.GoodsClassID=b.GoodsClassID ORDER BY SaleUnitPrice DESC
分情况显示不同类型的数据。CASE函数时一种多分支表达式
两种类型:
语法
CASE
WHEN 布尔表达式1 then 结果表达式1
WHEN 布尔表达式2 then 结果表达式2
......
WHEN 布尔表达式n then 结果表达式n
[ELSE 结果表达式n+1]
END
SELECT 查询列表序列 INTO <新表名>
FROM 数据源......(其他行过滤、分组语句)
注意:表名前加#为局部临时表,##为全局临时表,只有表名为永久表。
例子:
SELECT * INTO #HD_Customer FROM Table_Customer WHERE ......
并运算(UNION):将多个查询结果合并为一个结果集。
语法:
SELECT 语句1
UNION [ALL]
SELECT 语句2
UNION [ALL]
......
使用UNION注意
交运算:返回同时在两个集合中出现的记录。
语法:
SELECT 语句1
INTERSECT
SELECT 语句2
INTERSECT......
SELECT 语句n
SELECT 语句1
EXCEPT
SELECT 语句2
EXCEPT......
SELECT 语句n
实例:
SELECT Cname,Address FROM Tabel_Customer
WHERE Address IN(SELECT Address FROM Table_Customer WHERE Cname='王晓')
AND Cname!='王晓'
实例:查询单价最高的商品的名称和单价
SELECT Goodsname,SaleUnitPrice FROM Tabel_Goods a WHERE SaleUnitPrice=
(SELECT MAX(SaleUnitPrice)FROM Table_Goods)
实例:查询购买了单价高于2000元商品额顾客的会员卡卡号
SELECT DISTINCT CardID FROM Table_SaleBill
WHERE EXITS (SELECT * FROM
Table_SaleBillDetail WHERE SaleBillID = Table_SaleBill.SaleBillID AND UnitPrice>2000)
在SELECT的选择列表中嵌入了一个只返回一个标量值的子查询。
实例:
SELECT Cname,Address(SELECT COUNT(*)FROM Table_Customer b ON a.CardID = b.CardID WHERE CustomerID='C001')
AS TotalTimes FROM Table_Custmer
WHERE CustomerID='C001'
SELECT CustomerID,Cname FROM
(SELECT * FROM Table_SaleBill a JOIN Table_SaleBillDetail b ON a.SaleBillID=b.SaleBill WHERE GoodsID='G001')
AS T1 JOIN
(SELECT * FROM Table_SaleBill a JOIN Table_SaleBillDetail b ON a.SaleBillID=b.SaleBill WHERE GoodsID='G00')
AS T2 ON T1.CardID=T2.CardID
JOIN Table_cUSTOMER c ON c.CardID = T1
在SQL Server中,一组行被称为一个窗口。
与聚合函数一样开窗函数也是对行集组进行聚合计算,但是他不像普通聚合函数那样每组只返回一个值,开窗函数可以每组返回多个值,因为开窗函数所执行聚合计算的行集组是窗口。
与聚合函数不同的是,开窗函数在聚合函数后增加了一个OVER关键字。
开窗函数调用格式为:
函数名(列)OVER(选项)
WITH <Common_table_expression>[,...n]
<common_table_expression>::=Expression_name[(column_name[,...n])]
AS
(SELECT语句)
使用T-SQL语言编写代码时,有两种方式存储和执行代码:
在客户端存储代码,通过客户端程序或SQL命令向DBMS发出操作请求,由DBMS将结果返回给用户程序。
以子程序的形式将程序模块存储在数据库中,供有权限的用户通过调用反复执行。存储过程:即存储在数据库中供所有用户程序调用的子程序
存储过程分为三类:
系统存储过程
用户自定义存储过程
用户自定义存储过程是由用户创建并能完成某一特定功能(如查询用户所需数据信息)的存储过程。本节将详细介绍用户自定义的存储过程。
扩展存储过程
扩展存储过程时SQL Server可以动态装载并执行的动态链接库(DLL)。扩展存储过程使您得以使用像C这样的变成语言创建自己的外部例程。对用户来说,扩展存储过程与普通存储过程一样,执行方法也相同。
存储过程的优点
存储过程定义包含两个主要组成部分
①过程名称
②过程的主体(其中包含执行过程操作的Teansact-SQL语句)。创建存储过程的语法格式如下:
CREATE PROCEDURE procedure_name[;number] /*定义过程名
[{@paramter data_type} /*定义参数的类型
[VARYING][=default][OUTPUT] /*定义参数的属性
[,...n1]
[WITH{RECONPILE|ENCRYPTION}|RECOMPILE]
[FOR REPLICATION]
AS sql_statement[,...n2]
用户定义函数:
类似于编程语言中的函数,其结构与存储过程类似,但函数必须有一个RETURN字句,用于返回函数值。
两类用户定义函数:
标量函数和表值函数。前者返回单个数据值,表值函数返回一个表。
定义标量函数
CREATE FUCTION.......RETURNS return_data_type
AS
BEGIN
【函数体】
RETURN scalar_expression
END
【实例】创建查询指定商品类别的商品种类的标量函数
CREATE FUCTION dbo.f_GoodCount(@class varchar(10))
RETURNS int
AS
BEGIN
DECLARE @x int
SELECT @x=count(*)FROM Table_GoodsClass a JOIN Table_Goods b ON a.GoodsClassID = b.GoodsClassID WHERE GoodsClassName = @class
RETRUN @x
END
调用标量函数:
注意:
调用时需要提供函数拥有者名和函数名;可以在任何出现表达式的SQL语句中调用类型一致的标量函数。
CREATE FUCTION ......RETURNS TABLE
AS
RETRUN[select_stmt]
参数说明:select_stmt是定义内联表值函数返回值的单个select语句;表值函数没有返回变量,没有函数体,只返回一个查询结果。
调用内联表值函数:
使用内联表值函数与视图类似,其作用相当于带参数的视图。
CREATE FUNCTION......RETURNS@return_variable
TABLE<table_type_definition定义返回的表结构>
AS
BEGIN
【函数体:sql语句】
RETURN
END
调用建多语句表值函数:在select的from子句中使用
DROP FUNCTION
触发器:特殊存储过程,在对表中的数据进行UPDATE、INSERT、DELETE操作时自动触发执行,常用于保证业务规则和数据完整性,增强数据完整性约束能力。
SQL Server 2008支持三种类型的触发器:
DML、DDL、登陆触发器。
使用场合:
完成比CHECK(只能实现同一表列之间取值约束)约束更复杂的数据约束。保证数据库性能而维护的为规范化数据。可实现复杂的商业规则。评估数据修改前后的表状态,并采取对策。
CREATE TRIGGER trigger_name
ON {table|view}
[WITH ENCRYPTION]
{FOR|AFTER|INSTEAD OF}
{[INSERT][,][UPDATE][,][DELETE]}
AS
sql_statement[...n]
参数说明:FOR或AFTER:后触发型,操作、约束检查完成后触发。INSTEAD OF:前触发型,数据操作语句最多定义一个触发器,执行触发器而非引发语句。若满足完整性约束则需要重新执行这些数据操作。
DROP TRIGGER
游标:实现对select结果集的逐行处理
游标结果集(SELECT返回结果集)与游标当前行指针(指定结果集中某一行)
特点:定位特定行;从当前位置检索一行或者多行;支持当前行数据修改;对修改结果提供不同级别的可见性支持。
(1)声明游标
ISO标准语法:DECLARE cursor_name[1] CURSOR FOR select_statement[2]
(2)打开游标
OPEN cursor_name
(3)提取数据
FETCH [1]FROM cursor_name[into @ variable_name[,…n]]
(4)关闭游标
CLOSE cursor_name可以再次打开。
(5)释放游标
DEALLOCATE cursor_name释放分配给游标的所有资源
数据库安全性不同意数据的完整性
保护数据免受意外或故意的丢失、破坏或滥用。
安全计划需要考虑:可用性损失,机密性数据损失,偷窃和欺诈,意外的损害
包括四阶段:
认证是一种鉴定用户身份的机制。授权是将合法访问数据库或数据库对象的权限授予用户的过程。包括认证用户对对象的访问请求。
DBMS通常采用自主存取控制和强制存储控制两种方案来解决安全控制问题。
Windows身份验证模式
SQL Server通过Windows操作系统获得用户信息,验证登录名和密钥,一般推荐
混合身份验证模式
Windows授权用户和SQL授权用户可以登录
两类
建立登陆账户
CREATE LOGIN login_name
修改登陆账户属性
ALTER LOGIN login_name
删除登录账户
DROP LOGIN login_name
用户有了登陆账户,只能连接到SQL服务器,并不具有访问数据库的权限
映射:让登陆账户成为数据库用户的操作成为映射。一个登录账户可以映射为多个数据库用户默认情况下,新建数据库只有一个用户:dbo,数据库用户的拥有者。
建立数据库用户
CREATE USER user_name[|FOR|FROM]
LOGIN login_name
Guest用户,特殊数据库用户,匿名访问。没有映射到登录账户的时候使用
删除数据库用户
DROP USER user_name
登录账户成为合法用户后没有任何操作权限,就需要为用户授予数据库数据及其对象的操作权限
(1)对象级别权限(6种)SELECT、INSERT、UPDATE、DELETE、REFERENCES、EXECUTE
(2)语句级别的权限CREATE DATABASE|PROCEDURE|TABLE|VIEW|FUNTION|BACKUP DATABASE|LOG
定义:一组具有相同权限的用户就是角色。
SQL Server2008中,角色分为预定义的系统角色和用户角色两种
固定服务器角色
固定数据库角色
定义在数据库级别上,存在于每个数据库中,用户加入固定数据库角色就具有数据库角色权限
用户定义的角色
用户定义的角色属于数据库一级
用来简化使用数据库时的权限管理
用户定义的角色成员可以是用户定义角色或数据库用户。注意:角色中的成员拥有的权限=成员自身权限+所在角色权限。但若某个权限正在角色中被拒绝,则成员不在拥有。
创建角色:CREATE ROLE
实例:
CREATE ROLE MathDept[AUTHORIZATION Software]
注意:为用户定义角色授权、添加、删除用户定义的角色中的成员与固定数据库角色一致。
删除用户定义角色:DROP ROLE
实例:
DROP ROLE MathDept
CREATE USER use1 IDENTIFIED BY 123456 DEFAULT TABLESPACE student(存储在student表空间)
QUOTA 5M ON student(限制使用空间为5M)
(1)系统特权三种默认特权
(2)对象特权
用于维护表级、行级、列级数据的安全性
DBAS进入运行维护阶段的主要任务:
保证数据库系统安全、可靠且高效率地运行。
数据库的运行除了DBMS与数据库外,还需要各种系统部件协同工作。
首先必须有各种相应的应用程序
其次各应用程序与DBMS都需要在操作系统(OS)支持下工作。
维护工作包括:
数据库的监控分析:指管理员借助工具检测DBMS的运行情况,掌握系统当前或以往的负荷、配置、应用等信息,并分析检测数据的性能参数和环境信息,评估DBMS的整体运行状态。
根据监控分析实现不同,分为:
根据监控对象不同,分为:
数据库构架体系的监控
监控空间基本信息、空间使用率与剩余空间大小等。
数据库性能监控
监控数据缓冲区命中率、库缓冲、用户锁、索引使用、等待事件等。
对数据库使用空间来进行管理时一项非常重要的工作。
空间使用情况变化带来的问题:
数据的存储结构分为:
SQL Server数据库中一个逻辑上的数据库直接和一组物理上的数据文件对应,没有表空间概念
DBMS对空间的管理包括:创建数据库空间、更改文件大小、删除空间、修改空间状态,新建、移动、关联数据文件等。
数据库性能优化是DBAS系统上线后最常见的运行维护任务之一。
进行数据库性能优化时,首先要确定优化目标,一般从数据库运行环境,参数调整、模式调整、数据库存储优化、查询优化几个方面考虑。
一般来说,可以从外部环境、调整内存分配、调整磁盘I/O、调整资源竞争等几个方面着手改变数据库参数,提高其性能。
外部调整:数据库性能和外部环境有很大的关系,主要外部条件包括:CPU、网络(大量的SQL数据在网络上传输会导致网速变慢)。
CPU使用情况判断依据:对于一台数据库服务器,如业务空闲时使用率超过90%。说明服务器缺乏CPU资源,如高峰时CPU使用了仍然低,说明服务器CPU资源充足。
解决方案:增加CPU数量或者终止需要很多资源的进程。
调整内存分配:调整相关参数控制数据库内存分配,很大程度改善数据库系统性能
调整磁盘I/O:数据库性能优劣的重要度量是响应时间。
改善方法:令I/O时间最小化,减少磁盘上文件竞争带来的瓶颈。
调整竞争:
数据库的规范化过程:高效率利用存储空间,减少数据的冗余,减少数据的不一致性。
问题:规范化关系解决了数据库维护的异常,并使数据冗余最小化。但会导致数据处理性能下降。
反规范化:将规范化关系转换为非规范化关系的过程。
反规范化方法:增加派生冗余列、增加冗余列、重新组表、分割表和新增汇总表方法。都会破坏数据完整性。
采用反规范化技术从实际出发均衡利弊
(1)增加派生性冗余列
增加的列由表中的一些数据项经过计算生成。
作用:查询时减少连接操作,避免使用聚合函数。
例如:销售单据明细表(单据编号,商品编号,单价,数量,总价),总价=单价*数量,属于派生性增加冗余列
(2)增加冗余列
在多个表中增加具有相同语义的列,常用来在查询时避免连接操作。(外码不属于这种情况)
(3)重新组表
当用户经常查看的某些数据是由多个表连接之后才能得到,就可以考虑先把这些数据重新组成一个表,这样在查询时会减少连接提高效率。
(4)分割表(重点)
水平分割:根据行的使用特点进行分割,分割之后所有表的结构都相同。而存储的数据不同。使用并(Union)操作。
垂直分割:根据列的特点分割,分割后所得表除了都包含主码外其他列都不相同。通常将常用列与不常用列分别放在不同表中,查询减少I/O次数。缺点是使用连接(Join)操作
(5)新增汇总表
大量执行报表等汇总操作会影响性能。
为降低汇总操作的三级,将频繁使用的统计中间结果或最终结果存储在汇总表中,从而降低数据访问量和汇总操作的CPU计算量
如:日销售额统计表
(1)物化视图(索引视图)
定义:包括一个查询结果的数据库对象,是预先计算并保存表连接或聚集等耗时多的操作结果。(一个定期刷新数据的视图,自动刷新或人工刷新)
适用于多个数据量较大的表进行连接操作及数据库中在多个站点的表进行连接时使用。
物化视图还可以进行远程数据的本地复制(物化视图的存储也称为快照),用于实施数据库间的同步。
(2)聚集
聚集是物理存储表中数据的可选择的方法。
一个聚集是一组表,将经常一起使用的具有同一公共列值的多个表中的数据行存储在一起,由公共列构成聚集码。
作用:最小化必须执行的I/O次数。
注意:将记录插入聚集的表之前,必须建立聚集索引,且按聚集码进行索引;对于剧集中的多个表,聚集值只存储一次。
劣势:聚集表的插入、更新、删除性能差,具体使用要权衡。
效率低下的SQL语句常常是系统效率不佳的主要原因。常用优化方法如下:
(1)合理使用索引
权衡:索引提高查询效率,索引增加系统开销。
建立索引原则:
索引使用原则:
索引调整和修改的原因:
由于缺少索引,某些查询语句执行时间过长。
某些索引自始至终没有使用,却占用了较多磁盘空间。
某些索引建立在被频繁改变的属性上,导致系统开销过大。
(2)避免或简化排序
ORDER BY和GROUP BY语句的执行涉及排序,磁盘排序开销很大,应利用索引自动以适当的次序产生输出。
影响优化器的因素:
由于现有索引不足,导致排序索引中不包括一个或几个待排序的列。
Group by和order by子句中列的次序与索引次序不一致。
排列的列来自不同的表。
为避免不必要的排序,要正确地增建索引,合理合并数据库表,如排序不可避免,则简化它,如缩小排序列的范围。
(3)消除对大型表数据的顺序存取
嵌套查询中,对表的顺序存取严重影响查询效率。
优化方法:对连接列进行索引,或使用并集来避免顺序存取。
(4)避免复杂正则表达式
原因:消耗较多CPU资源进行字符串匹配。
(5)使用临时表加速查询
将表的一个子集进行排序并创建临时表。
(6)用排序来取代非顺序磁盘存取
原因:非顺序磁盘存取最慢。使用以数据库排序功能为基础的SQL替代非顺序存取。
(7)不充分的连接条件。
原因:左(右)外连接包含与NULL数据匹配,相比内连接,代价可能很高。
(8)存储过程
尽量使用自带返回参数,而非自定义返回参数,减少不必要参数,避免数据冗余。
(9)不要随意使用游标
原因:占用较多系统资源。尤其是大规模并发情况下,很容易使得系统资源耗尽而崩溃。
(10)事务处理
一旦将多个处理放入事务,会降低系统处理速度。将频繁操作的多个可分割的处理过程放入多个存储过程中,这样就大大提高系统响应速度。
SQLServer Profiler
用来监视SQL Server事件的多用途监控工具(性能、存储过程、T-SQL语句运行等监控)。结果存储在一个跟踪文件中,可通过分析文件诊断问题。
数据库引擎优化顾问
测试数据库工作负荷(一组在数据库中执行的T-SQL语句),给出优化建议。
DBMS中常见的4类故障:
事务内部故障
事务故障导致数据不一致,分为预期的(大部分)和非预期的。
(1)预期的事务内部故障
可通过事务过程本身发现的。解决办法:事务回滚
(2)非预期的事务内部故障
不能由事务程序处理的故障,如运算溢出等。
事务故障的恢复由系统自动完成。
系统故障
又称软故障,运行期间,由于硬件故障、数据库软件及OS漏洞、突然断电等故障,导致数据不一致。
解决办法:重启后,撤销(UNDO)所有未提交的事务;重做(REDO)所有已提交的事务;
介质故障
又称硬故障,运行期间由于磁头碰撞、磁盘损坏、强磁干扰、天灾人祸等,使得数据丢失的一类故障。导致物理存储设计损坏,数据文件及数据全部丢失,破坏性最大。
容错策略:软件容错及硬件容错。
软件容错:
使用数据库备份及事务日志文件,通过恢复技术,恢复数据库到备份结束时的状态。若故障导致事务日志文件丢失,则不能完全恢复。
硬件容错:
一种方案是使用双物理存储设备,如双硬盘镜像。缺点:自然灾害或机房水灾、火灾导致双硬盘同时损坏,则失去保护作用。
另一种方案是设计两套相同的数据库系统,通过数据库软件机制,同步变化数据。
计算机病毒故障
病毒是恶意的计算机程序,破坏OS及数据库系统(破坏数据文件为主)。
解决办法:防火墙、杀毒软件、数据库备份文件。
无论哪种故障,恢复的基本原理是冗余。
数据库恢复:把数据库从错误状态恢复到某一已知的正确状态。
在DBMS中,数据库恢复子系统占10%以上。
恢复机制涉及两个问题:如何建立冗余数据;如何利用这些冗余数据实施数据库恢复。
建立冗余据的技术:
数据备份、登记日志文件、数据库复制、数据库镜像、为段设立保存点以及使用后备段与现行页表来支持对段的保存等。
最常用的是数据备份和登记日志文件。
数据转储即数据备份:
指DBA或DBMS定期复制数据库,并将其存放到其他介质的过程。
这些保存的副本被称为后援副本或后备副本。
静态转储:期间系统不能运行其他事务,不允许任何存取、修改活动。
静态转储保证数据的一致性,但降低了数据库的可用性。转储和事务是互斥的。
动态转储:即允许转储和事务并发执行。
动态转储不能保证转储数据的一致性。
动态转储+日志文件(记录转储期间各事务对数据库的修改活动记录):既保证数据一致性又提高了数据库的可用性。
完全转储:对数据库中所有数据进行转储。占据较多时间和空间,但恢复时间短。
增量转储:只复制上次转储后发生变化的文件或数据块。所需时间及空间短,但只能和完全转储配合才能对数据库进行恢复。
差量转储:对最近一次数据库完全转储以来发生的数据变化进行转储。
仅使用完全转储:占据时间和空间多,代价大。
完全转储+增量转储:恢复时间较长。
完全转储+差量转储:恢复时间短。
DBMS运行中,将所有事务的修改操作登记到日志文件。
作用:事务故障恢复和系统故障恢复必须使用日志文件。
在动态转储方式中必须建立日志文件。
在静态转储方式中也可使用日志文件。
两种格式:
需要记录的内容:
各个事务的开始标记 BEGIN TRANSACTION
各个事务的结束标记 COMMIT OR ROLLBACK
各个事务的所有更新操作
日志记录的内容包括:
事务标识和被更新的数据块
保证事务对数据库的操作的可再现性和正确性。
先后顺序导致必然性。
检查点的作用
最大限度地减少数据完全恢复时必须执行的日志部分。
检查点的引入
在日志中增加检查点记录,增加一个“重新开始文件”。
检查点记录的内容:建立检查点时刻正执行的事务清单;这些事务最近一个日志记录的地址。
重新开始文件记录的内容:各个检查点记录在日志中的地址。
基于检查点的恢复步骤
①从“重新开始文件”中找到最后一个检查点记录在日志文件中的地址,从而找到最后一个检查点记录。
②由该检查点记录得到执行的事务清单ACTIVE_LIST。
③从检查点开始正向扫描文件。
④对UNDO-LIST中的事务执行UNDO, 对REDO-LIST中的事务执行REDO。
由于数据库运行的硬件故障、机房电力故障、机房自然灾害等,要求从硬件级别对DBMS进行保护。
从DBMS运行所需要的各种环境出发,分析支撑数据库系统运行的环节。
相关度最紧密的技术:数据库存储保护技术,服务器容错技术及数据库镜像与容灾技术。
RAID依靠冗余技术 数据保护:
即把所有的数据复制到其他设备。
额外开销大:更多的磁盘、控制器、电缆。
对成员磁盘的数据执行异或(XOR)操作,得到其校验值,并存放在另外的校验盘上。
实现复杂,但比镜像冗余占据的空间小。
RAID根据所采用的方法不同,分为RAID-0,RAID-1,RAID-1E,RAID-5,RAID-6, RAID-7,RAID-10,RAID-50,RAID-60。
RAID-0:将多个磁盘合并成一个大的磁盘,不具有冗余,并行I/O,速度最快。
RAID-1:两组以上的N个磁盘相互作镜像,在一些多线程操作系统中能有很好的读取速度,理论上读取速度等于硬盘数量的倍数,另外写入速度有微小的降低。只要一个磁盘正常即可维持运作,可靠性最高。
RAID-5:RAIDLevel 5是一种储存性能、数据安全和存储成本兼顾的存储解决方案。它使用的是Disk Striping(硬盘分区)技术。RAID5至少需要三颗硬盘,RAID5不是对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。
RAID-10:RAID0与RAID-1的组合体,继承了前者的快速,后者的安全。 RAID-10冗余度为50%。
解决服务器硬件异常问题。
采用两台相同的服务器,共享存储设备。(双机热备,Active-Standby)
两台服务器之间会有私有网络进行心跳检测
其他服务器容错技术
硬件级别:自行设计制造的专用软硬件架构。
软件级别:专门的服务器级别容错技术,如Oracle提供了RAC架构。
前面几种恢复技术都必须及时正确地转储数据库。
是一种用于提高数据库可用性的解决方案,它根据DBA的要求,自动把整个数据库或关键数据复制到另一个磁盘上。
数据库镜像分类
两台机器均为工作机。正常状况下均为系统提供支持,互相监视对方的运行情况。
一台为工作机,一台为备份机。工作机为系统提供支持,备份机监视工作机的运行情况
工作方式
“数据库镜像会话”中,主体服务器和镜像服务器作为“伙伴”进行通信和协作。在会话中扮演互补角色。一旦出现故障,使用“角色切换”过程来互换主体服务器和镜像服务器。
SQLServer数据库镜像是将数据库事务处理从一个SQLServer数据库移到不同的SQLServer数据库。
镜像的复制是一个备用的复制,不能直接访问,只用来进行错误恢复。
“见证服务器”使镜像服务器自动识别。
两种运行模式 :“高安全性模式”及运行模式。
SQL Server数据库镜像提供三种实现方式:
高可用性。两台服务器同步事务写入,支持自动错误恢复。
高保护性。两台服务器同步事务写入,手工错误恢复。
高性能。两台服务器写入不同步,手工错误恢复。
数据库备份的原因:
防止数据丢失(存储介质故障、用户的操作错误、服务器故障、病毒侵害、自然灾害),一旦出现问题、能够根据备份进行恢复。
是数据转移的一种方式。(将数据库从一台服务器复制到另一台服务器、设置数据库镜像、文件归档和灾难恢复)
恢复数据库指数据库系统出现故障时,利用备份副本将数据库恢复到某个正确、一致的状态的过程。
两种类型:介质故障恢复、非介质故障恢复
恢复模式是一个数据库属性,它用于数据库备份和还原操作的基本行为。
恢复模式决定备份类型和还原方案。备份类型决定数据库备份的内容。
三种恢复模式:简单恢复模式、完整恢复模式、大容量日志恢复模式
简单恢复模式
此模式简略的记录大多数事务,不备份事务日志。所记录的信息只是为了确保在系统崩溃或还原数据备份之后数据库的一致性。
完整恢复模式
此模式完整的记录了所有事务,并保留所有事务日志记录,直到将他们备份
大容量日志恢复模式
此模式简略的记录大多数大容量操作(例如索引创建和大容量加载),完整地记录其他事务。大容量日志恢复模式提高了大容量操作的性能,常用完整恢复模式的补充。
进行下列操作后,立刻进行备份
(1)备份设备
SQL Server将备份数据库的场所称为备份设备。支持将数据库备份到磁带或磁盘上。
备份设备类型:
(2)备份类型
完整数据库备份(也称完全转储)
完整备份将备份整个数据库,包括事务日志部分(以便可以恢复整个备份)。完整备份代表备份完成时的数据库。是恢复的基线,备份数据文件、数据库对象和数据的信息,备份备份过程中发生的活动,备份未提交的事务到日志。
差异数据库备份(也称差异转储)
备份从上次完整备份之后数据的改变
备份差异备份过程中发生的活动
备份未提交的事务到日志
比完整备份节约时间
以前一次完整备份为基准点(成为差异基准)
在还原从差异备份前,应先还原最新的完整备份,在还原基于该完整备份的最新的差异备份。
文件备份
可以分别备份和还原数据库中的文件。使用文件备份可以仅还原已损坏的文件,而不必还原数据库的其余部分,从而提高恢复速度。
差异文件备份
创建文件或文件组的完整备份后,可以基于该完整备份创建一系列的差异备份。
差异文件备份只捕获自上一次文件备份以来更改的数据
事务日志备份
备份从上次日志备份之后的日志记录,备份完成后要截断日志
事务日志备份仅用于完整恢复模式或大容量日志恢复模式
三种类型的事务日志备份:
纯日志备份,大容量操作日志备份,结尾日志备份。
(3)常用备份策略
完整备份
完整备份+日志备份
完整备份+差异备份+日志备份
完整备份
适用于数据库数据不是很大,而且数据更改不是很频繁的情况。
完整备份一般可以几天进行一次或几周进行一次。
当对数据库数据的修改次数不是很频繁,而且允许一定量的数据丢失时,可以选择只用完整备份策略。
完整备份包括了数据和日志的备份
完整备份+日志备份
如果允许丢失太多的数据,而且又不希望经常地进行完全备份(因为完全备份进行的时间比较长),则可以在完全备份中间加一些日志备份。
例如,可以每天0:00点进行一次完全备份,每隔几小时进行一次日志备份。
完整备份+差异备份+日志备份
完全备份加差异备份和日志备份的策略,即在完全备份中间加一些差异备份,在差异备份中间加一些日志备份。
比如每周周日0:00进行一次完全备份,然后每天0:00进行一次差异备份,然后再两次差异备份之间增加一些日志备份
这种策略的好处是备份和恢复的速度都比较快,而且当系统出现故障时,丢失的数据也比较少。
(4)实现备份
SQL Server支持在一下级别恢复(还原)数据:
还原顺序
实现还原
示例:
假设已对pubs数据库进行了完全备份,并备份到MyBK_1备份设备上,假设此备份设备只含有对pubs数据库的完全备份。则恢复pubs数据库的语句为:
RESTORE DATABASE pubs
FROM MyBK_1
####1、Oracle数据库逻辑备份与恢复
Oracle数据库常见的故障类型:
逻辑备份:
指通过工具将数据库中的数据转换成专用或通用格式的文件,保存在文件系统中。
工具:
####2、Oracle数据库物理备份与恢复
物理备份:
指对数据物理文件所实施的备份。物理备份管理方法:用户管理的备份,Recover Manager备份,第三方备份软件。
恢复数据库
两个过程:
Restore:从备份数据中找到完整备份文件,恢复完整文件的过程。
Recover:将日志和增量备份的改变应用到数据备份文件,使数据文件恢复到指定时间点上的过程。
分布式数据库系统与分布式数据库的区别:
分布式数据库目标:
12个目标:
本地自治、非集中式管理、高可用性。(最基本特征)
位置独立性、数据分片独立性、数据复制独立性。(透明性)
分布式查询、事务管理。(复杂性)
硬件独立性、操作系统独立性、网络独立性、
数据库管理系统独立性。
数据分布策略:
从数据分片和数据分配考虑
数据分片(对关系操作)
按一定规则将某一个全局关系划分为多个片段。四种基本方法:
数据分配(对分片结果操作)
将分片产生的片段分配存储在各个场地上。解决数据分配的方法:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WBYpUGaD-1582357290412)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1580363563834.png)]
分布透明性
分片透明性。用户无需考虑数据分片
位置透明性。用户只需考虑数据分片情况,无需考虑数据分片位置。
局部数据模型透明性。用户既要了解全局数据的分片情况还要了解各片段的副本复制情况及位置分配情况。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JXFt7EfM-1582357290412)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1580363916824.png)]
分布式查询
用户与分布式数据库系统的接口。分布式查询优化需考虑:
①操作执行的顺序。
②操作的执行算法(连接操作和并操作)。
③不同场地间的数据流动的顺序。
分布式事务管理
主要包括:
并行数据库——通过并行实现各种数据操作,如数据载入、索引建立、数据查询,可以提高系统的性能。
优势:增强的可用性:当存储某个关系的场地系统崩溃时,可继续使用存储在别的场地的副本。
实现并行DBMS的三种硬件结构:
(1)共享内存系统(Shared Memory)
(2)共享磁盘系统(Shared Disk)
(3)无共享资源系统(Shared Nothing)
(4)层次结构(Hierachical)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ygk1GBlD-1582357290413)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1580364390101.png)]
(1)共享内存系统:多个cpu通过连接网络进行通信,并能访问公共的主存。
随着cpu增加,造成内存冲突
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bmjDwoZg-1582357290413)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1580364503454.png)]
(2)共享磁盘系统:每个cpu拥有自己的私有磁盘内存,并通过连接网络直接访问所有磁盘。
通过网络实现cpu之间的数据交换,增加了通信代价。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tJ9IIPxI-1582357290414)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1580364624509.png)]
(3)无共享资源系统:每个cpu拥有自己的内存和磁盘空间,并无公共区域,cpu之间所有通信通过连接网络来完成。
存在通信代价,非本地磁盘访问代价高。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O6gJ456Y-1582357290414)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1580364679878.png)]
(4)层次结构:前三种体系的结合。分为两层,顶层是无共享结构,底层是共享内存或共享磁盘结构。
集成了以上三种结构的优缺点。
####3、数据划分与并行算法
一维数据划分:将大数据集水平划分到多个磁盘上,可以通过并行读写有效地利用多磁盘的I/O带宽。
(1)轮转法——如果系统有n个cpu,将第i条记录划分到第i mod n 处理器的方法称为轮转划分方法。
(2)散列法——使用特定的哈希函数,作用于选定的属性,将记录划分到不同的处理机。
(3)范围划分法——首先对记录进行排序,然后按照排序码将其划分成n个区域,使每个区域中近似含有相同数目的记录,处于第i个区域的记录分布于处理机i。
优势劣势:
(1)轮转法可有效应用于需要访问整个关系的查询处理,当需要访问部分记录时,散列法和范围更优。
(2)范围法可能会导致数据偏斜,也就是不同分片含有的记录数目差别很大。数据偏斜会造成存有大片数据分片的处理机的性能瓶颈问题。
(3)散列法优点是:即使数据随时间增加或减少,也能保持均匀分布。
多维数据划分:
CMD多维划分法
BERD多维划分法
MAGIC多维划分法。
并行算法:
(1)并行排序:
a.用区域划分法先将关系的所有记录重新分布再进行排序。
b.每个cpu使用排序算法对分配给它的记录排序。每个处理机得到分配给它的所有记录的有序序列。
c.通过按照区域划分的对应次序访问处理机得到完整的有序关系。
难点:如何进行区域划分来使得每个处理机分布的记录数目近似相等。否则,对具有大量记录的处理机排序时将产生性能瓶颈,从而限制并行排序的可扩展性。
(2)并行连接:
假设:对关系A和B进行划分时,连接属性为age,关系初始分布在若干磁盘上,但不是基于连接属性分布的。
方法:对关系A和B重新划分:把连接属性age的取值分成k个区域
云计算时一种商业计算模型。它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。
云(cloud):即云计算提供商的数据中心的软硬件设施。
云分为:
云数据库(CloudDB,简称云库):云+数据库。目前主要的云计算平台:
AWS、GAE、Hadoop
谷歌云 计算基础架构模式(4个子系统)
Google File System文件系统
Map/Reduce分布式编程环境
Chubby分布式锁机制
BigTable大规模分布式数据库
云数据库的缺点:
数据安全问题
对云的管理问题
对因特网的依赖
XML,eXtensible Markup Language.可扩展标识语言。
XML数据库——支持对XML文档格式进行存储和查询等操作的数据库管理系统。
三种类型的XML数据库 :
XML Enabled Database(XEDB) )——能处理XML的数据库。
Native XML Database(NXD) )——纯XML数据库。
Hybird XML Database(HXD)——混合XML数据库。
与传统数据库比较,XML数据库 的优势:
能够对半结构化数据进行处理。
提供 对标签和路径的操作。
能清晰地表达数据的层次特征。
SQL Server中的XML语句:
FOR XML:将返回结果变为XML格式。
示例:
SELECT * FROM Table_cus
WHERE …. FOR XML RAW
SQL Server中的XML数据类型:
XML类型的字段
示例:
CREATE TABLE T_info
(
cid int ,
Content xml
)
1、Google的云数据库是一个分布式的结构化数据存储系统,称作( )。
答案:Bigtable
2、在分布式数据库中,使用( )模式来描述各片段到物理存放场地的映像。
答案:分配
3、在并行数据库中,有关系R(A, B)和S(A, C),需要将它们根据A属性拆分到不同的磁盘上。现有查询SELECT B FROM R, S WHERE R.A = S.A。下列拆分方式中最适合该查询的是( )
A.散列划分
B.轮转法
C.范围划分
D.列表划分
答案:A
4、关于分布式数据库,下列说法错误的是( )
A.分布式数据库系统的目标是利用多处理机结点并行地完成数据库任务,以提高数据库系统的整体性能
B.分布式数据库中位置透明性是指数据分片的分配位置对用户是透明的,使得用户在编程时只需考虑数据分片情况,而不用关心具体的分配情况
C.分布式数据库的事务管理包括恢复控制和并发控制,恢复控制一般采用的策略是基于两阶段的提交协议
D.分布式数据库的查询代价需要考虑站点间数据传输的通信代价,一般来说导致数据传输量大的主要原因是数据间的连接操作和并操作
答案:A
5、在分布式数据库应用系统中,对全局关系进行分片设计时,下列说法正确的是( )
A.对于一个全局关系中的任意数据,不允许其不属于任何一个片段,也不允许某些数据同时属于不同的片段
B.对于一个全局关系中的任意数据,可以允许其不属于任何一个片段,也允许某些数据同时属于不同的片段
C.对于一个全局关系中的任意数据,不允许其不属于任何一个片段,但允许某些数据同时属于不同的片段
D.对于一个全局关系中的任意数据,对于一个全局关系,可以允许某些数据属于不同片段,但不允许某些数据同时属于不同的片段
答案:A
如何利用日益增长的数据为企业的管理和决策服务?
经过研究和实践产生了数据仓库和数据挖掘技术。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PXAzE3d7-1582357290415)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1580529280966.png)]
数据仓库是核心,操作型系统是数据源,决策支持系统是数据的需求者。
粒度
数据仓库的数据单位中保存数据的细化或综合程度的级别。细化程度越高,粒度越小。
数据分区(分割)
数据分散到各自的物理单元中去,它们能独立地处理。
元数据
关于数据的数据,或叫描述数据的数据。用于构造、维持、管理、和使用数据仓库,在数据仓库中尤为重要。
Data Mart
数据集市 – 小型的,面向部门或工作组级数据仓库。
Operation Data Store
操作型数据存储 — ODS是能支持企业日常的全局应用的数据集合,是不同于DB的一种新的数据环境, 是DW 扩展后得到的一个混合形式。四个基本特点:面向主题的( Subject –Oriented )、集成的、可变的、 当前或接近当前的。
ODS分成4类:
SDLC是典型的需求驱动开发生命周期,CLDS是典型的数据驱动开发生命周期。
传统的系统开发生命周期支持操作型环境,为建立系统,必须首先理解需求,然后进入到设计和开发阶段。
CLDS由数据开始,一旦数据到手,就集成数据,然后,如果数据有偏差,就检验看看数据存在什么偏差,再针对数据写程序,分析程序执行结果,最后,系统需求才得到理解。
数据仓库的数据模型分为概念(E-R图)、逻辑(关系型模型或多维数据模型)、物理三级数据模型。与普通数据库系统的数据模型不同:
①一般不包含纯操作型数据。
②一般需要扩充关键字结构,在其中加入时间属性。
③需要增加导出数据。
概念模型设计、技术评估与环境准备工作、逻辑模型设计、物理模型设计、数据生成与应用实现、数据仓库运行与维护
####1.数据仓库数据的更新与维护
根据某种维护策略,在一定条件下触发维护操作;维护操作捕捉到数据源中的数据变化;通过一定策略对数据仓库中的数据进行相应的更新操作,以保持两者的一致性。
维护策略
实时维护
在数据源发生变化时,立即更新。
延时维护
在数据仓库中的视图被查询时完成更新。
快照维护
定期对数据仓库进行维护,触发条件是时间
捕捉数据源的变化
当数据源发生变化时,告知数据仓库源数据发生变化的机制,就是源数据变化的监听及捕获问题 。典型的方法有:
触发器
修改数据源应用程序
通过日志文件
快照比较法
导出数据的刷新
两种:
根据维护对象的数据源对其进行重新计算。
根据数据源的变化量在维护对象原有数据的基础上进行添加和修改,即增量式维护。
用户不可存取数据仓库时间的长短是衡量数据维护效率的重要指标。将维护分为“聚集”和“更新”两个部分。
对数据仓库的数据量、各种数据的使用率、用户和安全状况、网络通信情况、网络数据流量、数据源数据变化情况、集成和维护工具运行效率、查询响应时间、应用支持效率等进行必要的监控。
元数据管理
一般采用元数据库来存储和管理元数据。
###第五节 联机分析处理与多维数据模型
主要用于支持复杂的分析操作,侧重对决策人员和高层管理人员的决策支持。
维——人们观察数据的角度。
数据的多维分析——针对数据仓库中以多维形式组织起来的数据,从多个角度、不同层次,采取各种数据分析技术,对数据进行剖析,以使用户能从多角度和不同层次观察和分析数据。
钻取与卷起
OLAP分析最基本的操作。钻取指对应于某一维逐步向更细节层方向观察数据,卷起则反之。
切片和切块
实现局部数据的显示。
旋转
改变一个报告或页面显示的维方向,得到不同视角的数据。最简单的旋转就是数据交叉。
OLAP的实现方式有三种:
基于多维数据库的OLAP(MOLAP)
以多维数组为基本存储结构。
基于关系数据库的OLAP(ROLAP)
采用关系表表示和存储。(星形模式或雪花模式)
混合型的OLAP(HOLAP)
结合MOLAP与ROLAP。具有最好的查询性能。
数据挖掘(Data Mining)——就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。
数据源必须是真实的、大量的、含噪声的;发现的是用户感兴趣的知识;发现的知识要可接受、可理解、可运用。
数据挖掘作为知识发展的过程,分为三个阶段:
三个子步骤:数据选取;数据预处理;数据变化。
数据挖掘
首先确定挖掘的任务,其次决定挖掘算法。
结果解释评估
剔除冗余或无关的模式。
常见的数据挖掘任务
分类预测任务
常见的方法:决策树、神经网络、规则归纳、支持向量机、贝叶斯、粗糙集、回归分析、K-最近邻等。
描述型任务
典型的方法:聚类、关联、分析等。
“啤酒和尿布”
分类挖掘方法——用于预测数据对象的离散类别。一般分为两个步骤:
通过已知数据集,建立分类函数,构造分类器。
利用所获得的分类函数对未知类别标记的数据项进行分类操作。
聚类挖掘方法——用于对集中的数据进行分组,使得每组内的数据尽量相似而不同组间的数据尽可能不同。
聚类方法包括统计方法、机器学习方法、神经网络方法和面向数据库的方法等。
时间序列——用时间排序的一组随机变量。
时间序列分析——又称为数据演变分析,描述行为随时间变化的对象的规律或趋势,并对其进行建模。
从不同角度可分为:一元时间序列和多元时间序列;等间隔时间序列和不等间隔时间序列;平稳时间序列和非平稳时间序列。