根据考试大纲,数据库方面要求考生掌握以下知识点:
(1)信息系统综合知识:包括数据库管理系统的类型、数据库管理系统结构和性能评价、常用
的关系型数据库管理系统、数据库模式、数据库规范化、分布式数据库系统、并行数据库系统、数
据仓库与数据挖掘技术、数据库工程、备份恢复。
(2)系统架构设计案例分析和论文:数据库建模、数据库设计、数据库系统的备份与恢复。

1.数据库模式

数据库系统可以分为外模式、概念模式和内模式三个层次。
(1)模式(概念模式、逻辑模式):描述整个数据库中数据库的逻辑结构,描述现实世界中实体与性质与联系,定义记录、数据项、数据的完整性约束条件及记录之间联系,是数据项值框架。模式包含有访问控制、保密定义、完整性检查等内容,以及概念/物理之间的映射。模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只有一个模式。
(2)外模式(子模式、用户模式):用以描述用户看到或使用的部分数据的逻辑结构,用户根据外模式用数据操作语句或应用程序去操作数据库中的数据。外模式主要描述组成用户视图的各个记录的组成、相互关系、数据项的特征、数据的安全性和完整性约束条件。外模式是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。一个数据库可有多个外模式。一个应用程序只能使用一个外模式。 
(3)内模式:是整个数据库的最低层表示,不同于物理层,它假设外存是一个无限的线性地址
空间。内模式定义的是存储记录的类型、存贮域的表示、存贮记录的物理顺序,指引元、索引和存
贮路径等数据的存贮组织。内模式是数据物理结构和存储方式的描述,是数据在数据库内部的表示
方式。一个数据库只有一个内模式。
模式是数据库的中心与关键;内模式依赖于模式,独立于外模式和存储设备;外模式面向具体的应用,独立于内模式和存储设备;应用程序依赖于外模式,独立于模式和内模式。
数据库系统可以划分为三个抽象级
(1)用户级数据库:对应外模式,是用户看到和使用的数据 库,又称用户视图。用户级数据库主要由外部记录组成,不同用户视图可以互相重叠,用户的所有操作都是针对用户视图进行。一个数据库可有多个不同的用户视图,每个用户视图由数据库某一部分的抽象表示所组成。 
(2)概念级数据库:对应模式,介于用户级和物理级之间,是所有用户视图的最小并集,是DBA看到使用的数据库,又称为DBA视图。概念级数据库由概念记录组成,一个数据库应用系统只有一个DBA视图,它把数据库作为一个整体的抽象表示。概念级模式把用户视图结合成一个整体,综合平衡考虑所有用户要求,实现数据的一致性、最大限度降低数据冗余、准确地反映数据间的联系。
(3)物理级数据库:对应于内模式,是数据库的低层表示,它描述数据的实际存储组织,最接近于物理存储,又称为内部视图。
DBS两级独立性是指物理独立性和逻辑独立性。三个抽象级间通过两级映射(外模式/模式映
射,模式/内模式映射)进行相互转换,使得数据库的三级形成一个统一的整体。
(1)物理独立性。物理独立性是指用户的应用程序与存储在磁盘上的数据库中的数据是相互独
立的。当数据的物理存储改变时,应用程序不需要改变。物理独立性存在于模式和内模式之间 的映射转换,说明物理组织发生变化时应用程序的独立程度。
(2)逻辑独立性。逻辑独立性是指用户的应用程序与数据库中的逻辑结构是相互独立的。当数 据的逻辑结构改变时,应用程序不需要改变。逻辑独立性存在于外模式和模式之间的映射转 换,说明概念模式发生变化时应用程序的独立程度。

2.数据模型

数据模型主要有两大类,分别是概念数据模型和基本数据模型,常用的基本数据模型有
(1)层次模型:用树型结构表示实体类型及实体间联系。层次模型的优点是记录之间的联系通过指针来实现,查询效率较高。层次模型的缺点是只能表示1:n联系。由于层次顺序的严格和复杂,引起数据的查询和更新操作复杂,应用程序的编写也复杂。
(2)网状模型:用有向图表示实体类型及实体间联系。网状模型的优点是m:n联系也容易实现,查询效率高。其缺点是编写应用程序比较复杂,程序员必须熟悉数据库的逻辑结构。
(3)关系模型:用表格结构表达实体集,用外键表示实体间联系。其优点有:建立在严格的数学概念基础上;概念单一关系,结构简单清晰;存取路径对用户透明,从而数据独立性、安全性好,简化数据库开发。关系模型的缺点是由于存取路径透明,查询效率不如非关系数据模型。
(4)面向对象模型:用面向对象观点来描述现实世界实体的逻辑组织、对象间限制、联系等的
模型。一个面向对象数据库系统是一个持久的、可共享的对象库的存储和管理者,而一个对象库是
由一个面向对象模型所定义的对象的集合体。面向对象数据库模式是类的集合,面向对象模型提供
了一种类层次结构。在面向对象数据库模式中,一组类可以形成一个类层次,一个面向对象数据库
可能有多个类层次。在一个类层次中,一个类继承其所有超类的全部属性、方法和消息。面向对象
的数据库系统在逻辑上和物理上从面向记录上升为面向对象、面向可具有复杂结构的一个逻辑整 体。允许用自然的方法,并结合数据抽象机制在结构和行为上对复杂对象建立模型,从而大幅度提
高管理效率,降低用户使用复杂性。

3.关系模型

(1)域:一组具有相同数据类型的值的集合。  
(2)笛卡尔积:给定一组域D1、D2、…、Dn,这些域中可以有相同的。它们的笛卡尔积为:D1×D2×…×Dn = {(d1,d2,…,dn)|dj∈Dj,j=1,2,…,n}。其中每一个元素(d1,d2,…,
dn)叫作一个n元组(简称为元组)。元组中的每一个值dj叫作一个分量。
(3)关系:D1×D2×…×Dn的子集叫作在域D1、D2、…、Dn上的关系,用R(D1,D2,…,Dn)
表示。这里R表示关系的名字,n是关系的目或度。 关系中的每个元素是关系中的元组,通常用t表示。关系是笛卡尔积的子集,所以关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性。
        若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。若一个关系有多个候选码,则选定其中一个作为主码。主码的所有属性称为主属性。不包含在任何侯选码中的属性称为非码属性。在最简单的情况下,侯选码只包含一个属性。在最极端的情况下,关系模式所有属性的组合构成关系模式的侯选码,称为全码。
        关系可以有三种类型:基本表、查询表和视图表。基本表是实际存在的表,它是实际存储数据的逻辑表示。查询表是查询结果对应的表。视图表是由基本表或其他视图表导出的表,不对应实际存储的数据。 

4.规范化理论

设有一个关系模式R(SNAME,CNAME,TNAME,TADDRESS),存在存储异常的问题:
(1)数据冗余:如果某门课程有100个学生选修,那么在R的关系中就要出现100个元组,这门
课程的任课教师姓名和地址也随之重复出现100次。
(2)修改异常:由于上述冗余问题,当需要修改这个教师的地址时,就要修改100个元组中的
地址值,否则就会出现地址值不一致的现象。
(3)插入异常:如果不知道听课学生名单,这个教师的任课情况和家庭地址就无法进入数据
库,否则就要在学生姓名处插入空值。
(4)删除异常:如果某门课程的任课教师要更改,那么原来任课教师的地址将随之丢失。
如果把R分解成R1(SNAME,CNAME)和R2(CNAME,TNAME,TADDRESS),则能消除上述的存储异常现象。 因为在模式R中,学生与课程有直接联系,教师与课程有直接联系,而教师与学生无直接联系,这就产生了模式R的存储异常。模式设计强调“每个联系单独表达”。

5.范式

(1)第一范式(1NF):如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称 R
是第一范式的模式。 
(2)第二范式(2NF):若关系模式R是1NF,且每个非主属性完全函数依赖于候选键,那么
称R是2NF模式。
(3)第三范式(3NF): 如果关系模式R是2NF,且每个非主属性都不传递依赖于R的候选码,
则称R是3NF。
(4)BC范式(BCNF):若关系模式R是1NF,且每个属性都不传递依赖于R的候选键,那么称
R是BCNF模式。

6.反规范化理论

多个拆分后的表进行查询操作时,需要涉及大量的连接操作, 这使得查询变得费时与低效。为了有效的解决此问题,提出了反规范化技术。
(1)增加派生列:加派生列指增加的列由表中其它数据计算生成,作用是在查询时减少连接操作,避免使用集函数。例如表中有单价和数量,增加列“总额”=单价*数量,总额就是一个派生列。
(2)增加冗余列:增加冗余列是指在多个表中具有相同的列,它常用来在查询时避免连接操作。
(3)重新组表:重新组表指如果许多用户需要查看两个表连接出来的结果数据,则把这两个表重新组成一个表来减少连接而提高性能。
(4)分割表:有时对表做分割可以提高性能。表分割有两种方式: 
水平分割:根据一列或多列数据的值把数据行放到两个独立的表中。水平分割通常在下面的情
况下使用: ① 表很大,分割后可以降低在查询时需要读的数据和索引的页数,同时也降低了索引的层数, 提高查询速度。② 表中的数据有独立性。例如表中分别记录各个地区的数据或不同时期的数据,特别是有些数据常用,而另一些数据不常用。 ③ 需要把数据存放到多个介质上。 水平分割会给应用增加复杂度,它通常在查询时需要多个表名,查询所有数据需要union操作。 在许多数据库应用中,这种复杂性会超过它带来的优点,因为只要索引关键字不大,则在索引用于查询时,表中增加两到三倍数据量,查询时也就增加读一个索引层的磁盘次数。 
垂直分割:把主码和一些列放到一个表,然后把主码和另外的列放到另一个表中。如果一个表 中某些列常用,而另外一些列不常用,则可以采用垂直分割,另外垂直分割可以使得数据行变小, 一个数据页就能存放更多的数据,在查询时就会减少I/O次数。其缺点是需要管理冗余列,查询所有数据需要join操作。

