数据库
首页 > 数据库> > 软考中级——数据库软件工程师(知识点补充)

软考中级——数据库软件工程师(知识点补充)

作者:互联网

疑问

章节 标题——18pt 加粗

章节内 一级标题——18px 加粗

 

目录

第四章 操作系统基础

第六章 数据库技术基础

第七章 关系数据库

第八章 SQL语言

第十章 系统开发和运行知识 

知识点截图

习题

 

 

第四章 操作系统基础

1、错题(未解决)

  

 

  

 

 2、事务故障

  常见的数据库故障类型分为事务故障系统故障介质故障

  其中,事务故障是指事务在运行至正常中止点前被中止,此时恢复子系统应利用日志文件 撤销(UNDO)事务对数据库已做的修改

  事务的等待图中出现,使得环中的所有事务都无法执行下去,这类故障属于事务故障。其解决的办法是选择环中代价最小的事务 进行撤销,再将其置入 事务队列稍后执行。假如选中事务T1,在T1撤销过程中需要对其进行UNDO操作。

 

3、进程、线程

  在支持多线程的操作系统中,假设进程P创建了若千个线程,该进程的代码段全局量进程中打开的文件能被这些线程所共享,其中某一线程的栈指针 不能被这些线程共享

 

4、SPOOLING技术

  假脱机SPOOLING技术:通过对脱机输入、输出系统的模拟(利用进程) , 实现对外围设备同时联机操作的技术。通过缓冲方式,将独占设备虚拟共享设备

  SPOOLING技术特点

    ①提高了I/O速度。从对低速I/O设备进行的I/O操作变为对输入井或输出井的操作,如同脱机操作一样,提高了I/O速度,缓和了CPU与低速IO设备速度不匹配的矛盾。

    ②设备并没有分配给任何进程。在输入井或输出井中,分配给进程的是一存储区和建立一张I/O请求表。

    ③实现了虚拟设备功能。多个进程同时使用一独享设备虚拟的逻辑设备。

 

5、

 

 

 


第七章 关系数据库

1、求闭包X+  

  闭包就是由一个属性直接或间接推导出的全部属性的集合,例如: f={a->b,b->c ,a->d,e->f}由a可直接获得b和d,间接获得c,则a的闭包就是{a,b,c,d}

 

  如下是写的比较科学规范的顶一记求解方法:

  设X和Y均为关系R的属性集的子集,F是R上的函数依赖集,若对R的任一属性集B,一旦X→B,必有BY,且对R的任一知足以上条件的属性集Y1,必有YY1,此时称Y为属性集X在函数依赖集F下的闭包,记做X+

  计算关系R的属性集X的闭包的步骤以下:

  第一步:设最终将成为闭包的属性集是Y,把Y初始化为X;

  第二步:检查F中的每个函数依赖A→B,若是属性集A中全部属性均在Y中,而B中有的属性不在Y中,则将其加入到Y中;

  第三步:重复第二步,直到没有属性能够添加到属性集Y中为止。最后获得的Y就是X+

 

  例1,设关系R(A,B,C,D,E,G)有函数依赖集F={AB→C,BC→AD,D→E,CG→B},求AB的闭包。

  解:首先从AB出发,令X={A,B},因为函数依赖AB→C左边的全部属性都在X中,因此能够把右边的C添加到X中,这时X={A,B,C}。

  其次考虑函数依赖BC→AD,左边B、C均在x中,右边D不在X中,将其添加到X中,此时X={A,B,C,D}。

  再考虑函数依赖D→E,同理可将E添加到X中,此时X={A,B,C,D,E}。

  上述方法再不能向x中添加属性,因此获得{A,B}+={A,B,C,D,E}。

 

  若是知道如何计算任意属性的闭包,那么就能检验任意函数依赖X→Y是否被函数依赖集F逻辑蕴涵,其步骤以下:

  第一步:计算x的闭包X+;

  第二步:判断Y是否被X+所包含,若是YX+,说明F逻辑蕴涵函数依赖X→Y,不然说明F不会逻辑蕴涵函数依赖X→Y。

  

  例如:在例1中获得属性D在{A,B}+ 中,因此F逻辑蕴涵AB→D。如今判断函数依赖D→A是否被函数依赖集F逻辑蕴涵。

  计算{D}+,获得{D}+={D,E},因为A不在{D}+中,因此该函数依赖不蕴涵于给定的函数依赖集F。

 

  若是要求候选码的话就是他的闭包包括了属性集的全部属性就是候选码。但要求其子集都不是超码,既不能推出其全部的属性。

 

 

