数据库原理与应用(第3版)答案(DOC 35页).doc

上传人(卖家):2023DOC 文档编号:5867582 上传时间:2023-05-12 格式:DOC 页数:42 大小:1,019KB
下载 相关 举报
数据库原理与应用(第3版)答案(DOC 35页).doc_第1页
第1页 / 共42页
数据库原理与应用(第3版)答案(DOC 35页).doc_第2页
第2页 / 共42页
数据库原理与应用(第3版)答案(DOC 35页).doc_第3页
第3页 / 共42页
数据库原理与应用(第3版)答案(DOC 35页).doc_第4页
第4页 / 共42页
数据库原理与应用(第3版)答案(DOC 35页).doc_第5页
第5页 / 共42页
点击查看更多>>
资源描述

1、精选文档数据库原理与应用(第三版)习题参考答案第 1 章 数据库概述1 试说明数据、数据库、数据库管理系统和数据库系统的概念。答:数据是描述事物的符号记录。数据库是长期存储在计算机中的有组织的、可共享的大量数据的集合。数据库管理系统是一个专门用于实现对数据进行管理和维护的系统软件。数据库系统是指在计算机中引入数据库后的系统,一般由数据库、数据库管理系统(及相关的实用工具)、应用程序、数据库管理员组成。2 数据管理技术的发展主要经历了哪几个阶段? 答:文件管理和数据库管理。3 与文件管理相比,数据库管理有哪些优点?答:与文件系统管理数据相比,数据库系统管理数据带来了如下好处:将相互关联的数据集成

2、在一起,较少的数据冗余,程序与数据相互独立,保证数据的安全可靠,最大限度地保证数据的正确性,数据可以共享并能保证数据的一致性。4 在数据库管理方式中,应用程序是否需要关心数据的存储位置和存储结构?为什么?答:不需要。因为数据库管理系统提供了逻辑独立性和物理独立性。5 在数据库系统中,数据库的作用是什么?答:数据库是数据的汇集,它以一定的组织形式保存在存储介质上。6 在数据库系统中,应用程序可以不通过数据库管理系统而直接访问数据文件吗?答:不能7 数据独立性指的是什么?它能带来哪些好处?答:数据独立性是指应用程序不会因数据的物理表示方式和访问技术的改变而改变,即应用程序不依赖于任何特定的物理表示

3、方式和访问技术,它包含两个方面:逻辑独立性和物理独立性。物理独立性是指当数据的存储位置或存储结构发生变化时,不影响应用程序的特性;逻辑独立性是指当表达现实世界的信息内容发生变化时,不影响应用程序的特性。8 数据库系统由哪几部分组成,每一部分在数据库系统中的作用大致是什么?答:数据库系统一般包括数据库、数据库管理系统(及相应的实用工具)、应用程序和数据库管理员四个部分。数据库是数据的汇集,它以一定的组织形式保存在存储介质上;数据库管理系统是管理数据库的系统软件,它可以实现数据库系统的各种功能;应用程序专指以数据库数据为基础的程序,数据库管理员负责整个数据库系统的正常运行。第2章 数据模型与数据库

4、结构1 解释数据模型的概念,为什么要将数据模型分成两个层次?答:答:数据模型是对现实世界数据特征的抽象。数据模型一般要满足三个条件:第一是数据模型要能够比较真实地模拟现实世界;第二是数据模型要容易被人们理解;第三是数据模型要能够很方便地在计算机上实现。由于用一种模型来同时很好地满足这三方面的要求在目前是比较困难的,因此在数据库系统中就可以针对不同的使用对象和应用目的,采用不同的数据模型。根据模型应用的不同目的,将这些模型分为两大类:概念层数据模型和组织层数据模型,以方便对信息的描述。2 概念层数据模型和组织层数据模型分别是针对什么进行的抽象?答:概念层数据模型是对现实世界的抽象,形成信息世界模

5、型,组织层数据模型是对信息世界进行抽象和转换,形成具体的DBMS支持的数据组织模型。3 实体之间的联系有哪几种?请为每一种联系举出一个例子。答:实体之间的联系有一对一、一对多和多对多三种。例如:系和正系主任是一对一联系(假设一个系只有一个正系主任),系和教师是一对多联系(假设一个教师只在一个系工作),教师和课程是多对多联系(假设一个教师可以讲授多门课程,一门课程可由多个教师讲授)。4 说明实体-联系模型中的实体、属性和联系的概念。5指明下列实体间联系的种类:(1)教研室和教师(设一个教师只属于一个教研室,一个教研室可有多名教师)。(2)商品和顾客。(3)国家和首都(假设一个国家的首都可以变化)

