上海大学数据库原理1研讨答案

2018-12-05 13:10

第1周(第四章:SQL体系结构、组成、建库建表,索引自学)

一、实验课:

1. 建立school数据库

2. 在school下建立如下数据库表,根据表中数据选取合适的数据类型及宽度,设置各表

的主键及表间外键联系:

注意:字段名是对应汉字字段名的汉语拼音第一个字母组合而成

? 学生表S:学号,姓名,性别,出生日期,籍贯,手机号码,院系号;

表1:S xh 1101 1102 1103 1104 1105 1106 1107 xm 李明 刘晓明 张颖 刘晶晶 刘成刚 李二丽 张晓峰 xb 男 男 女 女 男 女 男 csrq 1993-03-06 1992-12-08 1993-01-05 1994-11-06 1991-06-07 1993-05-04 1992-08-16 jg 上海 安徽 江苏 上海 上海 江苏 浙江 sjhm 13613005486 18913457890 18826490423 13331934111 18015872567 18107620945 13912341078 yxh 02 01 01 01 01 01 01

? 院系表D:院系号,名称,地址,联系电话;

表2:D yxh 01 02 03 mc 计算机学院 通讯学院 材料学院 dz 上大东校区三号楼 上大东校区二号楼 上大东校区四号楼 lxdh 65347567 65341234 65347890 ? 教师表T:工号,姓名,性别,出生日期,学历,基本工资,院系编号;

表3:T gh 0101 0102 0201 0103 ? 课程表C:课号,课名,学分,学时,院系号;(默认学分4,学时40)

表4:C kh 08305001 08305002 08305003 08305004 08301001 08302001 km 离散数学 数据库原理 数据结构 系统结构 分子物理学 通信学 xf 4 4 4 6 4 3 xs 40 50 50 60 40 30 yxh 01 01 01 01 03 02 xm 陈迪茂 马小红 张心颖 吴宝钢 xb 男 女 女 男 csrq 1973-03-06 1972-12-08 1960-01-05 1980-11-06 xl 副教授 讲师 教授 讲师 jbgz 3567.00 2845.00 4200.00 2554.00 yxh 01 01 02 01 ? 开课表O:学期,课号,工号,上课时间;

表5:O xq 2012-2013秋季 2012-2013冬季 2012-2013冬季 2012-2013冬季 2012-2013冬季 2013-2014秋季 2013-2014秋季 2013-2014冬季 kh 08305001 08305002 08305002 08305002 08305003 08305004 08305001 08302001 gh 0103 0101 0102 0103 0102 0101 0102 0201 sksj 星期三5-8 星期三1-4 星期三1-4 星期三1-4 星期五5-8 星期二1-4 星期一5-8 星期一5-8

? 选课表E:学号,学期,课号,工号,平时成绩,考试成绩,总评成绩;(成绩范围1-100)

表6:E xh 1101 1102 1102 1102 1103 1103 1103 1103 1103 1104 1104 1106 1106 1107 1107 1107 xq 2012-2013秋季 2012-2013秋季 2012-2013冬季 2013-2014秋季 2012-2013秋季 2012-2013冬季 2012-2013冬季 2013-2014秋季 2013-2014秋季 2012-2013秋季 2013-2014冬季 2012-2013秋季 2012-2013冬季 2012-2013秋季 2012-2013冬季 2013-2014秋季 kh 08305001 08305001 08305002 08305004 08305001 08305002 08305003 08305001 08305004 08305001 08302001 08305001 08305002 08305001 08305003 08305004 gh 0103 0103 0101 0101 0103 0102 0102 0102 0101 0103 0201 0103 0103 0103 0102 0101 pscj 60 87 82 null 56 75 84 null null 74 null 85 66 90 79 null kscj 60 87 82 null 56 75 84 null null 74 null 85 66 90 79 null zpcj 60 87 82 null 56 75 84 null null 74 null 85 66 90 79 null

3. 在学生表中建立索引idx1:院系号升序,姓名降序

在课程表中建立索引idx2:课名

二、研讨课:(参考答案)

1. 请说明school数据库中各表的主键和外键。同时说明:在学生表中的yxh字段输入“04”

或在院系表中删除yxh为“01”记录,会有什么结果? ? 学生表S:学号,院系号 ? 院系表D:院系号

? 教师表T:工号,院系号 ? 课程表C:课号,院系号

? 开课表O:学期,课号,工号,课号,工号

? 选课表E:学号,学期,课号,工号,学号,学期,课号,工号 不能输入04:因为外键值在对应主键中没有出现

不能删除:因为外键表中有相应数据 或 级联删除和院系相关的数据

2. 什么是关系型数据库?什么是非关系型数据库?各举1个典型产品简单介绍他们特点?