2、根据函数依赖求关键字

  对于给定的关系R(A1,A2,……,An)和其上的函数依赖集F,可将其属性分为如下四类:

  §1快速求解候选关键字的一个充分条件(无独立回路时)

 

  【定理一】:对于给定的关系模式R(U,F),若X(X属于U)是L类属性,则X必为R的任一候选码的成员(组成部分)。

【例-1】设有关系模式R(A,B,C,D),其函数依赖集F={D→B,B→D,AD→B,AC→D},求R的所有候选关键字。【解】:显然A、C为L属性,据定理一知,AC必须为R的候选码的成员。又∵(AC)+F=ABCD=U∴AC是R的唯一候选码。

  

  【推论一】:已知R(U,F),若X(X属于U)是L属性,且X+F包含了R的全部属性U,则X必为R的唯一候选码。

  【定理二】:给定R(U,F),若X(X属于U)是R类属性,则X不在任何候选码中。
  【定理三】:给定R(U,F),若X是R的N类属性,则X必包含在R的任一候选码中。

【例-2】已知R(U,F),其中                 U={A,B,C,D,E,P}                  F={A→D,E→D,D→B,BC→D,DC→A} 求R的所有候选码。【解】:显见:            L类属性:C,E——故CE必在R的候选码中            N类属性:P——故P也必在R的候选码中又∵(CEP)+F =ABCDEP=U ∴CEP是R的唯一候选码。

  【推论二】:已知R(U,F),若X是R的N类和L类属性组成的属性集,且X+F包含了R的全部属性U,则X是R的唯一候选码。

  【】若为LR类,则有待考察。

 

  错题

  (4)给定关系模式R<U,F>,其中U= {ABCDE},F={AB→DE,AC→E,AD→B,B→C,C→D} ,则R的所有候选码为(请作答此空),关系R属于( )。

  根据候选码求解算法,求解该关系模式的码:

    ①必然出现在候选码中的属性为A;不出现在候选码中的属性为E;待考察的属性为BCD;

    ②(A)+=A,不包含全部属性,不是候选码;

    ③(AB)+=ABDEC包含全部属性,是候选码;

        (AC)+=ACEDB包含全部属性,是候选码;

      (AD)+=ADBCE包含全部属性,是候选码。

    故R的候选码为{AB、AC、AD}。

  

  (8)关系模式R(U,F),其中U=(W,X,Y,Z),F={WX→Y,w→X,X→Z,Y→w}。关系模式R的候选码是 (A)

    A.W和Y   B.WY   C.WX   D.WZ

 

 

3、关系的三类完整性

  关系的三类完整性包括:参照完整性、实体完整性、用户自定义完整性。

  其中用户自定义完整性可以用触发器实现。

  

  实体完整性:规定基本关系R的主属性A不能取空。

  用户自定义完整性:就是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求,由应用的环境决定。

    如:年龄必须为大于0小于150的整数。

  参照完整性/引用完整性:规定,若F是基本关系R的外码,它与基本关系s的主码K,相对应(基本关系R和S不—定是不同的关系),则R中每个元组在F上的值必须为:或者取空值;或者等于s中某个元组的

    主码值。

 

 

4、属性分类

  简单属性:属性是原子的、不可再分的。

  复合属性:可以细分为更小的部分。例如:职工实体集的通信地址。

  单值属性:—个属性对应一个值。

  多值属性:—个属性对应多个值。例如:职工实体集的职工的亲属姓名。

  NULL属性:表示无意义或不知道(属性没有值或属性值未知时)。

  派生属性:可以从其它属性得来。例如:工龄可以从入职时间计算得出。

 

 

5、

 

 

 


第十章 系统开发和运行知识

1、软件开发方法

  (1)软件开发方法:使用定义好的技术集和符号表示习惯来组织软件生产的过程。

  (2)结构化设计(SD)方法:由结构化分析、结构化设计、结构化程序设计构成,是面向数据流的开发方法。

      侧重 用数据流图表示系统的分解,且用数据字典和说明分别表示数据和加工的含义。

      与结构化分析方法衔接。

      在需求分析阶段,结构化分析方法产生了数据流图

      而在设计阶段,结构化设计方法将数据流映射为软件系统的模块结构

      数据流图中从系统的输入数据流到系统的输出数据流的一连串变换形成了一条信息流

      其中的信息流一般情况下包括变换流型事物流型

      不同类型的数据流到程序模块的映射方法不同。—个软件系统往往不仅仅有一种数据流类型

  (3 ) Jackson方法:面向数据结构的开发方法。

  (4)原型化方法:适合于用户需求不清、业务逻辑不确定、需求经常变化的情况。

  (5)面向对象方法:以对象为核心,包括面向对象分析、面向对象设计、面向对象实现。

  (6)敏捷方法:用户能够在开发周期的后期增加或改变需求。包括:极限编程、水晶法、并列争求法、自适应软件开发。

  (7)Parnas方法:软件在可维护性和可靠性方面存在着严重问题,因此Parnas提出的方法是针对这两个问题的。

      Parnas提出了信息隐蔽原则:在概要设计时列出将来可能发生变化的因素,并在模块划分时将这些因素放到个别模块的内部。这样,在将来由于这些因素变化而需修改软件时,只需修改这些个别的                                 模块,其它模块不受影响。

 

2、软件工程概念

  软件工程是一门工程学科,涉及到软件开发的各个方面,从最初的系统描述到交付后的系统维护,都属于其学科范畴。

  用软件工程方法进行软件开发,涉及到方法工具过程等要素。其中,

  方法是产生某些结果的形式化过程。

  工具是用更好的方式完成某件事情的设备或自动化系统。

  过程是把工具和方法结合起来,定义涉及活动、约束和资源使用的一系列步骤,来生产某种想要的输出。

 

3、软件过程模型

  瀑布模型将软件生存周期各个活动规定为线性顺序连接的若干阶段的模型,规定了由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落。这种方法是一种理想的现象开发模式,缺乏灵活性,

    特别是无法解决软件需求不明确或不准确的问题。 

  原型模型从初始的原型逐步演化成最终软件产品,特别适合于用户需求不清业务逻辑不确定需求经常变化的情况。

  增量开发是把软件产品作为一系列的增量构件来设计、编码、集成和测试,可以在增量开发过程中逐步理解需求

  螺旋将瀑布模型与快速原型模型结合起来,并且加入两种植型均忽略了的风险分析,适用于复杂的大型软件

  快速原型模型允许在需求分析阶段对软件的需求进行初步而非完全的分析和定义,快速设计开发出软件系统的原型,该原型向用户展示待开发软件的全部或部分功能和性能;用户对该原型进行测试评定,

    给出具体改进意见以丰富细化软件需求;开发人员据此对软件进行修改完善,直至用户满意认可之后,进行软件的完整实现及测试、维护。

 

4、

  在面向数据流的设计方法中,一般把数据流图中的数据流划分为_(交换流事务流)_两种。

 

5、UML

  在UML提供的图中,

  可以采用_(类图)_对逻辑数据库模式建模;

  _(状态图)_用于接口、类和协作的行为建模,并强调对象行为的事件顺序;

  _(活动图)_用于系统的功能建模,并具强调对象间的控制流

 

6、数据流图

  数据流图:是以图形的方式描绘数据在系统中流动处理的过程,反映了系统必须完成的逻辑功能,是结构化分析方法中用于表示系统逻辑模型的重要工具。

  画数据流图绘制的原则是:自外向内,自顶向下,逐层细化,完善求精。

 

  数据流图结构化分析的一个重要模型,描述数据在系统中如何被传送变换,以及描述如何对数据流进行变换的功能,用于功能建模。 

  数裾流图中有四个要素

    外部实体,也称为数据源数据汇点,表示要处理的数据的输入来源或处理结果要送往何处,不属于目标系统的一部分,通常为组织、部门、人、相关的软件系统或者硬件设备;

    数据流表示数据沿箭头方向的流动;

    加工是对数据对象的处理变换;

    数据存储在数据流中起到保存数据的作用,可以是数据库文件或者任何形式的数据组织。

  根据上述定义和题干说明,读者是外部实体,图书和借书证是数据流,借阅是加工。

 

 

