《数据库系统工程师复习资料》由会员分享,可在线阅读,更多相关《数据库系统工程师复习资料(18页珍藏版)》请在金锄头文库上搜索。
1、第一章 系统开发与运行1. 软件生存周期的六个阶段:项目计划、需求分析、设计、编码、测试、运行和维护。2. 需求分析阶段是软件工程的重要阶段,它为一个新系统定义业务需求。需求分析阶段的关键是描述一个系统是什么,或者一个系统必须做什么,而不是系统应该如何实现。具体来说,需求分析阶段需完成以下要求:确定软件系统的功能需求和非功能需求;分析软件系统的数据要求;导出系统的逻辑模型;修正项目开发计划;如有必要,可以开发一个原型系统。3. 软件设计通常可分为概要设计和详细设计。概要设计的任务是确定软件系统的结构、进行模块划分、确定每个模块的功能、接口以及模块间的调用关系。设计软件系统的结构,主要任务是确定
2、模块间的组成关系。4. 系统测试是将软件系统与硬件、外设和网络等其他因素结合在一起,进行信息系统的各种组装测试和确认测试,其目的是通过与系统地需求相比较,发现所开发的系统与用户需求不符或矛盾的地方。常见的系统测试主要有恢复测试、安全性测试、强度测试、性能测试、可靠性测试和安装测试。5. 风险分析:a) 风险识别:性能风险、成本风险、支持风险、进度风险。建立风险条目检查表。b) 风险预测:建立风险表,估计风险对项目的影响。c) 风险评估:进一步审查在风险预测阶段所做的估算的精确度, 试图为所发现的风险排出优 先次序,并开始考虑如何控制和/或避免可能发生的风险。d) 风险控制:风险避免、风险监控、
3、风险管理及监控计划。6. 进度管理(安排)通常使用Grant(甘特图)和PERT(计划评审技术)图。PERT图和Gantt图是两种常用的项目管理工具。PERT(项目评估与评审技术)图是一种图形化的网络模型,描述一个项目中的任务和任务之间的关系。Gantt图是一种简单的水平条形图,它以一个日历为基准描述项目任务。Gantt图中横坐标表示时间(如时、天、周、月、年等),纵坐标表示任务,图中的水平线段表示对一个任务的进度安排,线段的起点和终点对应在横坐标上的时间分别表示该任务的开始时间和结束时间,线段的长度表示完成该任务所需的时间。7. Grant不能反应出个任务之间的依赖关系。8. PERT不能反
4、映任务之间的并行性。9. CMM是对软件组织进化阶段的描述,随着软件组织定义、实施、测量、控制和改进其软件过程,软件组织的能力经过这些阶段逐步前进。CMM将软件过程的成熟度分为5个等级,分别为:初始级。软件过程的特点是杂乱无章,有时甚至很混乱,几乎没有明确定义的步骤,成功完全依赖个人努力和英雄式的核心任务。可重复级。建立了基本的项目管理过程来跟踪成本、进度和机能,有必要的过程准则来重复以往在同类项目中的成功。定义级。管理和工程的软件过程已经文档化、标准化,并综合成整个软件开发组织的标准软件过程。所有的项目都采用根据实际情况修改后得到的标准软件过程来发展和维护软件。管理级。制定了软件工程和产品质
5、量的详细度量标准。软件过程和产品的质量都被开发组织的成员所理解和控制。优化级。加强了定量分析,通过来自过程质量反馈和来自新观念、新技术的反馈使过程能持续不断地改进。10. 软件开发方法:结构化方法、面向对象方法、原型法11. 软件质量特特性:a) 第一层:质量特性b) 第二层:质量子特性c) 第三层:量度指标12. 系统分析阶段的主要工作:a) 对当前系统进行详细调查,收集数据。b) 建立当前系统的逻辑模型c) 对现状进行分析,提出改进意见和新系统应达到的目标d) 建立新系统的逻辑模型e) 编写系统方案的说明书13. 系统分析的方法:a) 结构化分析方法b) 面向对象反洗方法14. UML:第
6、二章 数据库设计1. 数据库系统生命周期:数据库规划、需求分析与收集、数据库设计、数据库系统实现、测试阶段、运行维护2. 数据字典:是对用户信息要求的整理和描述(需求分析阶段)。包括数据项、数据结构、数据流、数据存储和处理过程。3. 需求分析阶段的成果是系统说明书,包括数据流图、数据字典和各种说明性文档等。4. 数据流图(DFD):顶层DFD确定系统边界,将待开发的系统看做是一个加工,因此只有唯一一个加工和一些外部实体以及两者之间的输入输出数据流。0层DFD确定数据存储。5. 面向数据结构的方法(Jackson方法)a) 设计思想:以数据结构作为设计基础,它根据输入/输出数据结构导出程序结构,
7、适用于规模不大的数据处理系统。b) 基本思想:从问题的数据结构导出它的程序结构.作为独立的系统设计方法主要用于小规模数据处理的开发. c) 考虑问题的出发点是:数据结构. d) 最终目标:得出程序的过程性描述.e) 最佳适用范围:详细设计中,确定部分或全部模块的逻辑过程.f) 遵守结构程序设计“由顶向下”逐步细化的原则,并以其为共同的基础; “程序结构必须适应问题结构” 的基本原则,各自拥有从问题结构(包括数据结构) g) 服从导出程序结构的一组映射规则.6. 画DFD的注意事项:1)应适当的为数据流、加工、数据存储以及外部实体命名,名字应该反映该成分的实际含义,避免使用空洞的名字。2)画数据
8、流图,不是画控制流。3)一个加工的输出数据流,不应与输入数据流同名,及时他们的组成完全相同。4)允许一个加工有多条数据流流向另一个加工,也允许一个加工有两条相同的输出数据流流向不同的加工。5)保持父图与子图的平衡。也就是说,父图中的某加工的输入输出流必须与他的子图的输入输出数据流在数量上和名字上相同。值得注意的是,如果父图中的一个输入(输出)数据流对应于子图中的几个输入(输出)数据流,而子图中组成这些数据流的数据项的全体正好是父图中的这一个数据流,那么他们仍然算是平衡的。6)在自顶向下的分解过程中,若一个数据存储首次出现时,只与一个加工有关系,那么这个数据存储应作为这个加工的内部文件而不必画出
9、。7)保持数据守恒,也就是,一个加工的所有输出数据流中的数据必须能从该加工的输出流中直接获得,或者通过该加工能产生的数据。8)每个加工必须既有输入数据流,又有输出数据流。9)在整套数据流图中,每个数据存储必须既有读的数据流,又有写的数据流。但是在某张子图中,可能只有读没有写,或者只有写没有读。10)数据流必须通过加工(也就是外部实体与外部实体,外部实体与数据存储之间不能存在数据流)7. 概念设计阶段E-R图a) 对现实事物的抽象的三种方法:分类(固有的共同特征和行为,如:学生和教师是不通的分类)、聚集(定义某一类型的所具有的属性,如:学生的学号、姓名等)和概括(由已知类型定义一个新的类型,即得
10、到一个子类,如:研究生是学生的子类,从学生类型中延伸出来)。b) 用E-R图建立概念模型:i. 进行数据抽象:根据数据流图使用以上三种抽象方法进行抽象,从高层(对数据的引用笼统)到低层(比较细致)。ii. 设计局部概念模型:确定局部应用中的实体、实体的属性、实体标识符和实体间的联系。注意:1)属性不可再分;2)属性不能与其它实体之间有直接联系。iii. 将局部模型综合成全局模型:其中要消除冲突,属性冲突(类型等)、结构冲突(抽象不同、属性组成不同等)和命名冲突(实体名、属性名和联系名等)。iv. 全局ER模型的优化合并实体类型:消除冗余属性消除冗余联系8. 逻辑设计阶段E-R图向关系模式的转换
11、a) 逻辑设计阶段的主要任务:确定数据模型、将ER模型转换为制定的数据模型、确定完整性约束、确定用户视图。b) E-R图向关系模式的转换(转换成计算机能识别的):i. 实体类型的转换:将每个实体类型转换成关系模式,实体名对应模式名,属性对应模式的属性,实体标识符对应模式的键。ii. 联系类型的转换(二元联系):若实体间的联系是1 :1的,在转换好的两个关系模式中任意一个模式的属性中加入另一个的主键(作为当前模式的外键)和联系的属性。若实体类型之间的联系是1 :N,则在N端转换来的模式中加入1端实体类型的主键(作为当前模式的外键)和联系的属性。若实体间的联系是M:N,则将联系类型也转换成关系模式
12、,其属性为实体两端的实体类型的键加上联系类型的实行,主键为两端实体的之间的组合(同时两个主键也是外键)。iii. 三元联系的转换:若实体间的联系是1:1:1,则转换得的3个模式中任意一个中加入另外两个的主键(作为当前模式的外键)和联系类型的属性。若实体间的联系是1:1:N,则在N端加入两个1端的主键(作为当前模式的外键)和联系类型的属性。若实体间的联系是1:N: M,则联系类型也要转换成关系模式,其属性为M端和N端的实体类型的主键(作为外键)加上联系类型的属性,主键为M和N端的主键的组合。若实体间的联系是M:N:P,则联系类型也转换成关系模式,其属性为三端实体类型的主键(作为外键)加上联系类型
13、的属性,而主键为三端实体主键的组合。c) 关系模式的规范化i. 根据语义确定关系模式都的数据依赖。ii. 根据数据依赖确定关系模式的范式。iii. 如果不符合要求则根据模式的分解算法进行分解到达3NF、BCNF或是4NF。iv. 关系模式的评价与修正。消除冗余更新异常等。d) 确定完整性约束。e) 确定用户视图(设计子模式)。提高数据的安全性和独立性。9. 物理设计阶段数据库的存储结构和存取方法(确定数据分布、确定存储结构、确定存取方式)a) 存储记录的结构设计b) 确定数据的存放位置c) 存取方法的设计d) 完整性和安全性的考虑e) 程序设计10. 数据库的实现:a) 用DDL定义数据库的结
14、构b) 组织数据入库c) 编制与调试应用程序d) 数据库试运行11. 数据库的安全性措施:a) 权限机制b) 视图机制c) 数据加密12. 在绘制数据流图的加工时可能会出现输入和输出错误:a) 只有输入没有输出或者是黑洞;b) 只有输出没有输入或者是奇迹c) 输入的数据流无法通过加工产生输出流活着是灰洞d) 输入的数据流与输出的数据流名称相同13. 数据库的并发控制:a) 并发操作带来的问题:数据的不一致性(丢失修改、读脏数据和不可重复读问题)。b) 解决问题的方法:从保证事物的隔离性入手。c) 解决问题的焦点:事物在读取数据时不加控制而相互干扰。d) 封锁协议:两段封锁协议,缩短了持锁时间,
15、提高了并发度,同时解决了数据的不一致性。为了事物并发调度的正确使用两段封锁协议。e) 可串行化(性)是事物的正确性准则。14. 类图是显示一组类、接口、协作以及它们之间关系的图。类图用于对系统的静态设计视图建模。当对系统的静态视图建模时,通常以下述3种方式之一使用类图。1) 对系统的词汇建模。2) 对简单协作建模。3) 对逻辑数据库模式建模。将模式看作为数据库的概念设计的蓝图。在很多领域中,要在关系数据库或者面向对象数据库中存储永久信息,可以用类图对这些数据库的模式建模。15. 状态图显示一个由状态、转换、事件和活动组成的状态机。用状态图说明系统的动态视图。状态图对接口、类或协作的行为建模是非常重要的。状态图强调一个对象按事件次序发生的行为。16. 活动图显示从活动到活动的流。活动图显示了一组活动,从活动到活动的顺序的或分支的流,以及发生动作的对象或动作所施加的对象。用活动图说明系统的动态视图。活动图对系统的功能建模是非常重要的。活动图强调对象之间的控制流。第三章 网络与数据库1. 分布式数据库应该有场地透明性和分散存储两个特点。2. 完全分布式式数据库应满足:a) 分布性b) 逻辑相