7.数据库的控制功能

ACID特性:
(1)原子性(Atomicity):事务的所有操作在数据库中要么全做要么全都不做。
(2)一致性(Consistency):事务执行使数据库从一个一致性状态变到另一个一致性状态。
(3)隔离性(Isolation):一个事务的执行不能被其他事务干扰。
(4)持续性(Durability,永久性):指一个事务一旦提交,它对数据库的改变必须是永久的。
事务通常以BEGIN TRANSACTION语句开始,以COMMIT或ROLLBACK语句结 束。COMMIT称为事务提交语句,表示事务执行成功地结束,把事务对数据库的修改写入磁盘(事务对数据库的操作首先是在缓冲区中进行的)。ROLLBACK称为事务回滚语句,表示事务执行不成功地结束,即把事务对数据库的修改进行恢复。

8.并发操作的问题

数据库的并发操作带来的主要问题有:
(1)丢失更新:两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了T1提交的结果,T1的修改被丢失。
(2)不可重复读(读过时的数据):事务T1读取某一数据,事务T2读取并修改了同一数据,T1
为了对读取值进行校对再读此数据,得到了不同的结果。例如T1读取B=100,T2读取B并把B改为 200,T1再读B得200,与第一次读取值不一致。 
(3)读脏数据。事务T1修改某一数据,事务T2读取同一数据,而T1由于某种原因被撤销,则T2
读到的数据就为“脏”数据,即不正确的数据。例如T1把C由100改为200,T2读到C为200,而事务T1由于被撤销,其修改无效,C恢复为原值100,而T2却读到了C为200,与数据库内容不一致。
处理并发控制的主要方法是采用封锁技术
(1)排他型封锁(X封锁):如果事务T对数据A实现了X封锁,那么只允许事务T读取和修改数据A,其他事务要等事务T解除X封锁以后,才能对数据A实现任何类型的封锁。可见X封锁只允许一个事务独锁某个数据,具有排他性。 
(2)共享型封锁(S封锁):X封锁只允许一个事务独锁和使用数据,要求太严需要适当从宽,如可以允许并发读,但不允许修改,这就产生了S封锁概念。S封锁的含义是:如果事务T对数据A实现了S封锁,那么允许事务T读取数据A,但不能修改数据A,在所有S封锁解除之前决不允许何 事务对数据A实现X封锁。
在多个事务并发执行的系统中,主要采取封锁协议来进行处理。
(1)一级封锁协议:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。一级封
锁协议可防止丢失更新,并保证事务T是可恢复的。但不能保证可重复读和不读脏数据。
(2)二级封锁协议:一级封锁协议加上事务T在读取数据R之前先对其加S锁,读完后即可释放
S锁。二级封锁协议可防止丢失更新,还可防止读脏数据。但不能保证可重复读。
(3)三级封锁协议:一级封锁协议加上事务T在读取数据R之前先对其加S锁,直到事务结束才
释放。三级封锁协议可防止丢失更新、防止读脏数据与数据重复读。
(4)两段锁协议:所有事务必须分两个阶段对数据项加锁和解锁。其中扩展阶段是在对任何数
据进行读、写操作之前,首先要申请并获得对该数据的封锁;收缩阶段是在释放一个封锁之后,事
务不能再申请和获得任何其他封锁。若并发执行的所有事务均遵守两段封锁协议,则对这些事务的
任何并发调度策略都是可串行化的(可以避免丢失更新、不可重复读和读脏数据问题)。遵守两段
封锁协议的事务可能发生死锁。
所谓封锁的粒度即是被封锁数据目标的大小,在关系数据库中封锁粒度有属性值、属性值集、
元组、关系、某索引项、整个关系数据库、物理页等几种。 封锁粒度小则并发性高,但开销大;封锁粒度大则并发性低,但开销小, 综合平衡照顾不同需求以合理选取适当的封锁粒度很重要。
死锁
采用封锁的方法固然可以有效防止数据的不一致性,但封锁本身也会产生一些麻烦,最主要就
是死锁问题。死锁是指多个用户申请不同封锁,由于申请者均拥有一部分封锁权而又需等待另外用
户拥有的部分封锁而引起的永无休止的等待。死锁是可以避免的,目前采用的办法有如下几种。
(1)预防法:采用一定的操作方式以避免死锁的出现,顺序申请法、一次申请法等即是此类方
法。顺序申请法是指对封锁对象按序编号,用户申请封锁时必须按编号顺序申请,这样能避免死锁发生;一次申请法是指用户在一个完整操作过程中必须一次性申请它所需要的所有封锁,并在操作结束后一次性归还所有封锁,这样能避免死锁的发生。
(2)死锁的解除法:允许产生死锁,并在死锁产生后通过解锁程序以解除死锁。这种方法中需要有两个程序,一个是死锁检测程序,用它测定死锁是否发生;另一个是解锁程序,一旦检测到系统已产生死锁,则启动解锁程序以解除死锁。

9.备份与恢复技术

数据库系统中可能发生各种各样的故障:
(1)事务内部故障:事务内部故障有的是可以通过事务程序本身发现的,有的是非预期的,不能由事务程序处理。例如输入数据违反完整性约束、运算溢出、并行事务发生死锁而被选中撤销该事务等。事务故障意味着事务没有到达预期的终点, 因此数据库可能处于不正确状态。系统就要强行回滚此事务,即撤销该事务已经做出的任何对数据库的修改,使该事务好像根本没有启动一样。
(2)系统范围内的故障:指造成系统停止运转的任何事件,使系统要重新启动。 例如中央处理器故障、操作系统故障、停电等,这类故障影响正在运行的所有事务,但不破坏数据库。这时内存中的内容,数据库缓冲区中的内容都将丢失,使得运行事务都非正常终止,从而造成数据库可能处于不正确的状态,数据库恢复子系统必须在系统重新启动时让所有非正常终止的事务回滚,把数据库恢复到正确的状态。
(3)介质故障:系统故障常称为软故障,介质故障称为硬故障。硬故障指外存故障,如磁盘的磁头碰撞、瞬时的强磁场干扰等。这类故障将破坏数据库,并影响正存取这部分数据的所有事务,这类故障比前两类故障发生的可能性小但破坏性最大。
(4)计算机病毒:计算机病毒是一种人为的故障或破坏,是一些恶作剧者研制的一种计算机程
序,这种程序与其他程序不同,它像病毒一样可以繁殖和传播,并造成对数据库的危害。
数据备份
        备份是指DBA定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程。这些 备用的数据文本称为后备副本。当数据库遭到破坏后就可以利用后备副本把数据库恢复,这时数据库只能恢复到备份时的状态,从那以后的所有更新事务必须重新运行才能恢复到故障时的状态。
备份可分为静态备份和动态备份。静态备份是指备份期间不允许对数据库进行任何存取、修改活动。静态备份简单,但备份必须等待用户事务结束才能进行,新的事务必须等待备份结束才能执行。显然会降低数据库的可用性;动态备份是指备份期间允许对数据库进行存取或修改,即备份和用户事务可以并发执行。动态备份可克服静态备份的缺点,但备份结束时后援副本上的数据并不能保证正确有效。
备份还可以分为海量备份和增量备份。海量备份是指每次备份全部数据库。增量备份则指每次只备份上次备份后更新过的数据。如果数据库很大,事务处理又十分频繁,则增量备份方式很有效的。
日志文件
        事务日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中。这种文件就称为日志文件。对于任何事务日志都有非常全面的记录,根据这些记录可以将数据文件恢复成事务前的状态。日志文件是用来记录对数据库每一次更新活动的文件,在动态备份方式中,必须建立日志文件,后援副本和日志文件综合起来才能有效地恢复数据库;在静态备份方式中,也可以建立日志文件,当数据库毁坏后可重新装入后援副本把数据库恢复到备份结束时刻的正确状态,然后利用日志文件把已完成的事务进行重做处理,对故障发生时尚未完成的事务进行撤销处理。这样不必重新运行那些已完成的事务程序就可把数据库恢复到故障前某一时刻的正确状态。
数据恢复
        把数据库从错误状态恢复到某一个已知的正确状态的功能,称为数据库的恢复。数据恢复的基本原理就是冗余,建立冗余的方法有数据备份和登录日志文件等。根据故障的不同类型采用不同的恢复策略。
(1)事务故障的恢复
事务故障的恢复是由系统自动完成的,对用户是透明的(不需要DBA的参与)。其步骤如下:
① 反向扫描日志文件,查找该事务的更新操作。
② 对该事务的更新操作执行逆操作。
③ 继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。
④ 如此处理下去,直至读到此事务的开始标记,事务故障恢复完成。
(2)系统故障的恢复
系统故障的恢复在系统重新启动时自动完成,不需要用户干预。其步骤如下:
① 正向扫描日志文件,找出在故障发生前已经提交的事务,将其事务标识记入重做(Redo)队
列。同时找出故障发生时尚未完成的事务,将其事务标识记入撤销(Undo)队列。
② 对撤销队列中的各个事务进行撤销处理:反向扫描日志文件,对每个Undo事务的更新操作
执行逆操作。
③ 对重做队列中的各个事务进行重做处理:正向扫描日志文件,对每个Redo事务重新执行日志
文件登记的操作。
(3)介质故障与病毒破坏的恢复
介质故障与病毒破坏的恢复步骤如下:
① 装入最新的数据库后备副本,使数据库恢复到最近一次备份时的一致性状态。
② 从故障点开始反向扫描日志文件,找出已提交事务标识并记入Redo队列。
③ 从起始点开始正向扫描日志文件,根据Redo队列中的记录,重做已完成的任务,将数据库恢
复至故障前某一时刻的一致状态。
(4)有检查点的恢复技术
检查点记录的内容可包括建立检查点时刻所有正在执行的事务清单,以及这些事务最近一个日 志记录的地址。采用检查点的恢复步骤如下:
① 从重新开始文件中找到最后一个检查点记录在日志文件中的地址,由该地址在日志文件中找
到最后一个检查点记录。
② 由该检查点记录得到检查点建立时所有正在执行的事务清单队列(A)。
③ 建立重做队列(R)和撤销队列(U),把A队列放入U队列中,R队列为空。
④ 从检查点开始正向扫描日志文件,若有新开始的事务T1,则把T1放入U队列;若有提交的事
务T2,则把T2从U队列移到R队列;直至日志文件结束。
⑤ 对U队列的每个事务执行Undo操作,对R队列的每个事务执行Redo操作。

10.数据库的安全性

DBS的信息安全性在技术上依赖于两种方式,一种是DBMS本身提供的用户身份识别、视 图、使用权限控制、审计等管理措施,大型数据库管理系统如Oracle和Sybase等均有此功 能;另一种就是靠数据库的应用程序来实现对数据库访问进行控制和管理,Dbase、 Foxbase、Foxpro等开发的数据库应用程序,很多数据的安全控制都由应用程序里面的代码来实现。
用户认证
用户的身份认证是用户使用DBMS系统的第一个环节
(1)口令认证:口令是一种身份认证的基本形式,用户在建立与DBMS的访问连接前必须提供正确的用户账号和口令,DBMS与自身保存的用户列表中的用户标识和口令比较,匹配成功则允许用户使用数据库系统;否则返回拒绝信息。 用户的账号和口令是口令认证方式中的核心,用户信息可以保存在数据库内、操作系统内或者集中的目录服务器用户身份证书库内。
(2)强身份认证:在网络环境下,客户端到DBMS服务器可能经过多个环节,在身份认证期间,用户的信息和口令可能会经过很多不安全的结点(如路由器和服务器),而被信息的窃听者窃取。强身份认证过程使认证可以结合信息安全领域一些更深入的技术保障措施,来强化用户身份的
鉴别,例如与用户证书、智能卡、用户指纹识别等多种身份识别技术相结合。
用户角色
        按每个用户指定操作权限在用户数目往往是一项繁重的工作,DBMS提供角色来描述具有相同操作权限的用户,不同角色的用户授予不同的访问操作权限。一般可以将权限角色分为3类:数据库登录权限类、资源管理权限类和DBA权限类。有了数据库登录权限的用户才能进入DBMS使用各类工具和实用程序。 数据对象的创建者可以授予这类用户以数据查询、建立视图等权限。这类用户只能查阅部分数据库信息,不能修改数据库中的任何数据。
        具有资源管理权限的用户,除了拥有上一类的用户权限外,还有创建数据库表、索引等数据对 象的管理权限,可以在权限允许的范围内修改、查询数据库,还能将自己拥有的权限授予其他用户。 具有DBA权限的用户将具有数据库管理的全部权限,包括访问任何数据,授予(或回收)用户各种权限,创建各种数据对象,完成数据库的整库备份、装入重组及进行全系统审计等工作。
        不同的DBMS可能对用户角色的定义不尽相同,权限的划分的细致程度也远超过上面3种基本的类型,而基于角色的用户权限管理是现在主流数据库产品都具有的特性。
数据授权
        同一类功能操作权限的用户,对数据库中数据对象管理和使用的范围又可能是不同的,因此
DBMS除了要提供基于功能角色的操作权限控制外,还提供了对数据对象的访问控制,访问控制可
以根据对控制用户访问数据对象的粒度从大到小分为4个层次。
(1)数据库级别:判断用户是否可以使用访问数据库的数据对象,包括表、视图、存储过程。
(2)表级:判断用户是否可以访问关系里面的内容。
(3)行级:判断用户是否能访问关系中的一行记录的内容。
(4)属性级:判断用户是否能访问表关系中的一个列(属性、字段)的内容。
        管理员把某用户可查询的数据和元素在逻辑上归并起来,简称一个或多个用户视图,并赋予名 称,再把该视图的各种使用权限授予该用户。 DBMS对于用户的访问存取控制有两个基原则:
(1)隔离原则:用户只能存取他自己所有的和已经取得授权的数据对象。
(2)控制原则:用户只能按他所取得的数据存取方式存取数据,不能越权。
        数据库授权可以分为静态授权和动态授权。可以把静态授权理解成为是DBMS的隐性授权,也就是说用户对他自己拥有的信息不需要有指定授权动作就拥有全权管理和操作权限。与静态授权相对应,只有数据对象的所有者或者DBA默认地拥有对数据的存取权,动态授权则允许这些用户把这些权力授予其他的用户,现在DBMS支持的SQL语言里面有专门的授权语句。
数据库视图
        视图可看作虚拟表或存储查询。可通过视图访问的数据不作为独特的对象存储在数据库内。数据库内存储的是SELECT语句。SELECT语句的结果集构成视图所返回的虚拟表。用户可以用引用表时所使用的方法,在SQL语句中引用视图名称来使用虚拟表。使用视图可实现下列功能:
(1)将用户限定在表中的特定行上。例如只允许雇员看见工作跟踪表内记录其工作的行。
(2)将用户限定在特定列上。只让一些雇员看见雇员表中的姓名工作电话列,不能看见其他列。
(3)将多个表中的列连接起来,使它们看起来像一个表。
(4)聚合信息而非提供详细信息。显示一个列的和或列的最大值和最小值。
如果需要限制用户使用的数据,可以将视图作为一种安全机制。通过定义SELECT语句以检索将
在视图中显示的数据来创建视图。SELECT语句引用的数据表称为视图的基表。
审计功能
        审计是一种事后监督的手段。跟踪也是DBMS提供的监视用户动作的功能,审计和跟踪是两个不同的概念。跟踪主要是满足系统调试的需要,捕捉到的用户行为记录往往只用于分析,并不长久保存,而审计作为一种安全检查措施,把系统的运行状况和用户访问数据库的行为记录以日志保存下来,这种日志作为一种稽查用户行为的一种证据。 包括用户审计和系统审计。
        用户审计时,DBMS审计系统记下所有对自己表或视图进行访问的企图及每次操作的用户名时间、操作代码等信息。这些信息一般都被记录在操作系统或DBMS的日志文件里面,用这些信息可对用户审计分析。系统审计由DBA进行,其审计内容主要是系统一级命令及数据对象的使用情况。

11.数据库的完整性

完整性约束条件
        保证数据完整性的方法之一是完整性检查,即对数据库中数据设置一些约束条件,这是数据的语义体现。数据的完整性约束条件一般在数据模式中给出,并在运行时做检查,当不满足条件
时立即向用户通报以便采取措施。
        完整性约束条件指的是对数据库中数据本身的语法、语义限制,数据间的逻辑约束等。所有约束条件一般以谓词逻辑形式表示,即以具有真假值的原子公式及命题连接词(并且、或者、否定)所组成的逻辑公式表示。完整性约束条件作用对象可以是关系、元组、列三种。
        数据库中数据的语法、语义限制与数据间的逻辑约束称为静态约束。它反映了数据及数据间的逻辑特性,是最重要的一类完整性约束。静态约束包括静态列级约束(对数据类型、格式的约束、 对取值范围的约束、对空值的约束、其他约束)、静态元组约束、 静态关系约束(实体完整性约束、参照完整性约束、函数依赖约束、统计约束)。
        数据库中的数据变化应遵守的规则称为数据动态约束,它反映数据库状态变迁的约束。动态约束包括动态列级约束(修改列定义、列值时的约束)、动态元组约束、动态关系约束。 