7、数据字典(DD)

  数据字典:是与系统相关的数据定义的集合,对数据流图中出现的被命名的图形元素进行确切解释描述。数据字典是结构化分析方法的核心

  数据字典包括5个部分:数据项、数据结构、数据流、数据存储、数据处理。

  DD中的数据成为元数据

 

8、项目中的风险

  项目经理需要尽早预测项目中的风险,这样就可以制定有效的风险管理计划以减少风险的影响,所以,早期的风险识别是非常重要的。一般来说,影响软件项目的风险主要有三种类别:

    项目风险涉及到各种形式的预算、进度、人员、资源以及和客户相关的问题;

    技术风险涉及到潜在的设计、实现、对接、测试即维护问题;

    业务风险包括建立—个无人想要的优秀产品的风险、失去预算或人员承诺的风险等;

    商业风险包括如市场风险、策略风险、管理风险和预算风险等。

 

9、安全需求

  安全需求可划分为物理线路安全、网络安全、系统安全和应用安全。

  机房安全属于物理安全

  入侵检测属于网络安全

  漏洞补丁管理属于系统安全

  数据库安全则是应用安全

 

10、

  软件开发中的瀑布模型典型地刻画了软件生存周期的阶段划分,与其最相适应的软件开发方法是结构化方法

 

11、类图、ER图对比

  

 

 

 

12、模块

  通常,可以按照在软件系统中的功能将模块分为四种类型

  传入模块取得数据或输入数据,经过某些处理,再将其传送给其他模块

  传出模块输出数据,在输出之前可能进行某些处理,数据可能被输出系统的外部,或者会输出到其他模块进行进—步处理。

  变换模块从上级调用模块得到数据,进行特定的处理,转换成其他形式,在将加工结果返回给调用模块。

  协调模块:—般不对数据进行加工,主要是通过调用协调管理 其他模块完成特定的功能。

 

13、软件设计

  软件设计必须依据对软件的需求来进行,结构化分析的结果结构化设计提供了最基本的输入信息。从分析到设计往往经历以下流程:

    (1)研究、分析和审查数据流图。根据穿越系统边界的信息流初步确定系统与外部接口

    (2)根据数据流图决定问题的类型。数据处理问题通常有两种类型:变换型事务型。针对两种不同的类型分别进行分析处理。

    (3)由数据流图推导出系统的初始结构图

    (4)利用一些启发式原则改进系统的初始结构图,直到得到符合要求的结构图为止。

    (5)根据分析模型中的实体关系图数据字典进行数据设计,包括数据库设计数据文件的设计

    (6)在设计的基础上,依旧分析模型中的加工规格说明状态转换图进行过程设计

  

14、模块划分需遵守的原则

  将具有相似功能的模块合并,会导致模块的聚合程度变低可维护性下降

  在结构化设计中,系统由多个逻辑上相对独立的模块组成,在模块划分时需要遵循如下原则

    (1)模块的大小要适中

      系统分解时需要考虑模块的规模

      过大的模块可能导致系统分解不充分,其内部可能包括不同类型的功能,要进一步划分, 尽量使得各个模块的功能单一;

      过小的模块将导致系统的复杂度增加,模块之间的调用过于频繁,反而降低了模块的独立性

      一般来说,一个模块的大小使其实现代码在1 ~ 2页纸之内,或者其实现代码行数在50 ~ 200行之间,这种规模的模块实现维护

    (2)模块的扇入和扇出要合理

      一个模块的扇出是指该模块直接调用的下级模块个数扇出大表示模块的复杂度高,需要控制和协调过多的下级模块。

      扇出过大一般是因为缺乏中间层次,应该适当增加中间层次的控制模块;

      扇出太小时可以把下级模块进一步分解成若干个子功能模块,或者合并到它的上级模块中去。

      一个模块的扇入是指直接调用该模块的上级模块个数;

      扇入大表示模块的复用程度高。设计良好的软件结构通常顶层扇出比较大,中间扇出较少,底层模块则有大扇入

      一般来说,系统的平均扇入和扇出系数3或4,不应该超过7,否则会增大出错的概率。

    (3) 深度和宽度适当

      深度表示软件结构中模块的层数,如果层数过多,则应考虑是否有些模块设计过于简单,看能否适当合并

      宽度是软件结构中同一个层次上模块总数的最大值,一般说来, 宽度越大系统越复杂,对宽度影响最大的因素是模块的扇出

      在系统设计时,需要权衡系统的深度和宽度,尽量降低系统的复杂性,减少实施过程的难度,提高开发和维护的效率。

 

15、耦合

  耦合是模块之间的相对独立性(互相连接的紧密程度)的度量

  它取决于各个模块之间的接口的复杂程度调用模块的方式以及哪些信息通过接口。

 

16、多态

   多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果

    在运行时,可以通过指向基类指针,来调用实现派生类中的方法。

    也就是说客户类其实在调用方法时,并不需要知道特定子类的实现, 都会用统一的方式来调用。

  多态存在的三个条件

    1、有继承关系.

    2、子类重写父类方法

    3、父类引用指向子类对象

 

17、

  基于构件软件开发,主要强调在构建软件系统时复用已有的软件“构件”,在检索到可以使用的构件后,要针对新系统的需求对构件进行合格性检验适应性修改,然后集成到新系统中。

 

18、方法的绑定

  把一个方法与其所在的类对象 关联起来叫做方法的绑定。绑定分为静态绑定(前期绑定)和动态绑定(后期绑定)。

  静态绑定(前期绑定)是指在程序运行前就已经知道方法是属于那个类的,在编译的时候就可以连接到类的中,定位到这个方法

  动态绑定(后期绑定)是指在程序运行过程中根据具体的实例对象才能具体确定哪个方法。即在程序运行过程中,把函数(或过程)调用响应调用所需要的代码相结合

 

19、C/S (客户机/服务器)体系结构

   C/S (客户机/服务器)体系结构

  允许合理的划分三层的功能,使之在逻辑上保持相对独立

  允许各层灵活地选用平台软件

  各层可以选择不同的开发语言进行并行开发;

  由于在客户端需要安装相关的客户端软件,当客户端软件需要安装、修改和维护时,需要到每个客户端进行维护操作

 

20、软件测试

  可靠性测试由 可靠性目标的确定、运行剖面的开发、测试用例的设计、测试实施、测试结果的分析等主要活动组成

  通过受控的软件测试过程来预测软件在实际运行中的可靠性

  可靠性测试的依据系统规格说明书,如果没有相应要求则不必进行可靠性测试;

  软件可靠性测试还必须考虑对软件开发进度和成本的影响,最好有专业测试机构组成;

  软件可靠性模型是指为预计或估算软件的可靠性 所建立的可靠性框图数学模型,不同的软件模型有自己的特性和功能,软件测试应该根据软件的特征选择模型。

 

21、系统转换

  新系统试运行成功之后,就可以在新系统和旧系统之间互相转换

  系统转换方式如下:

    (1) 直接转换:确定新系统运行无误时,立刻启用新系统,终止旧系统运行。

    (2)并行转换:新旧系统并行工作一段时间,经过考验垢,新系统正式替代旧系统。

    (3)分段转换(逐步转换):是以上两种转换方式的结合。 在新系统全部正式运行前,一部分一 部分地代替旧系统。

 

22、风险管理  

  风险管理软件项目管理的一项重要任务。

  在进行风险管理时,根据风险的优先级来确定风险控制策略,而优先级是根据风险暴露来确定的。

  风险暴露是一 种量化风险影响的指标,等于风险影响乘以风险概率。

  风险影响是当风险发生时造成的损失

  风险概率是风险发生的可能性

  风险控制是风险管理的一个重要活动

 

23、操作系统进程管理信号量

  早在1965年荷兰学者Dijkstra提出信号量机制是—种有效的进程同步与互斥 工具

  目前,信号量机制有了很大的发展,主要有整型信号量记录型信号量信号量集机制

  对于整型信号量可以根据控制对象的不同被赋予不同的值。通常将信号量分为公用信号量私用信号量两类。

  其中,公用信号量用于实现进程间的互斥初值1资源的数目;

  私用信号量用于实现进程间的同步初值0或某个正整数

  信号量S的物理意义:

    S≥0表示某资源可用数

    若S<0,则其绝对值表示阻塞队列中等待该资源的进程数

24、

 

 

 

 

 

知识点截图

 

 

 

 

 

 

 

习题

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

进程前面有几个有向边就写几个wait;

进程后面有几个有向边就写几个signal。

 

 

 

 

 

 

 

 

 

 

标签:候选,知识点,系统,数据库,软考,模块,数据流,软件,属性
来源: https://www.cnblogs.com/bk22/p/16135222.html