关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。关系模型是由埃德加·科德于1970年首先提出的,并配合“科德十二定律”。现如今虽然对此模型有一些批评意见,但它还是数据存储的传统标准。标准数据查询语言SQL就是一种基于关系数据库的语言,这种语言执行对关系数据库中数据的检索和操作。 关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。ORACLE、SQLServer、Sybase、Informix、mysql等。

非关系型的数据库(NoSQL),随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。CouchDB、MonogDB等。

3. 教师表中定义两个检查约束:

1) 性别只能输入“男”和“女” check(xb=’男’ or xb=’女’)

2) 男老师的基本工资必须超过2500元

check((xb=’男’ and jbgz>2500)or xb=’女’)

第2周(第四章:投影、选择、多表连接和嵌套,排序自学)

一、实验课:

1. 查询2011年进校年龄大于20岁的男学生的学号与姓名。 2. 检索刘晓明不学的课程的课程号。

3. 检索马小红老师所授课程的学年,学期,课程号,上课时间。

4. 查询计算机学院男生总评成绩及格、教授开设的课程的课程号、课名、开课教师姓名,

按开课教师升序,课程号降序排序。

5. 检索学号比张颖同学大,年龄比张颖同学小的同学学号、姓名。 6. 检索同时选修了“08305001”和“08305002”的学生学号和姓名。

二、研讨课:

1. 用四种方法表达查询:检索马小红老师所授课程的学期,课程号,上课时间。

1) select xq,kh,sksj from o,t where o.gh=t.gh and xm=’马小红’

2) select xq,kh,sksj from o where gh in (select gh from t where xm=’马小

红’)

3) select xq,kh,sksj from o where exists(select * from t where o.gh=t.gh

and xm=’马小红’)

4) select xq,kh,sksj from o where ’马小红’ in (select xm from t where o.gh=t.gh)

2. 检索有学生重修的教师编号和姓名。

select gh,xm from t where gh in (select a.gh from e a,e b where a.xh=b.xh and a.kh=b.kh and a.xq>b.xq)

3. 如果O表加一个个开课编号(标识码)会带来哪些影响(优缺点)?

第3周(第四章:除法、聚合函数、分组、集合操作,外连接自学)

一、实验课:

1. 验证在1000万个以上记录时在索引和不索引时的查询时间区别。 2. 查询每个学生选课情况(包括没有选修课程的学生)。

select s.*,e.* from s left join e on s.xh=e.xh 3. 检索所有课程都选修的的学生的学号与姓名。

4. 检索选修课程包含1106同学所学全部课程的学生学号和姓名。 5. 查询每门课程中分数最高的学生学号和学生姓名。

6. 查询年龄小于本学院平均年龄,所有课程总评成绩都高于所选课程平均总评成绩的学生

学号、姓名和平均总评成绩,按年龄排序。 select x1.xh,x1.xm,avg(e.zpcj) as pj from s as x1 join e on x1.xh=e.xh where year(getdate())-year(x1.csrq)<

(select avg(year(getdate())-year(x2.csrq)) from s as x2 where x1.yxh=x2.yxh)

and e.xh not in (select y1.xh from e as y1 where

y1.zpcj<=(select avg(y2.zpcj) from e as y2 where y1.kh=y2.kh)) group by x1.xh,x1.xm,year(getdate())-year(x1.csrq) order by year(getdate())-year(x1.csrq)

二、研讨课:

1. 什么是聚集索引?什么是非聚集索引?索引的作用是什么?请说明上述实验题1的验证

过程及所得到的结果?

聚集索引:在聚集索引中,表中各行的物理顺序与索引键值的逻辑(索引)顺序相同。表只能包含一个聚集索引。聚集索引通常可加快UPDATE和DELETE操作的速度,因为这两个操作需要读取大量的数据。创建或修改聚集索引可能要花很长时间,因为执行这两个操作时要在磁盘上对表的行进行重组。

非聚集索引:非聚集索引具有完全独立于数据行的结构,使用非聚集索引不用将物理数据页中的数据按列排序。非聚集索引中存储了组成非聚集索引的关键字值和行定位器。非聚集索常用于:包含大量非重复值的列, 不返回大型结果集的查询, 精确匹配的查询经常使用的列。

索引的作用是加快查询速度

2. 用多种方法表达查询:检索同时选修了“数据库原理”和“离散数学”的学生学号和姓

名。

1) select xh,xm from s where xh in (select xh from e,c where e.kh=c.kh and

c.km=’数据库原理’) intersect

select xh,xm from s where xh in (select xh from e,c where e.kh=c.kh and


上海大学数据库原理1研讨答案.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:昆明市建设工程项目招标投标管理办法

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: