《数据库原理与应用教程》第4版习题参考答案文档格式.docx
- 文档编号:17493254
- 上传时间:2022-12-06
- 格式:DOCX
- 页数:26
- 大小:31.58KB
《数据库原理与应用教程》第4版习题参考答案文档格式.docx
《《数据库原理与应用教程》第4版习题参考答案文档格式.docx》由会员分享,可在线阅读,更多相关《《数据库原理与应用教程》第4版习题参考答案文档格式.docx(26页珍藏版)》请在冰豆网上搜索。
9.数据独立性指的是什么?
它能带来哪些好处?
数据独立性包括逻辑独立性和物理独立性两部分。
物理独立性是指当数据的存储结构发生变化时,不影响应用程序的特性;
逻辑独立性是指当表达现实世界的信息内容发生变化时,不影响应用程序的特性。
这两个独立性使用户只需关心逻辑层即可,同时增强了应用程序的可维护性。
10.数据库系统由哪几部分组成,每一部分在数据库系统中的作用大致是什么?
数据库系统一般包括3个主要部分:
数据库、数据库管理系统和应用程序。
数据库是数据的汇集,它以一定的组织形式保存在存储介质上;
数据库管理系统是管理数据库的系统软件,它可以实现数据库系统的各种功能;
应用程序专指以数据库数据为基础的程序。
第2章数据库系统结构
1.解释数据模型的概念,为什么要将数据模型分成两个层次?
数据模型实际上是模型化数据和信息的工具,在数据库中,数据模型要满足三个要求:
第一,要能够比较真实地模拟现实世界;
第二,要容易被人们理解;
第三,要能够很方便地在计算机上实现。
用一种模型来同时满足这三方面的要求比较困难,因此在在数据库系统中针对不同的使用对象和应用目的,采用了两种不同的数据模型来实现,一个是概念层数据模型,用来满足第一和第二个要求;
另一个是组织层数据模型,用来满足第三个要求。
2.概念层数据模型和组织层数据模型分别是针对什么进行的抽象?
概念层数据模型主要针对用户的业务进行抽象,组织层数据库模型主要针对具体的数据库管理系统采用的数据组织方式进行抽象。
3.实体之间的联系有几种?
分别是哪些?
请为每一种联系举出一个例子。
有三种:
1:
1;
n;
m:
n。
1示例:
系和系主任。
n示例:
班和学生;
教师和学生。
4.说明实体-联系模型中的实体、属性和联系的概念。
实体是具有公共性质的并可相互区分的现实世界对象的集合。
属性是实体所具有的特征或性质。
联系是实体之间的关联关系。
5.指明下列实体间联系的种类:
(1)教研室和教师(假设一个教师只属于一个教研室,一个教研室可有多名教师)。
一对多。
(2)商店和顾客。
多对多。
(3)国家和首都。
一对一。
6.解释关系模型中的主码、外码、主属性、非主属性的概念,并说明主码、外码的作用。
主码是用于唯一确定表中一个元组的一个属性或最小的属性组。
用于实现实体完整性。
外码用于实现数据之间的关联关系(参照完整性)。
主属性:
候选键所包含的属性。
非属性:
主属性之外的其他属性。
7.指出下列关系模式的主码:
(1)考试情况(课程号,考试性质,考试日期,考试地点)。
假设一门课程在不同的日期可以有多次考试,但在同一天只能考一次。
多门不同的课程可以同时进行考试。
(课程号,考试日期)
(2)教师授课(教师号,课程号,授课时数,学年,学期)。
假设一名教师在同一个学年和学期可以讲授多门课程,也可以在不同学年和学期多次讲授同一门课程,对每门课程的讲授都有一个授课时数。
(教师号,课程号,学年)
(3)图书借阅(书号,读者号,借书日期,还书日期)。
假设一个读者可以在不同的日期多次借阅同一本书,一个读者可以同时借阅多本不同的图书,一本书可以在不同的时间借给不同的读者。
但一个读者不能在同一天对同一本书借阅多次。
(书号,读者号,借书日期)
8.设有如下两个关系模式,试指出每个关系模式的主码、外码,并说明外码的引用关系。
产品表(产品号,产品名称,产品价格,生产日期),其中产品名称有重复。
销售表(产品号,销售时间,销售数量),假设可同时销售多种产品,但同一产品在同一时间只销售一次。
产品的主码:
产品号,无外码。
销售的主码:
(产品号,销售时间),其中产品号为引用产品表的外码。
9.关系模型的数据完整性包含哪些内容?
分别说明每一种完整性的作用。
包含:
实体完整性、参照完整性和用户定义的完整性。
实体完整性:
作用是保证表中的不存储相同的数据,也不存储无意义的数据。
参照完整性:
用于描述实体之间的联系。
用户定义的完整性:
用于限定属性的取值范围,目的是保证数据库中存储的值与现实世界相符。
10.数据库系统包含哪三级模式?
试分别说明每一级模式的作用?
外模式、模式和内模式。
外模式是对现实系统中用户感兴趣的整体数据结构的局部描述,用于满足不同用户对数据的需求。
模式:
是数据库中全体数据的逻辑结构和特征的描述,它满足所有用户对数据的需求。
内模式:
是对整个数据库的底层表示,它描述了数据的存储位置和存储方式。
11.数据库系统的两级映像的功能是什么?
它带来了哪些好处?
两级映像是外模式/模式映像和模式/内模式映像。
外模式/模式映像保证了当模式发生变化时可以保证外模式不变,从而是用户的应用程序不需要修改。
模式/内模式映像保证了当内模式发生变化,比如存储位置或存储文件名改变,可以保持模式不变,从而使用户不需要知道这些变化。
12.数据库三级模式划分的优点是什么?
它能带来哪些数据独立性?
数据库三级模式的划分使用户可以在逻辑层处理数据,而不需要关心具体的物理细节,同时当内模式或模式发生变化时,可以通过模式之间的映像关系,保持外模式不变,从而避免了修改应用程序。
三级模式以及三级模式之间的两级映像带来了数据的逻辑独立性和物理独立性。
13.简单说明数据库管理系统包含的功能。
数据定义、数据操纵、优化和执行、数据安全性和完整性、数据恢复和并发、尽可能高效的完成各种操作。
第3章SQL语言基础及数据定义功能
1.Tinyint数据类型定义的数据的取值范围是多少?
0~255。
2.日期时间类型中的日期和时间的输入格式是什么?
在输入日期部分时可采用英文数字格式、数字加分隔符格式和纯数字格式。
采用英文数字格式时,月份可用英文全名或缩写形式。
在输入时间部分时可以采用12小时格式或24小时格式。
使用12小时制时要加上AM或PM说明是上午还是下午。
在时与分之间可以使用冒号(:
)作为分隔符
3.SmallDatatime类型精确到哪个时间单位?
分钟。
4.定点小数类型numeric中的p和q的含义分别是什么?
p代表数字位长度,即整数部分和小数部分的数字位之和。
q代表小数位数。
5.Char(10)、nchar(10)的区别是什么?
它们各能存放多少个字符?
占用多少空间?
char(10)是普通编码,固定占10个字节,最多能存放10个字母或数字字符,5个汉字。
Nchar(10)是统一字符编码,固定占20个字节,最多能存放10个字符(包括字母和汉字)。
6.Char(n)和varchar(n)的区别是什么?
其中n的含义是什么?
各占用多少空间?
Char(n)是定长字符类型,varchar(n)是可变长字符类型。
Char(n)中的n代表固定占n个字节的空间;
varchar(n)中的n代表最多占n个字节的空间。
7.数据完整性的作用是什么?
数据的完整性作用是防止数据库中存在不符合语义的数据。
8.在对数据进行什么操作时,系统检查DEFAULT约束?
在进行什么操作时,检查CHECK约束?
插入操作且省略了某些列的值时检查DEFAULT约束。
插入和修改操作检查CHECK约束。
9.UNIQUE约束的作用是什么?
限制列的取值不重复。
10.写出创建如下三张表的SQL语句,要求在定义表的同时定义数据的完整性约束。
Createtable图书表(
书号nchar(6)primarykey,
书名nvarchar(30)notnull,
第一作者char(10)notnull,
出版日期smalldatetime,
价格:
numeric(4,1)
)
Createtable书店表(
书店编号nchar(6)primarykey,
店名nvarchar(30)notnull,
电话char(8)check(电话like
‘[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]’),
地址varchar(40),
邮政编码char(6)
Createtable图书销售表(
书号nchar(6)notnull,
书店编号nchar(6)notnull,
销售日期smalldatetimenotnull;
销售数量smalldatetimecheck(销售数量>
=1);
11.为“图书表”添加“印刷数量”列,类型为整数,同时添加约束,要求此列的取值要大于等于1000。
altertable图书表Add印刷数量intcheck(印刷数量>
=1000)
12.删除“书店表”中的“邮政编码”列。
altertable书店表Dropcolumn邮政编码
13.将“图书销售表”中的“销售数量”列的数据类型改为整型。
altertable图书销售表Altercolumn销售数量int
第4章数据操作
1.查询SC表中的全部数据。
Select*fromsc
2.查询计算机系学生的姓名和年龄。
Selectsname,sagefromstudentwheresdept=‘计算机系’
3.查询成绩在70~80分的学生的学号、课程号和成绩。
Selectsno,cno,gradefromscwheregradebetween70and80
4.查询计算机系年龄在18~20岁的男学生的姓名和年龄。
Selectsname,sagefromstudent
wheresdept=‘计算机系’andsagebetween18and20
5.查询课程号为“c001”的课程的最高的分数。
。
Selectmax(grade)fromscwherecno=‘C001’
6.查询计算机系学生的最大年龄和最小年龄。
Selectmax(sage)最大年龄,min(sage)最小年龄fromstudent
Wheresdept=‘计算机系’
7.统计每个系的学生人数。
Selectsdept,count(*)人数fromstudent
Groupbysdept
8.统计每门课程的选课人数和考试最高分。
Selectcno,count(*)选课人数,max(grade)最高分fromsc
Groupbycno
9.统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。
Selectsno,count(*)选课门数,sum(grade)fromsc
Groupbysnoorderbycount(*)asc
10.查询总成绩超过200分的学生,要求列出学号、总成绩。
Selectsno,sum(grade)总成绩fromsc
Groupbysnohavingsum(grade)>
200
11.查询选修“C002”号课程的学生的姓名和所在系。
Selectsname,sdeptfromstudentsjoinscons.sno=sc.sno
Wherecno=‘C002’
12.查询成绩80分以上的学生的姓名、课程号和成绩,并按成绩降序排列结果。
Selectsname,cno,grade
Fromstudentsjoinscons.sno=sc.sno
Wheregrade>
80
Orderbygradedesc
13.查询哪些课程没有学生选修,要求列出课程号和课程名。
Selecto,cnamefromcoursecleftjoinscono=o
Whereoisnull
14.查询与Java在同一学期开设的课程的课程名和开课学期。
Selectame,c1.semesterfromcoursec1
joincoursec2onc1.semester=c2.semester
Whereame=‘Java’andame!
=‘Java’
15.查询与李勇年龄相同的学生的姓名、所在系和年龄。
Selects1.sname,s1.sdept,s1.sagefromstudents1
joinstudents2ons1.sage=s2.sage
Wheres2.sname=‘李勇’ands1.sname!
=‘李勇’
16.用子查询实现如下查询:
(1)查询选修了“C001”号课程的学生的姓名和所在系。
Selectsname,sdeptfromstudent
Wheresnoin(selectsnofromscwherecno=‘C001’)
(2)查询数学系成绩80分以上的学生的学号、姓名、课程号和成绩。
Selectsno,sname,cno,gradefromstudents
Joinscons.sno=sc.sno
Wheresdept=‘数学系’andsnoin(
Selectsnofromscwheregrade>
80)
(3)查询计算机系考试成绩最高的学生的姓名。
Selectsnamefromstudentsjoinscons.sno=sc.sno
Wheresdept=‘计算机系’andgrade=(
Selectmax(grade)fromscjoinstudentsons.sno=sc.sno
Wheresdept=‘计算机系’)
(4)查询年龄最大的男学生的姓名和年龄。
Selectsname,sagefromstudent
Wheresage=(selectmax(sage)fromstudent
wheressex=‘男’)
andssex=‘男’
(5)查询数据结构考试成绩最高的学生的姓名、所在系、性别和成绩。
Selectsname,sdept,ssex,gradefromstudents
Joinscons.sno=sc.sno
Joincoursecono=o
Wherecname=‘数据结构’
Andgradein(
Selectmax(grade)fromscjoincoursecono=o
Wherecname=‘数据结构’)
17.查询没有选修Java课程的学生的姓名和所在系。
Wheresnonotin(
Selectsnofromscjoincoursecono=o
Wherecname=‘Java’)
18.查询计算机系没有选课的学生的姓名和性别。
Selectsname,ssexfromstudent
Andsnonotin(
Selectsnofromsc)
19.创建一个新表,表名为test_t,其结构为(COL1,COL2,COL3),其中,
COL1:
整型,允许空值。
COL2:
字符型,长度为10,不允许空值。
COL3:
字符型,长度为10,允许空值。
试写出按行插入如下数据的语句(空白处表示空值)。
COL1
COL2
COL3
B1
1
B2
C2
2
B3
Createtabletest_t(
COL1int,
COL2char(10)notnull,
COL3char(10))
Insertintotest_t(COL2)values(’B1’)
Insertintotest_t(COL1,COL2)values(1,’B2’)
Insertintotest_tvalues(2,’B3’,NULL)
20.删除考试成绩低于50分的学生的选课记录。
Deletefromscwheregrade<
50
21.删除没人选的课程的基本信息。
Deletefromcoursewherecnonotin(
Selectcnofromcourse)
22.删除计算机系Java成绩不及格学生的Java选课记录。
Deletefromsc
Fromscjoinstudentsons.sno=sc.sno
Joincoursecono=o
wherecname=‘Java’andgrade<
60
andsdept=‘计算机系’
23.将第2学期开设的所有课程的学分增加2分。
UpdateCoursesetcredit=credit+2
Wheresemester=2
24.将Java课程的学分改为3分。
Updatecoursesetcredit=3
wherecname=‘Java’
25.将计算机系学生的年龄增加1岁。
UpdateStudentsetsage=sage+1
wheresdept=‘计算机系’
26.将信息系学生的“计算机文化学”课程的考试成绩加5分。
UpdateSCsetgrade=grade+5
Fromstudentsjoinscons.sno=sc.sno
Wheresdept=‘信息系’andcname=‘计算机文化学’
27.查询每个系年龄大于等于20的学生人数,并将结果保存到一个新永久表Dept_Age中。
Selectsdept,count(*)人数intoDept_Agefromstudent
Wheresage>
=20
28.查询计算机系每个学生的JAVA考试情况,列出学号、姓名、成绩和成绩情况,其中成绩情况的显示规则为:
如果成绩大于等于90,则成绩情况为“好”;
如果成绩在80~89,则成绩情况为“较好”;
如果成绩在70~79,则成绩情况为“一般”;
如果成绩在60~69,则成绩情况为“较差”;
如果成绩小于60,则成绩情况为“差”。
Selects.sno,sname,grade,成绩情况=
Case
Whengrade>
=90then‘好’
Whengradebetween80and89then‘较好’
Whengradebetween70and79then‘一般’
Whengradebetween60and69then‘较差’
Else‘差’
end
fromstudentsjoinscons.sno=sc.sno
Wheresdept>
29.统计每个学生的选课门数(包括没有选课的学生),列出学号、选课门数和选课情况,其中选课情况显示规则为:
如果选课门数大于等于6门,则选课情况为“多”;
如果选课门数超过在3~5门,则选课情况为“一般”;
如果选课门数在1~2门,则选课情况为“偏少”。
如果没有选课,则选课情况为“未选课”。
30.修改全部课程的学分,修改规则如下:
如果是第1~2学期开设的课程,则学分增加5分;
如果是第3~4学期开设的课程,则学分增加3分;
如果是第5~6学期开设的课程,则学分增加1分;
对其他学期开设的课程,学分不变。
Selects.sno,count(sc.sno)选课门数,选课情况=
Whencount(sc.sno)>
=6then‘多’
Whencount(sc.sno)between3and5then‘一般’
Whencount(sc.sno)between1and2then‘偏少’
Whencount(sc.sno)=0then‘未选课’
fromstudentsleftjoinscons.sno=sc.sno
Groupbys.sno
31.查询“李勇”和“王大力”所选的全部课程,列出课程名、开课学期和学分,不包括重复的结果。
Selectcname,semester,creditfromcoursec
joinscono=o
Joinstudentsons.sno=sc.sno
Wheresname=‘李勇’
union
Wheresname=‘王大力’
32.查询在第3学期开设的课程中,“李勇”选了但“王大力”没选的课程,列出课程名和学分。
Selectcname,semester,cre
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库原理与应用教程 数据库 原理 应用 教程 习题 参考答案