1.设有学生表S(SNO,SN)(SNO为学生号,SN为姓名)和学生选修课程表SC(SN,CNO,G)(CNO为课程号,G为成绩),试用SQL语言完成以下各题:(1)创建学生表、学生选修课程表。(2)建立一个视图V-SSC(SNO,SN,CNO,CN,G),并按CNO升序排序;(3)从视图V-SSC上查询平均成绩在90分以上的SN、CN和G。参考答案:(1)(2)CREATESQLVIEWV-SSC(SNO,SN,CNO,CN,G)ASSELECTS.SNO,SSN,CNO,SC.CN,SC.GFROMS,SCWHERES.SNO=SC.SNOORDERBYCNO(3)SELECTSN,CN,GFROMV-SSCGROUPBYSNOHAVINGAVG(G)>902.已知学生表S和学生选课表SC。其关系模式如下:S(SNO,SN,SD,PROV)SC(SNO,CN,GR)其中,SNO为学号,SN为姓名,SD为系名,PROV为省区,CN为课程名,GR为分数。试用SQL语言实现下列操作:(1)创建学生表S和学生选课表SC。(2)查询“信息系”的学生来自哪些省区。(3)按分数降序排序,输出“英语系”学生选修了“计算机”课程的学生的姓名和分数。参考答案:(1)(2)SELECTDISTINCTPROVFROMSWHERESD=信息系(3)SELECTSN,GRFROMS,SCWHERESD=英语系ANDCN=计算机ANDS.SNO=SC.SNOORDERBYGRDESCZ3.某保险公司关于汽车保险涉及以下查询和登录:·查询投保人:输入保险号,输出投保人姓名、投保的汽车、型号;·事故登录:登录事故编号、出事汽车牌照、车主、赔偿金、稽查人。根据上述用户需求,要求作出:(1)实体联系模型(E-R图)。(2)从E-R图导出关系模型。(3)用SQL语言创建用(2)中的关系模型。参考答案:1)查询投保人数据流图,如图4-l所示。(3)关系模型车主(保险号,姓名,地址)汽车(牌照,车型,保险金,保险号)事故(编号,牌照,日期,驾驶员,赔偿金,稽查)4.试各举三例说明两个实体型之间具有的一对一联系,一对多联系,多对多联系。5.设有如图3.2所示的三个关系,并假定这三个关系框架组成的数据模型就是用户子模式。其中各个属性的含义如下:A#(商店代号)、ANAME(商店名)、WQTY(店员人数)、CITY(所在城市)、B#(商品号)、BNAME(商品名称)、PRICE(价格)、QTY(品数量)。试用SQL语言写出下列查询,并给出执行结果:(1)找出店员人数不超过100人或者在长沙市的所有商店的代号和商店名。(2)找出供应书包的商店名。(3)找出至少供应代号为256的商店所供应的全部商品的商店名和所在城市。参考答案:1、SELECTA#,ANAMEFROMAWHEREWQTY<=100ORCITY=长沙2、SELECTA.ANAMEFROMA,B,ABWHEREA.A#=AB.A#ANDB.B#=AB.B#ANDB.BNAME=书包3、SELECTA.ANAME,A.CITYFROMA,BWHEREA.A#=AB.A#ANDAB.B#IN(SELECTAB.B#FROMABWHEREA#=256)6.设有如图2.12所示的关系R,S和T,计算:(1)R1=R∪S(2)R2=R-S(3)R3=RT(4)R4=RTA<C(5)R5=∏A(R)(6)R6=σA=C(R×T)参考答案:本题各小题的结果如图2.13所示。7.设有如图2.8所示的关系R和S,计算:(1)R1=R-S(2)R2=RUS(3)R3=R∩S(4)R4=R×S参考答案:本题各小题的结果如图2.9所示。8.要建立关于系、学生、班级、研究会诸信息的一个关系数据库。规定:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一个宿舍区。每个学生可参加若干研究会,每个研究会有若干学生。描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍区。描述班级的属性有:班号、专业名、系名、人数、入校年份。描述系的属性有:系号、系名、系办公室地点、人数。描述研究会的属性有:研究会名、成立年份,地点、人数。学生参加某研究会,有一个入会年份。要求作出:(1)实体联系模型(E-R图)。(2)从E-R图导出关系模式。(3)用SQL语言创建用(2)中的关系模式。参考答案:(1)学生关系学生(学号、姓名、出生年月、系名、班号、宿舍区)候选码:学号。外部码:系名、班号。最小依赖集:学号-姓名,学号-出生年月,学号-班号,系名-宿舍区,班号-系名。存在传递函数依赖:学号-系名-宿舍区,故:学号-宿舍区(传递依赖);班号-系名-宿舍区,故:班号-宿舍区(传递依赖);学号-班号-系名,故:学号-系名(传递依赖)。(2)班级关系班(班号、专业名、系名、人数、入校年月)候选码:班号。外部码:系名。最小依赖集:班号-专业名,班号-人数,班号-入校年月,专业名-系名。存在传递函数依赖:班号-专业名-系名,故:班号-系名(传递依赖)。(3)系关系系(系号、系名、办公室地点、人数)侯选码:系号,系名。无外部码。最小依赖集:系号--系名,系号-办公室地点,系号-人数,系名-办公室地点,系名-人数。(4)研究会关系研究会(研究会名,成立年份,地点,人数)候选码:研究会名。无外部码最小依赖集:研究会名-成立年份,研究会名-地点,研究会名-人数。(5)学生参加研究会关系学生----研究会(学生号、研究会名,入会年份)候选码:(学生号,研究会名)。外部码:学生号,研究会名。最小依赖集:(学生号,研究会名)-(f)入会年份,是完全函数依赖。以上各关系无全码存在。9.写出完成下列操作的SQL命令:已知关系S、SC、C的关系模式为:S(S#,SN,SA,SEX,SD)SC(C#,S#,G)C(C#,CN,PC#)其中:S#为学号,SN为学生名,SA为年龄,SEX为性别,SD为系别,C#为课程号,G为成绩,CN为课程名称,PC#先行课程号(1)求选修了先行课号为‘C2’的课程的学生的名字,系别及人数(2)求选修了‘C1’课程且成绩(G)在90分以上的学生的学号,姓名(3)求至少被N人以上的学生选修的课程(4)求数学系学生选修‘C1’课程的平均成绩(数学系:MA)(5)求在下列各系的学生:MA(数学系),CS(计算机科学系)参考答案:(1).SELECTS.SN,S.SD,count(S.*)FROMS,SC,CWHELES.S#=SC.S#ANDSC.C#=C.C#ANDC.PC#=‘C2’;(2).SELECTS.S#,S.SNFROMS,SC,CWHELES.S#=SC.S#ANDSC.G90AND(SC.C#=C.C#ANDC.C#=‘C2’);(3).SELECTSC.C#FROMS,SCWHELES.S#=SC.S#ANDcount(DISTINCTS#)=20;(4).SELECTSC.AVG(G)FROMS,SCWHELES.S#=SC.S#ANDS.SD=‘MA’ANDSC.C#=‘C1’;(5).SELECT*FROMSWHELESD=‘MA’ORSD=‘CS’;10.在著书工作中,一位作者可以编写多本图书,一本书也可由多位作者编写。设作者的属性有:作者号,姓名,单位,电话;书的属性有:书号,书名,出版社,日期。试完成以下两题:(1)根据这段话的意思,画出其E-R图。(2)将这个E-R图转换为关系模式,并给出各关系模式中的主关键字。(3)用SQL语言创建用(2)中的关系模式。参考答案:(1)E-R图如图8.4所示。(2)转换的关系模型为:作者(作者号,姓名,单位,电话),关键字是“作者号”。书(书号,书名,出版社,日期),关键字是“书号”。编写(作者号,书号),关键字是“作者号”,“书号”。