还剩34页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
第10章数据库系统工程师级下午试题分析试题1分析参见软件设计师下午试题一分析试题2阅读下列说明,回答问题1至问题5说明某工厂的信息管理数据库的部分关系模式如下所示职工职工号,姓名,年龄,月工资,部门号,电话,办公室部门部门号,部门名,负责人代码,任职时间关系模式的主要属性、含义及约束如表2—1所示,“职工”和“部门”的关系示例分别如表2-2和表2-3所示表2-1主要属性、含义及约束属性含义和约束条件职工号惟一标记每个职工的编号,每个职工属于并且仅属于一个部门部门号惟一标识每个部门的编号,每个部门有一个负责人,且他也是一个职工月工资500元≤月工资45000元表2-2“职工”关系职工号姓名年龄月工资部门号电话办公室1001郑俊华26100018001234主楼2011002王平27110018001234主楼2012001王晓华381300280012351号楼3022002李力24800280012361号楼3033001黎远军42130038001237主楼2024001李源24800480012452号楼1024002李兴民361200480012462号楼1035001赵欣250Null┄┄表2-3“部门”关系部门号部门名负责人代码任职时间1人事处10022004-8-32机关20012004-8-33销售科4生产科40022003-6-15车间[问题1]根据上述说明,由SQL定义的“职工”和“部门”的关系模式,以及统计各部门的人数C、工资总数Totals、平均工资Averages的D_S视图如下所示,请在空缺处填入正确的内容CreateTable部门部门号CHAR1a,部门名CHAR16,负责人代码CHAR4,任职时间DATE,b职工号;CreateTable职工职工号CHAR4,姓名CHAR8,年龄NUMBER3,月工资NUMBER4,部门号CHAR1,电话CHAR8,办公室CHAR8,a职工号,c部门号,CHECKd;CreateViewD_SDCTotalsAveragesAsSelect部门号,efrom职工f;[问题2]对于表2-
2、表2-3所示的“职工”和“部门”关系,请指出下列各行是否可以插入,为什么[问题3]在问题1定义的视图D_S上,下面哪个查询或更新是允许执行的,为什么1UpdateD_SsetD-3whereD=4;2DeletefromD_SwhereC>4;3SelectD,AveragesfromD_SwhereC>SelectCfromD_SwhereD=:dept;4SelectDCFromD_SwhereTotals>10000;5Select*fromD_S;[问题4]查询每个部门中月工资最高的“职工号”的SQL查询语句如下Select职工号from职工Ewhere月工资=SelectMax月工资from职工asMwhereM.部门号=E.部门号1请用30字以内文字简要说明该查询语句对查询效率的影响2对该查询语句进行修改,使它既可以完成相同功能,又可以提高查询效率[问题5]假定分别在“职工”关系中的“年龄”和“月工资”字段上创建了索引,如下的Select查询语句可能不会促使查询优化器使用索引,从而降低查询效率,请写出既可以完成相同功能又可以提高查询效率的SQL语句Select姓名,年龄,月工资from职工where年龄>45or月工资<1000;试题2[分析][问题1][分析]根据题意,“职工”和“部门”的关系模式如下用SQL定义关系模式的一个非常重要的问题是完整性控制完整性控制应具有三方面的功能定义功能、检测功能、处理功能一旦发现违背了完整性约束条件,采取相关的动作来保证数据的完整性数据库中最重要的约束是声明一个或一组属性形成关系的键键的约束在SQL的CREATETABLE命令中声明在关系系统中,最重要的完整性约束条件是实体完整性和参照完整性1.实体完整性定义在关系中只能有一个主键声明主键有两种方法
①将PRIMARYKEY保留字加在属性类型之后
②在属性列表中引入一个新元素,该元素包含保留字PRIMARYKEY和用圆括号括起的形成该键的属性或属性组列表2.参照完整性参照完整性定义格式如下FOREIGNKEY属性名REFERENCES表名属性名[ONDELETE[CASCADE|SETNULL]参照完整性是通过使用如下保留字FOREIGNKEY定义那些列为外码;REFERENCES指明外键对应于哪个表的主键;ONDELETECASCADE指明删除被参照关系的元组时,同时删除参照关系中的元组;SETNULL表示置为空值方式本试题中,部门关系的主键为部门号,职工关系的主键为职工号其中,部门关系的主键为部门号可采用如下两种方式定义部门号CHAR1PRIMARYKEY或者是PRIMARYKEY部门号又因为负责人也是一个职工,所以负责人代码应该是一个外码,应进行参照完整性定义根据分析部门的SQL定义如下CreateTable部门部门号CHAR1PRIMARYKEY,部门名CHAR16,负责人代码CHAR4,任职时间DATE,FOREIGNKEY负责人代码REFERENCES职工职工号;在职工关系中,部门号是一个外码,应进行参照完整性定义又因为在试题表2-1中的条件“500元≤月工资≤5000元”,所以在职工关系中应加上用户定义完整性根据分析职工的SQL定义如下CreateTable职工职工号CHAR4,姓名CHAR8,年龄NUMBER3,月工资NUMBER4,部门号CHAR1,电话CHAR8,办公室CHAR8,PRIMARYDEY职工号,FOREIGNKEY部门号REFERENCES部门部门号,CHECK月工资BETWEEN500AND5000;建立D_S视图需要COUNT函数来统计各部门的人数C,SUM来计算工资总数Totals,用AVG来计算平均工资Averages,用分组语句GROUPBY来对不同部门进行分组因此创建D_S视图的SQL语句是CreateViewD_SD,C,Totals,AveragesASSELECT部门号,COUNT*,SUM月工资,AVG月工资FROM职工GROUPBY部门号[问题2][分析]本题主要考查完整性定义的约束性以下表是待插入的记录组1由于在职工表的定义中职工号主码是惟一标识每个元组记录的,而1中的职工号是“1001”,在试题的职工关系中已经存在该职工号的记录,为了保证实体的完整性,该条记录不能插入2该元组可以插入“职工”关系,尽管部门号、电话和办公室为空,但是它表示该职工暂时没有分配到某个部门虽然职工表中部门号是外键,但在定义中也没有约束它不能为空3该元组不能插入“职工’关系,部门号是外键,而在部门关系中找不到部门号是6的元组,违反了参照完整性,所以不能做插入操作[问题3][分析]此问考查的是视图更新必须遵循的原则因此,需要将SQL语句与定义该视图的SQL语句结合起来考虑由于SQL视图更新必须遵循以下规则▲从多个基本表通过连接操作导出的视图不允许更新▲对使用了分组、集函数操作的视图则不允许进行更新操作▲如果视图是从单个基本表通过投影、选取操作导出的则允许进行更新操作,且语法同基本表1由于D_S视图中包含分组操作,也即将D_S视图合并到UpdateD_SsetD=3whereD=4,结果为Update职工set部门号=3where部门号=4GROUPBY部门号,在where中包括GROUP分组操作,因此不能执行2同理,将D_S视图合并到DeletefromD_SwhereC>4中,结果为Deletefrom职工whereCOUNT职工号>4GROUPBY部门号,因此不能执行3对于SelectD,AveragesfromD_SwhereC>SelectCfromD_SwhereD=dept,要根据视图的返回值的情况因此不一定能执行4对于语句SelectD,CFromD_SwhereTotals>10000可以执行5对于语句Select*fromD_S显然是能执行的[问题4][分析]此问考查的是查询效率的问题在涉及相关查询的某些情形中,构造临时关系可以提高查询效率1对于外层的职工关系E中的每一个元组,都要对内层的整个职工关系M进行检索,因此查询效率不高2此问有两种解法解答一改正后的SQL语句使用了临时表SelectMax月工资as最高工资,部门号intoTempfrom职工Groupby部门号Select职工号from职工,Tempwhere月工资=最高工资and职工.部门号=Temp.部门号解答二Select职工号from职工,SelectMax月工资as最高工资,部门号Groupby部门号asdepMaxwhere月工资;最高工资and职工.部门号;depMax.部门号[问题5][分析]问题5中的Select查询语句中使用了条件or,系统在查询的时候将对全表进行扫描,不会促使查询优化器使用索引,从而降低了查询效率改正的方法是去掉or,修改后的SQL语句如下Select姓名,年龄,月工资from职工where年龄>45;unionSelect姓名,年龄,月上资from职工where年龄月工资<1000;参考答案[问题1]解答aPRIMARYKEYbFOREIGNKEY负责人代码REFERENCES职工cFOREIGNKEY部门号REFERENCES部门d月工资>=500AND<月工资=5000,或月工资BETWEEN500AND5000ecount*,Sum月工资,Avg月工资fGrOupby部门号[问题2]解答1该行不能插入“职工”关系,它违反了实体完整性中主码必须惟一区分关系中的每一个属性2该行可以插入“职工”关系,尽管部门号、电话和办公室为空,但是它表示该雇员没有分配到某个部门3该行不能插入“职32’关系,它违反了参照完整性因为6在关系“部门”中不存在[问题3]解答此问考查的是对视图定义的掌握1和2都不能更新,因为使用分组合聚集函数定义的视图是不可更新的3不一定,视子查询的返回值而定,4和5允许查询[问题4]解答此问考查的是查询效率的问题在涉及相关查询的某些情形中,构造临时关系可以提高查询效率1对于外层的职工关系E中的每一个元组,都要对内层的整个职工关系M进行检索,因此查询效率不高2解答一改正后的SQL语句使用了临时表SelectMax月工资as最高工资,部门号intoTempfrom职工Groupby部门号Select职工号from职工,Tempwhere月工资=最高工资and职工,部门号=Temp.部门号解答二Select职工号from职工,SelectMax月工资as最高工资,部门号Groupby部门号asdepMaxwhere月工资=最高工资and职工.部门号=depMax.部门号[问题5]解答此问主要考查在查询中注意where子句中使用索引的问题Select姓名,年龄,月工资from职工where年龄>45;unionSelect姓名,年龄,月工资from职工where年龄月工资<1000;试题3阅读下列说明,回答问题1至问题5说明某仓储超市采用POSPointofSale收银机负责前台的销售收款,为及时掌握销售信息,并依此指导进货,拟建立商品进、销、存数据库管理系统该系统的需求分析已经基本完成,下面将进入概念模型的设计需求分析结果1.销售业务由POS收银机来辅助实现POS机外接条码阅读器,结账时收银员将商品的条码通过阅读器输入POS机中所售商品数量默认值为1,可以由收银员修改POS机根据输入的商品信息,打印出如图3-1所示的购物清单2.将经销的商品分为直销商品和库存商品两大类直销商品的保质期较短,如食品类,由供应商直接送达超市,管理员将过期的商品返还给供应商处理;库存商品由采购员向供应商提交订购单,供应商根据订购单送货超市会不定期对库存商品按照折扣率进行打折优惠直销商品和库存商品的送货单样表分别如图3-
2、图3-3所示,其中直销商品生产批号的前6位表示生产日期3.超市的硬件拓扑结构如图3-4所示4.业务处理过程由POS机存储每一笔销售记录,在每个工作日结束前汇总当日各商品的销售量至中心数据库销售日汇总;根据当日的销售日汇总更新存货表;每笔进货记入进货表中,并及时更新存货表图3-2直销商品送货单样表图3-3库存商品送货单样表概念模型设计根据需求阶段收集的信息,设计的实体联系图和关系模式不完整如下1.实体联系图2.关系模式销售详单销售流水号,商品编码,数量,金额,收银员,时间销售日汇总日期,商品编码,数量存货表商品编码,数量进货表送货号码,商品编码,数量,日期商品b[问题1]对直销商品和库存商品进行概括,给出超类和子类,填入图3-5中a处所示的虚线框内,并补充联系[问题2]根据你的实体联系图,完成b处的商品关系模式,并增加子类型的实体关系模式[问题3]对所有关系模式,以下划线指出各关系模式的主键[问题4]如果将商品信息只存储在中心数据库中,与在各POS机上存储其备份相比,从前台销售效率和更新商品库两方面论述各自的优缺点不超过300字[问题5]如果考虑引入积分卡,根据累积消费金额计算积分点,再根据积分点在顾客购物时进行现金返还,并修改顾客的累积消费金额和积分点请给出新增加的积分卡关系模式,并对销售详单关系模式进行修正,指出修正后关系模式和新增关系模式的候选键和外键试题3[分析]本题考查的是关于数据库设计中的概念结构设计与逻辑结构设计方面的知识在概念设计阶段中,数据抽象是对实际的人、物、事和概念进行人为处理,抽取所关心的共同特性有三种抽象分类、聚集和概括其中概括是定义类型之间的一种子集联系,其重要性质是继承性也就是说子类继承了超类上定义的所有抽象概念设计是独立于任何一种数据模型的信息结构而逻辑结构设计的任务是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构E-R图向关系模型的转换要解决的问题是如何将实体和实体的联系转换为关系模式,如何确定这些关系模式的属性和码一般这种转换的原则是一个实体型转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码E-R图中的联系有三种一对一联系1:
1、一对多联系1:n和多对多联系m:n,针对这三种不同的联系,有不同的转换方法▲1:1联系的转换一对多联系有两种方式向关系模式进行转换一种方式是将联系转换成一个独立的关系模式,关系模式的名称取联系的名称,关系模式的属性包括该联系所关联的两个实体的码及联系的属性,关系的码取自任一方实体的码另一种方式是将联系归并到关联的两个实体的任一方,给待归并的一方实体属性集中增加另一方实体的码和该联系的属性即可,归并后的实体码保持不变▲1:n联系的转换一对多联系有两种方式向关系模式进行转换一种方式是将联系转换成一个独立的关系模式,关系模式的名称取联系的名称,关系模式的属性取该联系所关联的两个实体的码及联系的属性,关系的码是多方实体的码;另一种方式是将联系归并到关联的两个实体的多方,给待归并的多方实体属性集中增加一方实体的码和该联系的属性即可,归并后的多方实体码保持不变▲m:n联系的转换多对多联系只能转换成一个独立的关系模式,关系模式的名称取联系的名称,关系模式的属性取该联系所关联的两个多方实体的码及联系的属性,关系的码是多方实体的码构成的属性组[问题1][分析]问题1考查应试者对概念模型的掌握建立概念模型就是以图示化的方法通常采用E-R图,本题已给出部分实体联系图,要求应试者对题目论述和给定的实体联系力的分析,要补充的内容是虚线框内的实体和缺少的联系的描述根据题干的描述,图中缺少商品实体,且应划分为直销商品和库存商品两个子类并画出销售日汇总、存货表和进货表与商品实体之间的联系通过分析得到的E-R如下[问题2][分析]根据[问题1]中填入的实体,和题干中给定的对直销商品和库存商品的描述送货表、销售清单和打折处理,分析各实体应具有的属性从试题中可以看出商品包括了商品编码,商品名称及价格属性,所以得出商品关系模式如下商品商品编号,商品名称,供应商,单价因为又由于直销商品有保质期长短等问题,所以根据题意有生产批号、消费期限属性,因此直销商品的关系模式如下直销商品商品编号,生产批号,消费期限由于库存商品会不定期按照折扣率进行打折优惠,可以看出库存商品还有价格折扣率这个字段,所以库存商品的关系模式如下库存商品商品编号,折扣率[问题3][分析]根据题目给定的关系模式和[问题2]补充的关系模式,根据属性间的函数依赖关系和给定的关系实例各种样表,来确定各关系模式的主键销售详单的主键为销售流水号,商品编码销售日汇总的主键为日期,商品编码存货表主键为商品编码进货表主键为送货号码,商品编码商品主键为商品编号直销商品主键为商品编号,生产批号库存商品主键为商品编号[问题4][分析]本题要求结合数据存储与实际应用,在设计中如何考虑可能出现的各种因素,采取合理的处理方式可以考虑如下两种情况▲采用商品信息集中存储在中心数据库中,则在销售前台的每笔计费中,都必须从中心数据库提取商品名称和单价,增加网络的负载,在业务繁忙时直接影响到前台的销售效率;同时,如果发生网络故障,则该POS机不能工作采用这种方式,对商品库的更新,如引入新的商品和修改商品价格,会及时体现在前台的销售业务中▲采用商品信息存储在中心数据库中,各POS机存储商品表的备份;POS机直接从本地读取商品信息,减少了网络的负载,可以提高交易的效率;同时即使有短时间的网络故障,也不影响该POS机的正常使用,只有当存在商品信息变更时才需要与中心数据库同步采用这种方式,必须在每次商品信息变更时同步各POS机的数据[问题5][分析]本题是对现有关系模式的改进和面向新应用的扩充对销售详单做如下的修改,增加积分卡号属性销售详单销售流水号,商品编码,数量,金额,收银员,时间,另外,需要增加积分卡关系积分卡,累积消费金额,积分点试题3解答[问题1]解答[问题2]解答商品商品编号,商品名称,供应商,单价直销商品商品编号,生产批号,消费期限库存商品商品编号,折扣率[问题3]解答销售详单销售流水号,商品编码,数量,金额,收银员,时间销售日汇总日期,商品编码,数量存货表商品编码,数量进货表送货号码,商品编码,数量,日期商品商品编号,商品名称,供应商,单价直销商品商品编号,生产批号,消费期限库存商品直显组号,折扣率[问题4]解答1.采用商品信息集中存储在中心数据库中,则在销售前台的每笔计费中,都必须从中心数据库提取商品名称和单价,增加网络的负载,在业务繁忙时直接影响到前台的销售效率;同时,如果发生网络故障,则该POS机不能工作采用这种方式,对商品库的更新,如引入新的商品和修改商品价格,会及时体现在前台的销售业务中2.采用商品信息存储在中心数据库中,各POS机存储商品表的备份,POS机直接从本地读取商品信息,减少了网络的负载,可以提高交易的效率;同时即使有短时间的网络故障,也不影响该POS机的正常使用,只有当存在商品信息变更时才需要与中心数据库同步采用这种方式,必须在每次商品信息变更时同步各POS机的数据[问题5]解答1.对销售详单关系模式做如下的修改,增加积分卡号属性销售详单销售流水号,商品编码,数量,金额,收银员,时间,2.加积分卡关系模式积分卡积分卡号,累积消费金额,积分点关系模式中画实下划线表示主键,虚下划线表示外键试题4阅读下列说明,回答问题1至问题3说明M公司为某旅游公司设计机票销售专用数据库,其关系模式如图4-1所示关系模式的主要属性、含义及约束如表4—1所示,属性间的函数依赖关系如图4-2所示,属性间函数依赖的标记方法如图4-3所示属性含义和约束条件旅程编号惟一标识每个能按期出发的旅行团队的编号相同旅程编号的旅客,,在同一日程中搭乘相同航班旅客编号惟一标识一个旅行团队中的每一位旅客的编号团队编号惟一标识每个旅行团队的编号,如“2004-8-4云南双飞”身份证号惟一识别身份的编号旅客旅行前需要向旅行社提出申请,说明要参加的旅行团队旅行社建立的旅行申请包括,旅行出发日期和到达日期的机票预订、购票等信息旅行社还需要为每个团队制定“旅程”和“搭乘航班”表有关“旅程”和“搭乘航班”的示例如表4-
2、表4-3所示旅客编号A01旅程编号P1搭乘日期出发地目的地出发时间到达时间航班名
2004.
5.1西安桂林10:0013:00JJ
1002004.
5.1桂林昆明17:0019:00CC
4002004.
5.5昆明西安9:0012:30JJ600表4-3“搭乘航班”示例旅程编号旅客编号搭乘日期航班名P1A
012004.
5.1JJ100P1A
012004.
5.1CC400P1A
012004.
5.5JJ600P1B
022004.
5.1JJ100P1B
022004.
5.1CC400P1B
022004.
5.5JJ600P2C
032004.
5.1JJ200P2C
032004.
5.5JJ700[问题1]对关系“航班”,请回答以下问题1列举出所有不属于任何候选键的属性非键属性2关系“航班”可达到第几范式,用不超过60个字的内容叙述理由[问题2]对关系“旅客”,请回答以下的问题1针对“旅客”关系,用100字以内文字简要说明会产生什么问题,并加以修正2列出修正后的关系模式的所有候选键3把“旅客”分解为第三范式,并用图4-1所示的关系模式的形式表示,分解后的关系名依次取旅客
1、旅客
2、…[问题3]对关系“搭乘航班”,请回答以下的问题1把非平凡的多值依赖属性图4-2中没有表示的例子用满足图4-3的方式表示出来2关系“搭乘航班”是boycecodd范式而不是第四范式,请用200字以内文字阐述理由3把“搭乘航班”关系分解成第四范式,并采用图4-1所示的关系模式的形式表示,分解后的关系名依次取搭乘航班
1、搭乘航班
2、…试题4[分析]试题四是关于数据库设计理论方面的题目关系数据库设计理论的核心是数据间的函数依赖,衡量的标准是关系规范化的程度及分解的无须连接和保持函数依赖性,关系数据库设计的目标是生成一组合适的、性能良好的关系模式,以减少系统中信息存储的冗余度,但又可方便地获取信息数据库设计理论包括函数依赖,范式和关系模式规范化三个方面的内容其中函数依赖是该理论的核心[问题1][分析]为了做好这种类型的试题,需要正确地理解如下基本概念函数依赖设RU是属性集U上的关系模式,X、Y是U的子集若对RU的任何一个可能的关系r,r中不可能存在两个元组在x上的属性值相等,而在Y上的属性值不等,则称X函数决定Y或Y函数依赖于X,记作X→Y非平凡的函数依赖如果X→Y,但YX,则称X→Y是非平凡的函数依赖一般情况下总是讨论非平凡的函数依赖平凡的函数依赖如果X→Y,但YX,则称X→Y是平凡的函数依赖完全函数依赖在RU中,如果X→Y,并且对于X的任何一个真子集X,都有X不能决定Y,则称Y对X完全函数依赖,记作XY部分函数依赖如果X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作XY部分函数依赖也称局部函数依赖传递依赖在RU,F中,如果X→Y,YX,YX,Y→Z,则称Z对X传递依赖候选码设K为RU,F中的属性的组合,若KU,且对于K的任何一个真子集K,都有K不能决定U,则K为R的候选码候选关键字,若有多个候选码,则选一个作为主码主键主属性和非主属性包含在任何一个候选码中的属性叫做主属性,否则叫做非主属性1NF若关系模式R的每一个分量是不可再分的数据项,则关系模式R∈第一范式1NF2NF若关系模式R∈1NF,且每一个非主属性完全依赖于码,则关系模式R∈2NF换句话说,当1NF消除了非主属性对码的部分函数依赖,则称为2NF3NF若关系模式RU,F中若不存在这样的码X,属性组Y及非主属性ZZY使得X→Y,YXY→Z成立,则关系模式R∈3NF即当2NF消除了非主属性对码的传递函数依赖,则称为3NFBCNF若关系模式R∈1NF,若X→Y且YX时,X必含有码,则关系模式R∈BCNF即当3NF消除了主属性对码的部分和传递函数依赖,则称为BCNF4NF关系模式R∈1NF,若对于R的每个非平凡多值依赖X→→Y且YX时,X必含有码,则关系模式RU,F∈4NF在问题1中,1对关系“航班”的候选键为航班名飞行日期,所以非键属性为航空公司名称,出发地点,出发时间,目的地,到达时间2关系“航班”是属于1NF的因为非主属性航空公司名称,出发地点,目的地不完全函数依赖于候选键航班名,飞行日期该关系模式存在如下函数依赖航班名→航空公司名称,出发地点,目的地;航班名,飞行日期→出发时间,到达时间[问题2][分析]问题2可以有两种解题思路第一种解题方法1在题中给出的“旅客”关系中,不同的团队会有相同的旅客编号,所以,旅客编号不能作为候选键,如果同一旅客不同时间参加不同的团队将导致“身份证号”无法确定关系中的每一个元组,所以“身份证号”也不能作为候选键为此,需要增加一个“团队编号”的属性又由于{身份证号,团队编号→旅客编号旅客编号,团队编号→身份证号;身份证号→姓名,联系方法,出生日期,性别},所以该关系模式存在部分函数依赖,导致旅客参加多少次团队,其姓名等信息将重复多少次2候选键身份证号,团队编号和旅客编号,团队编号3“旅客”分解为第三范式如下所示第二种解题方法1在题中给出的“旅客”关系中,不同的团队会有相同的旅客编号,所以,旅客编号不能作为候选键,如果同一旅客不同时间参加不同的团队将导致“身份证号”无法确定关系中的每一个元组,所以“身份证号”也不能作为候选键为此,可以通过修改“旅客编号”属性的定义加以解决,旅客编号由“团队编号+队内编号”来解决这时关系的候选键为“旅客编号”,该关系模式存在传递依赖,导致旅客参加多少次团队,其姓名等信息将重复多少次2候选键旅客编号3“旅客”分解为第三范式如下所示[问题3][分析]1通过对试题中给出的关系“搭乘航班”,由于旅程编号→→旅客编号,旅程编号→→{搭乘日期,航班名,所以非平凡的多值依赖的图如下所示2关系“搭乘航班”是boycecodd范式而不是第四范式因为在“搭乘航班”关系中,存在着非平凡的多值依赖,旅程编号→→旅客编号,旅程编号→→{搭乘日期,航班名,而该关系模式的候选键为旅程编号,旅客编号,搭乘日期,航班名,搭乘航班关系的码是All-Key,所以,根据第四范式的定义,该关系模式BCNF不是第四范式3把“搭乘航班”关系分解成第四范式如下 其中搭乘航班1中的旅程编号惟一标识每个能按期出发的旅行团队的编号搭乘航班2中的旅程编号惟一标识每个能按期出发的航班名参考答案[问题1]解答1“航班”关系模式的候选键为航班名,飞行日期,非键属性为航空公司名称,出发地点,出发时间,目的地,到达时间2“航班”是属于1NF的因为非主属性航空公司名称,出发地点,目的地不完全函数依赖于候选键航班名,飞行日期该关系模式存在如下函数依赖航班名→航空公司名称,出发地点,目的地;航班名,飞行日期→出发时间,到达时间[问题2]解答参考答案11在题中给出的“旅客”关系中,不同的团队会有相同的旅客编号,所以,旅客编号不能作为候选键,如果同一旅客不同时间参加不同的团队将导致“身份证号”无法确定关系中的每一个元组,所以“身份证号”也不能作为候选键为此,需要增加一个“团队编号”的属性又由于{身份证号,团队编号→旅客编号;旅客编号,团队编号→身份证号;身份证号→姓名,联系方法,出生日期,性别},所以该关系模式存在部分函数依赖,导致旅客参加多少次团队,其姓名等信息将重复多少次2候选键身份证号,团队编号和旅客编号,团队编号3“旅客”分解为第三范式如下所示参考答案21在题中给出的“旅客”关系中,不同的团队会有相同的旅客编号,所以,旅客编号不能作为候选键,如果同一旅客不同时间参加不同的团队将导致“身份证号”无法确定关系中的每一个元组,所以“身份证号”也不能作为候选键为此,可以通过修改“旅客编号”属性的定义加以解决,旅客编号由“团队编号+队内编号”来解决这时关系的候选键为“旅客编号”,该关系模式存在传递依赖,导致旅客参加多少次团队,其姓名等信息将重复多少次2候选键旅客编号3“旅客”分解为第三范式如下所示[问题3]解答1旅程编号→→旅客编号,旅程编号→→{搭乘日期,航班名}2在“搭乘航班”关系中,存在着非平凡的多值依赖,旅程编号→→旅客编号,旅程编号→→{搭乘日期,航班名,而该关系模式的候选键为旅程编号,旅客编号,搭乘日期,航班名,所以,根据第四范式的定义,该关系模式BCNF不是第四范式3把分解成第四范式的结果,用与图4—1所示的关系模式的形式表示出来第14章数据库系统工程师级下午试题分析与解答试题一分析参见软件设计师试题二阅读下列说明,回答问题1至问题5,将解答填入对应栏内[说明]某工厂的仓库管理数据库的部分关系模式如下所示仓库仓库号,面积,负责人,电话原材料编号,名称,数量,储备量,仓库号要求一种原材料只能存放在同一仓库中“仓库”和“原材料”的关系实例分别如表2-1和表2-2所示表2-1“仓库”关系表格仓库号面积负责人电话仓库号面积负责人电话01500李劲松8765412103300郑爽8765412302300陈东明8765412204400刘春来87654125表2-2“原材料”关系编号名称数量储备量仓库号1001小麦10050012001玉米5030011002大豆2010022002花生3050023001菜油602003【问题1】根据上述说明,用SQL定义“原材料”和“仓库”的关系模式如下,请在空缺处填入正确的内容CREATETABLE仓库仓库号CHAR4,面积INT,负责人CHAR8,电话CHAR8,a;//主键定义CREATETABLE原材料编号CHAR4b,//主键定义名称CHAR16,数量INT储备量INT,仓库号c,d;//外键定义【问题2】将下面的SQL语句补充完整,完成“查询存放原材料数量最多的仓库号”的功能SELECT仓库号FROMef;【问题3】将下面的SQL语句补充完整,完成“01号仓库所存储的原材料信息只能由管理员李劲松米维护,而采购员李强能够查询所有原材料的库存信息”的功能CREATEVIEWraws_in_wh01ASSELECTgFROM原材料WHERE仓库号=01;GRANThONiTO李劲松;GRANTjONkTO李强;【问题4】仓库管理数据库的订购计划关系模式为订购计划原材料编号,订购数量采用下面的触发器程序可以实现“当仓库中的任一原材料的数量小于其储备量时,向订购计划表中插入该原材料的订购记录,其订购数量为储备量的三倍”的功能请将该程序的空缺部分补充完整CREATETRIGGERins_order_triggerAFTER1ON原材料REFERENCINGNEWROWASnrowFOREACHROWWHENnrow.数量<arow.储备量INSERTINTO订购计划VALUESm,n;【问题5】如果一种原材料可以在多个仓库中存放,则问题4中的触发器程序存在什么问题,如何修改试题二分析[问题1]本问题考查应试者对SQL数据库定义语言的掌握通过给出的关系模式及关系实例,完成数据库定义语句中的主键及外键的定义部分主码的定义可以有3种在列级约束中用NOTNULLUNIQUE或PRIMARYKEY指定;在表级约束中用PRIMARYKEY<主键,的方式定义前两种方法只适用于单一属性作主码的情况,后一种适用于任何情况参照完整性的指定使用FOREIGNKEY<外键>REFERENCES<被参照关系>《被参照属性>的方式定义,参照关系的域应和被参照数据的域相同[问题2]本题考查应试者对SQL查询语句的掌握完成本查询的思路根据原材料表,按照“仓库号”分组,组内的记录对“数量”求和,分组求和得到的最大值对应的仓库号即为所求参考答案中的子查询完成各仓库存储数量的求和,外部查询输出组内“数量”求和为最大值的仓库号[问题3]本问题考查应试者对SQL视图定义和授权语句的掌握题干给出了通过视图和授权机制实现数据库安全性的方法建立了01号仓库的视图,将对视图的更新权限赋给李劲松题干同时要求对原材料的查询权限赋予李强,可以直接使用授权语句授权的基本语法GRANT<权限>ON<对象>TO<用户名>;[问题4]本问题考查应试者对触发器程序编写的掌握空1处要求填入的是触发操作INSERT、UPDATE或DELETE,空m,n处填入的是欲插入的值本题的关键是读懂程序[问题5]本题存在问题触发器程序判定某一原材料“数量”是否小于其存储量时,是按照当前记录的“数量”来判定的,当一种原材料存储在多个仓库时,这样判定是错误的,应根据该原材料在各仓库的存储总量判定参考答案[问题1]aPRIMARYKEY仓库号bPRIMARYKEY或NOTNULLUNIQUE或NOTNULLPRIMARYKEYcCHAR4dFOREIGNKEY仓库号REFERENCES仓库仓库号[问题2]e原材料fGROUPBY仓库号HAVINGSUM数量>=ANYSELECTSUM数量FROM原材料GROUPBY仓库号[问题3]g*或编号,名称,数量,储备量,仓库号hINSERT,DELETE,UPDATEjrawsinwh01jSELECTk原材料[问题4]1UPDATE,INSERTmnrow编号nnrow.存储量*3[问题5]存在问题触发器程序判定某一原材料“数量”是否小于其存储量时,是按照当前记录的“数量”来判定的,当一种原材料存储在多个仓库时,这样判定是错误的,应根据该原材料在各仓库的存储总量判定应将触发器程序的WHEN子句条件修改为WHENnrow.储备量>SELECTSUM数量FROM原材料WHERE编号=SELECT编号FROMnrowGROUPBY编号试题三[说明]某市人才交流中心为促进当地人力资源的合理配置,加强当地企业与人才的沟通,拟建立人才信息交流网[需求分析结果]1.每个前来登记的个人需填写《人才入库登记表》如表3—1所示,并出示相关证件,经工作人员审核后录入个人信息2.每个前来登记的企业需填写《企业信息登记表》如表3-2所示,并出示相关证明及复印件,经工作人员核实后录入企业信息3.个人和企业的基本信息只需在第一次登记时填写,个人编号和企业编号由系统自动生成个人和企业的基本信息由电脑长期存储,以后个人只需提供个人编号和求职意向信息,企业只需提供企业编号和岗位需求信息4.个人的求职意向信息和企业的岗位需求信息在两个工作日内由工作人员录入数据库并发布表3-1人才入库登记表个人编号______登记日期______年______月______日表3-2企业信息登记表企业编号______登记日期______年______月______日[概念模型设计]根据需求阶段收集的信息,设计人才、岗位和企业的实体联系图不完整如图3-1所示图3-1人才、岗位和企业的实体联系图[逻辑结构设计]1.将概念模型设计的实体联系图转换为以下关系模式人才个人编号,姓名,性别,出生日期,身份证号,毕业院校,专业,学历,证书名称,证书编号,联系电话,电子邮件,个人简历及特长企业企业编号,企业名称,联系人,联系电话,地址,企业网址,电子邮件,企业简介求职意向b岗位需求c2.由于一个人可能持有多个证书,对“人才”关系模式进行优化,得到如下两个新的关系模式人才d证书e根据上述的设计过程,回答以下问题[问题1]在a处填入所需的实体、联系及其属性,完成概念模型设计[问题2]在b、c、d、e处填入对应关系的属性,完成逻辑结构设计[问题3]对最终的各关系模式,以下划线指出其主键和外键[问题4]张工设计的实体联系图如图3-2所示,请用200字[问题5]如果允许企业通过互联网修改本企业的基本信息,应对数据库的设计做何种修改请用200字以内的文字叙述实现方案试题三分析【问题1】本题考查应试者对概念模型设计和分析能力的掌握按照题干的说明,应该建立人才、岗位和企业三个实体的联系,人才与岗位之间是求职意向联系,企业与岗位之间是岗位需求联系按照所给定的登记表中的属性,组织两个联系的属性实体、联系及属性的名称根据题目上出现的名称来填写【问题2】逻辑结构设计是建立在概念结构设计的基础上的,按照E-R图向关系模式的转换方法,将实体和联系分别转换为关系模式本题中已给出了实体对应的关系模式,其中岗位实体没有属性,应归并到联系中本题还要求对关系模式进行模式分解,以达到实体分离的优化目的也是规范化【问题3】各关系模式的主键和外键可以根据关系模式的语义,并结合E-R向关系模式的转换方法来确定【问题4】此处的“需求”是“岗位”、“企业”和“人才”三个实体之间的联系,而事实上只有人才被聘用之后三者之间才产生联系本系统解决的是人才的求职和企业的岗位需求,人才与企业之间没有直接的联系【问题5】建立企业的登录信息表,包含用户名和密码,记录企业的用户名和密码,将对本企业的基本信息的修改权限赋予企业的用户名,企业工作人员通过输入用户名和密码,经过服务器将其与登录信息表中记录的该企业的用户名和密码进行验证后,合法用户才有权限修改企业的信息参考答案[问题1]a[问题2]b个人编号,岗位,最低薪水,登记日期c企业编号,岗位,专业,学历,薪水,备注,登记日期d个人编号,姓名,性别,出生日期,身份证号,毕业院校,专业,学历,证书名称,联系电话,电子邮件,个人简历及特长e证书名称,证书编号[问题3]企业企业编号,企业名称,联系人,联系电话,地址,企业网址,电子邮件,企业简介求职意向,最低薪水,登记日期岗位需求,专业,学历,薪水,备注,登记日期人才个人编号,姓名,性别,出生日期,身份证号,毕业院校,专业,学历,,联系电话,电子邮件,个人简历及特长证书证书名称,证书编号[问题4]此处的“需求”是“岗位”、“企业”和“人才”三个实体之间的联系,而事实上只有人才被聘用之后三者之间才产生联系本系统解决的是人才的求职和企业的岗位需求,人才与企业之间没有直接的联系[问题5]建立企业的登录信息表,包含用户名和密码,记录企业的用户名和密码,将对本企业的基本信息的修改权限赋予企业的用户名,企业工作人员通过输入用户名和密码,经过服务器将其与登录信息表中记录的该企业的用户名和密码进行验证后,合法用户才有权限修改企业的信息试题四[说明]E软件开发公司,决定开发设计本公司的项目工作管理系统,由王先生承担数据库的设计工作公司项目管理的需求分析如下1.组织机构E公司有多个部门,每个部门有多个职员、多个办公室,每个办公室有一部电话当部门变更时更换新的部门代码职员辞职后,若再次被聘用仍使用辞职前的代码被聘用职员担任某职务,职务用职务代码来标识职务分为工程师、高级工程师、经理助理、经理等职员的工资根据等级区分,共分为S、A、B、C、D五个等级—个职务对应某个等级,一个等级对应多个职务职员月工资等于职员月工作时间小时乘以小时工资职员的人事变动以及职位变更升级、降级在月初进行2.项目管理项目用项目代码标识,使用过的项目代码不能重复使用一个部门可承担多个项目,但一个项目仅由一个部门承担一个项目有一名项目主管和多名职员一名职员可参加多个项目项目代码由系统自动生成,一旦项目建立,项目名、部门代码以及起始年月日不能再变更3.项目的工作管理流程为项目工作计划输入初始计划→工作业绩输入→业绩生成每月一次→计划修正每月一次·项目工作计划输入项目主管使用如图4-1所示的工作计划输入界面,输入项目代码、职员代码、职员参加某个项目的月工作时间计划图中白色部分为可输入项图4-1工作计划输入界面初始计划·工作业绩输入输入职员每天参加各个项目的工作时间图4-2为工作业绩输入界面,图中白色部分为可输入项其中,出勤时间由考勤系统管理,指定项目代码的顺序可以不同,并且一天可以输入多个项目代码,但同一个项目代码不能重复输入·业绩生成月底汇总职员的当月工作业绩,生成月工作业绩表·计划修正项目主管根据项目进度修改以后的工作计划图4-2为工作业绩输入界面王先生根据公司的项目需求将数据库关系模式设计如下部门部门代码,部门名,起始年月,终止年月,办公室,办公电话职务职务代码,职务名等级等级代码,等级名,年月,小时工资职员职员代码,职员名,部门代码,职务代码,任职时间项目项目代码,项目名,部门代码,起始年月口,结束年月日,项目主管工作计划项目代码,职员代码,年月,工作时间【问题1】请使用“关系模式标记规则”,给出部门、等级、项目、工作计划关系模式的主键和外键,以及基本函数依赖集F
1、F
2、F3和F4【问题2】请将下面关系模式中的a和b处填入属性名称,要求使用说明中已有的属性名称1王先生设计的关系模式不能管理职务和等级之间的关系,可以通过修改“职务”关系模式实现,修改后的关系模式为职务a2为了管理公司职员参加各项目每天的工作业绩,需设计工作业绩关系模式为工作业绩b【问题3】1部门关系模式存在什么问题请用100字以内的文字阐述原因为了解决这个问题可将关系模式分解,分解后的关系模式的关系名依次取部门_A、部门_B、……2假定月工作业绩关系模式为月工作业绩职员代码,年月,工作时间,请给出“杳询职员代码、职员名、年月、月工资”的SQL语句试题四分析试题四是关于数据库设计方面的题目关系数据库设计的目标是生成一组合适的、性能良好的关系模式,以减少系统中信息存储的冗余度,但又可方便地获取信息[问题1]为了正确给出关系模式的主键和外键,需要正确地理解主键和外键的基本概念首先看一下什么是候选码设K为RU,F中的属性的组合,若,且对于K的任何一个真子集K,都有K不能决定U,则K为R的候选码候选关键字,若有多个候选码,则选一个作为主码主键1部门关系根据题意在部门关系中,由于E公司每个部门多个办公室,部门代码多值决定办公室,如果仅用部门代码无法唯一区分部门关系中的每一个元组记录但是,用部门代码,办公室作为主键,可以唯一区分部门关系中的每一个元组,因此,正确答案如下部门部门代码,部门名,起始年月,终止年月,办公室,办公电话F1={部门代码→部门名,起始年月,终止年月,部门代码→→办公室,办公室→办公电话}2等级关系根据题意在等级关系中,由于一个职务对应某个等级,一个等级对应多个职务职员月工资等于职员月工作时间小时乘以小时工资职员的人事变动以及职位变更升级、降级在月初进行如果用等级代码无法唯一区分等级关系中的每一个元组,这是因为对于同一个等级在不同的时期小时工资不一定一样例如,等级1在2004年1月小时工资为5元,到2004年10月小时工资为6元可见用等级代码,年月作为主键,可以唯一区分等级关系中的每一个元组因此正确答案如下部门部门代码,部门名,起始年月,终止年月,办公室,办公电话等级等级代码,等级名,年月,小时工资F2={等级代码→等级名,等级代码,年月→小时工资}3项目关系项目代码可以决定项目关系中的全属性,所以主键是项目代码在项目关系中,部门代码是部门关系的主键,所以部门代码应是外键项目主管应该来自职员,所以项目主管应是外键因此正确答案如下项目项目代码,项目名,,起始年月日,结束年月日,F3={项目代码→项目名,部门代码,起始年月日,结束年月日,项目主管}4工作计划在工作计划关系中,由于一个项目有多个职员参加,因此仅用项目代码无法唯一确定关系中的每一个元组又由于工作计划是按月给职员安排的,所以,工作计划关系的主键是项目代码,职员代码,年月因此正确答案如下工作计划项目代码,职员代码,年月,工作时间F4={项目代码,职员代码,年月→工作时间}[问题2]1王先生设计的关系模式不能管理职务和等级之间的关系,为此可以在“职务”关系模式中增加属性等级代码实现,修改后的关系模式为职务职务代码,职务名,等级代码2为了管理公司职员参加各项目每天的工作业绩,需设计工作业绩关系模式,该模式中有一个属性“年月日”是表示假设工作业绩的具体实例如下目代码职员工码年月日工作日期项目代码职员代码年月日工作日期1234567123452005-04-
047.02345678123452005-04-
042.01234567123452005-04-
057.02345678123452005-04-
051.01234567123452005-04-
067.02345678123452005-04-
062.01234567123452005-04-
078.0…………1234567123452005-04-
085.5可以根据该实例实现工作业绩输入界面因此工作业绩关系模式如下工作业绩项目代码,职员代码,年月日,工作时间[问题3]1部门关系模式存在的主要问题是数据冗余,因为部门关系模式属于2范式或2NF例如,假设某个部门有10个办公室,部门代码、部门名、起始年月、终止年月就要重复10次为了解决这个问题可将模式分解,分解后的关系模式为部门_A部门代码,部门名,起始年月,终止年月部门_B部门代码,办公室,办公电话2假定月工作业绩关系模式为月工作业绩职员代码,年月,工作时间,那么“查询职员代码、职员名、年月、月工资”的SQL语句如下;SELECT职员代码,职员名,年月,工作时间*小时工资AS月工资FROM职员,职务,等级,月工作业绩WHERE职员.职务代码=职务.职务代码AND职务.等级代码;等级.等级代码AND等级.年月=月工作业绩.年月AND职员.职员代码;月工作业绩.职员代码;参考答案[问题1]部门部门代码,部门名,起始年月,终止年月,办公室,办公电话F1={部门代码→部门名,起始年月,终止年月,部门代码→→办公室,办公室→办公电话}注部门代码→部门名,起始年月,终止年月可写成下同部门代码→部门名,部门代码→起始年月,部门代码→终止年月等级等级代码,等级名,年月,小时工资F2={等级代码→等级名,等级代码,年月→小时工资}项目项目代码,项目名,,起始年月日,结束年月日,F3={项目代码→项目名,部门代码,起始年月日,结束年月日,项目主管}工作计划项目代码,职员代码,年月,工作时间F4={项目代码,职员代码,年月→工作时间}[问题2]1职务职务代码,职务名,等级代码2工作业绩项目代码,职员代码,年月日,工作时间[问题3]1部门关系模式属于2范式或2NF,该关系模式存在冗余问题,因为某部门有多少个办公室,部门代码、部门名、起始年月、终止年月就要重复多少次为了解决这个问题可将模式分解,分解后的关系模式为部门_A部门代码,部门名,起始年月,终止年月部门_B部门代码,办公室,办公电话2SELECT职员代码,职员名,年月,工作时间*小时工资AS月工资FROM职员,职务,等级,月工作业绩WHERE职员.职务代码=职务.职务代码AND职务.等级代码=等级.等级代码AND等级.年月=月工作业绩.年月AND职员.职员代码=月工作业绩.职员代码;第21章数据库系统工程师下试题分析与解答试题一15分阅读下列说明以及数据流图,回答问题1至问题3,将解答填入答题纸的对应栏内[说明]某学校建立了一个网上作业提交与管理系统,基本功能描述如下1账号和密码任课老师用账号和密码登录系统后,提交所有选课学生的名单系统自动为每个选课学生创建登录系统的账号和密码2作业提交学生使用账号和密码登录系统后,可以向系统申请所选课程的作业系统首先检查学生的当前状态,如果该学生还没有做过作业,则从数据库服务器申请一份作业若申请成功,则显示需要完成的作业学生需在线完成作业,单击“提交”按钮上交作业3在线批阅系统自动在线批改作业,显示作业成绩,并将该成绩记录在作业成绩统计文件中[问题1]3分如果将数据库服务器记为DB作为一个外部实体,那么在绘制该系统的数据流图时,还应有哪些外部实体和数据存储[问题2]7分根据说明结合问题1的解答,指出在该系统的顶层数据梳图中应有哪些数据流请采用说明中的词汇给出这些数据流的起点、终点以及数据流名称,下表给出了数据流的部分信息,请填充空缺处序号起点终点数据流名称1 1 网上作业提交与管理系统作业申请2 2 网上作业提交与管理系统提交的作业3网上作业提交与管理系统 3 需完成的作业4网上作业提交与管理系统 4 5 5网上作业提交与管理系统 6 作业申请6网上作业提交与管理系统 7 8 7 9 网上作业提交与管理系统选课学生名单8 10 网上作业提交与管理系统 11 9 12 网上作业提交与管理系统账号和密码10 13 网上作业提交与管理系统账号和密码[问题3]5分根据数据流图的设计原则,阅读下图所示的数据流图,找出其中的错误之处试题一分析本题考查的是DFD数据流图的绘制,详细内容参见软件设计师下试题一分析参考答案[问题1]外部实体选课学生、任课老师数据存储作业成绩统计文件[问题2]1选课学生2选课学生3选课学生4选课学生5作业成绩6DB7作业成绩统计文件8作业成绩9任课老师10DB11作业12选课学生13任课老师注
4、6的答案可互换;
12、13的答案可互换[问题3]错误1外部实体A和B之间不能存在数据流错误2外部实体A和数据存储H之间不能存在数据流错误3加工2的输入/输出数据流名字相同错误4加工4只有输入没有输出错误5加工5只有输出,没有输入注以上5条错误信息可以打乱次序试题二15分阅读下列说明,回答问题1至问题5,将解答填入答题纸的对应栏内[说明]某企业网上销售管理系统的数据库部分关系模式如下所示客户客户号,姓名,性别,地址,邮编产品产品号,名称,库存,单价订单订单号,时间,金额,客户号订单明细订单号,产品号,数量关系模式的主要属性及约束如下表所示关系名约束客户客户号唯一标识一位客户,客户性别取值为“男”或者“女”产品产品号唯一标识一个产品订单订单号唯一标识一份订单一份订单必须且仅对应一位客户,—份订单可由一到多条订单明细组成一位客户可以有多份订单订单明细一条订单明细对应一份订单中的—个产品客户、产品、订单和订单明细关系及部分数据分别如下列各表所示客户关系客户号姓名性别地址邮编01王晓杰女南京路2号20000502林俊杰男北京路18号200010产品关系产品号名称库存单价01产品A
20298.0002产品B
50168.00订单关系订单号时间金额客户号
10012006.
02.
031268.
000110022006.
02.
03298.0002订单明细关系订单号产品号数量100101210010241002011[问题1]3分以下是创建部分关系表的SQL语句,请将空缺部分补充完整CREATETABLE客户客户号CHAR5a,姓名CHAR30,性别CHAR2b,地址CHAR30,邮编CHAR6;CREATETABLE订单订单号CHAR4,时间CHAR10,金额NUMBER62,客户号CHAR5NOTNULL,PRIMARYKEY订单号,c;[问题2]4分请根据如下查询语句,回答问题d,e和fSELECT客户号FROM订单,订单明细WHERE订单明细.订单号=订单.订单号AND产品号=02AND数量>10;d上述查询语句的功能是什么请简要回答30个字以内e将上述查询语句转换成对应的关系代数表达式f上述SQL查询语句是否可以进一步优化如可以,给出优化后的SQL查询语句[问题3]3分请按题意将下述SQL查询语句的空缺部分补充完整按客户购买总额的降序,输出每个客户的客户名和购买总额SELECT客户.客户名,gFROM客户,订单WHERE客户.客户号=订单.客户号hi;[问题4]3分用SQL语句完成下述要求1定义一个描述订单的客户号和对应订单明细中产品号关系的视图客户产品客户号,产品号2借助1所定义的视图,查询至少购买了01号客户购买的所有产品的客户号SELECT客户号FROM客户产品客户产品1WHEREjSELECT*FROM客户产品客户产品2WHERREkSELECT*FROM客户产品客户产品3WHERRE1;[问题5]2分当一个订单和对应的订单明细数据入库时,应该减少产品关系中相应的产品库存,为此应该利用数据库管理系统的什么机制实现此功能请用100字以内的文字简要说明试题二分析[问题1]本题考查的是SQL语言中的创建基本表命令SQL中使用CREATETABLE命令来定义基本表,其一般格式为CREATETABLE<表名><列名><数据类型>[列级完整性约束条件][<列名><数据类型>[列级完整性约束条件]]...[<表级完整性约束条件>];本题着重考查完整性约束的定义·实体完整性定义声明主键有两种方法将PRIMARYKEY保留字加在属性类型之后;在属性列表中引入一个新元素,该元素包含保留字PRIMARYKEY和用圆括号括起的构成主键的属性或者属性组列表·参照完整性定义FOREIGNKEY属性名REFERFENCES表名属性名参照完整性通过保留字FOREIGNKEY定义哪些列为外码,REFERFENCES指明外码所对应的被参照表的主码·用户定义完整性定义用CHECK后增加一条检查子句来完成属性值上的约束根据题目描述,客户号唯一标识一位客户,客户性别取值为“男”或者“女”,一份订单必须且仅对应一位客户所以,客户号是客户表的主键,客户性别的取值只能为“男”或者“女”,订单中的客户号必须外键依赖于客户因此,客户号应表示为主键aNOTNULLUNIQUE或NOTNULLPRIMARYKEY或PRIMARYKEY;客户性别的取值只能为“男”或者“女”bCHECKVALUEIN男,女订单中的客户号必须外键依赖于客户cFOREIGNKEY客户号REFERENCES客户客户号[问题2]本题考核的知识点包括SQL的查询命令与关系代数表达式的互相转换以及SQL的查询优化SELECT语句的功能是查询一次订购或购买产品号为02的数量大于10的客户号根据关系代数表达式的定义,将上述查询语句转换成对应的关系代数表达式为该SELECT语句,在进行多表查询时,采用的是相关子查询由于相关子查询查询时要做连接JOIN,性能不是最优可以考虑采用不相关子查询,来提高性能优化的SQL语句为SELECT客户号FROM订单WHERE订单号INSELECT订单号FROM订单明细WHERE产品号=02AND数量>10;[问题3]本题考核的是SQL语言的查洵命令要输出客户的客户名和购买总额,SELECT语句的输出部分,还必须包含统计客户的购买总额SUM金额AS总额统计一个客户的购买总额,需要对订单信息按客户号进行分组,才能求出每个客户的购买信息GROUPBY客户.客户号再根据每个客户的购买总额进行降序排序ORDERBY总额DESC[问题4]本题考核的知识点是SQL中的视图创建和SQL查询命令SQL语言用CREATEVIEW命令建立视图,其格式为CREATEVIEW<视图名>[<列名>[<列名>]...]AS<子查询>[WITHCHECKOPTION];根据题目描述,一个订单涉及多个产品,订单中的每个产品对应一项订单明细一个订单对应一个客户,一个客户可以有多个订单要建立客户号和产品号的关系,必须通过订单和订单明细一个客户号对应多个订单,一个订单对应多项订单明细,一项订单明细对应一个产品所以,视图如下CREATEVIEW客户产品ASSELECT客户号,产品号FROM订单,订单明细WHERE订单明细.订单号=订单.订单号;要查找至少购买了01号客户购买的所有产品的客户号,可借助上述的客户产品视图通过该视图,可以知道每个客户购买过的产品号根据01号客户购买的所有产品号,看看是否存在这样的客户号,其对应的产品号集合包含这些产品号01号客户购买的所有产品号查找可以进一步转换成,查询客户X,使得不存在这样的产品Y,01号客户购买了Y,而客户X没有购买[问题5]本题考查触发器的概念触发器是一种特殊类型的存储过程,它不由用户直接调用,被定义为在对表或视图发出UPDATE、INSERT或DELETE语句时自动执行触发器可以查询其他表,而且可以包含复杂的SQL语句本题中由于订单明细表上产品数量与产品表中的库存有联系比如,当某个订单生成时,可以通过设计触发起来减少相应的产品的库存参考答案[问题1]aNOTNULLUNIQUE或NOTNULLPRIMARYKEY或PRIMARYKEYbCHECKVALUEIN男,女cFOREIGNKEY客户号REFERENCES客户客户号[问题2]d查询一次订购或购买产品号为02的数量大于10的客户号ef可以优化优化的SQL语句为SELECT客户号FROM订单WHERE订单号INSELECT订单号FROM订单明细WHERE产品号=02AND数量>10;[问题3]gSUM金额AS总额hGROUPBY客户.客户号iORDERBY总额DESC[问题4]1CREATEVIEW客户产品ASSELECT客户号,产品号FROM订单,订单明细WHERE订单明细.订单号=订单.订单号;2jNOTEXISTSk客户号=01ANDNOTEXISTS1客户产品
1.客户号=客户产品
3.客户号AND客户产品
2.产品号=客户产品
3.产品号[问题5]采用数据库管理系统的触发器机制对产品关系定义一个触发器,在订单明细中的记录插入或更新之后,该触发器被激活,根据订单明细中订购的产品及数量,减少产品关系中对应产品的库存量试题三15分阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内[说明]某单位资料室需要建立一个图书管理系统,初步的需求分析结果如下1资料室有图书管理员若干名,他们负责已购入图书的编目和借还工作,每名图书管理员的信息包括工号和姓名;2读者可在阅览室读书,也可通过图书流通室借还图书,读者信息包括读者D、姓名、电话和E-mail,系统为不同读者生成不同的读者ID3每部书在系统中对应唯一的一条图书在版编目数据CIP,以下简称书目,书目的基本信息包括ISBN号、书名、作者、出版商、出版年月,以及本资料室拥有该书的册数以下简称册数,不同书目的ISBN号不相同4资料室对于同一书目的图书可拥有多册本,图书信息包括图书ID、ISBN号、存放位置、当前状态,每一本书在系统中被赋予唯一的图书ID;5一名读者最多只能借阅十本图书,且每本图书最多只能借两个月,读者借书时需由图书管理员登记读者ID、所借图书ID、借阅时间和应还时间,读者还书时图书管理员在对应的借书信息中记录归还时间某书目的信息以及与该书目对应的图书信息如下表所示书目信息书名作者出版商ISBN号出版年月册数经办人《数据结构》严蔚敏吴伟民清华大学出版社ISBN7-302-02368-
91997.4401图书信息图书IDISBN号存放位置状态经办人C
832.1ISBN7-302-02368-9图书流通室已借出01C
832.1ISBN7-302-02368-9图书阅览室不外借01C
832.1ISBN7-302-02368-9图书流通室未借出01系统的主要业务处理如F1入库管理图书购进入库时,管理员查询本资料室的书目信息,若该书的书目尚未建立,则由管理员编写该书的书目信息并录入系统,然后编写并录入图书信息;否则,修改该书目的册数,然后编写并录入图书信息,对于进入流通室的书,其初始状态为“未借出”,而送入阅览室的书的状态始终为“不外借”2借书管理读者借书日寸,若有,则由管理员为该读者办理借书手续,并记录该读者的借书信息,同时将借出图书的状态修改为“已借出”3还书管理读者还书时,则记录相应借还信息中的“归还时间”,对于超期归还者,系统自动计算罚金具体的计算过程此处省略同时修改该图书的状态为“未借出”4通知处理对于已到期且未归还的图书,系统通过E-mail自动通知读者[问题1]2分根据以上说明设计的实体联系图如下图所示,请指出读者与图书、书目与图书之间的联系类型[问题2]该图书管理系统的主要关系模式如下,请补充“借还记录”关系中的空缺管理员工号,姓名读者读者ID,姓名,电话,E-mail书目1SBN号,书名,作者,出版商,出版年月,册数,经办人图书图书ID,ISBN号,存放位置,状态,经办人借还记录a,借出时间,应还时间,归还时间注时间格式为“年.月.日时:分:秒”[问题3]4分请指出问题2中给出的读者、书目关系模式的主键,以及图书和借还记录关系模式的主键和外键[问题4]7分若系统增加新的预约需求,其业务处理描述如下若图书流通室没有读者要借的书,则可为该读者建立预约登记,需要记录读者ID、书的ISBN号、预约时间和预约期限最长为10天一旦其他读者归还这种书,系统将自动查询预约登记表,若存在有读者预约该书的记录,则将该图书的状态修改为“已预约”,并将该图书ID写入相应的预约记录中系统在清除超出预约期限的记录时解除该图书的“已预约”状态,同时通过E-mail通知该预约读者办理借阅手续对于超出预约期限的预约记录,系统将自动清除为满足上述需要,应对上图所示的实体联系图如何修改或补充,请给出修改后的实体联系图,并对关系模式做相应的修改或补充,指出新增关系模式的主键和外键试题三分析[问题1]本题考查有关实体之间的联系两个实体型之间的联系可以分为三类·一对一联系1:1如果对于实体集A中的每一个实体,实体集B中至多有一个也可以没有实体与之联系反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1·一对多联系1:n如果对于实体集A中的每一个实体,实体集B中有n个实体n>=0与之联系反之,对于实体集B中的每一个实体,实体集A中最多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n·多对多联系m:n如果对于实体集A中的每一个实体,实体集B中有n个实体n>=0与之联系反之,对于实体集B中的每一个实体,实体集A中也有m个实体m>=0与之联系,则称实体集A与实体集B具有多对多联系,记为m:n根据题目描述,一名读者最多只能借阅10本图书,而每本书可被多名读者先后借阅过,所以,读者和图书之间的关系是多对多n:m;每本书在系统中对应唯一的一条书目数据,且对于同一书目的图书可拥有多册本所以书目和图书之间是一对多1:n的关系[问题2]本题考查在ER图向关系模型的转换中,如何将实体和实体间的联系转换为关系模式,以及如何确定这些关系模式的属性这种ER图向关系模型的转换一般遵循如下原则·一个实体型转换为一个关系模式实体的属性就是关系的属性,实体的码就是关系的码·一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并·一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并·一个m:n联系转换为一个关系模式与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合·3个或3个以上实体间的一个多元联系可以转换为一个关系模式与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合·具有相同码则关系模式可合并根据题目中的ER图,借还是图书和读者之间的联系m:n借还记录是联系“借还”转换成的一个关系模式,用来记录借阅入和所借阅图书的借阅信息所以应该记录与该联系相连的各实体读者和图书的码读者ID和图书ID,以及联系本身的属性借出时间、应还时间和归还时间,均转换为关系的属性[问题3]本题考查关系模式的主码的确定读者实体的码是能唯一标识读者的读者ID,关系读者是由读者实体转换而来的,读者实体的码读者ID就是关系读者的码读者ID书目实体的码是能唯一标识书目的ISBN号,书目关系的码就是ISBN号同理,图书关系的码是图书ID借还记录是由联系借还对应的关系,它的码应为相连实体的码读者ID和图书ID,再加上联系本身的码借出时间所以,借还记录的码应为读者ID,图书ID,借出时间根据ER图,图书和书目之间有1:n的联系,为了记录该联系,在n端,也就是图书关系中,记录对应的书目的主码因此,图书关系具有外键ISBN号,来与书目关系相关联借还记录是由联系借还对应的关系,它记录与图书和读者的联系因此,借还记录具有外键读者ID和图书ID,分别与读者和图书相关联根据实体联系图,可定义如下的主键和外键读者读者ID,姓名,电话,E-mail书目ISBN号,书名,作者,出版商,出版年月,册数,经办人图书图书ID,ISBN号,存放位置,状态,经办人借还记录读者ID,图书ID,借出时间,应还时间,归还时间[问题4]为使读者可以对已借完的流通图书进行预约由于一个书目所对应的流通图书可能有多本,读者不需要去预定具体某一本图书,只需对该书目进行预约因此,需要在书目和读者之间增加预约联系只要该书目对应的任意一本具体的流通图书先归还,就可以对将该图书的状态设置为“已预约”一个读者可以预约多个书目,而一个书目也可以被多个读者预约所以,读者和书目之间的关系是多对多n:m,如下图所示增加新的关系模式预约登记读者ID,ISBN号,预约时间,预约期限,图书ID主键读者ID,ISBN号,预约时间外键读者ID,ISBN号,图书ID参考答案[问题1]1n或m2m或n314n或m[问题2]a读者ID,图书ID[问题3]关系模式 主键 外键 读者 读者ID 书目 ISBN号 图书 图书ID ISBN号 借还记录 读者ID,图书ID,借出时间 读者ID,图书ID[问题4]补充联系“预约”,修补后的实体联系图如下增加新的关系模式预约登记读者ID,ISBN号,预约时间,预约期限,图书ID主键读者ID,ISBN号,预约时间外键读者ID,ISBN号,图书ID试题四15分阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内[说明]某保险公司需要管理用户投保的相关信息,拟建立针对投保数据、险种数据、缴费数据的管理系统系统需求分析情况如下所述1投保单是缔结保险合同的重要依据,需填写投保人、被保险人、受益人资料等信息投保单格式如下所示2该公司需要管理险种信息以供查询险种信息包括险种名称、承保年龄、保险利益、缴费方式、保险费、保险特点等信息示例如下险种名称 重大疾病保险 承保年龄 30日以上、65周岁以下 保险利益 重大疾病保险金——由于患病无法工作而失去正常收入来源,将获得一笔资金以支付巨额医疗费用 缴费方式 保险费的交付方式分为趸交、年交和月交3种分期交付保险费的交费期间分为5年,10年、20年和30年4种,由投保人在投保时选择 保险费 10万 保险特点 提供29种疾病的特别保障3业务处理过程用户可通过网络查询险种,并选择投保的险种用户直接填写投保书,经过业务员审核通过后,请投保人签字,并由业务员确认投保书业务员按月查询用户的缴费记录,以便生成相应的缴费通知单初步设计的关系模式如下所示投保单投保书号,投保人客户号,被保人客户号,险种名称,身故受益人姓名,受益顺序,受益人身份证号码,业务员姓名,业务员联系方式,投保日期客户信息客户号,姓名,性别,出生日期,身份证号码,联系地址,邮政编码缴费记录投保书号,缴费月份,缴费金额,欠款,节余,滞纳金险种信息险种名称,承保年龄,保险利益,缴费方式,保险费,保险特点注投保单关系中,投保人客户号和被保人客户号是外键,依赖于客户信息关系的主键“客户号”[问题1]4分给出上述各关系模式的主键,以及投保单关系模式的函数依赖[问题2]4分列出投保单关系模式可能存在的更新异常和多值依赖,并简要说明[问题3]4分分析投保单关系模式属于第几范式,并简单说明原因修改上述关系模式,以达至4NF[问题4]3分公司需要查询每个业务员每月完成的保单总金额,根据业务员月保单总金额分档,设定不同的提成比例,以便计算业务员月奖金对上述的数据库模式如何修改或补充,以满足需求试题四分析[问题1]本题考查的是关系模式的主键和函数依赖的基本概念和知识数据依赖是通过一个关系中属性间值的相同与否体现出来的数据间的相互关系函数依赖是关系模式内属性间最常见的数据依赖函数依赖定义为设RU是属性集U上的关系模式X,Y是U的子集若对于RU的任意一个可能的关系r,r中不可能存在两个元组在x上的属性值相等,而在Y上的属性值不相等,则称X函数确定Y或者Y函数依赖于X,记作X→Y函数依赖是语义范畴的概念设K为R<U,F>中的属性或者属性组合,若U完全函数依赖于K,则K为R的候选码若候选码多于一个,则选定其中的一个为主码主键对于投保单关系模式,一张投保单由投保书号确定,而一张投保单对应多个受益人,故投保单号和受益人身份证号码可以唯一确定投保单的一个元组,即投保书号和受益人身份证号码是投保单关系模式的主键对于客户关系模式,客户号可以唯一确定一个客户,故客户号是客户关系模式的主键对于缴费记录关系模式,投保书号和缴费月份可以唯一确定一次缴费记录,故投保书号和缴费月份是缴费记录关系模式的主键对于险种信息关系模式,险种名称可以唯一确定一类险种信息,故险种名称是险种信息关系模式的主键分析投保单关系模式的函数依赖,投保单号和受益人身份证号码是主键,故投保书号和受益人身份证号码可以函数确定投保单关系模式的所有属性投保单号可以函数确定投保书号,投保人客户号,被保人客户号,险种名称,业务员姓名,业务员联系方式,投保日期受益人身份证号码可以函数确定受益人姓名业务员姓名可以函数确定业务联系方式[问题2]更新异常是指对关系模式进行增加、删除、修改操作时,可能会引起操作的错误或者数据的丢失更新异常包括插入异常、修改异常和删除异常对投保单关系模式而言,若要增加一个业务员的信息,如果他还没有投保单,那么他的信息也将不能插入数据库,这属于插入异常;当一个投保单记录删除了之后,对应的业务员信息也丢失了,这属于删除异常;当一个业务员的联系方式发生变化后,那么他所负责的所有投保单记录都要做相应的修改设RU是属性集U上的一个关系模式X,Y,Z是U的子集,并且Z=U-X-Y关系模式RU中多值依赖X→Y成立,当且仅当对RU的任意关系r,给定的一对x,z值,有一组Y的值,这组值仅仅决定于x值而与z值无关在投保单关系模式中,一个投保单对应多个受益人,故存在多值依赖[问题3]本题考查范式的基本概念和模式分解1NF每一个分量必须是不可分的数据项满足了这个条件的关系模式就属于第一范式2NF若R∈1NF,且每一个非主属性完全函数依赖于码,则R∈2NF3NF若R∈2NF,则每一个非主属性既不部分依赖于码,也不传递依赖于码BCNF关系模式R中,若每一个决定因素都包含码,则R∈BCNF4NF若R∈1NF,如果R的属性之间没有非平凡且非函数依赖的多值依赖,则R∈4NF投保单中的每个分量都是不可分的数据项,因此,满足第一范式但投保单中,业务员联系方式属性依赖于业务员姓名,而不完全依赖十码投保书号,受益人身份证;又如受益人姓名属性依赖与受益人身份证,而不完全依赖于码投保书号,受益人身份证因此投保单不满足第二范式,即每一个非主属性完全函数依赖于码一个关系模式R不属于2NF,就会出现插入异常、删除异常、修改复杂等问题为了解决投保单模式不满足2NF的问题,必须对该模式进行分解,以达到4NF根据投保单的函数依赖投保书号→投保人客户号,被保人客户号,险种名称,业务员姓名,业务员联系方式,投保日期受益人身份证号码→身故受益人姓名业务员姓名→业务员联系方式将投保单关系模式进行如下模式分解投保单投保书号,投保人客户号,被保人客户号,险种名称,业务员号,投保日期受益人信息受益人号,受益人姓名,受益人身份证号码业务员信息业务员号,业务员姓名,业务员联系方式投保-受益信息投保书号,受益人号,受益人顺序上述模式分解后,能保证在每个关系模式中,属性间无非平少L且非函数依赖的多值依赖,故达到了4范式4NF[问题4]增加如下关系模式即可满足需求提成信息总金额,提成比例其中总金额属性描述一个金额范围,提成比例表示对应该范围的提成比例用户查询投保单关系模式,获得业务员每月的保单总金额,再在提成信息关系模式中查询对应的提成比例,即可计算出业务员的月奖金参考答案[问题1]投保单投保书号,受益人身份证号码客户信息客户号缴费记录投保书号,缴费月份险种信息险种名称投保单关系模式的函数依赖F1=投保书号,受益人身份证号码→投保人客户号,被保人客户号,险种名称,受益顺序,业务员姓名,业务员联系方式,投保日期F2=投保书号→投保人客户号,被保人客户号,险种名称,业务员姓名,业务员联系方式,投保日期F3=受益人身份证号码→身故受益人姓名F4=业务员姓名→业务员联系方式注F1,F2中如果表示为投保书号,受益人身份证号码,投保书号到右端任意属性组合的函数依赖均是正确的,但属性组合的并集必须为右端的全集[问题2]1投保单关系模式存在更新异常该关系模式存在冗余数据,修改数据时可能会引起修改异常,例如当业务员的联系方式发生变化时,他所负责的每一个投保单里面的业务员联系方式必须更新,如果部分更新,部分不更新,则会产生修改更新异常当一个业务员还没有任何投保单时,他的数据将不能插入数据库,即存在插入异常;当一个投保单记录删除了之后,对应的业务员信息也丢失了,即存在删除异常2投保单关系模式存在多值依赖,一个特定的投保单对应多个受益人[问题3]投保单关系模式属于1范式或1NF,该关系模式存在数据冗余例如一个业务员的姓名、联系方式属性与其负责的投保单数量一样多在具有多个受益人的一个投保单中,投保单的诸多属性存储多次关系模式还存在上题所说的更新异常和多值依赖其函数依赖存在非主属性部分依赖于码,故不属于2范式或2NF将投保甲关系模式进行如下模式分解投保单投保书号,投保人客户号,被保人客户号,险种名称,业务员号,投保日期受益人信息受益人号,受益人姓名,受益人身份证号码业务员信息业务员号,业务员姓名,业务员联系方式投保-受益信息投保书号,受益人号,受益人顺序上述模式分解后,能保证在每个关系模式中,属性间无非平凡且非函数依赖的多值依赖,故达到了4范式4NF[问题4]增加如下关系模式即可满足需求提成信息总金额,提成比例其中总金额属性描述一个金额范围,提成比例表示对应该范围的提成比例用户查询投保单关系模式,获得业务员每月的保单总金额,再在提成信息关系模式中查询对应的提成比例,即可计算出业务员的月奖金试题五15分阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内[说明]现有一个事务集{T1,T2,T3,T4},其中这4个事务在运行过程中需要读写表X、Y和Z设Ti对X的读操作记作TiRX,Ti对X的写操作记作TiwX事务对XYZ的访问情况如下T1T1RXT2T2RY,T2wXT3T3wY,T3wX,T3w2T4T4RZ,T4wX[问题1]4分试述事务并发调度的正确性准则及其内容[问题2]4分请判断如下调度是否正确T3wY,T1RX,T2RY,T3wX,T2wX,T3wZ,T4RZ,T4wX按这种调度产生的事务依赖关系图如下[问题3]3分给出与[问题2]中调度等价的一个串行调度序列[问题4]4分采用何种加锁策略能够保证事务调度的正确性,简述其内容试题五分析本题考查事务并发调度的知识一次并发调度与某一串行调度的执行结果相同,称该调度是可串行化调度,是并发调度正确性的准则调度信赖图的箭头所指事务必须在箭尾事务执行结束后才可执行如调度序列中的T3wX是T3事务对数据X加写锁,而些之前有T1事务对X加了读锁,因此T3,事务等到T1事务释放了X上的读锁之后才能加写锁,即T3事务依赖于T1事务的执行结束根据事务依赖有向图,如果有一条包含所有事务结点的简单路径,则该路径上的结点序列即为并发调度等价的串行调度序列从该图可得路径Tl->T3->T2->T4,因此,题目给定的调度是正确的事务的提交是随机的,事务程序使用加锁可以实现并发事务的隔离性,使用两段锁协议可以保证事务调度的可串行化参考答案[问题1]事务的可串行化调度多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行执行它们时的结果相同[问题2]此调度是一个可串行化的调度,所以是一个正确的调度[问题3]T1,T3,T2,T4[问题4]两段锁协议或2PL把事务分为两个阶段,第一个阶段是获得封锁,但不能解锁;第二个阶段是解除封锁,不能申请新的锁。