完整性控制
        完整性控制机制应该具有定义功能(提供定义完整性约束条件的机制)和检查功能(检查用户发出的操作请求是否违背了完整性约束条件)。如果发现用户的操作请求违背了约束条件,则采取动作来保证数据的完整性。数据库完整性可分为实体完整性、参照完整性和用户定义的完整性。
实体完整性:实体完整性要求主码中的任一属性不能为空。
参照完整性:若基本关系R中含有与另一基本关系S的主码PK相对应的外码FK,则参照完整性要求,对R中的每个元组在FK上的值必须是S中某个元组的PK值,或者为空值。
用户定义的完整性:针对某一具体关系数据库的约束条件。
触发器 :触发器的功能则不仅仅起提示作用,它还会引起系统内自动进行某些操作以消除违反完整性约束条件所引起的负面影响。

12.数据库性能

SQL性能优化
        SQL语句是用户访问关系数据库中数据的 唯一方法,通常在一个关系数据库上,服务器的SQL进程会使用该服务器60%~90%的资源,大部 分数据库效率的问题都是由于SQL语句编写不善引起的,所以SQL语句的性能优化十分重要,随着数据量的变化和数据库版本升级后,往往会导致部分SQL性能下降,所以对SQL的跟踪优化是一项持续不断的工作。
数据库性能优化 
        DBS是一组程序作用在数据文件上对外提供服务,所以其本身的性能优化也十分重要,对其的优化工作主要是相应的参数调整,步骤一般如下:
(1)通过监视DBS的内存对象,获得系统性能指标,发现系统的性能缺陷及原因。
(2)针对导致系统性能缺陷的原因,进行相应的参数调整(如增加数据缓冲区的大小)。
(3)跟踪参数调整后系统的各项性能指标,看是否达到预期要求,否则继续调整。
以上3步反复循环迭代,持续进行,保证数据库本身运行状态的最优。
查询优化
(1)把数据、日志、索引放到不同I/O设备上增加读取速度。数据量越大,提高 I/O越重要。
(2)根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。注意填充因子要适当。索引尽量小,使用字节数小的列建索引好,不要对有限的几个值的列建单一索引。
(3)用OR的子句可以分解成多个查询,并且通过UNION 连接多个查询。它们的速度只与是否
使用索引有关,如果查询需要用到联合索引,用UNION all执行的效率更高。 
(4)在查询SELECT语句中用WHERE子句限制返回的行数,避免表扫描。
(5)注意使用DISTINCT,在没有必要时不要用,它同UNION一样会使查询变慢。
(6)在IN后面值的列表中,出现最频繁的值放在最前面,减少判断次数。
(7)在GROUP BY 和HAVING子句之前就能剔除多余的行,不要用它们来做剔除行的工作。
(8)尽量将数据处理工作放在服务器上减少网络的开销,如使用存储过程。存储过程是编译好优化过、并且被组织到一个执行规划里、存储在数据库中的SQL语句,是控制流语言的集合速度快。存储过程有两种类型。一种类似于SELECT查询,用于检索数据,检索到的数据能够以数据集的形式返回给客户。另一种类似于INSERT或DELETE查询,它不返回数据,只是执行一个动作。
(9)不要在一句话里再三使用相同函数浪费资源,将结果放在变量里再调用更快。

13.数据库工程

        数据库工程是基于DBS生存周期所有活动的集合,包括数据库的规划设计、实现和管理等。

        数据库设计是指对一个给定的应用环境,提供一个最优数据模型与处理模式的逻辑设计, 与一个确定数据库存储结构与存取方法的物理设计,建立起能反映现实世界信息和信息联系及满足用户数据要求,以能够被某个DBMS所接受,同时能实现系统目标并有效存取数据的数据库。
数据库设计阶段
        基于DBS生存期的数据库设计分成5个阶段,分别为规划、需求分析、概念设计、逻辑设计和物理设计。
(1)规划
        规划阶段的主要任务是进行建立数据库的必要性及可行性分析,确定DBS在组织中和信息系统中的地位,以及各个数据库之间的联系。
(2)需求分析
        需求分析可以通过3步来完成,即需求信息的收集、分析整理和评审,其目的在于对系统的应用 情况做全面详细的调查,确定企业组织的目标,收集支持系统总的设计目标的基础数据和对这些数 据的要求,确定用户的需求,并把这些要求写成用户和数据设计者都能够接受的文档。
(3)概念设计
        概念设计阶段的目标是对需求说明书提供的所有数据和处理要求进行抽象与综合处理,按一定方法构造反映用户环境的数据及其相互联系的概念模型,即用户的数据模型或企业数据模型。这种概念数据模型与DBMS无关,是面向现实世界的、极易为用户所理解的数据模型。在进行概念结构设计时,可先设计各个应用的视图,即各个应用所看到的数据及其结构,然后再进行视图集成,以形成一个单一的概念数 据模型。这样形成的初步数据模型还要经过数据库设计者和用户的审查与修改,最后形成所需的概念数据模型。
(4)逻辑设计
        逻辑设计主要是把概念模式转换成DBMS能处理的模式。转换过程中要对模式进行评价和性能测试,以便获得较好的模式设计。逻辑设计的主要内容包括初始模式的形成、子模式设计、应用程序设计梗概、模式评价、修正模式。
        逻辑设计的目的是把概念设计阶段设计好的基本E-R图转换为与选用的具体机器上的DBMS所支 持的数据模型相符合的逻辑结构,包括数据库模式和外模式。
(5)物理设计
        物理设计是指对一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程,所谓数据库的物理结构主要指数据库在物理设备上的存储结构和存取方法。
设计约束和原则
        数据库设计过程中,必须考虑性能标准和性能约束要求。性能标准是从不同的性能约束中推导出来的。比如查询响应时间上限,系统破坏的恢复时间,为维护安全性和完整性而需要的特殊数据等。性能标准的估价还有更新、存储,再组织的代价。数据库设计过程的输出,主要有完整的数据库结构和基于数据库结构和处理需求的应用程序的设计准则。
        为使数据库设计更合理有效,需要有效的指导原则,即数据库设计方法学。 好的数据库设计方法学能在合理的期限内以合理工作量产生一个有实用价值的数据库结构。方法学还具有足够的通用性、灵活性和可再生产性,有自顶向下、逐步求精的数据库结构设计过程,对数据库结构和应用软件采取“多步设计评审方法”,目的是要尽早发现系统设计中的错误,在早期阶段给予纠正,减少系统研制的成本。它有分析式、启发式或过程式的设计技术和定量及定性的数据库评价原则。数据库定性分析是指其灵活性、适应性、新用户对设计的可理解性、与其他系统兼容性、对新环境的可改变性、恢复和重启动能力、对模块增生的分割和接受能力等。在数据库设计方法学中,信息需求渗透到数据库设计的整个过程,并且需要有3种基本类型的描述机制:
(1)实现设计过程的最终结果将用DBMS的DDL表示。DDL完全是针对现有的DBMS而言的。
(2)信息输入的描述。包括需求信息的收集和分析,数据元素及其联系的同义词、异义词和重
叠定义等。这些都不容易用软件工具实现,可能要用一些人工方式。
(3)在信息输入和DDL描述之间的其他中间步骤的结果的描述。主要的中间结果是实体联系
图,它是概念设计的产物,在概念设计和逻辑设计之间起桥梁作用。

14.数据库建模

E-R图
E-R模型简称E-R图,它是描述概念世界,建立概念模型的实用工具。E-R图包括三个要素: 
(1)实体:用矩形框表示,框内标注实体名称。 
(2)属性:用椭圆形表示,并用连线与实体连接起来。 
(3)实体之间联系:用菱形框表示,框内标注联系名称,用连线将菱形框分别与有关实体相连。
 
在数据库的概念结构设计过程中,先设计各子系统的局部E-R图,设计过程分为以下步骤:
(1)确定局部视图的范围。
(2)识别实体及其标识。
(3)确定实体间的联系。
(4)分配实体及联系的属性。
各子系统的局部E-R图设计好后,下一步就是要将所有的分E-R图综合成一个系统的总体E-R
图,一般称为视图的集成。视图集成通常有两种方式: 
(1)多个局部E-R图一次集成。这种方式比较复杂,做起来难度较大。
(2)逐步集成。一次集成两个局部E-R图。这种方式每次只集成两个局部E-R图可降低复杂度。
局部E-R图之间的冲突主要有三类:
(1)属性冲突:包括属性域冲突和属性取值冲突。属性冲突理论上好解决,只要换成相同的属
性就可以了,但实际上需要各部门协商,解决起来并不简单。
(2)命名冲突:包括同名异义和异名同义。处理命名冲突通常也像处理属性冲突一样,通过讨
论和协商等行政手段加以解决。
(3)结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图
中所包含的属性个数和属性排列次序不完全相同。对于前者的解决办法是把属性变换为实体或实体
变换为属性,使同一对象具有相同的抽象。对于后者的解决办法是使该实体的属性取各局部E-R图中 属性的并集,再适当调整属性的次序。
E-R图向关系模式的转换属于数据库的逻辑设计阶段的工作,该阶段需要把E-R模型转换为某种
DBMS能处理的关系模式,具体转换规则:
(1)一个实体转换为一个关系模式,实体属性就是关系属性,实体的码就是关系的码。
(2)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。 如果转换为一个独立模式,则与该联系相连的各实体码以及联系本身属性均转换为关系的属性,每个实体码均是该关系的候选键。如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。
(3)一个1:n联系可以转换为一个独立的关系模式,也可以与任意n端对应的关系模式合并。如果转换为一个独立的模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。如果与n端实体对应的关系模式合并,则需要在该关系模式的属性中加入1端关系模式码和联系本身属性。
(4)一个m:n联系转换为一个独立的关系模式,与该联系相连的各实体的码以及联系本身的属
性均转换为关系的属性,而关系的码为各实体码的组合。
(5)三个以上实体间的一个多元联系可以转换为一个独立的关系模式,与该联系相连的各实体
的码以及联系本身的属性均转换为关系的属性,而关系码为各实体码的组合。