6、。(4)飞机和乘客。(5)银行和账户。(6)图书和借阅者。(设一个借阅者可同时借阅多本书,可在不同时间对同一本书借阅多次)6数据库系统包含哪三级模式?试分别说明每一级模式的作用?答:数据库系统包含的三级模式为:内模式、模式和外模式。外模式是对现实系统中用户感兴趣的整体数据结构的局部描述,用于满足不同数据库用户需求的数据视图,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是对数据库整体数据结构的子集或局部重构。模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。内模式是对整个数据库的底层表示,它描述了数据的存储结构。7 数据库管理系统提供的两级映像的作用是什么?

7、它带来了哪些功能?答:数据库系统的两级映象是模式与内描述间的映象和外模式与模式间的映象。模式内模式的映象带来了物理独立性,即如果数据库的存储结构改变了,可通过调整模式内模式的映象,使模式能够保持不变。外模式概念模式间的映象带来了逻辑独立性,当概念模式的结构可发生改变时,也可通过调整外模式/模式间的映象关系,使外模式可以保持不变。8数据库三级模式划分的优点是什么?它能带来哪些数据独立性?答:数据库的三级模式的划分实际上将用户、逻辑数据库与物理数据库进行了划分,使彼此之间的相互干扰减到最少。这三个模式的划分实际上带来了两个数据独立性:物理独立性和逻辑独立性。这使得底层的修改和变化尽量不影响到上层。

8、第3章 关系数据库1 试述关系模型的三个组成部分。答:关系数据结构、关系操作集合和关系完整性约束。2 解释下列术语的含义:(1) 笛卡尔积:设D1,D2,Dn为任意集合,定义笛卡尔积D1,D2,Dn为:D1D2 Dn (d1,d2,dn) | di Di,i1,2,n (2) 主键:也称主码为或主关键字,是表中的属性或属性组,用于惟一地确定一个元组。(3) 候选键:如果一个属性或属性集的值能够惟一标识一个关系的元组而又不包含多余的属性,则称该属性或属性集为候选键。(4) 外键:设F是关系R的一个或一组属性,如果F与关系S的主键相对应,则称F是关系R的外键。(5) 关系:关系就是简单二维表。(6

9、) 关系模式:二维表的结构称为关系模式。(7) 关系数据库:对应于一个关系模型的所有关系的集合称为关系数据库。3 关系数据库的三个完整性约束是什么?各是什么含义?答:实体完整性、参照完整性和用户定义的完整性。实体完整性是保证关系中的每个元组都是可识别的和惟一的。参照完整性也称为引用完整性,用于表达现实世界中的实体之间的关联关系。用户定义的完整性也称为域完整性或语义完整性,用于保证数据库中存储的值与现实世界相符。4 连接运算有哪些?等值连接和自然连接的区别是什么?答:连接运算中最重要也是最常用的连接有两个,一个是等值连接,一个是自然连接。自然连接与等值连接的差别为:l 自然连接要求相等的分量必须

10、有共同的属性名,等值连接则不要求;l 自然连接要求把重复的属性名去掉,等值连接却不这样做。5 对参与并、交、差运算的两个关系R、S有什么要求?答:必须结构相同,且相应的属性值取自同一个值域。6 对参与除运算的两个关系(RS)有什么要求?除运算的结果关系中包含哪些属性?答:R中必须包含S的全部或部分属性,除运算的结果包含的属性是只属于R不属于S的属性。7 对参与自然连接和等值连接操作的两个关系R、S有什么要求? 答:有语义相同的属性。8 投影操作的结果关系中是否有可能存在重复的记录?为什么?答:不可能,因为投影运算会自动去掉投影后重复的记录。9利用表3-10至3-12所示的三个关系,写出实现如下

