logo资料库

湘潭大学2016年期末考试试卷及答案(谢勇).docx

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
Line Line_ID[PK] Title Type Stations Station_ID[PK] Name City_ID[PK] Line_Stations Line_ID[FK][PK] Station_ID[FK][PK] No Distance Cities Name Province PK 表示主键,FK 表示外键 箭头表示多对一关系 数据字典 Lines(线路表) 列名 Line_ID Title Type 数据类型 varchar2(5) varchar2(20) varchar2(5) 注释 线路 ID 线路名称 类型 数据字典 Line_Stations(线路站点表) 列名 Line_ID Station_ID No Distance 数据类型 varchar2(5) varchar2(4) int int 注释 线路 ID 车站 ID 序号(始发站序号为 1) 距始发站的距离
数据字典 Stations(始发站) 列名 Station_ID Name City_ID 数据类型 varchar2(5) varchar2(20) varchar2(5) 注释 站点 ID 站名 城市 ID 数据字典 Cities(城市表) 列名 City_ID Name Province 数据类型 varchar2(3) varchar2(20) varchar2(10) 注释 城市 ID 城市名称 所属省份 1、查询类型为“高铁”的线路总数(3 分) Select count(*) From Lines Where Type = ‘高铁’; 3、将线路 ID 为“ZI”的序号大于 1 的线路站点序号都增加 1(3 分) Update Line_Stations Set No= No+ 1 Where Line_ID=’ZI’; 4、增加一个新的站点,“湘潭北站”,站点 ID 为“XTNN”,所在城市为“湘潭”(3 分) Insert into Stations Values(‘湘潭北站’,’XTNN’,’湘潭’); 5、查询途经湘潭的所有线路 ID,线路名称,线路类型(3 分) Select Line_ID, Title, Type From Lines natural join Line_Stations natural join Station natural join Cites Where No >1 and Cities.name = ‘湘潭’; 6、建立一个视图 VI(Province,City,Station,Type,Nam)表示所有始发站的不同类型线 路的数量统计情况,列对应为省份,城市,站点,类型,线路数量(5 分)
Create view VI (Province,City,Station,Type,Nam)as Select Province,City.NAME,Station,Type,distinct count(Line_ID) From Stations natural left outer join Cities natural left outer join Line_Stations natural left outer join Lines Group by Station_ID,TYPE 7、查询从长沙到北京的所有线路的 ID,名称,类型,并按类型,线路 ID 排序(5 分) (Select ID, Title, Type From Lines natural left outer join Line_Stations natural left outer join Stations natural left outer join Cities Where Cities.name = ‘长沙’ Group by Line_ID, Type Order by Line_ID, Type) Intersect (Select ID, Title, Type From Lines natural left outer join Line_Stations natural left outer join Stations natural left outer join Cities Where Cities.name = ‘北京’ Group by Line_ID, Type Order by Line_ID, Type); 8、查询线路数最多的城市的名称和省份,提示:可能存在多个这样的城市(5 分) Select Cites.NAME,Province from (Select Province,City.NAME,Station,Type,distinct count(Line_ID) as count_L From Cities natural left outer join Stations natural left outer join Line_Stations natural left outer join Lines Group by Station_ID,TYPE) as M Where count_L= (Select max(count_L) From M) 9、请使用标量子查询查询按行驶里程从高到低排序,最长的 5 条路线 ID。(7 分) Select Line_id ,rank()over (order by (max(Distance)) desc)as dis_rank From Line_Stations Group by Line_id Limit 5; 10、查询通过直达车,能到达湖南省所有已开通铁路城市的城市名称。(7 分) 11、查询所有城市的始发站高铁线路数,途径高铁线路数,始发普通线路数,途径普通线路
数,结果列依次为省份,城市,站点,始发高铁线路数,途径高铁线路数,始发普通线路数, 途径普通线路数。 select Province,City.NAME,Station.name, distinct count(case when no= 0 and type= ‘高铁‘ then Line_id else null end) as num_no1GT , distinct count(case when no= 0 and type= ‘普通‘ then Line_id else null end) as num_no1PT , distinct count(case when no>0 and type= ‘高铁‘ then Line_id else null end) as num_noGT , distinct count(case when no>0 and type= ‘普通‘ then Line_id else null end) as num_noPT , From Stations natural left outer join Cities natural left outer join Line_Stations natural left outer join Lines group by Station_ID,TYPE; 二 范式理论 1、关系模型 R=(A,B,C,D,E,G)其上存在函数依赖集 F=(BC->D,CD->AE,AG->CE,AB->GE) a. 证明 BC 为候选键(5 分) 因为 R=(A,B,C,D,E,G),BC->D,CD->AE,AB->GE,AG->CE 所以 BC 为候选键 b.将 R 分解为 R1=(ACDE),R2=(BCDG),请问 R2 是否满足 BCNF?(5 分) R2 的子集有(B),(C),(D),(G)等,每一个子集 a 都满足 a+要么不包含 R2-a 的任何属性,要么包含 R2 的所有属 性,所以满足 BCNF c.对于上面的分解,测试 AG->CE,这个函数依赖是否被保持?(5 分) result=AG t=(result∩R1)+ ∩R1=(A) result=result∪t=(AG) result 不包含(CE) result=AG t=(result∩R2)+ ∩R2=(G) result=result∪t=(AG) result 不包含(CE) 所以不被保持 d.请将 R 分解,使分解后的所有模式 Rd 至少满足 3NF(6 分) 正则覆盖为(BC->D,CD->AE,AG->CE,AB->G) 分解为 BCD,ADCE,AGCE,ABG e.将 R 分解,使分解后所有 Rd 满足(6 分) 分解为 BCD,ADCE,AGCE,ABG 三、数据库设计
1、 某比赛积分系统的部分数据库需求如下:选手具有唯一的 ID,注册邮箱,昵称,真实姓名,学校,国 籍:选手的积分与对应的头衔可以通过积分区间对应得到:需要记录选手参加比赛的详细情况,包括比赛 的名称,时间,比赛的名次,获得积分,积分和头衔的变化。请参照显示情况,画出以上需求的 ER 图。(12 分) 2、请将上面的 ER 图转换成对应的数据库模型图。(10 分)
分享到:
收藏