15.常见数据库管理系统

Oracle
        Oracle的结构包括数据库的内部结构、外存储结构、内存储结构和进程结构。在Oracle中,数
据库不仅指物理上的数据,还包括处理这些数据的程序,即DBMS本身。Oracle提供了PL/SQL、
Designer/2000、Forms等开发和设计工具。除了以关系格式存储数据外,Oracle8以上的版本支持面向对象的结构(如抽象数据类型)。一 个对象可以与其他对象建立联系,也可以包含其他对象,还可以用一个对象视图支持面向对象的接 口数据而无须对表做任何修改。
        无论是面向对象的结构还是关系结构,Oracle数据库都将其数据存储在物理的数据文件中。数 据库结构提供数据存储到文件的逻辑图,允许不同类型的数据分开存储,这些逻辑划分即是表空 间。在Oracle中,除了存储数据的文件外,还有DBMS的代码文件、日志文件和其他一些控制文
件、跟踪文件等。外存储结构主要包括表空间和文件结构。
        Oracle数据库在运行中使用两种类型的内存结构,分别是系统全局区和程序全局区。系统全局区是数据库运行时存放系统数据的内存区域,它由所有服务器进程和客户进程共享;程序全局区是 单个存放Oracle进程工作时需要的数据和控制信息的,程序全局区不能共享。

Sybase

为满足企业级分布式计算应用的要求,Sybase采用了基于构件方式的多层(常用三层)C/S架构。构件的主要优点是其自包含性和可重用性,系统中任何一个构件当被另一个具有同样功能的构件取代时,都无须对周围的构件进行重编码或修改。

第一层为客户应用程序。负责实现在客户系统上的数据显示和操作以及对用户输入做合理性检验。Sybase的开发工具产品系列(例如,Power Builder等)处在这一层。

第二层为基于构件方式的中间件层。该层能为分布式异构环境提供全局性的数据访问及事务管理控制。Sybase的中间件层产品主要有Omni Connect、Open C1ient和Open Server等。

        第三层为服务器应用软件。它负责数据存取及完整性控制。Sybase数据库产品系列(例如,
Adaptive Server Enterprise、Sybase MPP、Sybase IQ和SQL Anywhere等)处于这一层。
Sybase这种架构的高适应性体现在企业可依据其特定的和变化中的分布式应用的需要来定制各
个层次中的构件。Sybase的这些产品能优化地集成在一起协同运行,但它们彼此又是相互独立的, 都能容易地与第三方产品实现集成,因而用户可灵活地构建一个完整的异构分布式系统。
Informix
        Informix是美国Informix公司(已被IBM公司收购)的主要产品。Informix是一个跨平台、全功
能的关系型DBMS,后改造为面向对象型DBMS,它具有各种特性,并且能够十分方便地与各种图
形用户界面前端工具相连接。Informix动态服务器采用多线程架构实现,这意味着只需较少的进程完成数据库活动,同时也意味着一个数据库进程可以通过线程形式为多于一个的应用服务。通常称这样一组进程为数据库服 务器。根据需要,可以为数据库服务器动态分配一个进程,故称之为动态服务器。多线程架构还可以有更好的可伸缩性。这意味着,当增加更多用户时,数据库服务器只需要少量额外资源,这得益于多线程服务器实现本质上的可伸缩性的效率。
        Informix的软件开发工具主要有Informix-SQL、Informix-ESQL、Informix-4GL等,它们具有
不同的功能和特点,既能单独使用,也可根据实际需要相互配合使用。
SQL Server
        SQL Server是微软公司的数据库产品,SQL Server的分布式架构把应用程序对数据库的访问和 数据库引擎分离开来。SQL Server的核心数据库服务器运行在基于Windows的服务器之上。基于 Windows的服务器一般通过以太局域网与多个客户机系统连接。这些客户机系统一般是运行SQL  Server客户机软件的PC机。这些PC机既可以是单独的桌面系统,又可以是其他网络服务的平台,如 IIS Web服务器。
        SQL Server与流行的开发工具和桌面应用程序紧密集成,例如,可以从由Visual Basic、Visual  C++、PowerBuilder、Delphi、Visual FoxPro和许多其他PC开发环境下开发的客户应用程序中访 问SQL Server数据库。SQL Server与流行开发工具所使用的几种数据访问接口兼容,例如,可以通 过Microsoft JET Engine和Data Access Objects、Remote Data Objects、ActiveX Data Objects、OLE DB、ODBC(Open Database Connectivity,开放数据库 互连)、SQL Server内置DB-Library以及第三方开发工具来访问SQL Server数据库。        
        对于无缝桌面数据库访问,SQL Server使用OLE DB提供者和ODBC驱动程序,这些驱动程序允许从任何与ODBC 或者OLE DB兼容的桌面应用程序中访问SQL Server数据库。OLE DB和ODBC可以从数百个简化设 计的桌面应用程序中为特定的查询、数据分析、自定义报表打开SQL Server数据库。桌面集成减少 了自定义的编程工作。SQL Serevr对ODBC的支持允许其他平台,如Macintosh或各种Unix系统访问SQL Server数据库。
        SQL Server的4个基本服务器组件包括Open Data Services、MS SQL Server、SQL Server 
Agent和MSDTC。
DB2
        DB2是IBM公司研制的一种关系型数据库系统。DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于OS/2、Windows等平台下。 
        DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。DB2采用了数据分级技术,能够使大型机数 据很方便地下载到局域网数据库服务器,使得C/S用户和基于局域网的应用程序可以访问大型机数 据,并使数据库本地化及远程连接透明化。它以拥有一个非常完备的查询优化器而著称,其外部连 接改善了查询性能,并支持多任务并行查询。
        DB2具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个 活动线程,对大型分布式应用系统尤为适用。
MySQL
        MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。MySQL 被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

16.并行数据库 

        从硬件结构来看,根据处理机与磁盘及内存的相互关系可以将并行计算机分为3种基本的架构, 分别是共享内存(Share Memory,SM)结构、共享磁盘(Share Disk,SD)结构和无共享资源 (Share-Nothing,SN)结构,并行DBS以这3种架构为基础。
SM结构
        SM结构由多个处理机、一个共享内存和多个磁盘存储器构成。多处理机和共享内存由高速通信 网络连接,每个处理机可直接存取一个或多个磁盘,即所有内存与磁盘为所有处理机共享。
        SM结构的优势在于实现简单和负载均衡,但是这种结构的系统由于硬件成员之间的互连很复 杂,故成本比较高。由于访问共享内存和磁盘会成为瓶颈,为了避免访问冲突增多而导致系统性能
下降,节点数目必须限制在100个以下,可扩充性比较差。另外内存的任何错误都将影响到多个处
理机,系统的可用性不是很好。
SD结构
        SD结构由多个具有独立内存的处理机和多个磁盘构成,每个处理机都可以读写任何磁盘,多个 处理机和磁盘存储器由高速通信网络连接。
        SD结构具有成本低、可扩充性好、可用性强,容易从单处理机系统迁移,以及负载均衡等优
点。该结构的不足之处在于实现起来比较复杂,以及存在潜在的性能问题。
SN结构
        SN结构由多个处理节点构成,每个处理节点具有自己独立的处理机、内存和磁盘存储器,多个 处理机节点由高速通信网络连接。
        在SN结构中,由于每个节点可视为分布式DBS中的局部场地,因此分布式数据库设计中的多数设计思路,如数据库分片、分布事务管理和分布查询处理等都可借鉴。SN结构成本较低,它减少了共享资源,具有极佳的可伸缩性,节点数目可达数千个,并可获得接近线性的伸缩比。通过在多个节点上复制数据实现高可用性。SN结构的不足之处在于实现比较复杂,以及节点负荷难以均衡。只是根据数据的物理位置而不是系统的实际负载来分配任务。并且系统中新节点的加入将导致重新组织数据库以均衡负载。
        并行数据库的组织涉及到并行粒度和操作算法问题。 并行粒度是指查询执行的并行程度,按照粒度从粗到细,有不同用户事务间并行、同一事务内不同查询间并行、同一查询内不同操作间的并行、同一操作内的并行性4种。
        并行操作算法有并行连接算法、并行扫描算法和并行排序算法等。由于连接运算是数据库系统 中最常用且最耗时的操作,对并行连接操作的研究最多。学者们提出基于嵌套循环的并行连接算法、基于合并扫描的并行连接算法、基于Hash的并行连接算法和基于索引的并行连接算法等。
        并行数据库以提高系统性能为宗旨,强调数据分布的均匀性。数据划分是并行查询处理的重要基础,根据存放关系的节点数目的不同,数据划分技术可分为完全划分和变量划分。完全划分将每个关系分布存储到所有节点上,不适合小关系及节点数目大的系统;变量划分将每个关系只分布存储到部分节点上,节点数目是关系大小和访问频率的一个函数,使数据分布更为灵活。
        划分数据时可以依据一个属性的值,也可以同时依据多个属性的值,前者称为一维数据划分, 后者称为多维数据划分。常用的划分方法有轮转法、Hash法和值域划分法、用户定义划分法、模式划分法和Hybrid_Range划分法等。

