1、软件水平考试(中级)数据库系统工程师上午(基础知识)试题章节练习试卷 2及答案与解析 1 三个可靠度只均为 0.8的部件串联构成一个系统,如图 3-1所示。则该系统的可靠度为 (1)。 ( A) 0.24 ( B) 0.512 ( C) 0.8 ( D) 0.992 2 若某计算机系统是由 500个元器件构成的串联系统,且每个元器件的失效率均为10-7/H,在不考虑其他因素对可靠性的影响时,该计算机系统的平均故障间隔时间为 (2)小时。 ( A) 2104 ( B) 5104 ( C) 2105 ( D) 5105 3 某系统的可靠性结构框图如图 3-5所示。该系统由 4个部件组成,其中 2、
2、 3两部件并联冗余,再与 1、 4部件串联构成。假设部件 1、 2、 3的可靠度分别为 0.90、0.70、 0.70,若要求该系统的可靠度不低于 0.75,则进行系统设计时,分配给部件 4的可靠度至少应为 (3)。 ( A) ( B) ( C) ( D) 4 系统响应时间和作业吞吐量是衡量计算机系统性能的重要指标。对于一个持续处理业务的系统而言, (4),表明其性能越好。 ( A)响应时间越短,作业吞吐量越小 ( B)响应时间越短,作业吞吐量越 大 ( C)响应时间越长,作业吞吐量越大 ( D)响应时间不会影响作业吞吐量 5 设栈 s和队列 q的初始状态为空,元素 a、 b、 c、 d、 e
3、依次进入栈 s,当一个元素从栈中出来后立即进入队列 q。若从队列的输出端依次得到元素 c、 d、 b、 a、e,则元素的出栈顺序是 (12),栈 s的容量至少为 (13)。 ( A) a、 b、 c、 d、 e ( B) e、 d、 c、 b、 a ( C) c、 d、 b、 a、 e ( D) e、 a、 b、 d、 c ( A) 2 ( B) 3 ( C) 4 ( D) 5 7 在数据压缩编码的应用中,哈夫曼 (Huffman)算 法可以用来构造具有 (59)的二叉树,这是一种采用了 (60)的算法。 ( A)前缀码 ( B)最优前缀码 ( C)后缀码 ( D)最优后缀码 ( A)贪心 (
4、 B)分治 ( C)递推 ( D)回溯 9 给定供应关系 SPJ(供应商号,零件号,工程号,数量 ),查询至少供应了 3项工程 (包含 3项 )的供应商,输出其供应商号和供应零件数量的总和,并按供应商号降序排列。 SELECT供应商号, SUM(数量 )FROM SPJ (30) (31) (32); ( A) ORDER BY供应商号 DESC ( B) GROUP BY供应商号 DESC ( C) ORDER BY供应商号 ( D) GROUP BY供应商号 ( A) HAVING COUNT(DISTINCT(工程号 ) 2 ( B) WHERE COUNT(工程号 ) 2 ( C) H
5、AVING(DISTINCT(工程号 ) 2 ( D) WHERE工程号 2 ( A) ORDER BY供应商号 DESC ( B) GROUP BY供应商号 DESC ( C) ORDER BY供应商号 ( D) GROUP BY供应商号 12 企业职工和部门的关 系模式如下所示,其中部门负责人也是一个职工。 职工 (职工号,姓名,年龄,月薪,部门号,电话,地址 ) 部门 (部门号,部门名,电话,负责人代码,任职时间 ) 请将下面的 SQL语句空缺部分补充完整。 CREATE TABLE部门 (部门号 CHAR(4)PRIMARY KEY,部门名 CHAR(20),电话 CHAR(13),负
6、责人代码 CHAR(5),任职时间 DATE, FOREIGN KEY (33) ); 查询比软件部所有职工月薪都要少的职工姓名及月薪的 SQL语句如下: SELECT姓名,月薪 FROM职工 WHERE月薪 (SELECT (34) FROM职工 WHERE部门号 =(35); ( A) (电话 )REFERENCES职工电话 ) ( B) (部门号 )REFERENCES部门 (部门号 ) ( C) (部门号 )REFERENCES职工 (部门号 ) ( D) (负责人代码 )REFERENCES职工 (职工号 ) ( A)月薪 ( B) ALL(月薪 ) ( C) MIN(月薪 ) (
7、D) MAX(月薪 ) ( A)职工 .部门号 AND部门名 =软件部 ( B)职工 .部门号 AND部门 .部门名 =软件部 ( C)部门 .部门号 AND部门名 =软件部 ( D) (SELECT部门号 FROM部门 WHERE部门名 =软件部 ) 软件水平考试(中级)数据库系统工程师上午(基础知识)试题章节练习试卷 2答案与解析 1 【正确答案】 B 【试题解析】 计算机系统是一个复杂的系统,而且影响其可靠性的因素也非常繁复,很难直接对其进行可靠性分析;但通过建立适当的数学模型,把大系统分割成若干子系统,可以简化其分析过程。常见的系统可靠性数学模型有以下三种。 1串联系统 假设一个系统由
8、 n 个子系统组成,当且仅当所有的子系统都能正常工作时,系统才能正常工作,这种系统称为串联系统,如图 3-2所示。 设系统各个子系统的可靠性分别用 R1, R2, , Rn表示,则系统的可靠性为: R R1R2Rn 如果系统的各个子系统的失效率分别用 1, 2, , n来表示,则系统的失效率为: 1+2+n 2 并联系统 假如一个系统由 n 个子系统组成,只要有一个子系统能够正常工作,系统就能正常工作,这种系统称为并联系统,如图 3-3所示。 设系统各个子系统的可靠性分别用 R1, R2, , Rn表示,则 系统的可靠性为 R 1-(1-R1)(1-R2)(1 -Rn) 假如所有的子系统的失效
9、率均为 l则系统的失效率为: 在并联系统中只有一个子系统是真正需要的,其余 n-1个子系统称为冗余子系统,随着冗余子系统数量的增加,系统的平均无故障时间也增加了。 3模冗余系统 m模冗余系统由 m个 (m 2n+1,为奇数 )相同的子系统和一个表决器组成,经过表决器表决后, m个子系统中占多数相同结果的输出作为系统的输出,如图 3-4所示。 在 m个子系统中,只有 n+1个或 n+1个以上子系统能正常工作,系统就能正常工作,输出正 确结果。假设表决器是完全可靠的,每个子系统的可靠性为 R0,则 m模冗余系统的可靠性为: 其中 为从 m个元素中取 j个元素的组合数。 显然,本题是一个简单的串联系
10、统可靠性计算的试题,其可靠性为 R 0.80.80.8 0.512 2 【正确答案】 A 【试题解析】 计算机系统的可靠性是指从它开始运行 (t=0)到某时刻 t这段时间内能正常运行的概率,用 R(t)表示。所谓失效率,是指单位时间内失效的元件数与元件总数的比例,以 表示,当 为常数时,可靠性与失效率的关系为 R(t) e-t,两次故障之间系统能正常工作的时间的平均值称为平均无故障时间 MTBF:MTBF=1/。 通常用平均修复时间 (MTRF)来表示计算机的可维修性,即计算机的维修效率,平均修复时间指从故障发生到机器修复平均所需要的时间。计算机的可用性是指计算机的使用效率,它以系统在执行任务
11、的任意时刻 能正常工作的概率 A来表示。 A=MTBF/(MTBF+MTRF) 根据串联模型的分析,该计算机系统的总失效率为各元器件的失效率之和,即为 50010-7/H=510-5/H。因为失效率的倒数即为平均故障间隔时间,从而求出平均故障间隔时间为 2104/H。 3 【正确答案】 C 【试题解析】 本题考查的是计算机系统硬件方面的基础知识。从可靠性设计角度分析,该试题给出的是一种串并混合系统。首先考虑部件 2和部件 3是并联冗余结构,它们的可靠度分为 0.70,两者并联冗余的可靠性为 20.70-0.702=0.91。在此基础上,系统可以看做是由可靠度为 0.90的部件 1、可靠度为 0
12、.91的冗余部件和部件 4串联构成的。要求构成的系统其可靠性不低于 0.75。串联系统的可靠度为各部件可靠度之积,从而可以求出部件 4的可靠度应不小于 0.92。 4 【正确答案】 B 【试题解析】 系统吞吐量,即每秒钟执行的作业数。系统吞吐量越大,则系统的处理能力就越强。系统吞吐量与系统硬、软件的选择有着直接的关系,如果要求系统具有较大的吞吐量,就应当选择具有较高性能的计算机和网络系统。 5 【正确答案】 C 6 【正确答案】 B 【试题解析】 (1)队列是一种特殊的线性表,它只允许在表的前端 (front)进行删除操作,而在表的后端 (rear)进行插入操作。进行插入操作的端称为队尾,进行
13、删除操作的端称为队头。队列中没有元素时,称为空队列。 队列具有先进先出 (FIFO)的特点。 队列空的条件: front rear 队列满的条件: rear MAXSIZE 队列可以用数组 Q1m 来存储,数组的上界 m即是队列所允许的最大容量。在队列的运算中需设两个指针: head,队头指针,指向实际队头元素的前一个位置; tall,队尾指针,指向实际队尾元素所在的位置。一般情况下,两个指针的初值设为 0,这时队列为空,没有元素。 队列中拥有的元素个数为: L=tail-head。现在要让排头的元素出队,则需将头指针加 1。如果想让一个新元素入队,则需将尾指针向上移动一个位置。 (2)栈是一
14、种只能在叫做栈的一段进行进栈或者出栈操作的线性数据结构。栈的主要特点是 “后进先出 ”,即后进栈的元素先处理。通常栈用顺序表存储,分配一块连续的内存区域存放栈中的元素,并用一个变量指向当前的栈顶。 栈的基本操作: .置空栈 initStack(s):设置一个空栈 s。 .进栈 push(s,x):将元素 x进到栈 s中,栈指针递增。 .pop(s,x):将栈 s的栈顶元素赋给 x,栈指针递减。 .判断栈空 stackempty(s):若栈为空,返回 1,否则返回 0。 根据队列的特点,从队列的输出端依次得到元素 c、 d、 b、 a、 e,则在从队列的输入端应依次输入元素 c、 d、 b、 a
15、、 e,则元素的出栈顺序是 c、 d、 b、 a、 e,由于 C是第一个出栈,而 C是第三个出栈,所以栈 s的容量至少为 3。 7 【正确答案】 B 8 【正确答 案】 A 【试题解析】 给定一个序列的集合,若不存在一个序列是另一个序列的前缀,则该序列集合称为前缀码。相反,给定一个序列的集合,若不存在一个序列是另一个序列的后缀,则该序列集合称为后缀码。平均码长或文件总长最小的前缀编码称为最优的前缀码,最优的前缀码对文件的压缩效果亦最佳。 利用哈夫曼树很容易求出给定字符集及其概率 (或频度 )分布的最优前缀码。哈夫曼编码是一种应用广泛且非常有效的数据压缩技术,该技术一般可将数据文件压缩掉 20%
16、至 90%,其压缩效率取决于被压缩文件的特征。在构造哈夫曼树的过程中, 每次都是选取两棵最小权值的二叉树进行合并,因此使用的是贪心算法。 哈夫曼树的具体构造过程如下: 假设有 n 个权值,则构造出的哈夫曼树有 n个叶子结点。 n 个权值分别设为w1, w2, , wn,则哈夫曼树的构造规则为: (1)将 w1, w2, , wn看成是有 n棵树的森林 (每棵树仅有一个结点 ); (2)在森林中选出两个根结点的权值最小的树合并,作为一棵新树的左、右子树,且新树的根结点权值为其左、右子树根结点权值之和; (3)从森林中删除选取两棵树,并将新树加入森林; (4)重复第 (2)和 (3)步,直到森林中
17、只剩一棵树为止,该树即为所求的哈夫曼树。 9 【正确答案】 D 10 【正确答案】 A 11 【正确答案】 A 【试题解析】 试题 (30)根据题意查询至少供应了 3项工程 (包括 3项 )的供应商,应该按照供应商号分组,而且应该加上条件工程号的数目。但是需要注意的是,一个供应商可能为同一个项目供应了多种零件,因此,在统计工程项目数的时候需要加上 DISTINCT,以避免重复统计导致错误的结果。 假如按供应商号 Sno=S1分组,结果如表 16-3所示。从表 16-3可以看出,如果 不加 DISTINCT,统计的数为 7,而加了 DISTINCT,统计的数是 3。故试题 (31)正确的答案是
18、A。 要求按供应商号降序排列,所以应按供应商号分组,同时加上 DESC按降序排列。故试题 (32)正确的答案是 A。 12 【正确答案】 D 13 【正确答案】 C 14 【正确答案】 D 【试题解析】 试题 (33)考查的是关系的外键,对于部门关系中的部门负责人也是一个职工,因此负责人代码是一个外键,为了保证数据的正确性,通过参照完整性加以约束。 SQL语言中是通过使用保留字 FOREIGN KEY定 义外键,REFERENCES 指明外码对应于哪个表的主码。参照完整性定义格式: FOREINGNKEY(属性名 )REFERENCES 表名 (属性名 ) 按照以上所述,将 (33)空缺部分补充完整如下 CREATE TABLE 部门 (部门号 CHAR(4)PRIMARY KEY,部门名 CHAR(20), FOREIGN KEY(负责人代码 )REFERENCES 职工 (职工号 ); 查询比软件部所有职工月薪都要少的职工姓名及月工姓名及月薪的 SQL语句的空缺部分补充如下。 SELECT 姓 名,月薪 FROM 职工 WHERE 月薪 (SELECT MIN(月薪 )FROM 职工 (SELECT 部门号 FROM 部门 WHERE 部门名 =软件部 );