数据库系统工程师复习资料

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

数据库系统工程师复习资料答案(1)A,(4)D,(5)D,(6)D,(7)D,(9)D,(10)C,(13)B,(17)B(18)A(20)B(21)A(25)D(26)D(27)A(30)C(31)A(33)C(36)C(37)D(38)B(39)C(41)D(43)D(44)C(46)C(47)B(48)D(51)C(52)C(62)B(63)C(64)A(66)C(67)A(68)B(69)D(70)A(71)A(72)C(73)B(74)D(75)B58C59A60D61B63D64C66A67B68C69A70D71D72D73B74C75A1.(1)primarykey(col1,col2)(2)primarykey(col1)primarykey(col2)(3)constraintc1primarykey(col1,col2)两个属性组合为码,标准SQL中一般采用第一种形式。constraint在ORACLE中用得多,表示某种约束,在这里是主键约束,在标准SQL中一般不用。2.(1)references表名(列名)(2)references表名考试时该用那一种.*用前一种,更明确指出了要引用的列。3.一般的格式是:creatview要创建的视图名称asselect查询子句[withcheckoption]其中[]表示可选。withcheckoption表示在执行UPDATE、INSERTER、DELETE等操作时保证更新、插入或删除的行满足视图定义中查询子句中的条件表达式。4.各本书上不同,是因为它们基于不同的数据库软件而编写的。标准SQL似乎没有严格规定数据类型。各数据库软件的数据类型一般都很类似,比如int只是integer前三个字母而已,一般情况下,阅卷老师都认识这些符号,所以不必过于担心。5.求关键路径:以考点分析与真题详解书P117例题4为例首先应该搞清楚概念。在AOE网络中,顶点代表事件(实际上就是该顶点的所有入边所表示的活动均已完成),弧代表活动。从源点到某顶点的最长路径长度为该顶点所代表事件的最早发生时间,该题中,从源点V1到顶点V6只有一条路径V1-V3-V6,于是事件V6的最早开始时间为2+3=5。在不推迟整个工程完成的前提下,一个事件允许的最迟发生时间称为该事件的最迟发生时间,p27提供的求它的递推式的要义有两点:一是汇点的最迟发生时间等于其最早发生时间,亦即整个工程关键路径的长度;二是某点的最迟发生时间等于关键路径长度减去从该点出发至汇点的最长路径长度。比如,从V2到V7有两条路径:V2-V5-V7、V2-V4-V5-V7,路径长度最长的是前者,长度为4+3=7,又易求得关键路径长度为10,于是事件V2的最迟发生时间为10-7=3。初学者在这个地方最易疑惑。某活动的最早开始时间等于该活动对应的弧的起点的最早开始时间。该题中,活动a6的最早开始时间等于事件V3的最早开始时间,亦即2。某活动的最迟发生时间等于该活动对应的弧的终点的最迟发生时间减去该活动持续的时间。该题中,活动a6的终点为V4,易求得其最迟发生时间为10-3-1=6,继而求得a6的最迟发生时间为6-1=5。用某活动的最迟开始时间减去该活动的最早发生时间便得到该活动的松弛时间。该题中,a6的松弛时间即为5-2=3。6。段管理的主要优点是:可以实现动态链接。所谓段的动态链接,是指在程序运行一开始,只将作业的主程序段调入内存,其他各段是在作业运行过程中逐步被调入内存的。7.在一个多道程序设计系统中,不采用移动技术的可变分区方式管理主存.设用户空间为100K,主存空间采用最先适应分配算法,采用计算时间短的作业优先算法管理作业,今有如下所示的作业序列.作业名,进入输入井时间,需计算时间,主存需求量JOB18.0小时1小时20KJOB28.2小时0.6小时60KJOB38.4小时0.5小时25KJOB48.6小时0.4小时20K若忽略系统开销,则JOB2的开始执行时间为(),JOB3的完成时间为(),JOB4的周转时间为().请问:什么是最先适应分配算法,还有其他什么算法吗?最好能说得详细些.此题怎么解?所谓最先适应分配算法,就是指使用第一次找到的那块合适的内存区域分给作业。该题并不是考最先适应分配算法,而是考察短作业优先调度算法。(1),所谓短作业优先,是说在各作业同时到达或都在等待时,优先选择执行时间短的。(2),作业的周转时间包括所有等待时间和自己的执行时间。发现我们两个都犯了个错误。错误在于忽略了最先适应分配算法以及题目所说的“不可移动”分配内存。在JOB1从输入井进入内存之后,内存还剩余80K,8.2时刻JOB2赶到,申请60K内存,批准,还剩余20K,但不能立即执行,因为JOB1还没执行完。8.4时刻JOB3也赶到,申请25K内存,内存不够,不批准,让JOB3在输入井中等待。8.6时刻JOB4赶到,申请20K,刚好有20K,批准,此时内存中有三个作业JOB1、JOB2、JOB4。9时刻,JOB1执行完成,释放出20K内存,但是不满足JOB3的25K需要,所以此时JOB3被排斥在内存之外,于是下一步只能选择JOB4,执行JOB4之后也释放20K内存。此时,注意,在JOB2上面和下面各有20K内存区域,又因为分配后的内存不可移动,不能把60K移动到某一头,让这两个20K连成连续的40K空间。这导致JOB3一直被排斥在内存之外,直到JOB2执行完之后,这个时候已经是时刻10,也就是那个参考答案表中的JOB3的开始时间是10了。8.设有一个关系模式R(A,B,C,D),F={A-B,B-C,C-D,D-A},求R的侯选码及可达到的最高范式。只要能推导出整个属性组U,况且没有多余元素就是候选码。在这个关系模式中,A、B、C、D都能推导出U,况且只有自身一个元素无多余元素,所有都是候选码。因为R没有非主属性,R是3NF.但是R是否属于BCNF呢?按照BCNF的定义:如果每一个决定因素都含有码,即是BCNF,当然此题满足这个条件,从这个条件看,R是属于BCNF。但是R又存在传递依赖(A-B-C得出A-C),好像又不是BCNF,这到底应该怎么理解?这里应该是BCNF。你所例举的传递依赖是不成立的,它不符合传递依赖的定义,你错就错在这里。对于传递依赖X-Y-Z,要求:1,Y不是X的子集;2,Y-X不成立;3,Z不是Y的子集。你例举的“A-B-C”,根据函数依赖集中的“B-C,C-D,D-A”及Armstrong推理系统中的传递律(注意,不是传递依赖,不要把两者搞混了),可得B-A。这显然不满足条件2。因此不属于传递依赖。但是它是成立的,只是不符合传递依赖的定义罢了。9.有只与一个实体相当的联系吗?如果只有一个实体,还需要什么联系?你狭隘地理解了实体间的联系。在E-R中,可以将实体理解为一个集合。一个实体可以自己跟自己联系,比如职工实体集中有领导和被领导的联系,也就是说职工当中某一员来领导所有职工,那么“领导”这个联系两端都连接在实体“职工”上。10.元组比较操作(a1,a2)(b1,b2)的意义是_________。老师,本题我觉得不理解,首先,元组中某一分量是可以用来比较的,如a1[i]b1[j],但是元组之间也能比较的吗?通俗点说,a1,a2,b1,b2都是表中的一行记录吧,如果有一选课关系模式(学号,课程号,成绩)。数据为(张三,‘c001',67),(李四,'c002',78),难道这二条记录有可比性?当然不是你说的这种情况的操作,这种元组比较一般用于字符或者数字比较。比如比较(10,11)和(10,12),那么根据上述法则有(10,11)(10,12)。又如(12,6)和(10,66),则有(12,6)(10,66)。又如(a,6)和(b,1),则有(a,6)(b,1)。优先考虑第1个,元素比较,在第一个相等的情况下才考虑第2个。对(39)我还是不明白,如果是字符串比较“abc;234bbc;234或者abc;324abc;434那我理解。还有(58)、(59)的试题分析,其中有A=18???“abc;234和bbc;234比较,取第1个字母a、b比较,发现ab,于是abc;234bbc;234。11.老师,关于六套模拟题下午第三大题中最后一小题(第9和10)的填空,是否都可以用肯定的方式?还有没有其他答案?这类题一直无法理解其真正的思路.急.请老师能否详细解答一下.解这类题有什么技巧没有?此类题做过几道,每一次都糊涂.一般地,如果看到查询要求中有“至少”之类的,需要从反面考虑问题的,就用双重否定来表示肯定。像这种用双重否定的查询SQL语句,在月4日数据库网上课堂记录中重点详细讲了这个问题查询至少选修了95002选修的所有课程的学生的学号解题思路是怎么样的?查询语句为SELECTDistinctSnoFROMSCSCXWHERENOTEXISTS(SELECT*FROMSCSCYWHERESCY.SNO='95002'ANDNOTEXISTS(SELECT*FROMSCSCZWHERESCZ.SNO=SCX.SNOANDSCZ.CNO=SCY.CNO))我个人感觉,在第二层中SELECT*FROMSCSCYWHERESCY.SNO='95002'ANDNOTEXISTS(SELECT*FROMSCSCZWHERESCZ.SNO=SCX.SNOANDSCZ.CNO=SCY.CNO)只有先执行了SELECT*FROMSCSCYWHERESCY.SNO='95002'生成新的SCY'(其中就只包括了95002选修课程的相关信息),再在这个SCY'的基本上执行NOTEXISTS(SELECT*FROMSCSCZWHERESCZ.SNO=SCX.SNOANDSCZ.CNO=SCY.CNO)判断,再把这个返回值送给第一层的NOTEXIST判断,这样整个查询语句才执行得通,可我总觉得有点不太对头,请老师指正老师提示:SELECTDistinctSnoFROMSCSCX....中的“FROMSCSCX”,表示将表SC取一个别名SCX,其它类似。另外,提示:嵌套查询中,外层查询称为父查询,内层查询称为子查询。如果子查询的查询条件不依赖父查询,则称这类子查询为不相关子查询,在这种情况下,一般由外向里进行处理,即每个子查询在上一级查询处理之前求解,子查询的结果用于建立其父查询的查找条件。如果子查询的查询条件依赖父查询,则称这类子查询为相关子查询,上例就是。这种情况下,是这样处理的,首先取外层查询表中的第一个元组,根据它与内层查询相关属性值处理内层查询,若满足要求就将第一个元组放入结果表中,然后再取外层查询表的第二个元组,做类似处理。重复上述过程直到外层查询表检查完为止。该查询可以用逻辑蕴涵来表示:查询学号为NO的学生,对所有的课程Y而言,只要学号为95002的学生选修了课程Y,则学号为NO的学生也选修了课程Y。即:用P表示谓词:学生95002选修了课程Y。用M表示谓词:学生NO选修了课程Y。那么上述查询可表示为:(△Y)P→M转换成等价形式:(△Y)P→M≡┐(〓Y(┐(P→M)))≡┐(〓Y(┐(┐P∨M)))≡┐〓Y(P∧┐M)其中假设,△表示任取,〓表示存在,∨、∧分别表示“逻辑或”、“逻辑与”,┐表示逻辑取非。这个式子表达的语义就是:不存在这样的课程Y,学生95002选修了Y,而学生NO没有选。它的查询过程大致是这样:从最外层查询表SCX取第1个元组,进入第2层查询,取第2层查询的查询表SCY的第1个元组,检查条件“SCY.SNO='95002'”与:NOTEXISTS(SELECT*FROMSCSCZWHERESCZ.SNO=SCX.SNOANDSCZ.CNO=SCY.CNO)是否同时成立。假设SCY的第1个元组的SCY.SNO为'95002',则第1个条件成立,进入第3层即最内层查询,取查询表SCZ的第一个元组进行“SCZ.SNO=SCX.SNOANDSCZ.CN

1 / 49
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功