17.数据分析

        企业的数据处理工作可分成两类,OLTP(On-Line Transaction  Processing,联机事务处理)和OLAP(On-Line Analytical Processing,联机分析处理)。OLTP是传统的关系型数据库的主要应用,OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
联机分析处理
        OLTP是传统关系型数据库的重要应用之一,是基本的、日常的事务处理,例如银行交易、 电信计费等,对响应时间要求比较高,强调密集数据更新处理的性能和系统的可靠性效率。OLTP用短小和中等复杂程度的查询语句,读改数据库中比较小的部分,数据访问方式是小随机磁盘访问。
        OLTP是事件驱动面向应用。OLTP特点:对响应时间要求高;用户数量庞大,主要是操作人员;数据库的操作基于索引进行;对数据库的事务预先定义,查询简单,不牵涉到多表连接操作。
        OLAP使得数据分析人员能够从多角度对数据进行快速、一致、交互地存取,从而获得对数据的更深入的了解。OLAP的目标是满足决策支持或者在多维环境下特定的查询和报表需求。
        OLAP是使分析人员、管理人员从多角度对信息进行快速、一致、交互地存取, 从而获得对数据深入了解的一类软件技术。OLAP的目标是满足决策支持或者满足在多维环境下 特定的查询和报表需求,它的技术核心是“维”的概念。维是人们观察客观世界的角度,是一种高层次的类型划分。维一般包含着层次关系,这种层次关系有时会相当复杂。通过把一个实体的多项重要的属性定义为多个维,使用户能对不同维上的数据进行比较。因此OLAP也是多维数据分析工具的集合。
OLAP的基本多维分析操作有钻取、切片和切块、旋转等。
(1)钻取:改变维的层次,变换分析的粒度。包括向上钻取和向下钻取。向上钻取是在某 一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;而向下钻取则是从汇总数据深入到细节数据进行观察或增加新维。
(2)切片和切块:是在一部分维上选定值后,关心度量数据在剩余维上的分布。如果剩余的维只有两个,则是切片;如果有三个,则是切块。
(3)旋转:是变换维的方向,即在表格中重新安排维的放置(例如行列互换)。 
        OLAP有多种实现方法,根据存储数据的方式不同,可以分为ROLAP(Relational OLAP,基于关系数据库的OLAP实现)、MOLAP(Multidimensional OLAP,基于多维数据组织的OLAP实现)、HOLAP(Hybrid OLAP,基于混合数据组织的OLAP实现)
(1)ROLAP:以关系数据库为核心,以关系型结构进行多维数据的表示和存储。ROLAP将多维数据库的多维结构划分为两类表:一类是事实表,用来存储数据和维关键字;一类是维表,对每个维至少使用一个表来存放维的层次、成员类别等维的描述信息。维表和事实表通过主关键字和外关键字联系在一起,形成了“星型模式”。对于层次复杂的维,为避免冗余数据占用过大的存储空间,可以使用多个表来描述,这种星型模式的扩展称为“雪花模式”。
(2)MOLAP:以多维数据组织方式为核心,MOLAP使用多维数组存储数据。多维数据在存储中将形成立方块的结构,MOLAP中对立方块的旋转、切块、切片是产生多维数据报表主要技术。
(3)HOLAP:低层是关系型的,高层是多维矩阵型的;或者反之。这种方式具有更好的灵活
性。还有其他的一些实现OLAP的方法,如提供一个专用的SQL Server,对某些存储模式(如星型、雪片型)提供对SQL查询的特殊支持。
        OLAP工具针对特定问题的联机数据访问与分析,通过多维的方式对数据分析、查询和报表。多维分析是指对以多维形式组织起来的数据采取切片、切块、钻取、旋转等分析动作,以求剖析数据,使用户能从多个角度、多侧面地观察数据库中的数据,从而深入理解包含在数据中的信息。

18.数据仓库

        数据仓库(Data Warehouse)是一个面向主题的、集成的、相对稳定的、且随时间变化的的
数据集合,用于支持管理决策。
数据仓库的特征
(1)面向主题:操作型数据库的数据组织面向事务处理任务,各个业务系统间各自分离,数据仓库中的数据按照一定的主题域进行组织。主题是一个抽象的概念,指用户使用数据仓库进行决策时关心的重点方面,一个主题通常与多个操作型信息系统相关。例如一个保险公司所进行的事务处理可能包括汽车保险、人寿保险、健康保险等,公司的主题范围可能是顾客、保险单、保险费等。
(2)集成:数据仓库所有特性中最重要。面向事务处理的操作型数据库通常与特定的应用相关,数据库之间相互独立,往往是异构的。数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到,必须消除源数据中的不一致性,保证数据仓库内的信息是关于整个企业的一致的全局信息。
(3)相对稳定的:操作型数据库中的数据通常实时更新,数据根据需要及时发生变化。数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,通常只需要定期的加载、刷新。
(4)随时间变化:操作型数据库主要关心当前某一个时间段内的数据,而数据仓库中的数据通
常包含历史信息,系统记录了企业从过去某一时点到目前各个阶段的信息,通过这些信息可以对企业的发展历程和未来趋势做出定量分析和预测。
数据仓库反映历史变化的属性主要表现在:
(1)数据仓库中的数据时间期限远长于传统操作型数据系统中的数据时间期限,传统操作型数据系统中的数据时间期限可能为数十天或数个月,数据仓库中的数据时间期限为数年甚至几十年。
(2)传统操作型数据系统中的数据含有“当前值”的数据,这些数据在访问时是有效的,当然数据的当前值也能被更新,但数据仓库中的数据仅仅是一系列某一时刻生成的复杂的快照。
(3)传统操作型数据系统中可能包含也可能不包含时间元素,如年、月、日、时、分、秒等,
而数据仓库中一定会包含时间元素。
数据仓库与传统数据的区别
        数据仓库虽然是从传统数据库系统发展而来,但是两者还是存在着诸多差异,如从数据存储 的内容看,数据库只存放当前值,而数据仓库则存放历史值;数据库数据的目标是面向业务操作人 员的,为业务处理人员提供数据处理的支持,而数据仓库则是面向中高层管理人员的,为其提供决策支持等。

数据仓库的分类
从结构的角度看,有三种数据仓库模型,分别是企业仓库、数据集市和虚拟仓库。 企业仓库收集跨越整个企业的各个主题的所有信息,它提供全企业范围的数据集成,数据通常来自多个操作型数据库和外部信息提供者,并且是跨多个功能范围的。它通常包含详细数据和汇总数据。 数据集市包含对特定用户有用的、企业范围数据的一个子集,它的范围限定选定的主题。 虚拟仓库是操作型数据库上视图的集合。
数据仓库的结构
        从数据仓库的概念结构来看,一般来说,数据仓库系统要包含数据源、数据准备区、数据仓库 数据库、数据集市/知识挖掘库以及各种管理工具和应用工具。
        数据仓库建立之后,首先要从数据源中抽取相关的数据到数据准备区,在数据准备区中经过净 化处理后再加载到数据仓库数据库,最后根据用户的需求将数据导入数据集市和知识挖掘库中。用户使用数据仓库时,可以利用包括OLAP在内的多种数据仓库应用工具向数据集市/知识挖掘库或 数据仓库进行决策查询分析或知识挖掘。数据仓库的创建、应用可以利用各种数据仓库管理工具辅助完成。
数据仓库的参考框架
(1)数据仓库基本功能层:数据仓库的基本功能层部分包含数据源、数据准备区、数据仓库结构、数据集市或知识挖掘库,以及存取和使用部分。功能是从数据源抽取数据,对所抽取的数据进行筛选、清理,将处理过的数据导入或者说加载到数据仓库中,根据用户的需求设立数据集市,完成数据仓库的复杂查询、决策分析和知识的挖掘等。
(2)数据仓库管理层:数据仓库的运行除了需要数据仓库功能层提供的基本功能外,还需要对这些基本功能进行管理与支持的结构框架。数据仓库管理层由数据仓库的数据管理和数据仓库的元数据管理组成。数据仓库的数据管理层包含数据抽取、新数据需求与查询管理,数据加载、存储、刷新和更新系统,安全性与用户授权管理系统以及数据归档、恢复及净化系统等四部分。
(3)数据仓库的环境支持层:数据仓库的环境支持层由数据仓库数据传输层和数据仓库基础层组成。数据仓库中不同结构之间的数据传输需要数据仓库的传输层来完成。数据仓库的传输层包含数据传输和传送网络、客户/服务器代理和中间件、复制系统以及数据传输层的安全保障系统。
数据仓库的架构

