《数据库习题1.pdf》由会员分享,可在线阅读,更多相关《数据库习题1.pdf(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第 2 章【1】查询所有计算机系的学生信息。【2】查询成绩在 90 分以上的学生学号【3】查询选修 1 号课程且成绩在 90 分以上的学生学号【4】查询选修数据库原理且成绩在85 分以上的学生姓名【5】查询不选修 1 号课程的学生学号【6】查询没有选修课程的学生学号【7】查询选修 1 号和 3 号课程的学生学号【8】查询选修全部课程的学生姓名。【9】查询至少选修了 S1 所选的课程的学生学号。答案:(1)(1)Sdept=计算机计算机(student)(2)(2)Sno(Grade90(SC)(3)(3)Sno(Grade90Cno=1(SC)(4)(4)Sname(Grade85Cname=
2、数据库原理数据库原理(StudentStudent SC Course)(5)(5)Sno(Student)-SnoCno=1(SC)(6)(6)Sno(Student)-Sno(SC)(7)(7)SnoCno=1(SC)SnoCno=3(SC)(8)(8)Sname(Sno,Cno(SC)Cno(Couse)Student)Student)(9)(9)Sno,Cno(SC)Cno(Sno=s1(SC)第第 3 3 章章一、一、单表查询单表查询【例 1】输出学生表中的学生的姓名和年龄。【例 2】查询学生学生表中的所有数据。【例 3】查询选课的学生学号。【例 4】查询学生表中的系别。【例 5】查
3、询学生表中的姓名和出生年份。11【例 6】查询学生表中女生的信息。【例 7】在学生表中检索出年龄在18 到 20 之间的学生信息。【例 8】查询姓王同学的记录。【例 9】查询学生表中计算机系男同学的学号、姓名。【例 10】查询全体男学生情况,要求结果按年龄降序排列。【例 11】查询学生总人数。【例 12】查询选课的学生人数。【例 13】统计系别的总数目。【例 14】统计计算机系学生的平均年龄。【例 15】统计每个系的学生人数。【例 16】查询选修 3 门以上课程的学生学号。【例 17】输出学生人数超过800 人的系别和学生人数。连接查询:连接查询:【例 1】查询选课的学生学号和姓名。【例 2】
4、查询每位学生的班长姓名。【例 3】查询选修数据库原理的学生学号。【例 4】查询选修数据库原理的学生学号和姓名。【例 6】查询选修 3 门以上课程的学生学号和姓名。【例 7】查询选修数据库原理的学生学号和成绩,并按成绩降序排列。嵌套查询:嵌套查询:【例 1】查询选修 1 号课程的学生学号和姓名。【例 2】查询刘雅所在系的学生信息。【例 3】查询没有选课的学生姓名。【例 4】查询其他系中比计算机系某一学生年龄大的学生姓名和年龄。【例 5】查询所有选修 1 号课程的学生学号和姓名。(用存在量词 EXIST)【例 6】查询没有选修 1 号课程的学生姓名。【例 7】查询选修全部课程的学生姓名。22【例
5、8】查询至少选修了 S1 所选的课程的学生学号。SqlSql 综合练习综合练习今天是你上班的第一天,职务是系部的教学秘书,职责之一是回答领导、老师、家长们的各种询问.你的前任已经把数据库建好,数据库表也已输入过数据,你所知的情况如下:在“学生”数据库中有三张表文件,表名以及主要字段名如下:学生(学号、姓名、性别、年龄)年龄是数值型,其余为字符型成绩(学号、课程号、成绩)成绩是数值型,其余为字符型课程(课程号、课程名)均为字符型现在请你利用在学校学过的知识,用SQL 命令快速解决以下问题:首先设置默认目录至“上机文件夹”1、系里决定给年龄较小的同学开一个座谈会,请你查询所有年龄在 19 岁以下的
6、学生姓名及年龄(提示:用“学生”表)2、辅导员要找考试不及格的同学谈话,请你查询考试成绩不及格的学生的学号和课程名(成绩,课程)3、李华的父母来电询问李华的学习情况,请你查询李华所选修课程的课程号和成绩(学生,成绩)4、有学生捡到一本书,上面只写了一个字“张”,请你查询所有姓张的学生信息5、带 003 号课程的教师想要课程考试情况清单,请你查询选修了003 号课程的学生的学号及成绩,结果按成绩的降序排列(成绩 排序)6、系里要开会总结学生选课率,请你查询选修了课程的学生人数(成绩 计数)7、001 号课程是学校的精品课程,学校想知道这次考试中最高分是多少,请你查询选修 001号课程的学生最高分
7、数(成绩 求最大值)8、选修 2 门以上课程的同学可以申请不参加某些集体活动,请你查询选修了2 门以上课程的学生学号(分组 having 计数)9、辅导员想知道有哪些学生选了002 号课程,请你查询所有选修了 002 号课程的学生姓名。(in)10、辅导员想知道有哪些学生没有选002号课程,查询没有选修002号课程的学生姓名.(notin)11、有学生转学过来,请你向学生表中插入一条记录(48,刘佩佩,19,女)3312、学号为 48 的学生还未报到,暂时将她的信息从学生表中删除13、学号“12”的学生受到处分,所以将成绩表中学号为“12”的成绩减去 10【例】查询选课的学生学号。SELECT
8、 学号,姓名;FROM 学生【例】查询学生学生表中的所有数据。SELECT*;FROM 学生【例】输出学生表中的学生的姓名和年龄。SELECT 姓名,YEAR(DATE()-YEAR(出生日期)AS 年龄;FROM 学生【例】查询学生表中的系别。SELECT DISTINCT 系别;FROM 学生【例】查询学生表中女生的信息。【例】在学生表中检索出年龄在18 到 20 之间的学生信息。【例】查询姓王同学的记录。SELECT*;FROM 学生;WHERE 姓名 LIKE“王%”【例】查询学生表中 D06 系男同学的学号、姓名。SELECT 学号,姓名;FROM 学生;WHERE 系别=“D01”
9、AND 性别=“男”【例】查询全体男学生情况,要求结果按出生日期降序排列。SELECT*;FROM 学生;44WHERE 性别=“男”ORDER BY 出生日期 DESC【例】查询学生总人数。SELECT COUNT(*);FROM 学生【例】查询选课的学生人数。【例】统计系别的总数目。SELECT COUNT(DISTINCT 系别);FROM 学生【例】统计借书的学生人数。【例】统计 D06 系学生的平均年龄。SELECT AVG(YEAR(DATE()-YEAR(出生日期)AS 年龄;FROM 学生;WHERE系别=D06【例】统计每个系的学生人数。SELECT 系别,COUNT(*)A
10、S学生人数;FROM学生;GROUP BY 系别【例】统计学生人数超过800 人的系部。SELECT 系别,COUNT(*)AS学生人数;FROM 学生;GROUP BY 系别 HAVING COUNT(*)800连接查询:连接查询:【例 1】查询选课的学生学号和姓名。SELECT distinct,SnameFROM Student,SCWHERE =55【例 2】查询每位学生的班长姓名。SELECT,FROM Student FIRST,Student SECONDWHERE =;【例 3】查询选修数据库原理的学生学号。SELECT SnoFROM Course,SCWHERE =and
11、Cname=数据库原理【例 4】查询选修数据库原理的学生学号和姓名。SELECT Sno,SnameFROM Course,SC,StudentWHERE =and=and Cname=数据库原理【例 6】查询选修 3 门以上课程的学生学号和姓名。SELECT Sno,SnameFROM StudentWHERE Sno in(SELECT SnoFROM SCGroup by Sno having count(*)=3)【例 7】查询选修数据库原理的学生学号和成绩,并按成绩降序排列。SELECT Sno,GradeFROM Course,SCWHERE =and Cname=数据库原理ORD
12、ER by Grade DESC嵌套查询:嵌套查询:【例1】查询选修 1 号课程的学生学号和姓名。66SELECT Sno,SnameFROM StudentWHERE Sno in(SELECT SnoFROM SCWHERE Cno=1)【例2】SELECT*FROM StudentWHERE Sdept IN (SELECT Sdept FROM StudentWHERE Sname=刘雅)【例3】查询没有选课的学生姓名。查询刘雅所在系的学生信息。SELECT SnameFROM StudentWHERE NOT EXISTS (SELECT*FROM SC WHERE Sno=);【例
13、 4】查询其他系中比计算机系某一学生年龄大的学生姓名和年龄。【例 5】查询所有选修 1 号课程的学生学号和姓名。(用存在量词 EXIST)【例 6】查询没有选修 1 号课程的学生姓名。【例 7】查询选修全部课程的学生姓名。【例 8】查询至少选修了 S1 所选的课程的学生学号。在“学生管理”数据库中有三张表文件,表名以及主要字段如下:77学生(学号、姓名、性别、年龄)年龄是数值型,其余为字符型成绩(学号、课程号、成绩)成绩是数值型,其余为字符型课程(课程号、课程名)均为字符型注意在使用 SQL 命令前无需使用 use 命令打开表.1、查询所有年龄在 19 岁以下的学生姓名及年龄命令:select
14、 姓名,年龄 from 学生 where 年龄192、查询考试成绩不及格的学生的学号和课程名命令:select 学号,课程名 from 课程,成绩;where 成绩2“as 选修门数”意思是把计算结果声明成一个临时字段9、查询所有选修了 002 号课程的学生姓名。命令:方法一:88select 姓名 from 学生 where 学号 in;(select 学号 from 成绩 where 课程号=”002”)方法二:用谓词(exists)查询select 姓名 from 学生 where exists;(select*from 成绩 where 课程号=002 and 学号=学生.学号)10、
15、查询没有选修 002 号课程的学生姓名.命令:方法一:select 姓名 from 学生 where 学号 not in;(select 学号 from 成绩 where 课程号=”002”)方法二:用谓词(exists)查询select 姓名 from 学生 where not exists;(select*from 成绩 where 课程号=002 and 学号=学生.学号)11、向学生表中插入一条记录(48,刘佩佩,19,女)命令:insert into 学生 values(48,刘佩佩,19,女)12、删除学生表中学号为“48”的学生信息命令:delet from 学生 where 学
16、号=4813、将成绩表中学号为“12”的成绩减去 8 分命令:update 成绩 set 成绩=成绩-8 where 学号=“12”学生(学号、姓名、性别、年龄)成绩(学号、课程号、成绩)课程(课程号、课程名)第五章第五章1设有供应商关系S 和零件关系 P,如下图所示,S 和 P 的主键分别是“供应商号”和“零件号”,P 的外键是“供应商号”。S P供应商号供应商名A1红星A2宇宙所在城市北京上海99零件号P1A3A4黎明立新天津重庆分析下列 3 个操作能否被正确执行,并说明理由。.在 P 中插入元组(P2,白,A2).在 P 中插入元组(NULL,绿,A1).在 P 中插入元组(P4,白,A
17、5)P2P3颜色红蓝白供应商号v1.0 可编辑可修改A1A3A4第六章第六章1.设关系模式 R(S#,C#,GRADE,TNAME,TADDR),其属性分别表示学生学号、选修课的编号、成绩、任课教师姓名、教师地址等意义。如果规定,每个学生每学一门课只有一个成绩;每门课只有一个教师任教;每个教师只有一个地址(此处不允许教师同名)。(1)试写出关系模式 R 基本的函数依赖和候选键。(2)试把 R 分解成 3NF 模式集,并说明理由。2.设有关系模式 R(C,T,H,I,S,G),其上的函数依赖集F=CSG,CT,THI,HIC,HSI求:(1)R 的候选键;(2 分)(2)将 R 分解成 3NF,
18、并保持函数依赖性。(2 分)3.有关系:教学(学号、教工号、课程号)假定每个学生可以选修多门课程,每门课程可以由多名学生来选修,每个老师可以讲授多门课程,每门课程只能由一个老师来讲授,那么该关系的主键是()A.(课程号,教工号)C.(学号,教工号)1.在关系数据库中,从关系规范化的意义看,如果关系 R 中的非主属性对码有部分函数依赖,那么 R 至多是()2.设有关系模式 R(S,D,M),其函数依赖集:FSD,DM,则关系模式 R 的规范化B.(学号,课程号)D.(学号,教工号,课程号)1010程度最高达到()。3.设有关系模式 R(A,B,C,D),其数据依赖集:F(A,B)C,CD,则关系
19、模式R的规范化程度最高达到()。Y,当下列哪一条成立时,称为平凡的函数依赖()。YXYY5在关系模式 R(A,B,C,D)中,存在函数依赖关系AB,AC,AD,(B,C)A,则候选码是_,关系模式 R(A,B,C,D)属于_6 在关系模式 R(D,E,G)中,存在函数依赖关系ED,(D,G)E,则候选码是_,关系模式 R(D,E,G)属于_。1.有关系模式 R(ABC),F 是 R 上成立的函数依赖集,F=A-B,C-B,写出 R 的候选码。2.有关系模式 R(ABCDE),F 是 R 上成立的函数依赖集,F=AB-C,CD-E,DE-B,写出 R 的候选码。3设有关系模式 R(A,B,C,D
20、,E),F=AC,CD,BC,DEC,CEA。求 R 的所有候选键。4.关系模式 R(ABC),F 是 R 上成立的函数依赖集,F=B-C,C-A,那么分解=AB,AC是否为无损分解和保持函数依赖的分解5设有关系模式R(职工编号,日期,日营业额,部门名,部门经理),该模式记录了商店里每个职工的日营业额,以及职工所在的部门和经理信息。如果规定:每个职工每天只有一个营业额;每个职工只在一个部门工作;每个部门只有一个经理。试回答下列问题:1111(1)根据上述规定,写出模式R 的基本 FD 和关键码;(2)判断 R 是否达到 3NF,若不是,请分解成 3NF。6设有关系模式R(运动员编号,比赛项目,
21、成绩,比赛类别,比赛主管),该模式记录了运动员比赛成绩及比赛类别、主管等信息。如果规定:每个运动员每参加一个项目只有一个成绩;每个比赛项目只属于一个比赛类别;每个比赛类别只有一个比赛主管。试回答下列问题:(1)根据上述规定,写出模式R 的基本 FD 和关键码;(2)判断 R 是否达到 3NF,若不是,请分解成 3NF。7假设某公司销售业务中使用的订单格式如下:订单号:1145 订货日期:09/15/2002 客户名称:ABC 客户电话:8141763产品编号ABC品名电源电表卡尺价格数量204050金额总金额:公司的业务规定:(1)订单号是唯一的,每张订单对应一个订单号;(2)一张订单可以订购
22、多种产品,每一种产品可以在多个订单中出现;(3)一张订单有一个客户,且一个客户可以有多张订单;1212(4)每一个产品编号对应一种产品的品名和价格;(5)每一个客户有一个确定的名称和电话号码。试根据上述表格和业务规则设计关系模式:R(订单号,订货日期,客户名称,客户电话,产品编号,品名,价格,数量)问:(1)写出 R 的基本函数依赖集。(2)找出 R 的候选码。(3)判断 R 最高可达到第几范式为什么、(4)给出一个可能的 3NF 分解。答案:1AC 2ADB ADE ADC 3BE4.不具有无损连接也不具有函数依赖保持5.(1)F:(职工编号,日期)-日营业额,职工编号-部门名,部门名-部门
23、经理关键码:(职工编号,日期)(2)未达到第 3NF,分解为以下三个关系模式:R1(职工编号,日期,日营业额)R2(职工编号,部门名)R3(部门名,部门经理)6.(1)F:(运动员编号,比赛项目)-成绩,比赛项目-比赛类别,比赛类别-比赛主管关键码:(运动员编号,比赛项目)1313(2)未达到第 3NF,分解为以下三个关系模式:R1(运动员编号,比赛项目,成绩)R2(比赛项目,比赛类别)R3(比赛类别,比赛主管)7.(1)F:订单号-(客户名称,订货日期),产品编号-(品名,价格),客户名称-客户电话,(订单号,产品编号)-数量(2)候选码:(订单号,产品编号)(3)R 属于第 1NF。(4)
24、R1(订单号,产品编号,数量)R2(订单号,客户名称,订货日期)R3(产品编号,品名,价格)R4(客户名称,客户电话)第七章第七章一、设某汽车运输公司数据库中有3 个实体集。描述车队的信息有:车队号,车队名。描述车辆的信息有:牌照号,厂家,出厂日期。描述司机的信息有:司机编号,姓名,电话。有关语义如下:每个车队可聘用若干司机,但每个司机只能应聘于一个车队,车队聘用司机有个聘用期;每个车队可拥有若干车辆,但每辆车只能属于一个车队;每个司机可使用多辆汽车,每辆汽车可被多个司机使用,司机使用车辆有使用日期和公里数。(1)试画出 ER 图。(2)将 ER 图转换成关系模型,并指出每个关系模式的主码、外
25、码。1414(3)对关系模式进行分析并进行分解,使之3NF 满足的要求。二、将下图 1 所示的一个关于系、学生、学会等信息的 ER 模型转换为关系模型,并给出每个关系模式的主码,以及提出可能存在的外码。最后讨论每个关系模式是否是3NF 的若不是,则要求将其规范化为3NF 的。学号SA入会年份姓名nm性别DS1系号系名系主任系办公地点系 D学生 S年龄p学会 A学会名地点图 1三、假设要根据某商业集团的商店、商品和职工等信息建立一个数据库。1515描述商店的信息有:商店编号,商店名,地址。描述商品的信息有:商品号,商品名,规格,价格。描述职工的信息有:职工编号,姓名,性别。有关语义如下:每个商店
26、可销售多种商品,每种商品也可放在多个商店销售,每个商店销售一种商品有月销售量;每个商店由许多职工,每个职工只能在一个商店工作,商店聘用职工有聘期和月薪。1试画出 ER 图,并在图上注明属性及联系的类型。(4 分)2将 ER 图转换成关系模型,并指出每个关系模式的主码、外码。(4 分)3对关系模式进行分析并进行分解,使之3NF 满足的要求。(4 分)四、建立一个关于产品生产加工情况的关系数据库。其中,描述车间的信息有:车间号,车间名,电话。描述设备的信息有:设备号,设备名,型号。描述产品的信息有:产品号,产品名,规格,姓名,型号。有关语义如下:同一种产品,可以在不同的车间有不同的设备加工,加工工
27、时可能不同;每一车间有多台设备,可以加工多种产品;同一种类型的设备有多台,分别归不同的车间所有和使用。(1)试画出 ER 图。(2)将 ER 图转换成关系模型,并指出每个关系模式的主码、外码。(3)对关系模式进行分析并进行分解,使之3NF 满足的要求。五、设计一个图书馆数据库,此数据库中对每个借阅者保存读者记录,包括:读者号,姓名,地址,性别,年龄,单位;对每本书存有:书号,书名,作者,出版社;对每本借出的书存有读者号、借出日期和应还日期。要求:1画出 ER 图。2将 ER 图转换成关系模型,并指出每个关系模式的主码。1616六、六、假设某公司在多个地区设有销售部经销本公司的各种产品,每个销售
28、部聘用多名职工,且每名职工只属于一个销售部。销售部有部门名称、地区和电话等属性,产品有产品编码、品名和单价等属性,职工有职工号、姓名和性别等属性,每个销售部销售产品有数量属性。(1)根据上述语义画出ER 图,要求在图中画出属性并注明联系的类型。(2)试将 ER 模型转换成关系模型,并指出每个关系模式的主键和外键。七、某学校有若干系,每个系有若干学生,若干课程,每个学生选修若干课程,每门课有若干学生选修,每个学生选修每门课对应一个选修学期和成绩,某一门课可以为不同的系开设。要建立该校学生选修课程的数据库。系部信息:系代号,系名,系主任姓名,电话学生:学号,姓名,年龄,性别课程:课程号,课程名请设
29、计:1关于此学校数据库的E-R 模型;2将该 E-R 模型转换为关系模型,并指出每个关系模式的码及存在的外码;3判断每个关系模式是否达到第三范式,若不是,请分解。八、八、某医院病房计算机管理中需要如下信息:科室:科室名称,科室地址,科室电话;病房:病房号,床位号,所属科室名;医生:姓名,职称,所属科室名,年龄,工作证号;病人:病历号,姓名,性别,诊断,主管医生,病房号;其中,一个科室有多个病房,多个医生,一个病房只能属于一个科室,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只有一个。1717请完成如下设计:(1)根据上述语义设计E-R 模型;(2)将 E-R 模型转换成关
30、系数据模型,并指出每一个关系的主键和外键(若存在)。九、已知某企业各部门有许多职员,一个职员仅属于一个部门;每个职员可在多项工程中做工或负责管理,每项工程可有多个职员参加。其中,职工有:职工号,职工名;部门有:部门号,部门名;工程有:工程号,工程名;每个职工参加某个工程有参加日期。请完成如下设计或处理:(1)根据上述语义设计ER 模型,要求标注实体属性、联系类型。(2)将 ER 模型转换成关系模型,并指出每一个关系的主键和外键(如果存在)。(3)对每个关系模式进行分析并进行分解,使之3NF 满足的要求。答案:一、设某汽车运输公司数据库中有3 个实体集。描述车队的信息有:车队号,车队名。描述车辆
31、的信息有:牌照号,厂家,出厂日期。描述司机的信息有:司机编号,姓名,电话。有关语义如下:每个车队可聘用若干司机,但每个司机只能应聘于一个车队,车队聘用司机有个聘用期;每个车队可拥有若干车辆,但每辆车只能属于一个车队;每个司机可使用多辆汽车,每辆汽车可被多个司机使用,司机使用车辆有使用日期和公里数。(1)试画出 ER 图。(2)将 ER 图转换成关系模型,并指出每个关系模式的主码、外码。(3)对关系模式进行分析并进行分解,使之3NF 满足的要求。18181聘用期司机编号2车队号姓名车队车队名1聘用m司机m电话1拥有使用公里数mn车辆使用日期牌照号厂家出厂日期车队(车队号,车队名)主码:车队号外码
32、:无车辆(牌照号,车队号,厂家,出厂日期)主码:牌照号外码:车队号司机(司机编号,车队号,聘用期,姓名,电话)主码:司机编号车队号外码:车队号使用(司机编号,牌照号,使用日期,公里数)主码:(司机编号,牌照号,使用日期)外码:司机编号,牌照号3车队、车辆、司机三个关系模式均描述实体,由于不存在非主属性对码的部分依赖和传1919递依赖,所以均为 3NF。使用关系模式用于描述两个实体间的m:n 联系,由于不存在非主属性对码的部分依赖和传递依赖,所以也是 3NF 的。二、将下图 1 所示的一个关于系、学生、学会等信息的 ER 模型转换为关系模型,并给出每个关系模式的主码,以及提出可能存在的外码。最后
33、讨论每个关系模式是否是3NF 的若不是,则要求将其规范化为3NF 的。学号SA入会年份姓名nm性别DS1系号系名系主任系办公地点系 D学生 S年龄p学会 A2020学会名地点系(系号,系名,系主任,系办公地点)系号、系名为候选码;无外码;系号为主码。学生(学号,姓名,性别,年龄,系号)学号为候选码,系号为外码,学号为主码。学会(学会名,地点)学会名为候选码;无外码;学会名为主码。入会(学会名,学号,入会年份)(学会名,学号)为候选码,也为主码;学会名,学号均为外码。以上关系不存在非主属性对码的部分函数依赖或传递函数依赖;另外,无全码存在。三、假设要根据某商业集团的商店、商品和职工等信息建立一个
34、数据库。描述商店的信息有:商店编号,商店名,地址。描述商品的信息有:商品号,商品名,规格,价格。描述职工的信息有:职工编号,姓名,性别。有关语义如下:每个商店可销售多种商品,每种商品也可放在多个商店销售,每个商店销售一种商品有月销售量;每个商店由许多职工,每个职工只能在一个商店工作,商店聘用职工有聘期和月薪。1试画出 ER 图,并在图上注明属性及联系的类型。(4 分)2将 ER 图转换成关系模型,并指出每个关系模式的主码、外码。(4 分)3对关系模式进行分析并进行分解,使之3NF 满足的要求。(4 分)1.职工编号商店编号聘用期月薪姓名1商店名商店聘用m职工性别2121月销售量地址n业绩销售2
35、商品编号m商品商品名规格规格商店(商店编号,商店名,地址)主码:商店编号外码:无商品(商品号,商品名,规格,价格)主码:商品号外码:无职工(职工编号,姓名,性别,所在商店)主码:职工编号外码:所在商店销售(商店编号,商品号,月销售量)主码:(商店编号,商品号)外码:商店编号,商品号3商店、商品、职工三个关系模式均描述实体,由于不存在非主属性对码的部分依赖和传递依赖,所以均为 3NF。销售关系模式用于描述两个实体间的m:n 联系,由于不存在非主属性对码的部分依赖和传递依赖,所以也是 3NF 的。四、建立一个关于产品生产加工情况的关系数据库。其中,描述车间的信息有:车间号,车间名,电话。描述设备的
36、信息有:设备号,设备名,型号。2222描述产品的信息有:产品号,产品名,规格,姓名,型号。有关语义如下:同一种产品,可以在不同的车间有不同的设备加工,加工工时可能不同;每一车间有多台设备,可以加工多种产品;同一种类型的设备有多台,分别归不同的车间所有和使用。(1)试画出 ER 图。(2)将 ER 图转换成关系模型,并指出每个关系模式的主码、外码。(3)对关系模式进行分析并进行分解,使之3NF 满足的要求。五、设计一个图书馆数据库,此数据库中对每个借阅者保存读者记录,包括:读者号,姓名,地址,性别,年龄,单位;对每本书存有:书号,书名,作者,出版社;对每本借出的书存有读者号、借出日期和应还日期。
37、要求:1画出 ER 图。2将 ER 图转换成关系模型,并指出每个关系模式的主码。1读者号性别借出日期地址姓名读者n年龄单位借阅书号m应还日期图书书名作者出版社23232读者(读者号,姓名,地址,性别,年龄,单位)主码:读者号 -(2 分)图书(书号,书名,作者,出版社)主码:书号 -(4 分)借阅(读者号,书号,借出日期,应还日期)主码:(读者号,书号)-(6 分)六、假设某公司在多个地区设有销售部经销本公司的各种产品,每个销售部聘用多名职工,且每名职工只属于一个销售部。销售部有部门名称、地区和电话等属性,产品有产品编码、品名和单价等属性,职工有职工号、姓名和性别等属性,每个销售部销售产品有数
38、量属性。(1)根据上述语义画出ER 图,要求在图中画出属性并注明联系的类型。(2)试将 ER 模型转换成关系模型,并指出每个关系模式的主键和外键。七、(1)学生性别2424DS成绩开设系号系名系主任电话系部1nmnmn选修课程学号姓名年龄选修学期课程号课程名(2)系部(系号,系名,系主任,电话)主码:系号外码:无学生(学号,姓名,年龄,性别,系号)主码:学号外码:系号课程(课程号,课程名)主码:课程号外码:无选修(学号,课程号,选修学期,成绩)主码:(学号,课程号)外码:学号,课程号开设(系号,课程号)主码:(系号,课程号)外码:系号,课程号(3)系部、学生、课程三个关系模式均描述实体,由于不
39、存在非主属性对码的部分依赖和传递依赖,所以均为 3NF。选修、开设两个关系模式用于描述两个实体间的 m:n 联系,由于不存在非主属性对码的部分依赖和传递依赖,所以也是3NF 的。说明:其中(2)、(3)只要给出的模式合理,分解正确都可以。八、(1)科室名称病房号2525床位号科室地址病房m组成1科室11科室电话入住从属m1(2)科室(科室名称,科室地址,科室电话);无外键病房(病房号,床位号,科室名);外键为科室名医生(工作证号,姓名,职称,科室名,年龄);外键为科室名病人(病历号,姓名,性别,诊断,主管医生,病房号)。外键为主管医生,病房号九、(1)部门号病历号姓名性别工作证号姓名职称年龄m
40、诊治m病人医生部门部门名12626mn职工号职工名工程号工程名隶属参加日起m参加病人职工工程(2)部门(部门号,部门名);无外键职工(职工号,职工名,所在部门);外键为所在部门工程(工程号,工程名);无外键参加(工程号,工程名,参加日期)。外键为工程号,职工号(3)部门、职工、工程三个关系模式均描述实体,由于不存在非主属性对码的部分依赖和传递依赖,所以均为 3NF。参加关系模式用于描述两个实体间的m:n 联系,由于不存在非主属性对码的部分依赖和传递依赖,所以也是3NF 的。说明:其中(2)、(3)只要给出的模式合理,分解正确都可以。十一章1已知事务 T1 和 T2 的并发操作序列,如下图所示,指出这个并发操作引发的问题。顺序123T1读 XX=X+5T2读 X2727写 X4事务 T1 对数据对象 X 的修改被事务 T2 覆盖了,该并发操作引发的问题是丢失修改。X=X+2写 X2828