计算机四级软件工程师考纲、知识点、题库及答案

2024-08-19

计算机四级软件工程师考纲、知识点、题库及答案(共8篇)

计算机四级软件工程师考纲、知识点、题库及答案 篇1

一、选择题(1-25每题2分,共50分)

下列各题A、B、C、D四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。

1.问题还没有解决,测试人员新报告的缺陷,或验证后缺陷仍然存在,这些缺陷所处的状态是________。

(A)激活状态

(B)非激活状态

(C)已修正状态

(D)关闭状态

2.关注在一连串的测试中如何选择合适的程序或子程序路径来执行有效的检查,这种测试极有可能是________。

(A)结构测试

(B)黑盒测试

(C)功能测试

(D)静态测试

3.下面说法正确的是________。

(A)软件测试仅是在编程之后进行的测试。

(B)需求规格说明、概要设计规格说明、详细设计规格说明、源程序这些并不全是软件测试的对象。

(C)测试配置是软件配置的一个子集。

(D)错误发现的越晚,改正的代价就越大,这个代价是呈现接近线性增长的趋势

4.在结构化测试用例设计中,有语句覆盖、条件覆盖、判定覆盖(也称分支覆盖)、路径覆盖等,其中________是最强的覆盖准则。

(A)语句覆盖

(B)条件覆盖

(C)判定覆盖

(D)路径覆盖

5.因果图方法是根据________之间的因果关系设计测试用例。

(A)输入和输出

(B)设计和实现

(C)条件和结果

(D)主程序和子程序

6.软件测试的目的是________。

(A)证明软件的正确性

(B)尽可能多地发现软件系统中的错误

(C)找出软件系统存在的所有错误

(D)证明软件系统中存在错误

7.仅根据规格说明书描述的程序功能来设计测试用例的方法称为是________。

(A)白盒测试法

(B)黑盒测试法

(C)静态分析法

(D)人工分析法

8.软件测试方法中,黑盒测试方法和白盒测试方法是常用的方法,其中黑盒测试方法主要用于测试________。

(A)结构合理性

(B)软件外部功能

(C)程序的内部逻辑

(D)程序正确性

9.从下列叙述中选出能够与软件开发需求分析、设计、编码相对应的软件测试________。

(A)集成测试、确认测试、单元测试

(B)单元测试、集成测试、确认测试

(C)单元测试、确认测试、组装测试

(D)确认测试、集成测试、单元测试

10.下列说法正确的是________。

(A)语句覆盖使得每个判定的每个分支至少执行一次

(B)判定覆盖使得每条语句至少执行一次

(C)条件覆盖使得每个判定每个条件应取到各种可能的值

(D)条件组合覆盖使得每个判定中各条件的每一种组合至少出现一次

11.集成测试时,能够较早发现高层模块接口错误的测试方法是________。

(A)自底向上渐增式测试方法

(B)自顶向下渐增式测试方法

(C)非渐增式测试方法

(D)系统测试方法

12.在软件测试信息流中,输入的的信息主要有________。

(A)软件配置

(B)测试配置考试大()

(C)测试工具

(D)以上全部

13.以下关于软件测试方法,说法正确的是________。

(A)单元测试涉及编码和详细设计的文档

(B)系统测试涉及概要设计信息

(C)确认测试涉及编码和需求规格说明书

(D)集成测试设计其他的系统元素

14.下列软件质量特性中,一般不作为系统测试重点的是________。

(A)产品版本升级是否容易

(B)软件是否符合有关的国家和行业标准

(C)软件产品是否易于理解和使用

(D)可复用的软件部件所占的比例

15.一般来说,大多数软件缺陷源于软件开发项目的________阶段。

(A)软件测试阶段

(B)程序编写和调试阶段

(C)需求和设计阶段

(D)加班工作期间

16.一般说来,对一个程序单元的测试应满足一些具体的技术要求,或达到一定的技术指标。下面选项中属于单元测试相关的技术要求或指标的是________。

(A)语句覆盖率达到100%

(B)局部变量的边界条件处理正确

(C)逻辑比较和控制流处理正确

(D)以上全部

17.下列软件缺陷中,________是活动状态,________是非活动状态。

(A)打开和解决;关闭

(B)打开;解决和关闭

(C)通过;失败

计算机四级软件工程师考纲、知识点、题库及答案 篇2

答:读栈顶元素#读栈顶的元素#读出栈顶元素

(2) 在面向对象方法中,信息隐蔽是通过对象的______性来实现的。

答:封装

(3) 数据流的类型有______和事务型。

答:变换型

(4) 数据库系统中实现各种数据管理功能的核心软件称为______。

答:数据库管理系统#DBMS

(5) 关系模型的数据操纵即是建立在关系上的数据操纵,一般有______、增加、删除和修改四种操作。

答:查询

(6) 实现算法所需的存储单元多少和算法的工作量大小分别称为算法的` ______。

答:空间复杂度和时间复杂度

(7) 数据结构包括数据的逻辑结构、数据的 ______以及对数据的操作运算。

答:存储结构

(8) 一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的______。

答:可重用性

(9) 面向对象的模型中,最基本的概念是对象和 ______。

答:类

(10) 软件维护活动包括以下几类:改正性维护、适应性维护、______维护和预防性维护。

计算机四级软件工程师考纲、知识点、题库及答案 篇3

一、选择题

1.以下关于网络运行环境的描述中,哪个是错误的__C___。

A)网络运行环境是指保障网络系统安全、可靠与正常运行所必需的基本设施与设备条件

B)它主要包括机房与电源两部分

C)机房是放置核心路由器、交换机、服务器等核心设备的场所,不包括各个建筑物中放置路由器、交换机与布线设施的设备间、配线间等场所

D)关键的网路设备(如核心交换路由器、交换机)对供电的要求是很高的,必须保证专用的UPS系统供电

2.支持信息系统的网络包括。___B__Ⅰ.网络传输基础设施 II.数据库管理系统 III.网络设备IV.网络软件开发工具

A)Ⅰ和II

B)Ⅰ和III

C)II和IV

D)Ⅰ、II和III

3.电子商务系统、企业管理信息系统等属于___A__。

A)网络应用系统

B)数据库管理系统

C)网络操作系统

D)网络安全系统

4.以下是关系数据库的是___B__。

A)WindowsNTServer

B)Oracle

C)MSExchangeServer

D)PDM

5.__C___类网络数据传输负荷重,对网络数据的实时性要求高。

A)MIS/OA/Web类应用

B)FTP/CAD类应用

C)多媒体数据流文件

D)模拟信号

6.为确保网络的可用性与安全性,可采取如下措施:关键数据采用磁盘双工、__D___、异地备份与恢复措施及保证关键设备的冗余。

A)实时监控

B)队列管理

C)性能管理

D)双机容错

7.以下有关网络关键设备选型的说法中,错误的是___B__。

A)网络设备选型,尤其是关键设备,一定要选择成熟的主流产品,并且最好是一个厂家的产品

B)所有设备一定要留有一定的余量,使系统具有可扩展性(正确:主干设备)

C)根据“摩尔定律”,网络设备更新速度快,价值下降快,因此要认真调查,慎重决策。

D)对新组建的网络,要在总体规划的基础上选择新技术、新标准与新产品;如果是已有基础上的扩展,则要注意保护已有的投资

8.__B___路由器一般用于网络汇聚层的路由器。

A)高端核心

B)企业级

C)低端

D)汇聚

9.路由器的可靠性与可用性表现在:设备的冗余、__C___、无故障工作时间、内部时钟精度等方面。

A)服务质量

B)背板能力

C)热拔插组件

D)吞吐量

10.从内部结构分类,交换机可以分为固定端****换机和__D___。

A)变动端****换机

B)可扩展端****换机

C)工作组级交换机

D)模块式交换机

11.局域网交换机的多个___A__有自己的专用带宽,并且可以连接不同的网段,可并行工作从而大大提高了信息吞吐量。

A)端口

B)插槽数

C)堆叠单元

D)缓冲区

12.__B___是目前交换机在传送源和目的端口的数据包时的主流交换方式。

A)直通式交换

B)存储转发式

C)碎片隔离方式

D)全双工交换

13.从应用的角度看,网络服务器的类型可以分为:文件服务器、数据库服务器、Internet服务器和__D___等。

A)代理服务器

B)视频服务器

C)磁盘服务器

D)应用服务器

14.部门级服务器一般支持__C___个CPU。

A)1个

B)1-2

C)2-4

D)4-8

15.__A___技术是一组独立的计算机提供高速通信线路,组成一个共享数据与存储空间的服务器系统,提高了系统的数据处理能力;如果一台主机出现故障,它所运行的程序将立即转移到其他主机。因此,该技术大大提高了服务器的可靠性、可用性与容灾能力。

A)集群技术

B)对称多处理技术

C)热拔插

D)应急管理技术

二、填空题

1.【1】交换机配备了多个空闲的插槽,用户可任意选择不同数量、不同速率和不同接口类型的模块,以适应千变万化的网络需求,拥有更大的灵活性和可扩充性。像这样模块化交换机的端口数量就取决于模块的数量和插槽的数量。一般来说,企业级交换机应考虑其扩充性、兼容性和排错性,因此,应当选用模块化交换机以获取更多的端口.模块式

2.应用服务器是基于【2】工作模式的。B/S

3.分布式内存访问技术是将对称多处理(SMP)技术与【3】技术结合起来,用于多达64个或更多的CPU的服务器之中,以获得更高的性能价格比。集群

4.服务器的性能主要表现在:【4】、磁盘存储能力、高可用性、数据吞吐能力、可管理性与可扩展性。运算处理能力

5.网络系统安全设计包括预防、检测、反应与应急处理,因此网络系统安全包括3个机制:安全防护机制、安全检测机制及【5】。安全恢复机制

三、分析题

1.阅读以下有关网络规划的叙述,回答【问题1】到【问题3】。

网络工程是一项复杂的系统工程,一般可分为网络需求分析、网络规划、网络设计、工程实施、系统测试验收和运行维护等几个阶段。网络规划是在需求分析的基础上,进行系统可行性分析和论证,以确定网络总体方案。网络规划阶段任务完成之后转入下一阶段,即网络设计阶段。

【问题1】简述网络规划阶段需求分析的方法和解决的问题。

需求分析需要进行网络用户调查及应用需求调查。网络用户调查指通过与已存在的未来的网络用户直接交流,了解用户对未来系统可靠性、安全性、可扩展性等的应用需求。不同类型的应用,数据量、数据传输量、数据的实时性与安全性等都不同,这些都应成为调查的内容。

还应对网络节点的地理位置分布情况进行调查,包括:用户数量及分布的位置、建筑物内部结构情况、建筑物群情况等,这些数据是最终确定网络规模、布局、拓扑结构与结构化布线方案的重要依据。

【问题2】在网络规划阶段“系统可行性分析和论证”的主要内容是什么?

在网络规划阶段“系统可行性分析和论证”主要是针对用户的具体应用情况,对建网的目标进行科学性和正确性论证。具体包括确定网络数据的重要性的分级,对于关键设备采用磁盘双工、双机容错、异地备份与恢复措施及关键设备的冗余等。网络拓扑结构。分析网络安全性。对网络工程进行造价估算等。

【问题3】在需求分析过程中应对已有网络的现状及运行情况作调研,如果要在已有的网络上做新的网络建设规划,如何保护用户已有投资?

如果要在已有的网络上作新的网络建设规划,应当注意保护已有系统地投资,将新系统纳入到已有系统中来,而不是废弃已有系统,也可以把已有系统的设备降档次使用。同时,网络规划时要考虑到系统扩展性的要求,注意关键设备的选型。

2.网络服务器是重要的网络设备。网络服务器选型是网络规划的内容之一。从应用的角度,网络服务器可以分为文件服务器、数据库服务器、Internet服务器与应用服务器。按照网络应用规模,网络服务器可以分为基础级服务器、工作组级服务器、部门级服务器和企业级服务器。请回答【问题1】到【问题3】

【问题1】应用服务器的技术特点有哪些?

应用服务器的主要技术特点有:(1)应用服务器软件系统的设计在客户与服务器之间采用了浏览器/服务器模式,将网络建立在Web服务的基础上。(2)应用服务利用中间件与通用数据库接口技术,客户计算机使用Web浏览器访问应用服务器,而应用服务器的后端连接数据库服务器,形成了3层的体系结构。(3)应用服务器产品提供商根据具体应用的需求,选择适合的硬件平台,安装专用的应用软件,经过性能优化后使之在特定的的功能中达到最佳的效果,网络组建单位在 购得设备后,无需用户专门进行配置,即买即用,方便快捷,性价比高。【问题2】应用于金融、证券、电信等行业的服务器是哪类服务器?有什么要求?应用于金融、证券、电信等行业的服务器为企业级服务器。配置要求很高,一般支持4-8个CPU,采用最新的CPU与对称多处理SMP技术,支持双CPI通道与高内存带宽,配置大容量热拔插硬盘、备用电源,并且关键部件有冗余,具有较好的数据处理能力、容错性与可扩展性。

计算机四级软件工程师考纲、知识点、题库及答案 篇4

网络工程师之局域网技术

主要内容:

1、局域网定义和特性

2、各种流行的局域网技术

3、高速局域网技术

4、基于交换的局域网技术

5、无线局域网技术及城域网技术

一、局域网定义和特性

局域网(Local Area Network)即LAN:将小区域内的各种通信设备互联在一起的通信网络。

1、局域网三个特性:(1)高数据速率在0.1-100Mbps(2)短距离0.1-25Km(3)低误码率10-8-10-11。

2、决定局域网特性的三个技术:(1)用以传输数据的介质(2)用以连接各种设备的拓扑结构(3)用以共享资源的介质控制方法。

3、设计一个好的介质访问控制协议三个基本目标:(1)协议要简单(2)获得有效的通道利用率(3)对网上各站点用户的公平合理。

二、以太网Ethernet IEEE802.3

以太网是一种总路线型局域网,采用载波监听多路访问/冲突检测CSMA/CD介质访问控制方法。

1、载波监听多路访问

CSMA的控制方案:(1)一个站要发送,首先需要监听总线,以决定介质上是否存在其他站的发送信号。(2)如果介质是空闲的,则可以发送。(3)如果介质忙,则等待一段间隔后再重试。

坚持退避算法:

(1)非坚持CSMA:假如介质是空闲的,则发送;假如介质是忙的,等待一段时间,重复第一步。利用随机的重传时间来减少冲突的概率,缺点:是即使有几个站有数据发送,介质仍然可能牌空闲状态,介质的利用率较低。

(2)1-坚持CSMA:假如介质是空闲的,则发送;假如介质是忙的,继续监听,直到介质空闲,立即发送;假如冲突发生,则等待一段随机时间,重复第一步。缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免的。

(3)P-坚持CSMA:假如介质是空闲的,则以P的概率发送,而以(1-P)的概率延迟一个时间单位,时间单位等于最大的传播延迟时间;假如介质是忙的,继续监听,直到介质空闲,重复第一步;假如发送被延迟一个时间单位,则重复第一步。

2、载波监听多路访问/冲突检测

这种协议广泛运用在局域网内,每个帧发送期间,同时有检测冲突的能力,一旦检测到冲突,就立即停止发送,并向总线上发一串阻塞信号,通知总线上各站冲突已经发生,这样通道的容量不致因白白传送已经损坏的帧而浪费。

冲突检测的时间:对基带总线,等于任意两个站之间最大的传播延迟的两倍;对于宽带总线,冲突检测时间等于任意两个站之间最大传播延迟时间的四倍。

3、二进制退避算法:

(1)对每个帧,当第一次发生冲突时,设置参量为L=2;

(2)退避间隔取1-L个时间片中的一个随机数,1个时间片等于2a;

(3)当帧重复发生一次冲突时,则将参量L加倍;(4)设置一个最大重传次数,则不再重传,并报告出错。

三、标记环网Toke Ring IEEE802.5

1、标记的工作过程

标记环网又称权标网,这种介质访问使用一个标记沿着环循环,当各站都没有帧发送时,标记的形式为01111111,称空标记。当一个站要发送帧时,需要等待空标记通过,然后将它改为忙标记011111110。并紧跟着忙标记,把数据发送到环上。由于标记是忙状态,所以其他站不能发送帧,必须等待。发送的帧在环上循环一周后再回到发送站,将该帧从环上移去。同时将忙标记改为空标记,传至后面的站,使之获得发送帧的许可权。

2、环上长度用位计算,其公式为

存在环上的位数等于传播延迟(5μs/km)×发送介质长度×数据速率+中继器延迟。对于1km长、1Mbps速率、20个站点,存在于环上的位数为25位。

3、站点接收帧的过程

当帧通过站时,该站将帧的目的地址和本站的地址相比较,如地址相符合,则将帧放入接收缓冲器,再输入站,同时将帧送回至环上;如地址不符合,则简单地将数据重新送入环。

4、优先级策略

标记环网上的各个站点可以成不同的优先级,采用分布式高度算法实现。控制帧的格式如下:P优先级、T空忙、M监视位、预约位。

四、光纤分布式数据接口FDDI ISO9314

1、FDDI和标记环介质访问控制标准接近,有以下几点好处:

(1)标记环协议在重负载条件下,运行效率很高,因此FDDI可得到同样的效率。

(2)使用相似的帧格式,全球不同速率的环网互连,在后面网络互加这一章将要讨论这个问题。

(3)已经熟悉IEEE802.5的人很容易了解FDDI

(4)已经积累了IEEE802.5的实践经验,特别是将它做集成电路片的经济,用于FDDI系统和元件的制造。

2、FDDI技术

(1)数据编码:用有光脉冲表示为1,没有光能量表示为0。FDDI采用一种全新的编码技术,称为4B/5B。每次对四位数据进行编码,每四位数据编码成五位符号,用光的存在和没有来代表五位符号中每一位是1还是0。这种编码使效率提高为80%。为了得到信号同步,采用了二级编码的方法,先按4B/5B编码,然后再用一种称为倒相的不归零制编码NRZI,其原理类似于差分编码。

(2)时钟偏移: FDDI分布式时钟方案,每个站有独立的时钟和弹性缓冲器。进入站点缓冲器的数据时钟是按照输入信号的时钟确定的,但是,从缓冲器输出的信号时钟是根据站的时钟确定的,这种方案使环中中继器的数目不受时钟偏移因素的限制。

3、FDDI帧格式

由此可知:FDDI MAC帧和IEEE802.5的帧十分相似,不同之处包括:FDDI帧含有前文,对高数据率下时钟同步十分重要;允许在网内使用16位和48位地址,比IEEE802.5更加灵活;控制帧也有不同。

4、FDDI协议

FDDI和IEEE802.5的两个主要区别:

(1)FDDI协议规定发送站发送完帧后,立即发送一幅新的标记帧,而IEEE802.5规定当发送出去的帧的前沿回送至发送站时,才发送新的标记帧。

(2)容量分配方案不同,两者都可采用单个标记形式,对环上各站点提供同等公平的访问权,也可优先分配给某些站点。IEEE802.5使用优先级和预约方案。

5、为了同时满足两种通信类型的要求,FDDI定义了同步和异步两种通信类型,定义一个目标标记循环时间TTRT,每个站点都存在有同样的一个TTRT值。

五、局域网标准

IEEE802委员会是由IEEE计算机学会于1980年2月成立的,其目的是为局域网内的数字设备提供一套连接的标准,后来又扩大到城域网。

1、服务访问点SAP

在参考模型中,每个实体和另一个实体的同层实体按协议进行通信。而一个系统内,实体和上下层间通过接口进行通信。用服务访问点SAP来定义接口。

2、逻辑连接控制子层LLC

IEEE802规定两种类型的链路服务:无连接LLC(类型1),信息帧在LLC实体间,无需要在同等层实体间事先建立逻辑链路,对这种LLC帧既不确认,也无任何流量控制或差错恢复功能。

面向连接LLC(类型2),任何信息帧,交换前在一对LLC实体间必须建立逻辑链路。在数据传送方式中,信息帧依次序发送,并提供差错恢复和流量控制功能。

3、介质访问控制子层MAC

IEEE802规定的MAC有CSMA/CD、标记总线、标记环等。

4、服务原语

(1)ISO服务原语类型

REQUEST原语用以使服务用户能从服务提供者那里请求一定的服务,如建立连接、发送数据、结束连接或状态报告。

INDICATION原语用以使服务提供者能向服务用户提示某种状态。如连接请求、输入数据或连接结束。

RESPONSE原语用以使服务用户能响应先前的INDIECATION,如接受连接INDICATION。

CONFIRMARION原语用以使服务提供者能报告先前的REQUEST成功或失败。

(2)IEEE802服务原语类型

和ISO服务原语类型相比REQUEST和INDICATION原语类型和ISO所用的具有相同意义。IEEE802没有REPONSE原语类型,CONFIRMATION原语类型定义为仅是服务提供者的确认。

六、逻辑链路控制协议

1、IEEE802.2

描述LAN协议中逻辑链路 LLC子层的功能、特性和协议,描述LLC子层对网络层、MAC子层及LLC子层本身管理功能的界面服务规范。

2、LLC子层界面服务规范IEEE802.2定义了三个界面服务规范:

(1)网络层/LLC子层界面服务规范;

(2)LLC子层/MAC子层界面服务规范;

(3)LLC子层/LLC子层管理功能的界面服务规范。

3、网络层/LLC子层界面服务规范

提供两处服务方式

不确认无连接的服务:不确认无连接数据传输服务提供没有数据链路级连接的建立而网络层实体能交换链路服务数据单元LSDU手段。数据的传输方式可为点到点方式、多点式或广播式。这是一种数据报服务

面向连接的服务:提供了建立、使用、复位以及终止数据链路层连接的手段。这些连接是LSAP之间点到点式的连接,它还提供数据链路层的定序、流控和错误恢复,这是一处虚电路服务。

4、LLC子层/MAC子层界面服务规范

本规范说明了LLC子层对MAC子层的服务要求,以便本地LLC子层实体间对等层LLC子层实体交换LLC数据单元。

(1)服务原语是:MA-DATA.request、MA-DATA.indication、MA-DATA.confirm

(2)LLC协议数据单元结构LLC PDU:

目的服务访问点地址字段DSAP,一个字节,其中七位实际地址,一位为地址型标志,用来标识DSAP地址为单个地址或组地址。

源服务访问点地址字段SSAP,一个字节,其中七位实际地址,一位为命令/响应标志位用来识别LLC PDU是命令或响应。

控制字段、信息字段。

5、LLC协议的型和类

LLC为服务访问点间的数据通信定义了两种操作:Ⅰ型操作,LLC间交换PDU不需要建立数据链路连接,这些PDU不被确认,也没有流量控制和差错恢复。

Ⅱ型操作,两个LLC间交换带信息的PDU之间,必须先建立数据链路连接,正常的通信包括,从源LLC到目的LLC发送带有信息的PDU,它由相反方向上的PDU所确认。

LLC的类型:第1类型,LLC只支持Ⅰ型操作;第2类型,LLC既支持Ⅰ型操作,也支持Ⅱ型操作。

6、LLC协议的元素

控制字段的三种格式:带编号的信息帧传输、带编号的监视帧传输、无编号控制传输、无编号信息传输。

带编号的信息帧传输和带编号的监视帧传输只能用于Ⅱ型操作。

无编号控制传输和无编号信息传输可用于Ⅰ型或Ⅱ型操作,但不能同时用。

信息帧用来发送数据,监视帧用来作回答响应和流控。

七、CSMA/CD介质访问控制协议

1、MAC服务规范三种原语

MA-DATA.request、MA-DATA.indication、MA-DATA.confirm

2、介质访问控制的帧结构

CSMA/CD的MAC帧由8个字段组成:前导码;帧起始定界符SFD;帧的源和目的地址DA、SA;表示信息字段长度的字段;逻辑连接控制帧LLC;填充的字段PAD;帧检验序列字段FCS。

前导码:包含7个字节,每个字节为10101010,它用于使PLS电路和收到的帧定时达到稳态同步。

帧起始定界符:字段是10101011序列,它紧跟在前导码后,表示一幅帧的开始。帧检验序列:发送和接收算法两者都使用循环冗余检验(CRC)来产生FCS字段的CRC值。

3、介质访问控制方法

IEEE802.3标准提供了介质访问控制子层的功能说明,有两个主要的功能:数据封装(发送和接收),完成成帧(帧定界、帧同步)、编址(源和目的地址处理)、差错检测(物理介质传输差错的检测);介质访问管理,完成介质分配避免冲突和解决争用处理冲突。

八、标记环介质访问控制协议

标记环局域网协议标准包括四个部分:逻辑链路控制LLC、介质访问控制MAC、物理层PHY和传输介质。

1、IEEE802.5规定了后面三个部分的标准。

LLC和MAC等效于OSI的第二层(数据链路层),PHY相当于OSI的第一层(物理层)。LLC使用MAC子层的服务,提供网络层的服务,MAC控制介质访问,PHY负责和物理介质接口。

2、介质访问控制帧结构

标记环有两个基本格式:标记和帧。在IEEE802.5中帧的传输是从最高位开始一位一位发送,而IEEE802.3和IEEE802.4正好相反,帧的传输是从最低位开始一位一位发送的,这一点对于不同协议的局域网互连时要进行转换。

3、介质访问控制方法

(1)帧发送:对环中物理介质的访问系采用沿环传递一个标记的方法来控制。取得标记的站具有发送一帧或一系列帧的机会。

(2)标记发送:在完成帧发送后,该站就要查看本站地址是否在SA字段中返回,若未查看到,则该站就发送填充,否则就发送标记。标记发送后,该站仍留在发送状态,起到该站发送的所有的帧从环上移去为止。

(3)帧接收:若帧的类型比特表示为MAC帧,则控制比特由环上所有的站进行解释。如果帧的DA字段与站的单地址、相关组地址或广播地址匹配,则把FC、DA、SA、INFO以及FS字段拷贝入接收缓冲区中,并随后转送至适当子层。

(4)优先权操作:访问控制字段中的优先权比特PPP和预约比特RRR配合工作,使环中服务优先权与环上准备发送的PDU最高优先级匹配

九、快速以太网

快速以太网的类型

快速以太网(Fast Ethernet)是一个新的IEEE局域网标准,于1995年由原来制定的以太网标准的IEEE802.3工作组完成。快速以太网正式名为100Base-T。

共享介质快速以太网和传统以太网采用同样的介质访问控制协议CSMA/CD所有的介质访问控制算法不变,只是将有关的时间参量加速10倍。

快速以太网的三种标准:100Base-

4、100Base-TX、100Base-FX

快速以太网的产品:

适配器:一边是总线结构,将数据传送至主机、中继器或HUB;另一边接到所选的介质,可以是双绞线、光纤,或者是一个介质独立接口MII,MII是用来连接外部收发器用的,其功能类似于以太网的AUI。

HUB:可分为共享机制的中继器和交换机制的交换器。

十、基于交换技术的网络

1、交换网结构

交换技术的两种主要应用形式是:折叠式主干网和高速服务器联接。

2、全双工以太网

全双工运行在交换器之间,以及交换器和服务器之间,是和交换器一起工作的链路特性,它使数据流在链路中同时两个方向流动,不是所有收发器都支持它的全双工功能。

3、在下列情况下全双工最有用:

(1)在服务器和交换器之间。这是目前全双工应用最普遍的配置。

(2)在两个交换器之间。

(3)在远离的两个交换器之间。

3、多媒体

多媒体的应用基于MPEG、JPEG、H.261等视频压缩算法。

缺点:是由网络缓存产生的延迟,一方面为了平滑抖动数据要插入足够的缓存,另一方面缓存又不能太大,以至引起无法接受的视频延迟。

对视频应用的低延迟需求有四种解决方案:

(1)采用10Mbps交换器

(2)采用100Mbps中继器

(3)用100Mbps的交换器

(4)采用流控技术

4、千兆位以太网

千兆位以太网也有铜线及光缆两种标准。

铜线标准1000Base-CX,最大传输距离,25英尺,并需用150欧姆的屏蔽双绞线STP,光缆标准1000Base-SX,850nm的短波长,300m传输距离。

1000Base-LX,1300nm的波长,550m传输距离。

十一、ATM局域网

计算机四级软件工程师考纲、知识点、题库及答案 篇5

A.引用分析

B.算法分析

C.可靠性分析

D.接口分析

7.分析方法【白盒方法)中常用的方法是【 A 】方法。

A.路径测试

B.等价类

C.因果图

D.归纳测试

8.程序的三种基本控制结构的共同点是【 D 】。

A.不能嵌套使用

B.只能用来写简单的程序

C.已经用硬件实现

D.只有一个入口和一个出口

9.【 B)可以作为软件测试结束的标志。A.使用了特定的测试用例 B.错误强度曲线下降到预定的水平

C.查出了预定数目的错误

D.按照测试计划中所规定的时间进行了测试

10.程序的三种基本控制结构是【 B】。

A.过程,子程序,分程序

B.顺序,条件,循环

C.递归,堆栈,队列

计算机四级软件工程师考纲、知识点、题库及答案 篇6

网络工程师是通过学习和训练,掌握网络技术的理论知识和操作技能的网络技术人员。网络工程师能够从事计算机信息系统的设计、建设、运行和维护工作。

网络工程师与相关等级考试

全国计算机等级考试四级网络工程师

全国计算机等级考试四级网络工程师证书样本,简称四级网络工程师。

从2008年的11月起,中国计算机等级考试取消了以往的四级考试。将四级分为三种,其中的一种就是计算机。

它主要考察考核网络系统规划与设计的基础知识及中小型网络的系统组建、设备配置调试、网络系统现场维护与管理的基本技能。它要求四级网络工程师合格考生应具有网络系统规划、设计的基本能力,掌握中小型网络系统组建、设备配置调试的基本技术,掌握中小型网络系统现场维护与管理的基本技术,可以从事计算机网络规划、设计、组建于管理的相关工作。

计算机四级网络工程师考试大纲

基本要求

1.了解大型网络系统规划、管理方法;

2.具备中小型网络系统规划、设计的基本能力;

3.掌握中小型网络系统组建、设备配置调试的基本技术;

4.掌握企事业单位中小型网络系统现场维护与管理基本技术;

5.了解网络技术的发展。

考试内容

一、网络规划与设计

1.网络需求分析。

2.网络规划设计。

3.网络设备及选型。

4.网络综合布线方案设计。

5.接人技术方案设计

6.IP地址规划与路由设计。

7.网络系统安全设计

二、网络构建

1.局域网组网技术。

(1)网线制作方法、(2)交换机配置与使用方法。

(3)交换机端口的基本配置。

(4)交换机VLAN配置。

(5)交换机STP配置。

2.路由器配置与使用。

(1)路由器基本操作与配置方法

(2)路由器接口配置

(3)路由器静态路由配置。

(4)RIP动态路由配置。

(5)OSPF动态路由配置。

3.路由器高级功能。

(1)设置路由器为DHCP服务器。

(2)访问控制列表的配置。

(3)配置GRE协议。

(4)配置IPSec协议。

(5)配置MPLS协议。

4.无线网络设备安装与调试。

三、网络环境与应用系统的安装调试

1.网络环境配置。

2.WWW服务器安装调试)

3.E—mail服务器安装调试

4.FTP服务器安装调试。

5.DNS服务器安装调试。

四、网络安全技术与网络管理

1.网络安全。

(1)网络防病毒软件与防火墙的安装与使用。

(2)网站系统管理与维护。

(3)网络攻击防护与漏洞查找。

(4)网络数据备份与恢复设备的安装与使用。

(5)其他网络安全软件的安装与使用。

2.网络管理。

(1)管理与维护网络用户帐户。

(2)利用工具软件监控和管理网络系统。

(3)查找与排除网络设备故障。

(4)常用网络管理软件的安装与使用。

五、上机操作

在仿真网络环境下完成以下考核内容:

1、交换机配置与使用。

2、路由器基本操作与配置方法。

3、网络环境与应用系统安装调试的基本方法。

4、网络管理与安全设备、软件安装、调试的基本方法。

考试方法

一、笔试:120分钟。

二、上机考试:120分钟。*

◆ 注:上机考试暂不要求,上机操作考核在笔试中体现。

提纲没有改变和去年一样。

网络工程师考试参考书目

参考书目:《全国计算机等级考试——网络工程师》(2010版)

全国计算机等级考试——网络工程师

作 者:教育部考试中心 编

出版社: 高等教育出版社

版 次:2007年9月第1版

印 次:2009年9月第8次印刷

定 价:38.00元

ISBN:978-7-04-025168-5

内容简介:本书根据教育部考试中心制订的《全国计算机等级考试四级网络工程师考试大纲(2007年版)》编写而成。主要内容包括:网络规划与设计的基本原则,中小型网络系统总体规划与设计方法,局域网组网技术,网络信息系统的建立,网络安全与管理等。本书编写的目标是使通过四级网络工程师的合格考生具有大型网络系统规划与管理的基本知识,掌握中小型网络系统组建,设备调试,系统维护与管理的基本技术。本书在内容选择上贯彻了“培养实际工作技能”的指导思想,在教材编写上体现了“任务驱动”的风格。

计算机四级软件工程师考纲、知识点、题库及答案 篇7

D:一个文字处理软件是否可以打开其他文字处理软件保存的文件

21: 参考答案:B  参考解析:(P247~249)

/jsjks/湖北计算机考试网

/jsjks/湖北计算机考试网

试题内容:

o 下列有关测试过程抽象模型的描述中正确的是

o o

A:V模型指出,软件测试要尽早准备,尽早执行,只要某个测试达到了准备就绪点,测试执行活动就可开展

B:W模型强调,测试伴随着整个软件开发周期同步进行,而且测试的对象不仅仅是程序,需求、设计也同样要测试

C:H模型指出,单元测试和集成测试应检测程序的执行是否满足软件设计的要求

D:X模型提出针对完整的程序进行集成的编码和测试

22: 参考答案:D  参考解析:(P255)制定测试计划,要达到的目标有:为测试各项活动制定一个现实可行的综合的计划;建立一个组织模型;开发有效的测试模型;确定测试所需要的时间和资源;确定测试过程中每个测试阶段的测试完成标准和要实现的目标;识别出测试活动中各种风险,并给出风险应对措施。

o 试题内容:

o 以下活动中,哪个不属于测试计划的内容

o

   

A:为测试各项活动制定一个现实可行的综合的计划 B:确定测试过程中每个测试阶段的测试完成标准 C:识别测试活动中各种风险,并给出风险应对措施 D:分析测试需求,并制定测试方案

23: 参考答案:D  参考解析:(P276)自动测试工具不是智能测试工具,而是再测试工具,即回归测试工具。

o 试题内容:

o 以下有关回归测试的说法中错误的是

o

A:严格来说,回归测试不是一个测试阶段,只是一种可以用于各个测试阶段的测试技术

/jsjks/湖北计算机考试网

/jsjks/湖北计算机考试网

B:回归测试的目标是保证被测应用在系统被修改和扩充后,各项功能依然正确

 

C:回归测试可以在系统和验收测试环境下进行 D:回归测试适合采用传统手工方法来完成,而不适合使用自动化测试工具来完成

24: 参考答案:A  参考解析:(P44~45)静态错误分析主要用于确定在源程序中是否有某类错误或危险结构。它有以下几种:类型和单位分析,引用分析,表达式分析,接口分析。

o 试题内容:

o 软件静态分析一般包括:控制流分析、数据流分析、接口分析,以及

o 

   

A:表达式分析 B:功能分析 C:边界值分析 D:因果图分析

25: 参考答案:C  参考解析:(P120)系统测试与单元测试,集成测试的区别在于测试方法不同:系统测试一般采用黑盒测试方法;单元测试一般采用白盒测试方法,辅以黑盒测试方法;集成测试主要采用黑盒测试方法,辅以白盒测试方法。

o 试题内容:

o 以下说法中错误的是

o

   

A:单元测试一般采用白盒测试方法,辅以黑盒测试方法 B:集成测试主要采用黑盒测试方法,辅以白盒测试方法 C:配置项测试一般采用白盒测试方法 D:系统测试一般采用黑盒测试方法

/jsjks/湖北计算机考试网

/jsjks/湖北计算机考试网

二、论述题(共3题,共50分)论述题答题必须用蓝、黑色钢笔或圆珠笔写在论述题答题纸的相应位置上。

 1: 参考答案:(3)基本路径集=Cache复杂度=4 设计测试用例如下:

①输入空值,执行路径 S1-S2-S1 ②输入abc, 空值, 执行路径S1-S2-S3-S2-S1 ③输入1.23_ , 执行路径S1-S2-S3-S1 ④输入abc,4.56_ 执行路径S1-S2-S3-S2-S3-S1

试题内容:

o 考虑一个根据以下简单规则确认输入数有效性的应用程序:

■输入数由数字、符号“+”或“-”开始。■该数字或符号后面可接任意位数的数字。

■这些数字可以有选择地后接用英文句号表示的小数点。■如果有一个小数点,则小数点后面应该有两位数字。■任何输入数,不管是否有小数点,都应该以空格结束。o

/jsjks/湖北计算机考试网

/jsjks/湖北计算机考试网

请根据以上处理规则:

(1)画出相应的状态转换图。(4分)(2)根据状态转换图,列出相应的状态转换表,给出“当前状态”、当前状态允许的“输入”和对应每一个输入的“下一个状态”。(4分)

(3)根据状态转换图和状态转换表,导出基本路径测试的测试用例及其覆盖的测试路径。(12分)

 2: 参考答案:

试题内容:

o QESuite Web Version 1.0中,已知DUCHA 1.0工作专网系统测试项目的部分信息如下:

●测试版本:总计3个测试版本,按日期排序分别为DUCHA1.0_100105,DUCHA1.0_100205,DUCHA1.0_100210。●功能分类视图中部分待测区域及人员分配定义如下表所示:(表1)

已知在功能区域“工作平台/归档”下有一个软件问题处于“打开/再现”状态,下表中是该软件问题操作历史信息,请依据QESuite Web Version 1.0的软件问题生命周期定义和题中提供的相关人员分配和测试版本信息,填写表中空缺的操作历史信息。o

/jsjks/湖北计算机考试网

/jsjks/湖北计算机考试网

(表2)

 3: 参考答案:(1)流程图 ① void reverse(char s[])的流程图(见图1)

②void getHex(int number,char s[])的流程图(见图2)③int main()的流程图(见图3)(2)设计测试用例 ①输入0,输出0 ②输入2,输出2 ③输入26,输出1A ④输入27, 输出1B ⑤输入28, 输出1C ⑥输入29, 输出1D ⑦输入30, 输出1E ⑧输入31,输出1F ⑨输入20P,输出错误

语句覆盖率无法达到100%,因为main()函数中的return 0 语句永远无法执行。

/jsjks/湖北计算机考试网

/jsjks/湖北计算机考试网

/jsjks/湖北计算机考试网

/jsjks/湖北计算机考试网

/jsjks/湖北计算机考试网

/jsjks/湖北计算机考试网

试题内容:

o 已知C源程序如下:

#include #include void reverse(char s[]){ int c,i,j;for(i=0,j=strlen(s)-1;i0){ if(number%16<10)s[i++]=number%16+0;else switch(number%16){ case 10:s[i++]=A;break;case 11:s[i++]=B;break;case 12:s[i++]=C;break;case 13:s[i++]=D;break;case 14:s[i++]=E;break;case 15:s[i++]=F;break;default:printf(“Error”);break;} number/=16;} s[i]=;reverse(s);} int main(){ unsigned int number;int i=0;char s[50];printf(“%s”,“please input number:”);scanf(“%d”,&number);getHex(number,s);i=0;while(s[i])o

/jsjks/湖北计算机考试网

/jsjks/湖北计算机考试网

printf(“%c”,s[i++]);return 0;}(1)画出程序中所有函数的控制流程图;(10分)

(2)设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到100%。如果认为该程序的语句覆盖率或分支覆盖率无法达到100%,需说明为什么。(10分)

计算机四级软件工程师考纲、知识点、题库及答案 篇8

第一章 引 论

1、数据库技术产生于20世纪60年代,是信息系统的核心技术和重要基础;

2、计算机科学与技术学科划分为四个专业方向:计算机科学(CS);计算机工程(CE);软件工程(SE);信息技术(IT)。

1.1 基本概念

1.1.1 信息与数据

1、信息、物质、能量是组成客观世界并促进社会发展的三大基本要素;

2、信息(Information)--是客观世界事物的存在方式和运动状态的反映,是对事物之间相互联系、相互作用的描述。信息具有可感知、可存储、可加工、可传递和可再生的自然属性。

3、数据(Data)--是描述现实世界事物的符号记录,是用物理符号记录下来的可以识别的信息。不同的物理符号体现出数据的不同表现形式。

4、信息与数据间存在固有联系,数据是信息的符号表示,或称为载体。信息则是数据的语义解释,是数据的内涵,信息以数据的形式表现出来,并为人们理解和接受。

5、数据处理(Data Processing)--是指对数据进行分类、收集、组织、存储,进而从已数据出发,抽取或推导出新的数据,这些数据表示了新的信息。

6、数据管理(Data Management)--是指对数据的分类、收集、组织、编码、存储、检索和维护,是数据处理业务的重要环节。

7、数据处理与数据管理的区别在于,数据处理除了具有数据管理功能外,还可通过数据管理得到的数据进一步深加工,从中获取新的数据和信息。1.1.2 数据库系统

1、数据库(DB,DataBase)--是长期存储在计算机内有组织的、大量的、共享的数据集合;

2、数据库管理系统(DBMS,Database Management System)--是指在计算机系统中,位于用户与操作系统之间的数据管理系统软件,是数据库系统的核心。

3、数据库系统(DBS,DataBase System)--是指在计算机系统中引入数据库后的软硬件系统构成,DBS一般分成三个层次:(1)计算机硬件平台;(2)系统软件和应用软件;(3)用户;在不引起混淆和歧义的情况下,数据库系统简称为数据库。

4、(狭义的)数据库系统—是由数据库和数据库管理系统组成的软件系统,主要为用户提供数据存储和查询、插入、修改、删除、更新等数据管理功能。

5、(狭义的)数据库应用系统(DBAS,DataBase Application System)—是由数据库、数据库管理系统、数据库应用程序组成的软件系统,它面向具体应用领域,提供了更为复杂的数据处理功能。

6、数据库技术—是研究数据库的结构、存储、设计、管理和使用的一门计算机应用学科。

7、数据库技术与其它计算机科学有密切关系:

(1)数据库技术以文件系统为基础发展而来,DBMS需要操作系统的支持,数据库以文件形式存储在外部存储上的;

(2)数据库与数据结构的关系很密切,数据库技术不仅用到数据结构中的链表、树、图等知识,各种数据模型本身就属于复杂数据结构;

(3)主流的关系数据库系统,其理论基础是关系数据模型,而该模型是在离散数学集合论中“关系”这一基本概念上发展起来的;

(4)当用户访问数据库,DBMS对用户提交的查询操作类似于,计算机编译系统对程序的编译过程;(5)开发一些大型的DBS或DBMS的过程,要遵循软件工程的开发模式。

1.2 数据模型

1.2.1 数据模型概念

1、数据模型(Data Model)--是数据库系统的形式框架,是用来描述数据的一组概念和定义,包括描述数据、数据联系、数据操作、数据语义以及数据一致性的概念工具;

2、数据模型应满足:(1)能够比较真实地模拟现实世界;(2)容易为人们所理解;(3)便于在计算机上实现。

3、数据模型的组成:

(1)数据结构:用于描述系统的静态特征,从语法角度表述了客观世界中数据对象本身的结构和数据对象之间的关联关系,是刻画一个数据模型性质最重要的方面。在数据库系统中,通常按照数据结构的类型来区分、命名各种数模,如层次、网状、关系数模。

(2)数据操作:用于描述系统的动态特征,是一组对数据库中各种数据对象允许执行的操作和操作规则组成的集合。数据操作可以是检索、插入等,数模必须定义这些操作的确切含义、操作符号、操作规则以及实现操作的数据库语言。

(3)数据完整性约束:是一组完整性规则的集合,它定义了数模必须遵守的语义约束,也规定了数据库中数据内部及数据之间联系所必须满足的语义约束。它限定了数据库的状态以及状态的变化,以便维护数据的正确性、有效性。

1.2.2 数据模型分类

1、用数据模型这一概念来描述数据库的结构和语义,通过现实世界—信息世界—机器世界的抽象转换过程构建数据库,并根据模型所定义的规范去管理和使用数据。

2、建模过程:(1)将现实世界的数据对象抽象为信息世界中的某一信息结构;(2)再将信息结构转换为机器世界中某一具体DBMS支持的数据模型,并存储于计算机中。

3、数据模型分类:

(1)概念数据模型(概念模型):按用户的观点对数据和信息进行建模,是现实世界到信息世界的第一层抽象,强调其语义表达功能,易于用户理解,是用户与设计人员交流的语言,主要用于数据库设计。最常用的是实体—联系模型。

(2)数据结构模型(表示型/实现型):是机器世界中与具体DBMS相关的数据模型,包括关系模型、网状模型和层次模型

(3)物理数据模型:属底层数据模型,描述数据的实际存储方式。

1.3 数据视图与模式结构

1.3.1 数据视图与数据抽象

1、数据视图:指从某个角度看到的客观世界数据对象的特征,是对数据对象某一方面特征的描述。

2、数据抽象:是一种数据描述和数据库设计原则,是指专注于数据对象的某方面特征,而忽略其他特征。

3、集和值:集是指对某一类数据的结构和属性的说明,值是集的一个具体赋值;

4、数据模式:对数据库中数据某方面结构和特征的描述,它仅涉及集的描述,不涉及具体的值。1.3.2 三级模式结构

1、数据库三级模式结构—外部级、概念级和内部级,分别定义了外模式、模式和内模式,用于从不同角度描述数据库结构。

2、模式:

(1)也称逻辑模式、概念模式;

(2)对数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图;(3)模式不仅定义了数据的逻辑结构,还定义了数据之间的联系、与数据的关的安全性和完整性要求;

(4)一个数据库只有一个模式,建立在某种数据结构模型基础上。

3、外模式:

(1)也称子模式、用户模式、用户视图;

(2)是对数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述。

(3)一个数据库可以有多个外模式,每个外模式描述了某个特定用户所使用的局部数据的逻辑结构和特征,是与某一应用有关的数据的逻辑表示。

(4)外模式还是保证数据安全的有力措施,每个用户只能看见和访问所对应的外模式中的数据,其它数据对他是不可见的。

4、内模式:

(1)也称物理模式、存储模式;

(2)是对数据库中数据的物理结构和存储方式的描述,代表了数据在数据库内部的表示方式和物理组织结构;

1.3.3 二级映象与数据独立性

1、外模式/模式映象:

(1)定义了数据库中不同用户的外模式与数据库逻辑模式之间的对应关系;

(2)可有多个外模式/模式映象,对于每个外模式,需要一个外模式/模式映象来定义该外模式与模式之间的对应关系;

(3)当模式发生变化时,只需调整外模式/模式间的映象关系,而外模式无需修改,保证了数据与应用程序的逻辑独立性,称为数据的逻辑独立性。

2、模式/内模式映象:

(1)定义了数据库中数据全局逻辑结构,与这些数据在系统中的物理存储组织结构之间的对应关系。

(2)模式/内模式映象是唯一的;

(3)当内模式发生变化时,只需调整模式/内模式映象关系,而模式无需修改,保证了数据库中的数据与应用程序间的物理独立性,称为数据的物理独立性。

1.4 数据库系统体系结构

1、数据库系统体系结构:是指数据库系统的组成构件、各构件的功能及各构件间的协同工作方式;

2、分类:

(1)集中式:全部数据和数据管理功能均集中在一台计算机上的数据库系统;包括单用户和主从式两种,单用户DBS是指系统由一个用户独占,不同机器间不能共享数据;主从式DBS是指一个主机带多个分时多用户的DBS;

(2)分布式:数据库中的数据在逻辑上是一个整体,但在物理上却可以分布在网络中不同数据管理节点上;

(3)客户/服务器:将DBMS和数据库应用分开,网络中某些节点上的计算机专门执行DBMS功能,负责数据管理服务,称为数据库服务器;其他节点的计算机上安装DBMS的外围应用开发工具,支持用户的应用,主要负责数据表示服务,称为客户端;

(4)并行式:硬件平台是并行计算机系统,使用多个CPU和多个磁盘进行并行数据处理和磁盘访问操作,以提高执行速度;(5)WEB式: 由通过互联网连接起来的客户端、WEB服务器、数据库服务器组成。

1.5 数据库管理系统

1.5.1 数据库管理系统的功能

(1)数据定义功能:DBMS提供了数据定义语言(DDL),用户利用DDL定义数据库对象的三级模式结构,描述数据库的结构特征。

(2)数据操纵功能:DBMS提供数据操纵语言(DML),用户利用DML对数据进行查询、插入、删除或更新;

(3)数据库运行管理和控制功能(4)数据库的建立和维护功能 1.5.2 数据库系统的全局结构

1、DBS可分为用户、人机交互界面、DBMS和磁盘四个层次;

2、用户可分为四类:数据库管理员DBA;专业用户;应用程序员;终端用户;

3、DBMS可分为两部份:

(1)查询处理器:面向用户查询请求;包括以下几个功能模块:DML编译器、嵌入式DML的预编译器、DDL编译器、查询执行引擎;

(2)存储管理器:面向数据存储访问,包括以下几个功能模块:权限和完整性管理器、事务管理器、文件管理器、缓沖区管理器;

4、磁盘存储的类型:

(1)以数据库文件方式存储的应用数据;(2)数据字典;

(3)为提高查询速度而设置的数据库引擎;(4)DMS运行时的统计分析数据;(5)日志信息。

1.6数据库技术的发展和应用

1、第一代DBS:60年代末70年代初,层次型和网状型DBS;

2、第二代DBS:70年代后期,关系数据库系统;

3、新型DBS:80年代,分布式数据库系统;90年代,面向对象数据库系统、网络数据库系统

第二章 数据库应用系统生命周期

2.1数据库应用系统生命周期

2.1.1 软件工程与软件开发方法

1、软件工程:指导计算机软件开发和维护的工程科学,它采用工程化的概念、原理、技术和方法,以及正确的项目管理技术,来开发和维护软件;它将系统化、规范化、定量化方法应用于软件的开发、操作和维护,也就是将工程化应用于软件生产;

2、软件工程的目标:在给定成本、进度的前提下,开发出满足用户需求并具有下述特征的软件产品:可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性。

3、软件生命周期:指软件产品从考虑其概念开始,到该产品交付使用的整个时期,包括概念阶段、需求阶段、设计阶段、实现阶段、测试阶段、安装部署及交付阶段;

4、软件项目管理:为了能使软件开发按预定的质量、进度和成本进行,而对成本、质量、进度、人员、风险等进行分析和有效管理的一系列活动。

5、软件工程以关注软件质量为特征,由方法、工具和过程三部分组成;

6、软件过程模型(软件开发模型):是对软件过程的一种抽象表示,表示了软件过程的整体框架和软件开发活动各阶段间的关系,常见的有:瀑布模型、快速原形模型、增量模型和螺旋模型。2.1.2 DBAS软件组成

1、数据库应用软件在内部可看作由一系列软件模块/子系统组成,这些模块/子系统可分成两类:

(1)与数据访问有关的数据库事务模块:利用DBMS提供的数据库管理功能,以数据库事务方式直接对数据库中的各类应用数据进行操作,模块粒度较小;

(2)与数据访问无直接关联的应用模块:在许多与数据处理有关的应用系统中,对数据库的访问只是整体中的一部分,其他功能则与数据库访问无直接关系,这部分模块粒度可以比较大。

2、DBAS设计开发的硬件方面:主要涉及根据系统的功能、性能、存储等需求选择和配置合适的计算机硬件平台,并与开发好的DBAS软件系统进行集成,组成完整的数据库应用系统; 2.1.3 DBAS生命周期模型

1、数据库应用系统的生命周期模型:

(1)参照软件开发瀑布模型的原理,DBAS的生命周期由项目规划、需求分析、系统设计、实现和部署、运行管理与维护等5个基本活动组成;

(2)将快速原形模型和增量模型的开发思路引入DBAS生命周期模型,允许渐进、迭代地开发DBAS;

(3)根据DBAS的软件组成和各自功能,细化DBAS需求分析和设计阶段,引入了数据组织与存储设计、数据访问与处理设计、应用设计三条设计主线,分别用于设计DBAS中的数据库、数据库事务和应用程序;

(4)将DBAS设计阶段细分为概念设计、逻辑设计、物理设计三个步骤,每一步的设计内容又涵盖了三条设计主线。

2.2 规划与分析

2.2.1 系统规划与定义

1、定义:系统规划与分析是面向将要开发的DBAS,通过了解用户实际需求,明确该系统需要实现的目标和任务,并从数据管理和数据处理的角度,确定系统中数据库软件的功能、性能范围;

2、系统规划与定义包括:

(1)任务陈述:描述所要开发的DBAS的总体目标;(2)确定任务目标;(3)确定系统范围和边界;(4)确定用户视图; 2.2.2 可行性分析

1、可行性分析包括以下四方面:

(1)经济可行性:对项目进行成本效益分析;DBAS的成本主要包括:A、软硬件购置费用;B、系统开发费用;C、系统安装、运行、维护费用。

(2)技术可行性:是根据用户提出的系统功能、性能及实现系统的各项约束条件,对系统软件、硬件、技术方案作出评估和选择建议;

A、硬件可行性研究是分析DBAS的硬件平台环境和设置;

B、软件可行性研究包括:对可用的DBMS和操作系统的选型评估,对中间件和开发环境的选型建议,对DBAS开发模式和编程语言的建议;

C、技术方案的选择是根据系统技术需求,提出DBAS可能采用的合理技术方案和关键技术;(3)操作可行性:是论证是否具备DBAS开发所需的各类人员资源、软件资源、硬件资源和工作环境等,以及为支持DBAS开发如何去改进加强这几方面资源。

(4)开发方案选择:目的是提出并评价实现系统的各种开发方案,从中选出一种适用于DBAS软件的开发方案;

2.2.3 项目规划

1、项目规划是项目管理者对资源、成本和进度做出合理估算,并在此基础上制定切实可行的DBAS项目开发计划。

2、项目规划包括以下内容:(1)确定项目的目标和范围;

(2)根据DBAS软件开发模型,分解和定义整个项目包括的工作活动和任务;(3)估算完成该项目的规模和所需各种资源;(4)制定合理的DBAS项目计划

3、项目规划的结果应形成数据库应用系统项目计划文档,即项目计划书。

2.3 需求分析

1、数据库应用系统需求是指用户对DBAS在功能、性能、行为、设计约束等方面的期望和要求;

2、DBAS需求分析是在已经明确的DBAS系统范围基础上,通过对应用问题的理解和分析,采用合适的工具和符号,系统地描述DBAS的功能特征、性能特征和约束,并形成需求规范说明文档;

3、需求分析过程由需求获取、需求分析、需求描述和规范说明、需求验证等组成;

4、DBAS的需求分析包括:

(1)数据需求分析;(2)数据处理需求分析;(3)业务需求分析;

(4)分析数据库系统在性能、存储、安全、备份与恢复等方面的要求; 2.3.1 数据与数据处理需求分析

1、数据需求分析:是从对数据组织与存储的设计角度,辨识应用领域所管理的各类数据项和数据结构,与数据处理需求分析结果一起,组成数据字典;

2、数据处理需求分析:是从数据访问和处理的角度,明确对各类数据项所需进行的数据访问操作,分析结果可表示为数据流图或事务规范;

3、事务规范包括:

(1)事务名称;(2)事务描述;(3)事务所访问的数据项;(4)事务用户; 2.3.2 业务规则需求分析

1、业务规则需求分析:是从DBAS高层目标和整体功能出发,分析系统或系统中一些大粒度子系统应具有的业务类型和功能,明确用户或外部系统与DBAS的交互模式; 2.3.3 性能需求分析

1、DBAS的性能指标:

(1)数据操作响应时间(或数据访问响应时间):从提交请求到返回结果的时间;(2)系统吞吐量:指系统在单位时间内所完成的事务或查询的数量,单位为TPS;(3)允许并发访问的最大用户数:在保证响应时间的前提下,系统最多允许多少用户同时访问数据库;

(4)每TPS代价值,用于衡量系统性价比的指标

2、影响DBAS性能的因素:

(1)系统硬件资源;(2)网络通信设备性能;(3)操作系统环境;

(4)数据库的逻辑设计和物理设计质量,数据库配置参数;(5)DBAS的配置和性能;(6)数据库应用程序自身。2.3.4 其它需求分析

1、存储需求分析:是指估计DBAS系统需要的数据存储量,包括:(1)初始数据库大小;(2)数据库增长速度;存储总量估算可采用:根据数据字典中每个数据项的结构描述信息,估计每个数据项的容量,将所有数据项的容量累加;

2、安全性需求分析:

(1)DBAS系统应达到的安全控制级别;(2)各类用户的数据视图和视图访问权限;

(3)DBAS应有的口令保护机制或其它安全认证机制,用以控制用户登录数据库系统。

3、备份和恢复需求分析:

(1)DBAS运行过程中备份数据库的时间和备份周期;(2)所需备份的数据是全部数据库数据,还是一部分;(3)备份方式是采用完全备份还是采用差异备份。

2.4 系统设计

2.4.1 概念设计

1、数据库概念模型设计:是根据数据需求分析阶段得到的需求结果,分析辨识需要组织存储在数据库中的各类应用领域数据对象的特征及其相互之间关联关系,并采用概念数据模型表示出来,得到独立于具体DBMS的数据库概念模型;

2、ER方法:(1)选择局部应用;(2)分别设计各个局部ER图;(3)局部ER图合并;

3、系统总体设计:

(1)确定DBAS体系结构;

(2)系统硬件平台和操作系统、数据库管理系统等系统软件的选型和配置;(3)应用软件结构设计

(4)对需求分析阶段识别出的业务规则进行初步设计,细化业务规则流程,明确采用的关键技术和算法;

(5)对系统采用的关键技术进行方案选型和初步设计。2.4.2 逻辑设计

1、数据库逻辑结构设计:指从数据库的概念模型出发,设计表示为逻辑模式的数据库逻辑结构。

(1)ER图转换为初始关系模式;(2)对初始关系模式进行优化;

(3)检查关系表对数据库事务的支持性;(4)确定关系模式的完整性约束;

(5)从数据安全性和独立性出发,设计用户视图。

2、应用程序概要设计(II);

3、数据库事务概要设计; 2.4.3 物理设计

1、数据库物理结构设计:主要指数据文件在外存上的存储结构和存取方法,它依赖于系统具体的硬件环境、操作系统和DBMS;(1)数据库逻辑模式调整;

(2)选择或配置基本关系表的文件组织形式;(3)数据分布设计;(4)安全模式设计;(5)确定系统配置;(6)物理模式评估;

2、数据库事务详细设计:根据事务流程,利用SQL语句、数据库访问接口,采用高级程序设计语言或DBMS提供的事务实现机制,设计数据库事务。

3、应用程序详细设计:

2.5 实现与部署

1、建立数据库结构;

2、数据加载;

3、事务和应用程序的编码及测试;

4、系统集成、测试与试运行;

5、系统部署;

2.6 运行管理与维护

2.6.1 日常维护

(1)数据库的备份与恢复(2)完整性维护(3)安全性维护(4)存储空间管理(5)并发控制及死锁处理 2.6.2 系统性能监控和分析

1、统计数据可以通过两种途径收集:

(1)由DBMS本身自动收集和存储统计数据(2)通过监控系统得到 2.6.3 系统性能优化调整

1、糸统性能优化的手段有:数据查询调整与优化、索引调整、数据库摸式调整、DBMS和操作系统参数调整等。

2、模式调整主要涉及逻辑模式调整,可以从下考虑:

(1)已达到第三范式的基本表,不要进一步规范化为BCNF;

(2)在分布式数据库中,对一个基本表中某些频繁被访问的数据,可以按水平分区或垂直分区方式拆分基本表。

2.6.4 系统升级

1、改进应用桯序;

2、数据库重组;

3、DBMS和OS版本升级

第3章 需求分析及功能建模方法

3.1 需求分析概述

3.1.1 需求分析概念

1、所谓需求分折:就是对待开发的系统要做什么,完成什么功能的全面描述。

2、需求分析的工作:通过对需求的调查、了解、观察和分析,通过对原始数据的收集、分类和抽象,并采用有效的技术、工具,对原始资料进行加工整理,描述开发目标、实现的功能及其相互关系等活动的集合;

3、需求的定义:客户对一个待开发的系统在实现目标、完成功能、应达到的性能、安全性、可靠性等方面的期望和要求的集合;

4、需求获取的困难:

(1)软件功能复杂;(2)需求的可变性;

5、需求分析阶段的主要任务:分析当前的业务流程,包括体系结构,各职能部门完成的主要任务、关系及其交流的信息。

6、需求分析的结果通常以模型等建模工具和方法描述系统的信息流、功能结构及完成各功能需要的数据。

7、功能模型和软件需求规格说明书是软件开发的依据,将指导后续的开发工作。

8、需求分析工作是系统分析员与用户不断交互的过程中完成的。3.1.2 系统分析员的职能

1、系统分析员的主要要任务:是确定应用信息系统及软件产品应该达到的各项功能性要求和非功能性要求,即用户要做什么。

2、系统分析员应该具备的素质:

(1)获取需求的能力;(2)管理及沟通能力;(3)技术素养; 3.1.3 需求获取的方法

常用的几种获取需求的方法:(1)面谈;(2)实地观察;(3)问卷调查;(4)查阅资源; 3.1.4 需求分析过程

1、标识问题:

(1)需求分析的第一步,通过对问题的识别和标识获得所求解问题及其运行环境的理解;(2)标识问题从现行系统的业务流程做起,理解现行系统的业务流程;(3)在标识理解需求的同时,还要注意确定系统的人机界面;

2、建立需求模型:

(1)模型是对现实原形所作的一种抽象,其本质是只关心与研究内容有关的因素,而忽略无关的因素,其目的是把复杂的事物变得简单,便于认识和分析;

(2)目前常用的模型方法主要有DFD数据流图和IDEFO,都属于结构化分析方法,其特征是抽象和分解;

(3)首先对应用领域进行全面的分析,发现并找出同类事物的本质,用抽象方法把这类事物的非主要方面剔除,把握住事物的内部规律或本质,就可以找到解决办法;然后采用自上而下逐步求精的方法对复杂的问题进行分解;

(4)结构化分析及建模方法的主要优点:

(A)不过早陷入具体的细节;(B)从整体或宏观入手分析问题;

(C)通过图形化的模型对象直观地表示系统要做什么,完成什么功能;(D)图形化建模方法方便系统分析员理解和描述系统;(E)模型对象不涉及太多的技术术语,便于用户理解;

3、描述需求:

(1)需求描述的目标:对软件项目功能性和非功能性的需求全面描述;

(2)功能性需求:指需要计算机实际解决的问题或实现的具体功能,明确描述系统必须做什么,实现什么功能以及输入输出等;

(3)非功能性需求:软件项目对实际运行环境的要求;

(4)需求描述主要由需求模型和需求说明书组成,说明书侧重文字说明,内容如下:需求概述;功能需求;信息需求;性能需求;环境需求;其他需求;

(5)在对需求进行分析过程中,系统分析员要经常考虑的问题:

(A)描述的需求是完全的吗?(B)需求描述是正确的和一致的吗?

(C)描述的这些需求是可行的、实际可操作的吗?(D)描述中的每一条需求都是客户需要的吗?

4、确认需求:

1、评审委员会审核下列内容:功能需求;数据需求;性能;数据管理;其他需求。

3.2 DFD建模方法

3.2.1 DFD方法的基本对象

1、数据流:具有名字且有流向的数据,用标有名字的箭头表示。

2、处理:表示对数据的加工和变换,在图中用矩形框表示。

3、数据存储:表示用数据库形式存储的数据,对其存取分别以指向或离开数据存储的箭头表示;

4、数据源及数据终点:表示当前系统的数据来源和去向,其图形符号以平行四边形表示。3.2.2 开发DFD图

1、DFD图采用自顶而下逐步细化的结构化分析方法表示目标系统;

2、DFD方法应以软件项目的功能为中心进行抽象和分解,以数据流的变换来分析数据对企业中各类业务活动的影响; 3.2.4 数据字典

1、数据字典包括以下说明信息:

(1)源点及终点词条描述;(2)数据流词条描述;(3)数据存储;(4)处理描述;

(5)数据元素词条描述。

3.3 IDEF0建模方法

3.3.1 概述

1、IDEF0的基本思想是结构化分析方法,强调自顶而下有控制地逐步地展开细节,全面地描述系统,且通过建模来理解一个系统。一个模型由图形文字说明、词汇表及相互的交叉引用表组成。

2、IDEF方法的优点:具有模型元素单

一、语义丰富、更易于从全局角度分析考察问题,模型容易理解。

3.3.2 IDEF0方法

1、基本元素

(1)矩形:代表活动,活动名称标在矩形内,活动编号按要求标在矩形框右下角指定位置;(2)箭头:左边的输入箭头代表完成活动需要的数据、上方的控制箭头描述了影响活动的执行的事件或约束、右边的输出箭头说明由活动产生的结果及信息、下方进入的机制箭头表示实施该活动的物理手段或资源。

(3)输入输出箭头描述活动是什么(what)、控制箭头描述为何这么做(why)、机制箭头表示如何做(how)。

2、IDEF0模型

(1)一个IDEF0模型由一组图形组成,这些图形组成一个由父到子的层次结构图,这组图形把一个复杂事物按自顶向下逐步细化的方式分解成一个个简单的或多个组成部分;

3、建模规则

(1)矩形框:用动词为矩形内活动命名,每个矩形要至少有一个控制箭头和输出箭头,可以没有输入,但不可以同时没有输入和控制。

(2)箭头:箭头代表数据约束,而不是代表流或顺序;(3)其他:

(A)ICOM码:只有一端与矩形相连的箭头叫边界箭头,这些箭头表示父矩形框的输入、控制和输出。IDEF0用专门的记号ICOM码来说明父子图中的箭头关系。子图中每个边界箭头的开端分别用字母I、C、O、M来标明是输入、控制、输出及机制,再用一个数字表示其在父矩形框中箭头的相对位置。

(B)结点号:IDEF0模型是一组有一定层次结构的图形,通常用结点号来标志图形或矩形框在层次图中的位置;

(C)模型名:每个模型有一个名字,通常用名字代表主题,用子名字表示不同的模型。基本名字与子名字间用“/”隔开,如A/B/C,A是主题、B是模型号、C是结点号。

3.3.3 建模过程及步骤

1、IDEF0建模过程及步骤:

(1)明确目的,确定范围:在建模前首先要明确目的和意图,确定问题域;

(2)建立内外关系图A-0图:根据系统目标、功能建立内外关系图A-0图,以确定整个模型的内外关系,确定系统的边界;

(3)构造顶层图:把A-0图分解成3~6个主要部分得到A0图,A0图是模型真正的顶层图;(4)开发IDEF0层次结构图:对A0图中的每个矩形框进行分解,就形成了基本的图形层次结构。在分解时要列出所有的数据项和活动表,分解的次序采用以下原则:(A)保持在同一水平上进行分解,均匀的模型深度;(B)按困难程序进行选择;(5)写文字说明;(6)检查确认图形;

3.4 DFD与IDEF0的比较

1、DFD与IDEF0共同点:都是结构化分析思想,强调自顶而下逐步求精的方法对现实世界建模,先抓住主要的问题,形成较高层次的抽象,再由粗到细、由表及里地逐步细化,将一个大问题分解成几个小问题,对这小问题再进行分析求解;

2、DFD与IDEF0区别:

(1)DFD图用箭头(数据流)来描述数据移动的方向、数据处理及处理之间的数据依赖关系。IDEF0图也用箭头代表数据流,但在IDEF0中不是强调流或顺序,而是强调数据约束。

(2)从表达形式上看,DFD图与IDEF0图都是用箭头和处理表达一个企业或组织的业务流程。但IDEF0图的箭头不仅能够表示数据流,还可以表示控制流和说明处理或实施方式的一些约束;

(3)从模型元素的组成上来看,DFD模型由4种元素组成,即外部顶、数据流、数据存储和处理。而IDEF0模型元素的组成更加简单,只有2种元素组成,即箭头和活动;(4)从模型规范上来讲,IDEF方法更加规范;(5)IDEF0模型结构清楚,便于理解和沟通。

第四章 数据库概念设计及数据建模

4.1 数据库概念设计概述

4.1.1 数据库概念设计的任务

1、定义和描述应用领域涉及的数据范围;

2、获取应用领域或问题域的信息模型;

3、描述清楚数据的属性特征;

4、描述清楚数据之间的关系;

5、定义和描述数据的约束;

6、说明数据的安全性要求;

7、支持用户的各种数据处理需求;

8、保证信息模型方便地转换成数据库的逻辑结构,同时便于用户理解。4.1.2 概念设计过程

1、概念设计的依据:是需求分析阶段的文档,通过对这些文档的分析理解,构造出信息模型,编写数据库概念设计说明书,信息模型和数据库概念设计说明书是数据库逻辑设计的依据;

2、概念设计的基本步骤:

(1)确定实体集;

(2)确定联系和联系类型;

(3)建立由信息模型表示的企业模型;(4)确定实体集属性;(5)对信息模型优化。

4.2 数据建模方法

1、数据建模方法的共同特点是:

(1)能够真实客观地描述现实世界中的数据及数据之间的关系;(2)组成模型的概念少,语义清楚,容易理解;(3)不同概念的语义不重叠,概念无多义性;

(4)用图形方式描述数据,数据直观易懂,有利于数据库设计者和用户交流;(5)这种数据模型容易转换成数据库逻辑设计阶段需要的数据结构。

4.3 ER建模方法

4.3.1 基本概念

1、实体或实例:指客观存在并可相互区分的事物,可以是一个具体的人或物,也可以是抽象的事件或概念;

2、实体集:表示一个现实的和抽象事物的集合,这些事物必须具有相同的属性或特征。

3、属性:用于描述一个实体集的性质和特征;

4、码:实体集中能惟一标识每一个实例的属性或属性组;

5、联系:描述现实世界中实体之间的关系。(1)一对一联系;(2)一对多联系;(3)多对多联系 4.3.2 ER方法语法

1、ER方法中用矩形框表示实体集,矩形框内写上实体集的名称;

2、ER模型用菱形表示联系,联系名写在菱形框内;

3、ER模型中实体集的属性用椭圆或圆角矩形框表示,属性名字写在其中。

4.4 IDEF1X 建模方法

4.4.1 IDEF1X概述

1、IDEF0侧重描述系统功能,被称为功能建模方法;IDEF1X侧重分析、抽象和概括应用领域中的数据,称为数据建模方法;

2、IDEF1X方法具有丰富的语法和语义;

3、实体集分为(1)独立标识符实体集;(2)从属标识符实体集;

4、实体集之间的联系分为:(1)标定型联系;(2)非标定型联系;(3)分类联系;(4)不确定联系 4.4.2 IDEF1X模型元素

1、实体集:

(1)实体集语义:如果一个实体集的每一个实例都能被惟一地标识,而不决定于它与其他实体的联系,那么该实体集称为独立实体集;否则就叫从属实体集;

(2)实体集语法:IDEF1X用矩形框来表示独立实体集,用圆角矩形框来表示从属实体集;

2、联系:

(1)联系语义:

(A)标定型联系:一个“确定型联系”中,如果子女实体集中的每个实例都是由它与双亲的联系而确定的,这个关系称为“标定型联系”;

(B)非标定型联系:一个“确定型联系”中,如果子女实体集中的每一个实例都能被惟一地确认而无需了解与之相联系的双亲实体集的实例,这个问题关系叫“非标定型联系”。

(C)分类联系:是两个或多个实体集之间的联系,且在这些实体集中存在一个一般实体集,它的每一个实例都恰好与一个且仅一个分类实体集的一个实例相联系。

(D)不确定联系:一个非确定联系又称为多对多联系,这种联系关联的两个实体集之间,任一实体集的一个实例都将对应另一实体集的0个、1个或多个实例。

(2)联系的语法:

(A)标定联系语法:在IDEF1X图中,联系的语法用直线表示,在一个标定型联系中,子女实体集总是一个从属实体集,用圆角矩形框表示;

(B)非标定联系语法:如果两个实体集之间有关系,并且是一个非标定联系,就用一条虚线把它们连接起来。

(C)分类联系语法:一般实体集的一个实例只能与分类实体集的一个实例相对应;(D)不确定联系m:n的语法:不确定联系用一个两端带有实心圆的线段描述,表示多对多的连接关系。

3、属性

(1)属性的语义:用来描述一类现实或抽象事物的特征或性质。一个属性的具体取值叫属性实例,它由属性的类型和值来定义。

(2)属性的语法

(A)主码和非主码属性语法:在一个实体集中属性要有惟一的名字,属性名由名词表示,主码属性名后加(PK)标注,被列在属性列表的顶端,并用水平线将主码和其他属性分开。

(B)外码语法:在外码属性后加“FK”来识别由联系继承得到的外来属性。

4.4.3 建模过程

1、第一阶段:建模规划及准备

(1)建模目标:

(A)目标说明:回答将构造的模型完成什么功能,涉及的问题和数据范围,同时说明是一个当前系统模型还是待建模型。

(B)范围说明:在建模初期要给出模型覆盖的问题范围;(2)建模计划

(A)项目说明;(B)收集数据;(C)定义实体;(D)定义联系;(E)定义码属性;(F)定义非码属性;(G)确认模型;(H)评审验收。

(3)组织队伍:包括项目负责人、建模者、信息源、课题专家、评审委员会

2、第二阶段:定义实体集

(1)目标是标识和定义应用领域中的实体集,方法是分类标识原始材料中的所有名词;(2)区别实体集名词和非实体集名词的方法,是否具有下列特征:

(A)它能够被描述或说明吗?(B)有多少同类的实例吗?

(C)每个实例可以被标识和区分吗?

3、第三阶段:定义联系

(1)标识实体集之间的联系:建立联系矩阵,联系矩阵由一个二维数组表示。把实体集沿水平和垂直两方向列出,分析两个实体间的联系,有联系就用“X”表示,不存在联系用“null”表示。联系只标识直接关系,不标识间接关系。

(2)定义联系:包括表示依赖、命名联系、关于联系的说明;当实体集之间的依赖关系建立后,就可以命名联系了。联系的名字可以动词表示。原则必须是具体的、简明的和有意义的。

(3)构造实体级数:实体级图的范围和数目,依赖于建模的规模和建模问题涉及的实体集数目。

4、第四阶段:定义健

(1)分解不确定的联系:把实体级图中不确定的关系转换成确定的连接形式,把每一个不确定的联系转换成为两个确定的联系;

(2)标识码属性:码属性是那些能够惟一识别实体集中每一个实例的属性;

(3)迁移主码:把一个实体集的主码复制到其他有关实体集的过程,但要遵守以下规则:

(A)在一个联系中,迁移总是从父到子或从一般实体集移向分类实体集;(B)主码属性才能被迁移,如主码由多个属性组成,则要全部迁移;

5、第五阶段:定义属性

(1)标识和定义非主属性;(2)建立属性的所有者;(3)确认属性的定义;(4)绘制局部数据视图;

(A)实体集的名称和编号写在矩形框外的上面;

(B)主码属性写在矩形框内水平线的上面并用“PK”标注;(C)外码属性写在矩形框内水平线的下面并用“FK”标注;(D)非主属性也可以写在矩形框内水平线的下面;

第五章 关系数据库逻辑设计

5.1 概述 5.2 基本概念

5.2.1 关系模型

1、关系模型采用一个二维表格在计算机中组织、存储、处理和管理数据。

(1)关系名(数据库名):由字母数字组成;(2)属性名;

(3)关系模式和关系:描述模式描述关系的静态结构,由模式名、关系模式所包含的属性及属性值所满足的条件组成模式定义。

(4)元组:描述关系中的行;

(5)域:它定义关系的每个属性取值的类型;

(6)主码:能够惟一标识关系中每一个元组的属性或属性组;

(7)关系的数学定义:关系模式是建立在集合集论的基础上的,用数学的概念定义关系有;

(A)定义一:域是值的集合,同一个域中的值具有相同的数据类型;(B)定义二:(C)定义三:

(D)当关系引用了属性名后关系具有以下属性: [1] 不能有重复的元组; [2] 元组上下无序;

[3] 按属性名引用时属性左右无序; [4] 所有属性值都是原子项(不可再分);

(8)总结:关系是一张二维表,表中的一行被称为一个元组,一列称为属性,由一组域值组成。关系是元组的集合,关系中的每个元组在数学上被定义为这个关系所涉及的全部域值中笛卡儿积的一个元素。5.2.2 关系数据库

1、关系数据库是按照二维表组织和存储的相互关联的关系的集合,关系数据库模式是关系模式的集合;

5.2.3 关系的完整性

1、关系的完整性(完整性约束):是对关系的某种约束规则和关系满足的定义。通常这组约束规则用来限定和检查数据库所含实例的合法性和正确性;

2、完整性约束分静态和动态两种,静态完整性约束是基于关系模式的,主要有主码、外码约束和域约束组成;动态完整性约束是基于企业的业务规则的。

3、静态完整性约束规则:

(1)主码约束:主码必须满足:

(A)惟一性:在一个关系中不存在两个元组,它们具有相同的主码值;

(B)最小性:不存在从组成主码的属性集中去掉一个属性,还仍能保持数据的惟一性;(2)外码约束:

(3)用户定义的完整性:

5.3 关系数据库设计理论

5.3.1 问题的提出

究竟一个关系数据库包含哪些属性是合理的,如何评价一个关系模式设计的优劣? 5.3.2 函数依赖

函数依理论利用一个关系中属性之间的依赖关系评价和优化关系模式,以保证存储到数据库中的关系具有较好特性;

1、函数依赖:

(1)设R(U)为一关系模式,X和Y为属性全集U的子集,若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数决定Y”或“Y函数依赖于X”,并记作XY,其中X称为决定因素,因为根据函数依赖定义,给定一个X,就能惟一决定一个Y。

(2)这里讨论的函数关系与数学上的不同,是不能计算的,是一个关系中属性之间存在的依赖关系;它是一种语义范畴的概念,只能根据两个属性之间的语义来确定一个函数依赖是否存在。

2、完全与部分函数依赖:

(1)在关系模式R(U)中,如果XY成立,并且对X的任何真子集X’不能函数决定Y,则称Y对X是完全函数依赖,被记作X---f---Y。(2)若XY,但Y不完全函数依赖于X,则称Y对X是部分函数依赖,记作X--pY;

3、传递函数依赖:

在关系R(U)模式中,如果X决定Y,(Y不属于X),Y不决定X,Y决定Z,则称Z对X传递函数依赖。

4、平凡与非平凡函数依赖:

(1)若X决定Y,但Y属于X,则称XY是平凡函数依赖,否则称非平凡函数依赖;(2)即平凡函数依赖,仅当其右边的属性集是左边属性集的子集时成立;

(3)非平凡函数依赖,仅当其右边的属性集至少有一个属性不属于左边有集合时成立;(4)完全非平凡函数依赖:仅当其右边的属性集中属性都不在左边的集合时成立;

5、码:

(1)在关系模式R(U)中,K为R的属性或属性组,若K函数决定A1.A2„.An,则K为关系模式R的候选码,包含在候选码中的属性称为主属性,否则为非主属性;

(2)若一个关系的候选码不止一个,则选定其中一个作为关系R的主码;

(3)关系的码属性除了必须完全函数决定关系的所有其他属性外,还必须满足最小化规则,即在关系模式R(U)中,不存在一个K的真子集能够函数决定R的其他属性。

6、函数依赖的推理规则:

(1)自反律:若Y(包含于)X(包含于)U,则XY成立;(2)增广律:若XY,且Z(包含于)U,则XZYZ成立;(3)传递律:若XY,YZ,则XZ成立;(4)合并规则:若XY,XZ成立,则XYZ;

(5)分解规则:若XY和Z(包含于)Y成立,则XZ也成立;(6)伪传递规则:若XY,YWZ,则XWZ成立;

7、属性集闭包:

(1)设F是属性集U上的函数依赖集,X为U的一个子集,那么对于F,属性集X关于F的闭包(用X+表示)为:X+={A|XA}(2)由属性集团包的定义可知,若想判断函数依赖XY是否成立,只要计算X关于函数依赖集F的闭包,若Y是X闭包中的一个元素则XY成立;

8、确定关系的码:

(1)利用迭代算法计算X+,步骤如下:

(A)选X作为闭包X+的初值X(0);

(B)由X(i)计算X(i+1)时,它是由X(0)并上属性集合A所组成,其中A满足下列条件:Y(包含于)X(i),且F中存在函数依赖YZ,而A(包含于)Z。因为U是有穷的,所以会得到X(i)=X(i+1),此时X(i)为所求的X+。

5.3.3 规范化设计方法

1、第一范式:

(1)定义:设关系模式R(F,U),如果R的每一个属性都是不可分的数据项,则此关系模式为第一范式;

(2)一个给定关系和第一范式(1NF)的区别:

(A)一个关系中的数据按照行和列的形式组织,每个元组具有相同数目的属性个数,且每一个元组的属性值具有统一的数据类型和长度;元组或属性的排列与顺序无关,每个元组必须通过一个属性或属性组惟一识别;

(B)第一范式实际上对关系增加了一个约束,即关系中元组的每个属性都只取一个值,第一范式是对关系模式的基本要求,不满足第一范式的数据库就不是关系数据库。

2、第二范式:

(1)定义:若关系模式R(F,U)是1NF,且每个非主属性完全函数依赖于码,则称R为第二范式,即在2NF中不存在非主属性对码的部分依赖;

(2)仅满足第一范式关系会存在种种问题,要消除必须用更高级的范式标准来设计,称为标准化;

(3)具体做法是将大的关系分解成多个小的关系,使分解后的关系满足更高级范式的要求。(4)第二范式实际上对关系增加了一个约束,就是关系中的每一个属性必须完全依赖于主码,即在第一范式的基础上,消除非主属性对主码的部分函数依赖可达到2NF;

3、第三范式:

(1)定义:若关系R(U,F)为第一范式,且不存在非主属性对主码的传递函数依赖,则称R为第三范式;

(2)第三范式是在第二范式的基础上对关系又增加了一个约束,就是关系中的每一个非主属性必须只依赖于主码。即2NF的基础上,消除非主属性对主码的传递函数依赖可达到3NF。

4、改进的第三范式:

(1)定义:如果关系模式R是1NF,且每个属性既不相存在部分函数依赖也不存在传递函数依赖于候选码,则称R是改进的第三范式(BCNF)。

5、多值依赖与4NF:

(1)多值依赖:表示关系中属性(如A、B、C)之间的依赖,对于A的每个值,都存在一个B或C的值的集合,而且B和C的值相互独立,记为:AB、AC(2)第四范式:如果关系模式R属于1NF,对于R的每个非平凡的多值依赖XY(Y不属于X),X含有候选码,则R是第四范式。即是从BCNF范式中消除主码内的独立依赖集(非平凡多值依赖)可达4NF;

6、连接依赖与5NF(1)连锁依赖:设关系模式R,R的属性子集为R1、R2、R3、R4、R5、R6、R7„.,当且仅当R的每个合法值等于R1、R2、R3、R4、R5、R6、R7„的投影连接时,称R满足连接依赖;

(2)第五范式:设R是一个满足5NF的关系模式,当且仅当R的每一个非平凡连接依赖都被R的候选码所蕴含,即从4NF中消除非候选码所蕴含的连接依赖为5NF;

7、总结:

(1)范式表达了关系模式满足的条件,也是衡量关系模式设计优劣的标准;

(2)利用范式进行规范化设计的目的是消除数据冗余,避免出现异常,使结构更合理;(3)规范化设计的基本过程是对关系进行的分解,消除属性间不合理的数据依赖,用一组等价的子关系代替原有的关系;

(4)数据库规范化的程序越高,其关系表就越多,从而增加了表之间连接运算的代价,影响了数据库的执行速度和性能。所以通常关系模式规范化工作仅做到3NF,这样既使关系中不合理的属性基本消除,规范化程度也不太高,保证数据库有较好的性能。

5.4 数据库模式设计

5.4.1 初始关系模式的设计

1、把ER图转换成关系模式:

(1)把ER模型中的每个实体集转换成一个同名的关系,实体集的属性就是关系的属性,实体集的码就是关系的码;

(2)把ER模型中的每个联系转换成一个关系,与该联系相连的各实体集的码以及联系的属性转换成为关系的属性。

(A)若联系为1:1,则每个实体集的码均是该关系的候选码;(B)若联系为1:n,则关系的码为n端实体集的码;(C)若联系为m:n,则关系的码为各实体集码的组合;(3)合并具有相同码的关系

2、检查确认对象:检查转换后的每个关系名和属性名是否符合数据库设计关于统一命名的约定; 5.4.2 优化关系模式

1、模式分解原则:(1)分解具有无损连接性:分解后的关系能够恢复成原来的关系;(2)分解保持函数依赖:

(A)无损连接和保持函数依赖是用于衡量一个模式分解是否导致原有模式中部分信息丢失的两个标准;

(B)当一个关系被分解后会出现几种结果,既有无损连接,又能保持函数依赖是较理想的分解结果,意味着在分解的过程中没有丢失原有模式的任何信息;

(C)一般情况下,分解到3NF就足够了,但在3NF关系下,仍存在一定程度上的更新异常或不一致的隐患,但与数据库性能比较起来是可以忽略的,因为在数据库设计过程中通过增加一些数据约束,就可以解决3NF引起的数据问题了。

3、优化属性:确定各字段的类型和长度;

4、确认模式满足需要: 5.4.3 数据完整性设计

1、指定义数据库中存储的数据值满足的约束条件,通过对存储的数据值的约束维护关系的完整性。

2、数据值满足条件分为:

(1)域约束:限制指定列的取值及范围;

(2)主码约束:定义每个关系的主码值不空,且惟一;

(3)引用完整性约束:定义不同模式的属性间满足的条件,及一个关系模式中属性间可能满足的条件;

5.4.4 安全模式和外模式的设计

1、根据选定的DBMS支持的安全控制特征来确定;

2、根据不同用户对数据库存取特点定义相关的外模式;

第六章 存储技术与数据库物理设计

6.1 文件组织

6.1.1 数据库的物理结构

1、数据库中的应用数据是以文件形式存储在外存上的,文件在逻辑上被组织成记录的序列,即每个DB文件可看作是逻辑记录的集合;

2、一个文件在磁盘上占有一定的物理存储空间,文件中的每个逻辑记录被映射存储到某个特定的磁盘块上,一个文件在物理上可以看作是由存放文件记录的一系列磁盘块组成,称为物理文件;

3、文件的逻辑记录与磁盘间的映射关系是由操作系统或DBMS来管理的,当需要对一个文件的逻辑记录进行操作时,先要根据这种映射关系找到该逻辑记录所在的磁盘块,然后再进行操作。

4、从数据库物理结构角度需要解决如下问题:

(1)文件的组织;(2)文件的结构;(3)文件的存取;(4)索引技术; 6.1.2 文件组织

1、数据库与文件的对应关系

(1)在外存中,数据库以文件形式组织,文件由逻辑记录组成,记录由多个域组成;(2)一个关系数据库包括一张或多张关系表,关系表与文件的对应关系有如下方式:

(A)每张关系表单独用一个文件来存储,由DBMS通过OS的文件管理功能来管理;(B)现代中大型DBMS是由OS直接分配一块大的磁盘空间,DBMS将该磁盘空间作为数据库磁盘文件直接管理,DB的所有关系表都存储在该文件中;

(4)关系表在逻辑上由一系列元组组成,元组由多个属性组成,每个元组可以用磁盘文件中的一个逻辑记录来存储,记录包括多个域,对应元组的多个属性;

2、文件记录格式:

(1)数据库文件通常采用两种逻辑记录格式:定长记录格式和变长记录格式;

6.2 文件结构与存取

6.2.1 堆文件

1、堆文件也称无序文件,记录随机在存储在文件物理空间是,新插入的记录存储在文件的末尾;

2、堆文件常常用作存储那些将来使用,但目前不清楚如何使用的记录,为了实现文件记录的有效存取,堆文件经常与附加的存取路径一起使用;

3、查找操行平均需要搜索(B+1)/2个磁盘块,效率比较低;

4、插入操作十分简单,先读文件头,找到最末磁盘地址,将最末磁盘块读入内存,将需插入的新记录写入磁盘块的末端,最后将修改过的磁盘块写回磁盘;

5、删除比较复杂,可以先找到被删除记录所在的磁盘块,读入内存后在内存缓冲区删除记录,最后再写回磁盘;也可以在每个记录的磁盘空间增加一个删除标志位,当需要删除记录时,将标示位置1; 6.2.2 顺序文件

1、顺序文件按照文件记录在查询码上的取值的大小顺序排列各个记录;

2、顺序文件的每个记录中有一个指针字段,根据查询码大小用指针将各个记录按序连接起来;

3、文件建立时,应尽量使记录的物理顺序与查找码的顺序一致,以减少访问磁盘块的次数;

4、根据查询条件对顺序文件进行查询时,如查询条件定义在查找码上,则使用二分法查找技术快速找到记录,如条件不在查找码上,则必须从头到尾依次扫描磁盘块,与堆文件一致,所以顺序文件的访问效率也不高;

5、顺序文件插入工作包括定位和插入:

(1)定位:在指针链中找到插入的位置,即插入记录在哪个记录的前面;

(2)插入:如有自由空间,则在该位置插入新记录,如没有自由空间,则只能插入溢出块中,重新调整记录指针链关系,保证记录顺序;

6.2.3 聚集文件

1、聚集文件是一种具有多种记录类型文件,存储了来自多个关系表的数据,每个关系表对应文件中的一种记录类型;

2、当数据库中数据量效大时,对数据库查询需要多次访问磁盘文件,严重影响性能指标,为了降低多表操作时的磁盘访问次数,提高多表查询速度,可采用聚集文件;

3、聚集文件将不同关系表中有关联关系的记录存储在同一磁盘块内,从而减少多表查询时磁盘块的访问次数,提高处理速度; 6.2.4 索引文件

是一种利用索引技术技术快速文件访问的文件组织和存取方法; 6.2.4 散列文件

是一种利用散列函数支持快速文件访问的文件组织和存取方法;

6.3 索引技术

6.3.1 基本概念

1、索引技术:是一种快速文件访问技术,它将一个文件的每个记录在某个或某些域(属性)上的取值与该记录的物理地址直接联系起来,提供了一种根据记录域的取值快速访问文件记录的机制;它的关键是建立取值域到记录的物理地址刘的映射关系,这种映射关系叫索引;

2、索引技术分类:

(1)有序索引技术:利用索引文件实现记录域(查找码)取值到记录物理地址间的映射关系,索引文件由索引记录组成,每个记录中记载一个索引项,索引项记录了某个特定的查找码值和具有该值的数据文件记录的物理地址;

(2)散列技术:利用一个散列函数实现记录域取值到记录物理地址间的直接映射关系;(3)有序索引:有序索引作为基于索引文件的索引技术,需要考虑两个问题:(1)如何组织索引文件中的索引记录;(2)如何从索引文件出发,访问数据文件中的数据记录;(A)当需要采用有序索引机制快速访问数据文件时,首先要为该数据文件建立一个索引文件,它是索引记录和索引项的集合;

(B)索引文件建立的方法:首先选定某些记录域作为查找码,然后建立数据记录在查找码上的取值与物理地址间的映射关系,组成索引项。所有索引项作为索引记录存储在索引文件中,索引文件根据某个特定的查找码值的顺序组织为顺序文件;

(C)一个数据文件可以有多个查找码和索引文件;

6.3.2 有序索引的分类及特点

1、聚集索引与非聚集索引

(1)对数据文件和它的一个特定的索引文件,如果数据文件中数据记录的排列顺序与索引文件中索引项的排列顺序相一致,则该索引文件称为聚集索引,否则称为非聚集索引;

(2)在一个数据文件上除了建立一个聚集索引外,还可建立多个非聚集索引;

2、稠密索引和稀疏索引

如果数据文件中的每个查找码都在索引文件中都对应一个索引记录,称为稠密索引,如果只一部分对应,则称为稀疏索引;

3、主索引和辅索引

在数据文件包含主码的属性集上建立索引称为主索引,在非主码属性上建立的索引称为辅索引;

4、单层索引和多层索引

(1)单层索引(线性索引):索引项根据键值在索引文件中顺序排列,组织成一维线性结构,每个索引项直接指向数据文件中的数据记录;

(2)当数据文件很大时,即使采用稀疏索引,建成的索引文件也很大,导致效率低下,为解决该问题,可对索引文件中的索引项本身再建立一级稀疏索引,组成2层索引结构;进一步地,可建立多层树型索引结构来快速定位;

6.4 散列技术

6.4.1 散列文件

1、散列是一种快速查找技术,它利用定义在文件记录上的查找码,通过计算一个散列函数,以散列函数值作为记录的物理地址,实现对文件记录直接快速访问。

2、首先指定文件记录的一个域作为查找码(散列域),然后定义一个查找码上的函数(散列函数),函数的输入为查找码值,输出为物理地址;

3、一般使用桶作为基本的存储单位,一个桶可存放多个文件记录,物理地址可以是记录所在的桶号,散列函数的输出可以是桶号; 6.4.2 散列函数

1、散列方法依赖于好的散列函数,它应该尽可能均匀地将查找码分布到各个桶中,具体要满足如下两个条件:

(1)地址的分布是均匀的;(2)地址的分布是随机的; 6.4.3 桶溢出

1、产生桶溢出的两个原因:

(1)文件初始设计时,为文件记录预留的存储空间不足;(2)散列函数的均匀分布性不好;

2、设计散列函数时,应根据文件大小决定物理空间,一般应有20%余量,再设计合适的桶数目和桶大小,尽可能留有一些空闲桶,降低桶溢出的可能性;

3、桶溢出的现象是难免的,需要DBS采用相应的桶溢出处理机制;

4、散列方法的缺点:为了避免桶溢出。必须选一合适的散列函数,但这比较复杂,而且不象索引文件那样可以据数据记录变化动态调整。

6.5 数据字典

1、数据字典(系统目录)中存储了数据库对象的各类描述信息和DBMS所需的控制信息,全称数据库元数据;

2、数据库对象的各类描述信息:包括外模式、模式、内模式以及它们之间的映射的描述;

3、DBMS所需的控制信息:包括查询优化、安全性检查、用户权限验证等;

4、数据字典主要包括:

(1)关系模式信息;

(2)与视图描述有关的信息;

(3)关系的存储结构和存取方法信息;(4)完整性约束信息;(5)安全性有关信息;(6)数据库运行统计信息;

6.6 数据库物理设计

6.6.1 设计步骤和内容

1、数据库物理结构设计:在具体的硬件环境、OS、DBMS约束下,根据数据库逻辑设计结果,设计合适的数据库物理结构。目标是存储空间占用少、访问效率高和维护代价低;

2、一旦选定了硬件平台、OS和DBMS,数据库的数据存储和存取方式等可用的物理模式也就随之确定了;

3、数据库物理设计主要包括以下步骤:

(1)数据库逻辑模式调整:将数据库逻辑模式及其视图转换为DBMS支持的基本表和视图,并利用DBMS提供的完整性机制设计业务规则;

(2)文件组织与存取设计:配置基本表的文件组织形式,据实际情况为基本表设计合适的存取方法和路径;

(3)数据分布设计:(4)安全模式设计:(5)确定系统配置:(6)物理模式评估: 6.6.2 数据库逻辑模式调整

1、物理数据库设计首先需要根据数据库逻辑结构信息,设计目标DBMS平台支持的基本表的模式信息,这些模式信息代表了所要开发的具体目标数据库的结构,这个过程称为数据库逻辑模式调整,主要包括如下设计内容:

(1)实现目标数据库基本表和视图:采用目标DBMS所支持的建表方法,设计基本表及其面向模型的完整性约束;

(2)设计基本表业务规则; 6.6.3 DB文件组织与存取设计

1、分析事务的数据访问特性

(1)使用事务-基本表交叉引用矩阵,分析系统内数据库事务对各个基本表的访问情况,确定事务访问了哪些基本表,对这些基本表执行了何种操作,并进一步分析各操作涉及到的基本表属性;

(2)估计各事务的执行频率;

(3)对每张基本表,汇总所有作用于该表上的各事务的操作频率信息;

2、了解并选择数据库文件结构

(1)如果数据库中的一个基本表中的数据量很少,并且操作非常频繁,该基本表可采用堆文件组织方式;

(2)顺序文件支持基于查找码的顺序访问,也支持快速二分查找;

(3)如果用户查询是基于散列域值的等值匹配,特别是如果访问顺序是随机的,散列文件比较合适。但散列文件组织不适合以下情况:(A)基于散列值域的非精确查询;(B)基于非散列域进行查询时;

(4)B-树和B+树文件是实际数据库系统中使用非常广泛的索引文件结构,适合于定义在大数据量基本表上、基于查找码的等值查询等;

(5)如果某此重要而频繁的用户查询经常需要进行多表连接操作,可考虑将这些基本表组织为聚集文件;

3、设计存取路径:

(1)为数据库文件设计合理的物理存储位置;

(2)为基本表设计索引机制:索引可以提高文件存取速度,改善访问性能,但索引由DBMS管理,它的建立、维护需要一定的系统开销,数据的操作会引起索引的重新调整,还占用一定的存储空间,可根据如下原则决定是否为一个基本表建立索引:

(A)对于经常需要查询、连接、统计操作,且数据量大的基本表可考虑建立索引,而对于经常执行插入、删除、更新操作或小数据量的基本表应尽量不建立索引;

(B)一个基本表上除了可以建立一个聚集索引外,还可以建立多个非聚集索引,但索引越多,对表内数据更新所需的开销越大,对于一个更新频繁的表应少建或不建索引;

(C)索引可以由用户根据需要随时创建或删除,以提高数据查询性能;

6.6.4 数据分布设计

1、不同类型数据的物理分布

(1)各种数据在系统中的作用不同,使用的频率也不一样,应根据实际使用情况放在合适的物理介质上;

(2)使用频率低但数据量大的,可以放在磁带中,而使用频繁,要求响应时间短的,必须放在支持直接存取的磁盘存储介质上;

2、应用数据的划分和分布

(1)根据数据的使用特征划分:可将基本表划分为频繁使用分区和非频繁使用分区,分别存放在不同的磁盘上,对前者可考虑建立B+树等多层索引,而后者不建立或只建立单层索引;

(2)根据时间、地点划分;

(3)分布式数据库系统中的数据划分:

3、派生属性数据分布

(1)派生属性指该属性的取值可根据表中其他属性的取值惟一确定;(2)对带有派生属性的基本表可采用两种实现方式:(A)将派生属性作为基本表内单独一列,称为派生列;(B)派生属性不出现在基本表中;

4、关系模式的去规范化

(1)在数据库物理设计阶段,可以对考虑数据库中某些3NF、BCNF模式是否可以降低其规范化程度,以提高查询效率,这称为关系模式的去规范化处理,但不满足3NF的关系模式又可能导致数据库访问异常,因此,设计基本表时,需在规范化和查询效率间权衡;

6.6.5 安全模式设计

1、系统安全设计

(1)是指为数据库服务器合法用户分配用户名和口令,使其能够正常登录服务器访问所需的数据,还可采用基于CA认证的系统安全控制机制;

2、数据安全设计

(1)是指通过数据库系统视图机制和授权机制为用户对数据库对象访问的权限;

(2)引用数据视图机制,只给用户需求的那部分数据访问权限,防止由合法用户造成信息泄密,另外数据视图还可以防止基本表发生改变时,影响用户的访问;

(3)权限是允许用户对一给定的数据库对象可执行的操作;

(4)数据库安全设计需要根据用户需求,采用授权机制,为用户分配合法访问的权限; 6.6.6 确定系统配置

1、要根据实际应用系统的运行情况配置系统参数; 6.6.7 物理模式评估

1、在设计过程中,通过对时间效率、空间效率、维护代价和用户要求权衡考虑,择优采用;

2、评估物理数据库的方法完全依赖所选用的DBMS,主要从定量估算各方案的存储空间、存取时间和维护代价入手;

第七章 数据库应用系统功能设计

7.1 软件体系结构与设计过程

7.1.1 软体体系结构

1、软件体系结构又称软件架构,软件体系结构={构件,连接件,约束}。

2、构件是组成系统的具有一定独立功能的不同粒度的程序模块、独立程序或软件子系统,是组成软件的系统元素;

3、连接件将不同的构件连接起来,表示了构件间的相互作用;

4、约束一般是对象连接时的规则,或指明了构件连接的条件。

5、软件体系结构描述了软件系统的总体组织和层次结构、系统元素及其功能分配、全局控制、系统元素间的协调和交互、数据存取等; 7.1.2 软件设计过程

1、概要设计

(1)定义:是建立软件系统的总体结构和模块间的关系,定义各功能模块的接口,设计全局数据库、规定设计约束、制定组装测试计划;

(2)一个好的概要设计要求是:良好的总体结构、功能模块间较低的耦合度和较高的内聚度,并尽量降低模块接口的复杂性;

(3)可以采用层次结构图表示软件总体结构,图中节点代表功能模块。

2、详细设计

(1)是细化概要设计产生的功能模块,形成可编程的程序模块,并用某种过程设计语言设计程序模块的内部细节,为编写软件代码提供依据。

(2)可选用结构化设计方法、面向对象设计方法等;

3、关于软件总体设计

(1)一些大的DBAS可根据逐步抽象和层次化原则,将概要设计分解成两个步骤:

(A)首先是软件总体结构设计,即对软件需求进行分解;

(B)第二步是将每个子系统进一步划分为功能模块,定义各模块的数据结构、相互间交互关系;

7.2 DBAS总体设计

7.2.1 系统总体设计

任务:是根据系统规划与分析结果,特别是技术可行性分析,以及系统需求规范,确定系统总体框架,作为后续设计活动的基础。

1、确定DBAS体系结构

(1)指将系统从功能、层次结构、地理分布等角度进行分解,划分为多个子系统。定义各子系统应实现的功能,设计全局控制,明确各子系统间的交互和接口关系;

(2)可以从功能角度进行分解,也可以根据DBAS自身固有的层次结构特征进行分解;(3)将系统分解为多个子系统后,需选择和设计合适的系统体系结构,将这些子系统组织起来,并设计它们之间的交互关系;

(4)DBAS体系结构可采用一些通用体系结构,也可根据DBAS所属的特定应用领域相关的体系结构。

2、软硬件造型和配置设计(1)总体设计阶段需要对系统的软硬件平台、存储设备、操作系统、数据库管理系统等作出合理的选择,并进行初步配置设计;

(2)还需要选择系统开发采用的合适的中间件和开发工具,确定开发模式和开发语言;

3、应用软件总体设计

根据系统体系结构,确定相应的软件系统模块划分、功能分配,选择合适的软件体系结构;

4、业务规划初步设计 7.2.2 软件总体设计

1、DBAS软件包括OS、DBMS、开发环境、中间件和应用软件;

2、应用软件分为数据库事务和应用程序;

3、数据库事务通过对数据库的直接操作实现数据管理和处理功能;

4、应用程序一方面对数据库进一步加工处理,或从中抽取新信息实现复杂的数据处理功能;另一方面还可实现与数据库访问无关的功能;

5、应用软件总体设计:

(1)从数据流图、事务规范和业务规则需求分析结果出发,将系统分解为一系列子系统,分配相应功能,定义系统间协调交互机制;

(2)进一步进行子系统结构设计,将各子系统从功能上划分为:数据库事务模块和应用程序模块;

(3)确定子系统、应用程序模块、数据库事务间的全局控制和调用关系,并按体系结构框架组织起来。

6、总体设计得到的系统总体结构和分层模块结构,可以用模块结构图表示;

6、模块结构图,是结构化程序设计中描述系统结构的一种图形化工具,它定义了模块的名字、功能和接口,并在模块结构图中反映出结构化设计思想。它只关心模块的外部特性,与模块内部流程无关,它由模块、调用、数据、控制和转接等于种基本符号组成; 7.2.3 客户/服务器体系结构

1、基于C/S体系结构的DBAS将DBMS数据管理功能与数据库应用相分离,将DBMS数据库管理功能在客户端和服务器之间进行合理的分布和配置;

2、数据库报务器完成DBMS的核心功能,而客户端负责完成用户交互功能,接收用户数据,生成并向数据库报务器发出数据操作请求,接收数据查询结果并通过客户端反馈给用户;

3、两层C/S结构的特点是:

(1)DBAS的数据管理和处理功能,被分解并分布在客户端和服务器上;(2)服务器楞为多个客户端应用提供共享的数据管理功能;(3)客户端应用可通过网络访问多个不同数据源;

(4)客户端除了完成人机交互功能外,还需要完成面向应用的数据处理功能,负荷重,属于典型的“胖客户端”;

4、三层浏览器/服务器(B/S)结构是一种互联网环境下的新型数据库应用系统结构,它将数据处理功能分解并分布在表示层、功能层和数据层三层次上,分别由WEB浏览器、WEB服务器和数据库服务器来实现,其特点是:

(1)表示层位于客户端,由WEB浏览器实现,其功能单一,没有其他应用程序,属于典型的“瘦客户端”;

(2)功能层位于WEB服务器,实现面向具体应用领域的业务规则;

(3)数据层位于数据库服务器,通过DBMS完成具体的数据存储和存取等数据管理功能;

7.3 概要设计

7.3.1 数据库事务概要设计

1、如数据处理需求分析的结果是数据流图,则可将待设计的事务看作是程序,采用软件工程中面向数据流的程序设计方法,设计事务内部的数据处理流程和结构,也就是设计事务处理逻辑,过程包括:

(1)从数据流图中识别出该事务对应的子数据流图;(2)确定子数据流图中的信息流类型,划定流界;

(3)将子数据流图映射为事务的结构和处理流程,即事务逻辑;

(4)修正和细化事务设计,识别事务所访问的数据库对象和数据库用户;

2、如数据处理需求分析的结果表示为事务规范,由于事务规范包括了事务名称、事务描述、访问的数据项、用户等信息,可直接从事务描述出发,根据具体应用领域的知识设计事务逻辑,得到事务概要结果;

3、一个完整的事务概要设计包括:事务名称、访问的关系表及属性、事务处理逻辑、事务用户;

4、检查关系表对数据库事务的支持性:

(1)对每一个事务,根据需求分析阶段的事务分析,列出该事务所访问的各个数据项;(2)列出事务访问的数据项所在的关系表和对应的属性;(3)如事务访问的数据项同时出现在多个表中,检查关联关系;

(4)检查是否存在某些事务,访问的一些数据项未出现在任何关系表中; 7.3.2 应用软件概要设计

1、应用软件概要设计,按照逐步求精、模块化、信息隐藏和功能细化原则,根据DBAS需求分析阶段得到的系统功能和业务规则描述,在总体设计结构基础上,将DBAS应用软件进一步细化为模块/子模块,组成软件的系统-子系统-模块-子模块层次结构,并对这些系统元素从结构、行为和数据三方面进行设计;

7.4 详细设计

7.4.1 数据库事务详细设计

1、事务详细设计,是从事务概要设计得到的事务流程出发,在DBMS平台下,采用事务实现机制,和高级程序设计语言,利用SQL语句和数据库访问接口,在DBMS平台和开发环境下,进一步细化事务设计,设计具体的实现模式; 7.4.2 应用软件详细设计

1、根据概要设计中定义的各程序模块功能和输入输出数据需求,结合具体的设计环境和机制,设计各模块的内部处理流程和算法、数据结构、对外接口等;

7.5 人机界面设计

1、人机界面设计原则:

(1)用户应当感觉系统的运行始终在自己的控制之下,保持用户与人机界面间的双向交流;(2)当系统发生错误或程序运行时间较长时,用户界面应该为用户提供有意义的反馈信息;(3)应该忍受用户在使用过程中发生的各种操作错误,并能够方便地恢复过来,保证系统不受或少受影响;

(4)应该遵循一定的标准和常规;

(5)采取灵活多样的数据输入方式,尽量减少用户数据输入负担;

2、人机界面设计最好采用原形迭代法:

(1)初步设计

(2)用户界面细节设计;(3)原形设计与改进;

第8章 关系数据库操作语言SQL

8.1 SQL支持的数据类型

8.1.1 数值型

1、准确型

2、近似型 8.1.2 字符串型

1、普通编码字符串类型;

2、统一编码字符串类型—Unicode编码;

3、二进制字符串类型; 8.1.3 日期时间类型 8.1.4 货币类型

8.2 定义和维护关系表

8.2.1 关系表的定义与删除

1、定义表

CREATE TABLE <表名>(<列名><数据类型>[列级完整性约束定义]{, <列名><数据类型>[列级完整性约束定义]„}[,表级完整性约束定义])

1、列级完整性约束:

(1)NOT NULL:取值非空;

(2)DEFAULT:指定列的默认值,形式:DEFAULT 常量;(3)UNIQUE:列取值不重复;

(4)CHECK:列的取值范围,形式:CHECK(约束表达式);(5)PRIMARY KEY:指定本列为主码;

(6)FOREIGN KEY:定义本列为引用其他表的外码;

2、删除表 DROP TABLE <表名>

8.2.2 修改表结构 ALTER TABLE <表名>

8.3 数据操作语言

8.3.1 数据查询

1、查询语句的基本结构:

SELECT <目标列名序列> FROM <数据源> {WHERE , GROUP BY , HAVING , ORGER BY}(1)比较:SELECT A,B,C FROM TABLE_A WHERE A>30;(2)确定范围:WHERE A(NOT)BETWEEN 初始值 AND 结束值;(3)确定集合:WHERE A(NOT)IN(‘A1’,‘A2’„.‘A3’);(4)字符串匹配:WHERE A LIKE <匹配符>;(5)四种<匹配符>:

(A)_(下划线):匹配任意一个字符;(B)%(百分号):匹配0个或多个字符;(C)[ ]:匹配[ ]中的任意一个字符;(D)[^]:不匹配[ ]中的任意一个字符;

(6)涉及空值的查询:WHERE A IS(NOT)NULL;

(7)多重条件查询:AND(条件必须全部为TRUE,结果才为TRUE),OR(任一条件为TRUE,结果即为TRUE);

(8)对查询结果进行排序:ORDER BY A [ASC(顺序)| DESC(逆序)];(9)列别名:列名 AS 新列名;

(10)消除取值相同的行:SELECT DISTINCT A FROM TABLE_A;(11)使用聚合函数统计数据:SQL的聚合函数:

(A)COUNT(*):统计表中元组的个数;

(B)COUNT([ALL(全部)| DISTINCT(无重复)] <列名>):统计本列非空列值的个数;

(C)SUM(列名):计算列值的总和(必须是数值型列);(D)AVG(列名):计算列值平均值(必须是数值型列);(E)MAX(列名):求列最大值;(F)MIN(列名):求列最小值;(12)对查询结果进行分组计算:

(A)使用GROUP BY;(B)使用HAVING子句;

3、连接查询

(1)内连接:FROM 表1 JOIN 表2 ON(连接条件);

(2)自连接:一种特殊的内连接,相互连接的表在物理上是同一张表,但通过为表取别名的方法,在逻辑上分为两张表;

(3)外连接:输出不满足连接条件的元组,格式:

FROM 表1 LEFT|RIGHT OUTER JOIN 表2 ON(连接条件)

4、查询语句的扩展:

(1)合并多个结果集:SELECT 语句1 UNION SELECT 语句2„„,使用UNION的两个基本规则:

(A)所有查询语句中列的个数和列的顺序必须相同;(B)所有查询语句中对应的数据类型必须兼容;(2)将查询结果保存到新表中:SELECT 查询列表序列 INTO 新表名 FROM 数据源;(3)使用TOP限制结果集行数:TOP n [percent] [WITH TIES](A)TOP n :表示取查询结果的前n行;(B)TOP n percent:表示取查询结果的前n%行;(C)WITH TIES:表示包括并列的结果;(4)使用CASE表达式:

(A)简单CASE表达式:(B)搜索CASE表达式;

5、子查询:如果一个SELECT语句是嵌套在一个SELECT、INSERT、UPDATE或DELETE语句中,则称为子查询或内层查询,包含子查询的语句称为主查询或外层查询;

(1)使用子查询进行基于集合的测试,形式:WHERE 表达式 [NOT] IN(子查询);(2)使用子查询进行比较测试,形式:WHERE 表达式 比较运算符(子查询);(3)使用子查询进行存在性测试,形式:WHERE [NOT] EXISTS(子查询); 8.3.2 数据修改

1、添加数据:INSERT [INTO] 表名 VALUE 值列表;使用插入单行语句时要注意:

(1)值列表中的值与列名表中的列按位置顺序对应,要求它们的数据类型必须一致;(2)如果[表名]后边没有指明列名,则值列表中的值的顺序必须与表中列的顺序一致,且每一列均有值;

2、更新数据:形式 UPDATE 表名 SET [列名=表达式] [WHERE 更新条件];

3、删除数据::形式DELETE [FROM] 表名 [WHERE 删除条件];

8.4 索引

1、创建索引:CREATE [UNIQUE] [CLUSTERED | NONCLUSTERED] INDEX 索引名 ON 表名

(1)UNIQUE:表示要创建的索引是唯一索引;(2)CLUSTERED:表示要创建的索引是聚集索引;(3)NONCLUSTERED:表示要创建的索引是非聚集索引;

2、删除索引:DROP INDEX 索引名;

8.5 视图

8.5.1 定义视图

1、语法格式:CREATE VIEW 视图名 AS SELECT 语句 [WITH CHECK OPTION]

2、需要注意下列几点:(1)在定义视图时要么指定全部视图列,要么全部省略不写。如果省略了视图列名,则视图的列名与查询语句的列名相同。但如下情况则要明确指出组成视图的所有列名: A、某个目标列不是单纯的属性名,而是计算函数或列的表达式; B、多表连接时选出了几个同名列作为视图的字段; C、需要在视图中为某个列选用新的更合适的列名。

(2)WITH CHECK OPTION选项表示通过视图对数据进行增加、删除和更改操作时要保证对数据的操作结果要满足定义视图时指定的WHERE子句条件;

3、视图通常用于查询数据,也可修改基本表中的数据,但不是所有的视力都可以这样。

4、定义单源表视图—视图数据可只取自一个基本表的部分行、列,这样的视图行列与基本表行列对应,这样定义的视图一般可以进行查询和更改数据操作

5、定义多源表视图—视图数据可以来自多个表中,这样定义的视图一般只用于查询,不用于修改数据。

6、在已有视图上定义新视图—可以在视图上再建立视图,这时作为数据源的视图必须是已经建立好的。

7、定义带表达式的视图—在定义基本表时,为减少数据库中的冗余数据,表中只存放基本数据,由基本数据经过各种计算派生出的数据一般是不存储的。所以定义视图时可以根据需要设置一些派生属性列,在这些派生属性列中保存经过计算的值。这些派生属性由于在基本表中并不实际存在,因此,也称它们为虚拟列。包含虚拟列的视图也称为带表达式的视图。

8、含分组统计信息的视图—指定义视图的查询语句中含有GROUP BY 子句,这样的视图只能用于查询,不能修改数据。8.5.2 删除视图

1、格式为:DROP VIEW <视图名> 8.5.3 视图的作用

1、简化数据查询语句;

2、使用户能从多角度看到同一数据;

3、提高了数据的安全性;

4、提供了一定程度的逻辑独立性

第9章 事务调度与并发控制

9.1事务与事务调度

9.1.1 事务的概念

1、事务是构成数据库应用中一个独立逻辑工作单元的操作的集合,也是访问并可能更新数据库中各种数据项的一个程序执行单元。数据库系统通过执行各种事务实现对数据库数据的操作,管理和执行事务是DBMS的基本功能。9.1.2 事务的特性(ACID特性)

1、原子性(Atomicity)

一个事务对数据库的所有操作是一个不可分割的工作单元,这些操作要么全部执行,要么一个也不执行。

2、一致性(Consistency)

当一个事务独立执行时,其执行结果应维护数据库的一致性,即数据库不会因事务执行而受到破坏。数据库满足全部完整性约束,处于正确的状态;

3、隔离性(Isolation)

当多个事务并发执行时,系统应保证一个事务的执行结果不受其他事务的干扰,事务并发执行结果与这些事务串行执行时的结果是一样的;

4、持久性(Durability)

一个事务一旦成功完成全部操作,则它对数据库的所有更新就永久地反映在数据库中,即使以后数据库发生了故障; 9.1.3 事务调度

1、一个事务中各操作的执行顺序和执行时机一方面取决于事务自身内部逻辑,另一方面也受DBMS中事务调度机制的控制。当多个事务并发执行时,DBMS必须采用合适的并发调度机制合理安排各个事务执行顺序,以保证事务的ACID特性。

2、调度分为串行调度和并发调度,串行调度的特点是一个事务的所有操作都执行完后才开始执行另一事务,不存在事务操作的交叉执行;不同事务操作的交叉执行称为并发调度,DBMS交叉执行来自多个事务的各个操作,以提高数据库系统的性能。9.1.4 可串行化调度

1、事务的串行调度能够产生正确的结果,但执行效率低,如果并发调度S等价于某一定义在TS上的串行调度,那么S称为可串行化调度;

2、给定两个定义在事务集TS上的的调度S和S’,如果可以通过交换S中一系列非冲突操作的执行顺序将S转换为S’,则称S与S’是冲突等价。

3、如果定义在事务TS上的并发调度S冲突等价于事务集TS上的某个串行调度S’,则称S是冲突可串行的。

4、在引入冲突可串行概念后,判断一个并发调度是否正确可以归结为判断该调度是否冲突可串行的。

9.2 基于锁的并发控制技术

9.2.1 锁的概念

1、对数据库系统中每个可能被多个事务并发访问的数据项设置锁,锁代表了对该数据项的访问权限。即事务T在访问数据项Q前须向DBMS申请获得设置在Q上的锁,如成功,则T获得对Q的访问权,T对Q操作完成后,释放所占用的锁,允许其他事务获得该锁并访问Q,在T释放设置在Q上的锁前,其他事务不能访问Q。

2、锁的类型有两种:

(1)互斥锁(X锁):若T获得Q上的X锁,则T可以对Q读写,其他事务不能再对Q进行任何操作,直到T释放Q上的锁;

(2)共享锁(S锁):若T获得Q上的S锁,则T可以对Q进行读取操作,但不可以修改,同时,允许其他事务再申请获得Q上的S锁,与T并行读取Q,但在T释放Q上的S锁前,其他事务不能对Q做任何修改;

9.2.2 加锁协议

1、保证数据一致性的三级加锁协议:

(1)1级加锁协议要求事务T在修改数据项Q之前必须先对Q加X锁,直到事务结束才释放,事务结束包括正常结束和非正常结束,但事务如果只对Q读而不写,则不需对Q加锁;

(2)2级加锁协议是在1级加锁协议基础上,要求T在读取Q前必须先对其加S锁,读完后立即释放S锁;

(3)3级加锁协议是在1级加锁协议基础上,要求在读取Q前必须先对其加S锁,但需等到事务结束后才释放S锁。

9.2.3 两阶段锁协议

1、两阶段锁(2PL)基本原理如下:

(1)每个事务的执行过程划分为两个阶段,加锁阶段和解锁阶段;

(2)在加锁阶段,事务可以申请获得任何数据项上的任何类型的锁,但是不允许释放任何锁;(3)在解锁阶段,事务可以释放任何数据上的任何类型的锁,但是不能再申请任何的锁;(4)每个事务开始执行后就进入加锁阶段,当第一次释放锁后,即进入解锁阶段。9.2.4 锁粒度

1、施加X锁和S锁的数据项大小称为锁粒度。

2、锁粒度越大,系统中可以被锁的数据项就越少,事务的并发执行度也越低,但同时系统的开销也小,相反,当锁粒度越小时,事务的并发度高,但系统开销也较大;

9.3 死锁处理

9.3.1 死锁预防

1、一次加锁法

该方法要求每个事务在开始时必须将需要访问的数据项全部加锁,否则不能执行下去,也就是要求事务必须一次性地获得对需要访问的全部数据项的访问权; 该方法的缺点是:

(1)多个数据项会被一个事务长期锁定独占,导致其他事务无法及时访问这些数据项,降低了系统的并发程度;

(2)由于很难事先精确知道每个事务在执行过程中需要加锁的全部数据项,只能扩大加锁范围,将事务执行时可能访问的所有数据项全部加锁,进一步降低了系统的并发程度;

2、顺序加锁法

该方法对数据库中事务访问的所有数据项规定一个加锁顺序,每个事务在执行过程中必须按此顺序对所需数据加锁; 该方法的缺点:

(1)数据库中需要加锁的数据项非常多,并且不断变化,维护这些数据项的加锁顺序很困难,代价非常大;

(2)事务访问的数据项有时无法事先完全确定,有时很难要求事务按照固定的顺序对这些数据项进行加锁;

9.3.2 死锁检测与恢复

1、死锁检测

(1)可以利用事务等待图进行死锁检测,数据库系统出现死锁当且仅当事务等待图中包含回路,而且回路中的所有事务就是处于死锁的事务;

(2)数据库并发控制子系统动态地构造和维护事务等待图,并周期地检测等待图,如图中有回路,则说明系统中出现了死锁;

2、死锁恢复

(1)当发现死锁存在时,系统可以通过死锁恢复机制将系统从死锁中解救出来,通常是选取一个或几个死锁事务,撤消这些事务,释放其所有的锁,消除事务等待图中的回路,从而解决了系统死锁问题;

(2)如果决定撤消哪个事务或哪些事务,有两个原则:

A、选择处于最多条回路交点处的事务; B、选择具有最少撤消代价的事务。

9.4 活锁处理

1、如果一个事务在系统不存在死锁的情况下,长期得不到DBMS的获批,处于长时间等待中的情况叫活锁,为了避免活锁,DBMS可采用先来先服务的原则解决。

第10章 数据库的实施、运行和维护

10.1数据库的实施

10.1.1 定义数据库结构

1、为了实现数据库的逻辑结构设计和物理结构设计结果,必须建立实际的数据库,即在确定了数据库的逻辑结构和物理结构后,开发人员使用具体的DBMS提供的数据定义语言(DDL)来严格描述数据库结构。10.1.2 数据装载

1、完成了数据库定义后,还须装入各种实际数据;

2、由于数据的来源不同,其组织方式、结构、格式会不同,可能出现源数据与新数据库结构不相容;

3、我们可以先将源数据提取出来,存入计算机,然后分类转换,成为符合新数据库结构的数据,再存入数据库,具体步骤如下:

(1)筛选数据;(2)转换数据格式;(3)输入数据;(4)校验数据;

4、为完成初始数据的录入,通常需要设计一些数据录入子系统,由计算机辅助完成入库工作,对某些纸质数据或数据量少的数据,可由人工一条条进行录入;而对于数据量大的数据,可考虑采用批量数据装载程序来实现。10.1.3 编写与调试应用程序

1、只有当数据库的结构建立好后,才能开始应用程序的编写和调试;

2、可使用模拟数据进行程序的调试。10.1.4 数据库的试运行

1、应用程序调试完成并已有一小部分数据入库,就可以开始数据库的试运行,也称联合调试;

2、试运行十分重要,因为:

(1)检测应用程序在接近真实的环境中运行是否符合设计要求;(2)检测系统设计的性能和评价。

3、试运行的工作主要有两个:

(1)功能测试:运行数据库应用程序,执行各种操作,测试程序是否满足设计要求,找出不足,改进现有程序直到符合设计要求;

(2)性能测试:测量系统的性能指标,分析是否符合设计目标。

10.2 数据库的运行和维护

1、数据库设计并试运行后,如试运行结果符合设计目标,数据库就可以真正投入运行了,同时也标志着开发任务的基本结束和维护工作的开始;

2、维护工作包括:

(1)数据库的转储与恢复;(2)数据库安全性和完整性控制;(3)数据库性能的检测与改善;(4)数据库的重组和重构。

10.3 监控分析

1、数据库的监控分析:指管理员借助相应工具在数据库运行过程中监测数据库系统的运行情况,掌握数据库当前或以往的负荷、配置、应用和其他相应信息,并对监测数据进行分析,分析数据库的性能参数和环境信息,评估系统的整体运行状态,为系统的安全运行和性能调优提供依据,并提出相应的改善措施,帮助管理人员尽早清除数据库的性能隐患;

2、监控分析的目的:保证数据库系统安全、稳定地运行,以便在发现不正常的情况时,及时对系统进行维护;

3、根据实现的方法不同,监控的机制分为:

(1)自动监控机制;(2)手动监控机制。

4、根据监控的对象不同,监控分为:

(1)对数据库架构体系的的监控;(2)对数据库性能的监控。

10. 4 空间管理

1、在数据库运行过程中,对数据库空间使用情况,特别是空间的增长情况进行监控,并采取相应的措施对空间进行管理非常重要;

2、空间管理主要包括:创建数据库空间,更改空间大小,删除空间,修改空间状态,新建、移动、关联数据文件等;

10. 5 参数调整

1、外部调整:(1)CPU:当数据库操作对CPU的要求超过数据库服务器的CPU性能时,数据库性能就受到CPU的限制,使数据库操作变慢;如业务高峰时,CPU的使用量仍然很低,说明服务器CPU资源充足;

(2)网络:大量的SQL数据在网络上传输会导致网速变慢,调整网络设备,也可以一定程度上提高数据库的性能;

2、调整内存分配

3、调整磁盘I/O

4、调整竞争:

(1)修改参数以控制连接到数据库的最大进程数;(2)减少调试进程的竞争;(3)减少多线程服务进程的竞争;(4)减少重做日志缓冲区竞争;(5)减少回滚段竞争。

10. 6 查询优化

1、合理使用索引:索引是数据库中重要的数据结构,根本目的就是为了提高查询效率,使用原则如下 :

(1)经常在索引中作为条件被使用的列,应为其建立索引;

(2)频繁进行排序或分组(即进行group by或order by操作)的列,应为其建立索引;(3)一个列的值域很大时,应为其建立索引;

(4)如果待排列的列有多个,应在这些列上建立复合索引;(5)可以使用系统工具来检查索引的完整性,必要时进行修复。

2、避免或简化排序:因为磁盘排序的开销很大,当能够利用索引自动以适当的次序产生输出时,优化器就可以避免不必要的排序步骤,以下是一些影响因素:

(1)由于现有的索引不足,导致排序时索引中不包括一个或几个等待排序的列;(2)group by或order by子句中列的次序与索引的次序不一样;(3)排序的列来自不同的表。

为了避免不必要的排序,就要正确地增建索引,合理地合并数据库表。如排序不可避免,那么应试图简化它。

3、消除对大型表行数据的顺序存取:在嵌套查询中,对表的顺序存取对查询效率可能产生致命的影响,解决方法就是对连接的列进行索引。还可以使用并集来避免顺序存取。

4、避免相关子查询:查询嵌套层次越多,效率越低,应尽量避免子查询,如不可避免,那么要在子查询中过滤尽量多的行;

5、避免困难的正规表达式:避免含MATCHES和LINK关键字的正规表达式;

6、使用临时表加速查询:把表的一个子集进行排序并创建临时表,有时能加速查询;

7、用排序来取代非顺序磁盘存取;

8、不充分的连接条件;

9、存储过程;10、11、不要随意使用游标; 事务处理。

第11章 故障管理

11.1 事务

1、事务是数据库的逻辑控制单位,是操作数据的一个程序执行单元。

2、为了保证数据的完整性,要求数据库系统维护事务具有如下性质:

(1)原子性:事务是一个不可分割的工作单位,事务中的操作要么都做,要么都不做;(2)一致性:事务执行的结果必须使数据库从一个一致的状态变到另一个一致的状态;(3)隔离性:一个事务内部的操作及使用的数据对于其他并发事务是隔离的;

(4)持续性:一个事务提交后,它对数据库中数据的改变是永久性的,即使系统可能出现故障,也不会对其它执行的结果有任何影响。

11.2 故障的种类及解决方法

11.2.1 事务内部故障

1、预期的事务内部故障:

通过事务程序本身发现的事物内部故障,可以通过将事务回滚,撤销其对数据库的修改,从而使数据库回到一致性的状态;

2、非预期的事务内部故障:

(1)由于事务内部故障大部分属于此类,所以事务故障仅限指此类故障;

(2)事务故障表明事务没有提交或撤销就结束了,因此数据库可能处于不正确的状态,因此,恢复事务必须强行回滚事务,在保证该事务对其他事务没有影响的条件下,利用日志文件撤销其对数据库的修改,使数据库恢复到该事务运行之前的效果;(3)事务故障恢复是由系统自动完成的,对用户是透明的。11.2.2 系统故障(软故障)

1、指数据库在运行过程中,由于硬件故障、数据库软件及操作系统的漏洞、突然停电等情况,导致系统停止运转,所有正在运行的事务以非正常方式终止,需要系统重新启动的一类故障;

2、系统故障导致内存中的内容丢失,而在硬盘上的内容仍然完好;从而导致数据库的数据可以处于不正确的状态;

3、要消除这些事务对数据库的影响,保证数据库中数据的一致性,办法就是在计算机系统重新启动后,对于未完成的事务可能已经写入数据库的内容,回滚所有未完成的事务写的结果,以保证数据库中数据的一致性;对于已完成的事务可能部分或全部留在缓存区的结果,需要重做所有已提交的事务,以将数据库真正恢复到一致状态。

4、一句话,当数据库发生系统故障时,容错对策是在重新启动系统后,撤销(UNDO)所有未提交的事务,重做(REDO)所有已提交的事务。11.2.3 介质故障(硬故障)

1、指数据库在运行过程中,由于磁盘损坏、天灾人祸等情况,使用数据库中的数据部分或全部丢失的一类故障;

2、介质故障的容错对策采用两种方式:(1)软件容错:

是使用数据库备份及事务日志文件,通过恢复技术,恢复数据库到备份结束时的状态;(2)硬件容错:

目前常用的方法是采用双物理存储设备,最完全的方式是设计两套相同的数据库系统同时工作,数据的变化也同步,空间有一定距离,这样当发生损坏性的自然现象时,由于两套数据库系统具有空间距离,因此同时发生破坏的概率几乎为零,达到数据库的完全安全。

11.2.4 计算机病毒故障

1、计算机病毒是一种恶意的计算机程序,在对计算机系统造成破坏的同时也可对数据库系统造成破坏(主要破坏数据库文件);

2、可以通过设立防火墙预防,杀毒软件查杀已感染的文件和数据库备份来解决;

11.3 数据库恢复技术概述

1、恢复机制涉及两个关键问题:

(1)如何建立冗余数据;

(2)如何利用这些冗余数据实施数据库恢复。

2、最常用的建立冗余数据技术是数据备份和登录日志文件,他们通常是结合起来使用的。

11.4 数据转储

1、数据转储—指数据库管理员(DBA)定期拷贝数据库,并将拷贝得到的数据库放到其他介质中的过程。

2、DBA可在数据库系统发生故障后,利用这些副本恢复数据库,但此时恢复的数据库只能回到转储时的状态,要想恢复到故障前的状态,需要参考日志文件,重新运行转储后到故障前的所有事务才可以;

3、静态转储和动态转储

(1)静态转储:在静态转储过程中系统不能运行其他事务,不允许在转储期间对数据库的任何存取、修改活动。

(2)动态转储:允许转储操作和用户事务并发执行;

(3)静态转储虽然保证了数据的有效性,但却是以降低数据库的可用性为代价;而动态转储虽然提高了数据库的可用性,但数据库的有效性却得不到保证。

(4)为了能保证数据的有效性,而又不降低可用性,就需要引入日志文件,用它记录转储期间各事务对数据库的修改活动,然后使用动态转储的备份副本加上日志文件就可将数据库恢复到某一时刻的正确状态。

3、几种数据转储机制

(1)完全转储:对所有数据库进行备份,需占用较多时间和空间,可作为系统失败时恢复数据库的基础;

(2)增量转储:只复制上次备份后变化的文件;

(3)差量转储:对最近一次数据库完全备份以来发生的数据变化进行备份,优点是速度快,占用较少的时间和空间。

4、多种转储方法结合使用

(1)仅采用完全转储;(2)完全转储加增量转储;(3)完全转储加差量转储

11.5 登记日志文件

11.5.1 日志文件的格式和内容

日志文件是记录每个事务对数据库更新操作的文件,数据库系统在运行过程中,DBMS负责将所有事务的更新操作登记到日志文件中,也就是说日志文件是系统自动维护的。

1、以记录为单位的日志文件:其内容包括每个事务的开始标记、结束标记和所有更新操作;每个日志记录的内容包括:事务标识、操作类型、操作对象、更新前数据的旧值,和更新后数据的新值;

2、数据块为单位的日志文件:将更新前的整个数据块和更新后的整个数据块全部放在了日志文件中; 11.5.2 日志文件的作用

1、事务故障恢复和系统故障恢复必须使用日志文件(1)故障恢复的两个基本操作:UNDO和REDO(A)UNDO的作用是撤销事务,具体步骤:

(a)反向扫描日志文件,找到需要撤销的事务的更新操作;(b)对事务的更新操作执行逆操作;

(c)继续反向查找该事务的其他更新操作,并执行相应的逆操作;(d)重复执行步骤(C),直至遇到该事务开始记录。(B)REDO的作用是重做事务,具体步骤:

(a)正向扫描日志文件,找到需要重做的事务的更新操作;

(b)对事务重新执行日志文件登记的操作,即将日志文件中“更新后的值”写入数据库;(c)继续正向查找该事务的其他更新操作,并重新执行,将日志文件中“更新后的值”写入数据库;

(d)重复执行步骤(C),直至遇到该事务的提交记录。(3)事务故障恢复:只需把相应的事务作撤销UNDO即可;(4)系统故障恢复:

(A)正向扫描日志文件,找到系统故障前发生的所有事务,如果该事务没有完成,将其事务标记加入撤销队列,如果该事务已经完成,则将其事务标记加入重做队列;

(B)对撤销队列中的所有事务作撤销操作UNDO;(C)对重做队列中的所有事务作重做操作REDO。

2、在动态转储方式中必须建立日志文件

3、在静态转储方式中,也可以建立日志文件 11.5.3 登记日志文件的原则

1、登记的次序严格按并行事务执行的时间次序;

2、必须先写日志文件,后写数据库

11.6 具有检查点的恢复技术

11.6.1 检查点的作用

检查点最大限度地减少数据库完全恢复时所必须执行的日志部分; 11.6.2 检查点的引入

1、在日志文件中增加一类新的记录—检查点记录,增加一个“重新开始文件”,并让恢复子系统在登录日志文件期间动态地维护日志

2、检查点记录的内容:

上一篇:庆祝建党90周年主题征文活动下一篇:客房领班周总结范文