(1)数据源:是数据仓库系统的基础,是整个系统的数据源泉。通常包括企业内部信息和外部
信息。内部信息包括存放于RDBMS中的各种业务处理数据和各类文档数据。外部信息包括各类法律法规、市场信息和竞争对手的信息等等。
(2)数据的存储与管理:是整个数据仓库系统的核心。数据仓库的真正关键是数据的存储和管 理。数据仓库的组织管理方式使它有别于传统数据库,也决定了其对外部数据的表现形式。要决定采用什么产品和技术来建立数据仓库的核心,则需要从数据仓库的技术特点着手分析。针对现有各业务系统的数据,进行抽取、清理,并有效集成,按照主题进行组织。数据仓库按照数据的覆盖范围可以分为企业级数据仓库和部门级数据仓库(通常称为数据集市)。
(3)OLAP服务器:对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。
(4)前端工具:主要包括各种报表工具、查询工具、数据分析工具、数据挖掘工具以及各种基于数据仓库或数据集市的应用开发工具。其中数据分析工具主要针对OLAP服务器,报表工具、数据挖掘工具主要针对数据仓库。

19.数据挖掘

数据挖掘(Data Mining)技术是人们长期对数据库技术进行研究和开发的结果。
        从技术上看数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中提取隐含在其中的、事先不知道的、但潜在有用的信息和知识。定义包括好几层含义:数据源必须是真实的、大量的、含噪声的;发现的是用户感兴趣的知识;发现的知识要可接受、可理解、可运用;并不要求发现放之四海而皆准的知识,仅支持特定的发现问题。从业务角度来看,数据挖掘是一种新的业务信息处理技术,其主要特点是对业务数据库中的大量业务数据进行抽取、转换、分析和其他模型化处理,从中提取辅助业务决策的关键性数据。
        数据挖掘与传统的数据分析(如查询、报表、联机应用分析)的本质区别是数据挖掘是没有明确假设的前提下去挖掘信息、发现知识。数据挖掘所得到的信息应具有先知、有效和可实用三个特征。先前未知的信息是指该信息是预先未曾预料到的,即数据挖掘是要发现那些不能靠直觉发现的信息或知识,甚至是违背直觉的信息或知识,挖掘出的信息越是出乎意料,就可能越有价值。数据挖掘通过预测未来趋势及行为,做出前摄的、基于知识的决策。数据挖掘的目标是从数据库中发现隐含的、有意义的知识,主要有以下五类功能:
(1)自动预测趋势和行为:数据挖掘自动在大型数据库中寻找预测性信息,以往需要进行大量
手工分析的问题如今可以迅速直接由数据本身得出结论。
(2)关联分析:数据关联是数据库中存在的一类重要的可被发现的知识。若两个或多个变量的取值之间存在某种规律性称为关联。关联可分为简单关联、时序关联、因果关联。关联分析目的是找出数据库中隐藏的关联网。有时并不知道数据库中数据的关联函数,即使知道也是不确定的,因此关联分析生成的规则带有可信度。
(3)聚类:数据库中记录可被划分为一系列有意义的子集即聚类。聚类增强了人们对客观现实的认识,是概念描述和偏差分析的先决条件。聚类技术主要包括传统的模式识别方法和数学分类学。
(4)概念描述:概念描述就是对某类对象的内涵进行描述,并概括这类对象的有关特征。概念描述分为特征性描述和区别性描述,前者描述某类对象的共同特征,后者描述不同类对象之间的区别。生成一个类的特征性描述只涉及该类对象中所有对象的共性。生成区别性描述的方法很多,如
决策树方法、遗传算法等。
(5)偏差检测:数据库中的数据常有一些异常记录,从数据库中检测这些偏差很有意义。偏差
包括很多潜在的知识,如分类中的反常实例、不满足规则的特例、观测结果与模型预测值的偏差、
量值随时间的变化等。偏差检测的基本方法是,寻找观测结果与参照值之间有意义的差别。
数据挖掘方法
(1)决策树:利用信息论中的互信息寻找数据库中具有最大信息量的属性,建立决策树的一个结点,再根据该属性的不同取值建设树的分支;在每个分支子集中重复建立树的下层结点和分支的过程。国际上最早的、也是最有影响的决策树方法是Quiulan研究的ID3方法。
(2)神经网络:模拟人脑神经元结构,完成类似统计学中的判别、回归、聚类等功能,是一种非线性的模型,主要有三种神经网络模型,分别是前馈式网络、反馈式网络和自组织网络。人工神 经网络最大的长处是可以自动地从数据中学习,形成知识,这些知识有些是我们过去未曾发现的,
因此它具有较强的创新性。神经网络的知识体现在网络连接的权值上,神经网络的学习主要表现在
神经网络权值的逐步计算上。
(3)遗传算法:模拟生物进化过程的算法,它由三个基本过程组成,分别是繁殖(选择)、交
叉(重组)、变异(突变)。采用遗传算法可以产生优良的后代,经过若干代的遗传,将得到满足
要求的后代即问题得解。
(4)关联规则挖掘算法:关联规则是描述数据之间存在关系的规则,一般分为两个步骤:首先
求出大数据项集,然后用大数据项集产生关联规则。除了上述的常用方法外,还有粗集方法、模糊集合方法、最邻近算法等。
无论采用哪种方法完成数据挖掘,从功能上可以将数据挖掘的分析方法划分为6种
(1)关联分析:关联分析主要用于发现不同事件之间的关联性,即一个事件发生的同时,另一个事件也经常发生。关联分析的重点在于快速发现那些有实用价值的关联发生的事件。其主要依据
是事件发生的概率和条件概率应该符合一定的统计意义。 
(2)序列分析:序列分析技术主要用于发现一定时间间隔内接连发生的事件。这些事件构成一个序列,发现的序列应该具有普遍意义,其依据除了统计上的概率之外,还要加上时间的约束。 
(3)分类分析:分类分析通过分析具有类别的样本的特点,得到决定样本属于各种类别的规则或方法。利用这些规则和方法对未知类别的样本分类时应该具有一定的准确度。其主要方法有基于 统计学的贝叶斯方法、神经网络方法、决策树方法等。 
(4)聚类分析:聚类分析是根据物以类聚的原理,将本身没有类别的样本聚集成不同的组,并且对每一个这样的组进行描述的过程。其主要依据是聚到同一个组中的样本应该彼此相似,而属于 不同组的样本应该足够不相似。 
(5)预测:预测与分类分析相似,但预测是根据样本的已知特征估算某个连续类型的变量的取值的过程,而分类则只是用于判别样本所属的离散类别而已。预测常用的技术是回归分析。 
(6)时间序列分析:时间序列分析的是随时间而变化的事件序列,目的是预测未来发展趋势,或者寻找相似发展模式或者是发现周期性发展规律。

数据挖掘的流程
        数据挖掘指一个完整的过程,该过程从大型数据库中挖掘先前未知的,有效的,可实用的信 息,并使用这些信息做出决策或丰富知识。数据挖掘的流程大致如下:
(1)问题定义:在开始数据挖掘之前最先的也是最重要的要求就是熟悉背景知识,弄清用户的
需求。缺少背景知识就不能明确定义要解决的问题和为挖掘准备优质的数据,很难解释得到的结果。要想充分发挥数据挖掘的价值,必须对目标有一个清晰明确的定义,即决定到底干什么。
(2)建立数据挖掘库:要进行数据挖掘必须收集要挖掘的数据资源。一般把要挖掘的数据都收集到一个数据库中,不采用原有的数据库或数据仓库。因为大部分情况下需要修改要挖掘的数据,而还会遇到采用外部数据的情况;数据挖掘还要对数据进行各种纷繁复杂的统计分析,而数据仓库可能不支持这些数据结构。
(3)分析数据:分析数据就是通常所进行的对数据深入调查的过程。从数据集中找出规律趋势,用聚类分析区分类别,目的是搞清楚多因素相互影响复杂的关系,发现因素之间的相关性。
(4)调整数据:通过上述步骤操作,对数据的状态和趋势有了进一步的了解,这时要尽可能对问题解决的要求进一步明确化、进一步量化。针对问题的需求对数据进行增删,按照对整个数据挖掘过程的新认识组合或生成一个新的变量,以体现对状态的有效描述。
(5)模型化:在问题进一步明确,数据结构和内容进一步调整的基础上,就可以建立形成知识
的模型。这一步是数据挖掘的核心环节,一般运用神经网络、决策树、数理统计、时间序列分析等
方法来建立模型。
(6)评价和解释:上面得到的模式模型,可能是没有实际意义或没有实用价值的,也可能是不能准确反映数据的真实意义,某些情况下是与事实相反的,因此需要评估确定哪些是有效的、有用的模式。评估的一种办法是直接使用原先建立的挖掘数据库中的数据来进行检验, 另一种办法是另找一批数据并对其进行检验,再一种办法是在实际运行的环境中取出新鲜数据进行检验。
        数据挖掘是一个多种专家合作的过程,也是一个在资金上和技术上高投入的过程。这一过程要 反复进行,在反复过程中,不断地趋近事物的本质,不断地优选问题的解决方案。