11、查询要求的关系代数表达式。(1)查询“信息系”学生的选课情况,列出学号、姓名、课程号和成绩。Sno, Sname, Cno, Grade(Sdept=信息系(SC Student)或:Sno, Sname, Cno, Grade(SC Sdept=信息系(Student)(2) 查询“VB”课程的考试情况,列出学生姓名、所在系和考试成绩。Sname, Sdept, Grade(Cname=VB(Coure SC Student)或:Sname, Sdept, Grade(Cname=VB(Coure) SC Student)(3) 查询考试成绩高于90分的学生的姓名、课程名和成绩。Sname,

12、 Cname, Grade(Grade90(Coure SC Student)或:Sname, Cname, Grade(Coure Grade90(SC) Student)(4) 查询至少选修了0512101号学生所选的全部课程的学生的姓名和所在系。Sname, Sdept(Student (SC Cno(sno=0512101(SC))(5) 查询至少选了“C01”和“C02”两门课程的学生的姓名、所在系和所选的课程号。Sname, Sdept, Cno(Student (SC Sno(cno=C01 V Cno=C02(SC))(6) 查询没有选修第1学期开设的全部课程的学生的学号、姓名

13、和所选的课程号。Sno, Sname, Cno(Student SC (sno(SC) - sno(semester=1(Course)SC)(7) 查询计算机系和信息系选了VB课程的学生姓名。Sname(sdept=计算机系V sdept=信息系) cname=vb(StudentSC Course)或:Sname(sdept=计算机系V sdept=信息系(Student)SC cname=vb(Course)第4章 SQL Server 2012基础1 安装SQL Server 2012对硬盘及内存的要求分别是什么?答:SQL Server 2012实际硬盘空间需求取决于系统配置和您决定

14、安装的功能,一般应确保系统驱动器中是否有至少 6.0 GB 的可用磁盘空间。内存:Express 版本:最少512 MB;其他版本:最少1 GB。2 SQL Server实例的含义是什么?实例名的作用是什么?答:一个实例代表一个独立的数据库管理系统。实例名是实例的标识,用户通过“计算机名/实例名”的方式可访问指定的命令实例。3 SQL Server 2012的核心引擎是什么?答:SQL Server(MSSQLSERVER)4 SQL Server 2012提供的设置服务启动方式的工具是哪个?答:配置管理器5 在SQL Server 2012中,每个数据库至少包含几个文件?答:2个文件,一个数

15、据文件,一个日志文件6 SQL Server 2012数据库文件分为几类?每个文件有哪些属性?答:主要数据文件和次要数据文件,属性有:物理文件名及其位置、逻辑文件名、初始大小、增长方式、最大大小。第 5 章 数据类型及关系表创建1 Tinyint数据类型定义的数据的取值范围是多少?答:0-2552 SmallDatatime类型精确到哪个时间单位?答:分钟3 定点小数类型numeric中的p和q的含义分别是什么?答:p代表整数位数+小数位数的和值,q代表小数位数。4 Char(n)、nchar(n)的区别是什么?它们各能存放多少个字符?答:Char(n)中的n代表能存放n个字节的字符,如果是字

16、母可以存放n个,如果是汉字可存放n/2个。Nchar(n)中的n代表能存放的字符个数。5 Char(n)和varchar(n)的区别是什么? 答:Char(n)是定长存储,一定占n个字节的空间。Varchar(n)代表最多占n个字节的空间。6 数据完整性约束的作用对象有哪些?答:表和列7 CHECK约束的作用是什么?答:限制列的取值范围。8 UNIQUE约束的作用是什么?答:限制列取值不重。9 DEFAULT约束的作用是什么?答:提供列的默认值。上机练习1 在第4章创建的Students数据库中,写出创建如下三张表的SQL语句,要求在定义表的同时定义数据的完整性约束:(1)“图书”表结构如下:

17、 书号:统一字符编码定长类型,长度为6,主键; 书名:统一字符编码可变长类型,长度为30,非空; 第一作者:普通编码定长字符类型,长度为10,非空; 出版日期:小日期时间型; 价格:定点小数,小数部分1位,整数部分3位。create table 图书( 书号 nchar(6) primary key, 书名 nvarchar(30) not null, 第一作者 char(10) not null, 出版日期 smalldate, 价格 numeric(4,1)(2)“书店”表结构如下: 书店编号:统一字符编码定长类型,长度为6,主键; 店名:统一字符编码可变长类型,长度为30,非空; 电话:

18、普通编码定长字符类型,8位长,每一位的取值均是09的数字; 地址:普通编码可变长字符类型,40位长。 邮政编码:普通编码定长字符类型,6位长。create table 书店( 书店编号 nchar(6) primary key, 店名 nvarchar(30) not null 电话 char(8) check(电话 like 0-90-90-90-90-90-90-90-9), 地址 varchar(40), 邮政编码 char(6)(3)“图书销售”表结构如下: 书号:统一字符编码定长类型,长度为6,非空; 书店编号:统一字符编码定长类型,长度为6,非空; 销售日期:小日期时间型,非空;

19、销售数量:小整型,大于等于1。 主键为(书号,书店编号,销售日期); 其中“书号”为引用“图书表”的“书号”的外键;“书店编号”为引用“书店表”的“书店编号”的外键。create table 图书销售( 书号 nchar(6) not null, 书店编号 nchar(6) not null, 销售日期 samlldate, 销售数量 smallint check(销售数量 = 1), primary key(书号, 书店编号, 销售日期), foreign key(书号) references 图书(书号), foreign key(书店编号) references 书店(书店编号)2 为图

20、书表添加“印刷数量”列,类型为整数,同时添加取值大于等于1000的约束。 Alter table 图书 add 印刷数量 int check(印刷数量 = 1000)3 删除书店表中的“邮政编码”列。 Alter table 书店 drop column 邮政编码4 将图书销售表中的“销售数量”列的数据类型改为整型。Alter table 图书 alter column 销售数量 int第 6 章 数据操作语句1. 简单说明SELECT语句中,FROM、WHERE、GROUP BY、HAVING子句的作用。答:FROM子句指定数据来自的表,WHERE子句指定行数据的筛选条件,GROUP BY子

21、句指定用于分组的列,HAVING子句用于对分组后的统计值进行筛选。2. 简单说明COUNT(*)与COUNT(列名)的区别。答:COUNT(*)用于统计行的个数,并且不忽略NULL;COUNT(列名)用于统计该列中非空值个数,这个函数会去掉NULL。3. 在聚合函数中,不忽略空值的函数是哪个?答:COUNT(*)4. 哪些数据类型的列可以使用SUM(列名)和AVG(列名)函数?答:数值类型的列5. 外连接和内连接的区别是什么?答:外连接结果会包含连接中一个表的全部数据,内连接结果是只包含两个表中满足连接条件的数据。6. TOP子句的作用是什么?答:限定取查询结果中的前若干行数据。7. DIST

22、INCT子句的作用是去掉表中的重复行数据,这个说法对吗?答:应该是去掉查询结果中的重复行数据。8. 简单说明嵌套子查询的执行顺序。答:嵌套子查询是先执行子查询,然后在根据子查询结果执行外层查询。上机练习1 查询学生选课表中的全部数据。答:select * from SC2 查询计算机系的学生姓名、年龄。答:select sname, sage from student where sdept = 计算机系3 查询成绩在7080分之间的学生学号、课程号和成绩。答:select sno,cno,grade from sc where grade between 70 and 804 查询计算机系年

23、龄在1820且性别为“男”的学生姓名、年龄。答:select sname,sage from student where sdept = 计算机系 and sage between 18 and 20 and ssex = 男5 查询“c01”课程最高分。答:select max(grade) from sc where cno = C016 查询计算机系学生的最大年龄和最小年龄。答:select max(sage) as max_age, min(sage) as min_age from student where sdept = 计算机系7 统计每个系的学生人数。答:select sde

24、pt, count(*) 学生人数 from student group by sdept8 统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果(不包括没选课的学生)。答:select sno,count(*) 选课门数, sum(grade) 考试总成绩 from sc group by sno order by count(*) asc9 查询总成绩超过200分的学生,列出学号、总成绩。答:select sno,sum(grade) 总成绩 from sc group by sno having sum(grade) 20010 查询选了“c02”课程的学生姓名和所在系。答:se

25、lect sname,sdept from student s join sc on s.sno = sc.sno where cno = C0211 查询成绩80分以上的学生姓名、课程号和成绩,并按成绩降序排列结果。答:select sname,cno,grade from student s join sc on s.sno = sc.sno where grade 80 order by grade desc12 查询哪些学生没有选课,要求列出学号、姓名和所在系。答:select s.sno, sname, sdept from student s left join sc on s.s

26、no = sc.snoWhere sc.sno is null13 统计每门课程的选课人数,列出课程号和选课人数。( 包括没人选的课程)答:select o,count(o) 选课人数from course c left join sc on o = oGroup by o14 查询与VB在同一学期开设的课程的课程名和开课学期。答:select ame,c2.semesterfrom course c1 join course c2 on c1.semester = c2.semesterWhere ame = VB and ame != VB15 查询与李勇年龄相同的学生的姓名、所在系和年龄

27、。答:select S2.Sname,S2.Sdept, S2.sagefrom student s1 join student s2 on s1.sage = s2.sageWhere s1.sname = 李勇 and s2.sname != 李勇16 查询计算机系年龄最小的2名学生的姓名和年龄。答:select top 2 with ties sname, sagefrom student Where sdept = 计算机系Order by sage asc17 查询VB成绩最高的前2名学生的姓名、所在系和VB成绩,包括并列的情况。答:select top 2 with ties sn

28、ame, sdept, gradefrom student s join sc on s.sno = sc.snoJoin course c on o = oWhere cname = VBOrder by grade desc18 查询选课门数最多的前2名学生的学号和选课门数,包括并列的情况。答:select top 2 with ties sno, count(*) 选课门数from sc Group by snoOrder by count(*) desc19 查询学生人数最多的系,列出系名和人数。答:select top 1 with ties sdept, count(*) 人数fr

29、om studentGroup by sdeptOrder by count(*) desc20 用子查询实现如下查询:(1) 查询选修了“c01”号课程的学生姓名和所在系。答:select sname, sdept from student where sno in( select sno from sc where cno = C01)(2) 查询数学系成绩80分以上的学生学号、姓名、课程号和成绩。答:select sno,sname,cno,gradefrom student s join sc on s.sno = sc.snowhere s.sno in( select sno fr

30、om sc where grade 80) and sdept = 数学系(3) 查询计算机系考试成绩最高的学生姓名。答:select sname from student where sno in( select top 1 sno from sc join student s on s.sno = sc.snowhere sdept = 计算机系Order by grade desc )(4) 查询数据结构考试成绩最高的学生姓名、所在系、性别和成绩。答:select sname,sdept,ssex,grade from student s join sc on s.sno = sc.sn

31、o where s.sno in( Select top 1 sno from sc join course c on o = o Where cname = 数据结构 Order by grade desc )21. 查询没选VB课程的学生姓名和所在系。答:select sname,sdept from student Where sno not in ( Select sno from sc join course c on o = o Where cname = VB )22. 查询计算机系没选课的学生的姓名和性别。答:select sname,ssex from student Whe

32、re sdept = 计算机系And sno not in ( Select sno from sc )23. 查询计算机系考试平均成绩最低的学生的姓名及所选的课程名。答:select sname,cname from student s join sc on s.sno = sc.sno Join course c on o = o where s.sno in ( Select top 1 sno from sc Where sdept = 计算机系 Group by sno Order by avg(grade) asc )24. 查询15学期中,选课人数最少的课程的课程名、开课学期和学

33、分。答:select cname,semester,credit from course Where semester between 1 and 5And cno in (Select top 1 cno from sc Group by cno Order by count(*) desc )25. 查询计算机系每个学生的考试情况,列出姓名、课程名和考试成绩,并将查询结果保存到一个新表中。新表名为:Computer_Dept答:select sname,cname,grade into Computer_Deptfrom student s join sc on s.sno = sc.sn

34、oJoin course c on o = oWhere sdept = 计算机系26. 创建一个新表,表名为test_t,其结构为:(COL1, COL 2, COL 3),其中:COL1:整型,允许空值。COL2:普通编码字符型,长度为10 ,不允许空值。COL3:普通编码字符型,长度为10 ,允许空值。试写出按行插入如下数据的语句(空白处表示空值)。COL1COL2COL3B11B2C22B3答:create table test_t( Col1 int, Col2 char(10) not null, Col3 char(10) ) Insert into test_t values(

35、null,B1,null) Insert into test_t values(1,B2,C2) Insert into test_t values(2,B3,null)27. 删除考试成绩低于50分的学生的选课记录。答:delete from sc where grade 5028. 删除没有人选的课程。答:delete from course where cno not in( Select cno from sc )29. 删除计算机系VB成绩不及格学生的VB选课记录。答:delete from sc From student s join sc on s.sno = oJoin course c on o = owhere sdept = 计算机系 and cname = VB and grade 、=、 和 、=、 和 = 60 Group by sno13利用第12题建立的视图,完成如下查询:(1)查询考试成绩大于等于90分的学生的姓名、课程名和成绩。答:Select sname,cname,grade From v2 where grade = 90(2)查询选课门数超过3门的学生的学号和选课门数。答:Select * from v3 wher

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 待归类文档
版权提示 | 免责声明

1,本文(数据库原理与应用(第3版)答案(DOC 35页).doc)为本站会员(2023DOC)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|