每日打卡题136-140答案
136、软件架构演化按照软件架构的实现方式和实施粒度可以分为基于过程和函数的演化、( )、基于组件的演化和基于架构的演化。
A. 结构化演化 B. 面向对象演化
C. 按基于流程演化 D. 基于业务演化
答案:B
解析:按照软件架构的实现方式和实施粒度分类:基于过程和函数的演化、面向对象的演化、基于组件的演化和基于架构的演化。
137、【2013年真题】 难度:一般
给定员工关系EMP(EmpID,Ename,sex,age,tel,DepID),其属性含义分别为:员工号、姓名、性别、年龄、电话、部门号;部门关系DEP(DepID,Dname,Dtel,DEmpID),其属性含义分别为:部门号、部门名、电话,负责人号。若要求DepID参照部门关系DEP的主码DepID,则可以在定义EMP时用 (1) 进行约束。若要查询开发部的负责人姓名、年龄,则正确的关系代数表达式为 (2) 。
(1)A.Primary Key(DepID) On DEP(DepID)
B.Primary Key(DepID) On EMP(DepID)
C.Foreign Key(DepID) References DEP(DepID)
D.Foreign Key(DepID) References EMP(DepID)
(2)A.π2,4(σ8=‘开发部’(EMP×DEP))
B.π2,4(σ1/9(EMPσ2=‘开发部’(DEP)))
C. π2,3(EMP×(σ2=‘开发部’(DEP))
D.π2,3(π1,2,4,6(EMP)σ2=‘开发部’(DEP))
答案:(1)C (2)B
解析:
员工关系中的:DepID是一个外键,为了保证数据的正确性,通过参照完整性加以约束。SQL语言通过使用保留字Foreign Key定义外键,References指明外码对应于哪个表的主码。参照完整性定义格式如下:
Foreign Key(属性名) References表名(属性名)
可见,若要求DepID参照部门关系DEP的主码DepID,则可以在定义EMP时用“Foreign Key(DepID) References DEP(DepID)”进行约束。
试题(8)要求“查询开发部的负责人姓名、年龄”的关系代数表达式,选项B是先进行σ2=‘开发部’(DEP)运算,即在DEP关系中选择部门名Dname='开发部’的元组;然后将EMP关系与其进行EMP.DepID=DEP.DepID的自然连接,并去掉右边的重复属性“DERDepID”,自然连接后的属性列为(EmpID,Ename,sex,age,tel,DepID,Dname,Dtel,DEmpID);在此基础上进行σ1=9运算,即进行员工号EmpID等于部门负责人号DEmpID的选取运算;最后进行属性列2(Ename)和属性列4(age)的投影运算。
138、【2014年真题】 难度:一般
设关系模式R(U,F),其中U为属性集,F是U上的一组函数依赖,那么函数依赖的公理系统(Armstrong公理系统)中的合并规则是指( )为F所蕴涵。
A.若A→B,B→C,则A→C B.若YX U,则X→Y
C.若A→B,A→C,则A→BC D.若A→B,CB,则A→C
答案:C
解析:
本题考查函数依赖推理规则。
函数依赖的公理系统(即Armstrong公理系统)为:设关系模式R(U,F),其中U为属性集,F是U上的一组函数依赖,那么有如下推理规则:
A1自反律:若Y X U,则X→Y为F所蕴涵。
A2增广律:若X→Y为F所蕴涵,且ZU,则XZ→YZ为F所蕴涵。
A3传递律:若X→Y,Y→Z为F所蕴涵,则X→Z为F所蕴涵。
根据上述三条推理规则又可推出下述三条推理规则:
A4合并规则:若X→Y,X→Z,则X→YZ为F所蕴涵。
A5伪传递率:若X→Y,WY→Z,则XW→Z为F所蕴涵。
A6分解规则:若X→Y,ZY,则X→Z为F所蕴涵。
选项A符合规则为A3,即传递规则;选项B符合规则为A1,即为自反规则;选项C符合规则为A4,即为合并规则;选项D符合规则为A6,即为分解规则。
139、【2014年真题】 难度:一般
若关系模式R和S分别为:R(A,B,C,D.、S(B,C,E,F.,则关系R与S自然联结运算后的属性列有 (1) 个,与表达式π1, 3, 5, 6(σ3<6())等价的SQL语句为:
SELECT (2) FROM R, S WHERE (3) 。
(1)A.4 B.6 C.7 D.8
(2)A.A, R.C, E, F B.A, C, S.B, S.E
C.A, C, S.B, S.C D.R.A, R.C, S.B, S.C
(3)A.R.B=S.B AND R.C=S.C AND R.C<S.B
B.R.B=S.B AND R.C=S.C AND R.C<S.F
C.R.B=S.B OR R.C=S.C OR R.C<S.B
D.R.B=S.B OR R.C=S.C OR RC<S.F
答案:(1)B (2)A (3)B
解析:
本题考查关系代数运算与SQL查询方面的基础知识。
自然连接是指R与S关系中相同属性列名的等值连接运算后,再去掉右边重复的属性列名S.B、S.C,所以经运算后的属性列名为:R.A、R.B、R.C、R.D、S.E和S.F,共有6个属性列。
π1, 3, 5, 6(σ3<6())的含义是从结果集中选取R.C<S.F的元组,再进行R.A、R.C、S.E和S.F投影,故选项A是正确的。
由于自然连接是指R与S关系中相同属性列名的等值连接,故需要用条件“WHERE R.B=S.B AND R.C=S.C”来限定;又由于经自然连接运算后,去掉了右边重复的属性列名S.B、S.C,使得第三列属性列名和第六列属性列名分别为R.C、S.F,所以选取运算σ3<6需要用条件“WHERE R.C<S.F”来限定。
140、【2015年真题】 难度:一般
若系统中存在n个等待事务Ti(i=0,1,2,…,n-1),其中:T0正等待被T1锁住的数据项A1,T1正等待被T2锁住的数据项A2,…,Ti正等待被Ti+1锁住的数据项Ai+1,…,Tn-1正等待被T0锁住的数据项A0,则系统处于 ( )状态。
A.封锁 B.死锁 C.循环 D.并发处理
答案:B
解析:
本题考查关系数据库事务处理方面的基础知识。
与操作系统一样,封锁的方法可能引起活锁和死锁。例如事务T1封锁了数据R,事务T2请求封锁R,于是T2等待。T3也请求封锁R,当T1释放了R上的封锁之后系统首先批准了T3的请求,T2仍然等待。然后T4又请求封锁R,当T3释放R上的封锁后系统又批准了T4的请求,……。T2有可能长期等待,这就是活锁。避免活锁的简单方法是采用先来先服务的策略。即让封锁子系统按请求封锁的先后次序对事务排队。数据R上的锁一旦释放就批准申请队列中的第一个事务获得锁。
又如事务T1封锁了数据R1,T2封锁了数据R2,T3封锁了数据R3。然后T1又请求封锁R2,T2请求封锁R3,T3请求封锁R1。于是出现T1等待T2释放R2上的封锁,T2等待T3释放R3上的封锁,T3等待T1释放R1上的封锁。这就使得三个事务永远不能结束。即多个事务都请求封锁别的事务已封锁的数据,导致无法运行下去的现象称为死锁。