20.NoSQL

        NoSQL即Not Only SQL(不仅仅是SQL),这项技术正在掀起一场全新的数据库革命性运动。 数据模式包括层次模型、网状模型、关系模型等,实际过程中几乎都在用关系模型,主流数据库系统都是关系型。但随着互联网web2.0网站兴起,传统关系数据库在应付特别是超大规模和高并发的SNS类型web2.0纯动态网站时显得力不从心,暴露了很多问题,而非关系型的数据库则由于其本身的特点得到了迅速发展。也就使得NoSQL技术进入人们的视野。
        NoSQL的出现打破了关系型数据库与ACID理论大一统的局面。NoSQL 数据存储不需要固定表结构,也不存在连接操作。在大数据存取上具备无法比拟的性能优势。 关系型数据库中的表都是存储一些格式化的数据结构,元组字段的组成相同,即使不是每个元组都需要所有字段,但数据库会为每个元组分配所有字段,这样可以便于表与表之间连接等操作,但也是关系型数据库性能瓶颈的因素。而非关系型数据库以键值对存储,结构不固定,每个元组可以有不同的字段,每个元组可根据需要增加自己的键值对,就不会局限于固定的结构,减少时间和空间的开销。
NoSQL数据库具有以下优点:
1.易扩展:NoSQL数据库种类繁多,但共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形间在架构的层面上带来了可扩展的能力。
2.大数据量高性能:NoSQL数据库具有非常高的读写性能,尤其在大数据量下同样表现优秀。得益于它的无关系性,数据库的结构简单。一般MySQL使用 Query Cache,每次表的更新Cache就失效,是大粒度的Cache,针对web2.0的交互频繁的应用性能不高。而NoSQL的 Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上性能就高很多。
3.灵活的数据模型:NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。在关系数据库里,增删字段是一件麻烦的事情。在大数据量的web2.0时代尤其明显。
4.高可用:NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。比如Cassandra,HBase模型,通过复制模型也能实现高可用。
当然NoSQL也存在很多缺点,例如并未形成一定标准,各种产品层出不穷内部混乱,各
种项目还需时间来检验,缺乏相关专家技术的支持等。

21.大数据

        大数据(Big Data),指的是所涉及的数据量规模巨大到无法通过目前主流软件工具,在合理
时间内达到获取、管理、处理、并整理成为帮助企业经营决策目的的信息。
大数据的特点
        大数据有4大特点:Volume(大量)、Velocity(高速)、Variety(多样)、Value(价
值),由于他们的英文首字母都是V,所以也称为“4V特点”。
Volume(大量):大量主要体现在非结构化数据的超大规模增长,比结构化数据增长快10到50倍,同时数据的量级已超越传统数据仓库的很多倍。
Velocity(高速):大数据的分析是实时分析而非批量式分析,效果是立竿见影而非事后见效。
Variety(多样):大数据存在异构与多样性特点,有很多不同形式的数据如文本图像音频视频等。
Value(价值):大数据的价值特性是指大数据价值密度低,因为大数据是有着海量数据的,这
里面存在大量不相关的信息,所以单位价值密度低。
传统数据与大数据的比较

大数据处理关键技术
        大数据处理关键技术一般包括:大数据采集、大数据预处理、大数据存储及管理、大数据分析及挖掘、大数据展现和应用(大数据检索、大数据可视化、大数据应用、大数据安全等)。
大数据应用
        大数据可以各行各业应用,如金融服务、医疗保健、零售业、制造业、政府等。

系统架构师笔记——数据库相关推荐

  1. 系统架构师----笔记

    计算机技术与软件专业技术资格(水平)考试(以下简称计算机软件资格考试),是国家人力资源和社会保障部.工业和信息化部联合组织实施的国家级考试,其目的是科学.公正地对全国计算机与软件专业技术人员进行职业资 ...

  2. 软考系统架构师笔记-最后知识点总结(三)

    ATAM中文名:体系结构权衡分析方法,他最后的目标是生成关键的质量属性效用树. 在软考中,体系结构=架构 体系结构权衡方法(ATAM)包含4个主要的领域活动:场景和需求收集.体系结构视图和场景实现.属 ...

  3. 软考系统架构师笔记-案例分析重点(二)

    系统架构设计非功能需求主要有4类:操作性需求.性能需求.安全性需求.文化需求: 性能需求:响应时间.吞吐量.准确性.有效性.资源利用率.系统完成任务效率等.可靠性.可用性等指标也能归此类. 安全性需求 ...

  4. 软考系统架构师笔记-案例分析重点(一)

    质量属性效应包括:性能.安全性.可用性.可修改性: 系统架构风险:架构设计中潜在的.存在问题的架构决策带来的隐患: 系统架构敏感点:为了实现某种特定的质量属性,一个或多个构件所具有的特性: 系统架构权 ...

  5. 系统架构师笔记——计算机网络

    本章要求考生掌握以下知识点: (1)信息系统综合知识:包括数据通信的基础知识.开放系统互连参考模型.常用的协议标 准.网络互连与常用网络设备.计算机网络的分类与应用.网络管理. (2)系统架构设计案例 ...

  6. 软考系统架构师笔记-最后知识点总结(二)

    系统架构的风险点:在系统架构设计中潜在的,有问题的架构决策所带来的隐患: 系统架构的敏感点:为了实现某种特定的质量属性,一个或多个构件所具有的特征: 系统架构的权衡点:影响多个质量属性的特性,是多个质 ...

  7. 软考系统架构师笔记-最后知识点总结(四)

    正在上传-重新上传取消 嵌入式系统初始化过程中,自底向上依次为:片级初始化->板级初始化->系统级初始化 在段页式存储中,段长是可变的. 管道过-滤器风格 和 数据存储为中心风格 作对比: ...

  8. 软考系统架构师笔记-最后知识点总结(一)

    RUP(Rational Unified Process):统一软件开发过程 包含4个阶段:初始阶段.细化阶段.交付阶段(注意,题目里面可能是移交,意思一样就可以了!).构建阶段: 用例驱动以架构为中 ...

  9. 软考系统架构师笔记-综合知识重点(四)

    系统读写磁盘,先要确定是哪个柱面的,再确定是哪个磁头,最后确定扇区(扇区号越小,越优先) 数据库如何查询效率:先过滤.再连接(等值连接,笛卡尔集) 数据仓库的特点: 面向主题:按主题组织: 集成的:消 ...

  10. 软考系统架构师笔记-综合知识重点(一)

    pv操作.信号量的题中: 信号量S实现互斥访问值为1,信号量S实现同步访问值为0,信号量S表示资源值为资源的个数. 加锁申请信号量P(s),申请后一定要释放是V(s). 分布式数据库中包括:分片透明. ...

最新文章

  1. NSTableView使用笔记(一)
  2. DFT泄露问题和DFT的频率轴表示方法(第三章离散傅里叶变换(3.8,3.13.4)学习笔记)
  3. 如何学习挖掘漏洞[参考多方面资料]
  4. dnn模型 list index out of range_基于svm的财务预警模型
  5. 【HDU - 5977】Garden of Eden(树分治)
  6. java 标准输入流 关闭 打开_java输出流关流疑问,以下这个程序的in和out是否要关闭?...
  7. matlab设置背景颜色
  8. 【数据清洗】异常点的理解与处理方法(1)
  9. 低秩矩阵完备_矩阵之芯 SVD: 基本应用以及与其他分解的关系
  10. P2326 AKN’s PPAP
  11. java programer认证_关于考SUNJAVAPROGRAMMER的几点建议
  12. 近几年网络营销成功案例精选
  13. 豆瓣电影top250爬虫+数据可视化分析
  14. unhandled system error, NCCL version 2.7.8
  15. 开放平台、标准接口、接口聚合的架构设计
  16. python批量处理网络设备的巡检文本文件,提取关键指标写入表格或数据库
  17. FRP搭建内网穿透服务器畅游Internet互联网络
  18. 任务6:认知ATmega168PA最小工作系统
  19. CorelDRAWX4的VBA插件开发(二十五)多类目选择实现复合框内容置换
  20. 给自己的Fonts教程

热门文章

  1. PHP混淆zym解密
  2. iPhone删除的照片能恢复吗?苹果手机照片怎么恢复
  3. informix的数据类型列表
  4. 小明的存钱计划 南阳acm54
  5. [搜索引擎]Sphinx的介绍和原理探索
  6. linux device 与driver prove 过程
  7. php里style标签,style标签怎么用?
  8. Windows_01_Windows系统的中的32位和64位(System32和SysWOW64)
  9. Win10 点击任务栏固定的文件夹资源管理器就重启
  10. solution类方法怎么引用_13类地下害虫,你见过多少?怎么防治?10大方法要记牢!...