数据库课后习题及答案习题一1.数据库处理技术经历了【人工管理、文件管理、数据库管理】以及分布式数据库管理四个发展等段。
2.在人工管理和文件管理阶段,程序设计【依赖于】数据表示。
3.在文件管理阶段,文件之间是相互【独立】的,在数据库管理阶段,文件之间是相互【联系】的。
4.使用数据库程序设计时,只需要告诉数据库管理系统【做什么】,而不需要告诉他【怎么做】。
5.在【文件】系统中,数据没有独立的操作界面,在【数据】系统中,数据具有独立的操作界面。
6.DBMS具有【安全性控制、一致性控制、并发性控制】和【数据库恢复】等管理控制功能。
7.分布式数据库系统除了具有一般数据库系统的优点之外,还具有【系统的可靠性高、地域范围广、数据量大、客户数多】等优点。
8.在实体中能作为码的属性称为【主属性】、否则称为【非主属性】。
9.实体之间的联系类型有三种,分别是【1对1、1对多】和【多对多】。
10.若实体A和B是1对多的联系,实体B和C是1对1的联系,则实体A和C是【1对多】的联系。
11.若实体A和B是1对多的联系,实体B和C是1对1的联系,则实体A和C是【1对多】的联系。
12.在非关系模型中,每个结点代表着一个【记录型】,每个父子联系代表着【1对多】联系。
13.在非关系模型中操作记录的方式是【过程】式的,在关系模型中,操作记录的方式是【集合】式的。
14.关系中的每一行称为一个【元组】,每一列称为一个【属性】。
15.假定一个关系中由n个元组,则某个列的当前全部取值的个数最少为【1】个,最多为【n】个。
16.关系数据库系统具有【数据结构】单一、采用【集合运算】、数据完全【独立】、【数学】理论支持等优点。
17.在对象数据模型中,对象具有【封装】性、【继承】性、和【多态】性。
18.数据库管理系统的下层支持软件是【操作系统】、上层软件是数据库应用【开发工具】。
19.数据库体系结构中包含的三级模式为【内模式、模式】和【外模式】三种。
20.在数据库体系结构中,两级数据映像分别是指【模式、外模式】之间的数据映像与【模式、内模式】之间的数据映像。
21.DBMS提供数据【定义】语句和数据【操纵】语句供用户使用。
22.在存取数据库的数据的过程中,使用了两个数据缓冲区,分别是【系统】缓冲区和【用户】缓冲区。
习题二1关系数据模型包括【关系运算】、【关系数据结构】和【关系完整性规则】三个方面。
2.在一个关系中,不同的列可以对应同一个【域】,但必须具有不同的【属性名】。
3.顾客购物的订单和订单明细之间是【1对多】的联系。
4.主码是一种【候选】码,主码中的【属性】个数没有限制。
5.若一个关系为R(学生号,姓名,性别,年龄),则【学生号】可以作为该关系的主码,姓名,性别和年龄为该关系的【非主】属性。
6.关系完整性包括【实体】完整性、【参照】完整性、和【用户定义】的完整性三个方面。
7.在参照和被参照的关系中,每个外码值或者为【空值】,或者等于某个【主码】值。
8.传统的集合运算包括【并运算】、【交运算】、【差运算】和【笛卡尔积】四种。
9.设一个关系A具有a1个属性和a2个元组,关系B具有b1个属性和b2个元组,则关系A⨯B具有【a1+b1】个属性和【a2⨯b2】个元组。
10.设一个关系模式为R(A,B,C), 对应的关系内容为R={{1,10,50},{2,10,60},{3,20,72},{4,30,60}},则δB>15(R)属于【选择】运算,运算结果中包含有【2】个元组。
11. 设一个关系模式为R(A,B,C), 对应的关系内容为R={{1,10,50},{2,10,60},{3,20,72},{4,30,60}},则R∞R的运算结果中包含有【4】个元组,每个元组包含有【3】个分量。
12.设一个学生关系为S(学生号,姓名),课程关系为C(课程号,课程名),选课关系为X (学生号,课程号,成绩)则选修了课程名为“程序设计”课程的全部学生信息所对应的算表达式为S∞(∏学生号(X、δ课程名=’程序设计’(C))))。
13.设一个学生关系为S(学生号,姓名),课程关系为C(课程号,课程名),选课关系为X(学生号,课程号,成绩),则求出所有选修课程信息的运算表达式为∏课程号(X)与C的自然连接。
习题三1.在一个关系R中,若属性集X函数决定属性集Y,则记作为【X→Y】,称X为【决定因素】。
2.在一个关系R中,若X→Y且X-)Y,则称X→Y为【非平凡】依赖,否则,若X→Y且X-)Y,则X→Y为【平凡】依赖。
3.在一个关系R中,“职工号”函数决定“姓名”既是【非平凡】函数依赖,又是【完全】函数依赖。
4.在一个关系R中,若X,Y和Z为互不相同的单属性,并且存在X→Y和Y→Z,则必然存在【X】到【Z】的传递函数依赖。
5.在一个关系R中,若存在X→Y和X→Z,则存在【X→(Y,Z)】,称此为函数依赖的【合并性】规则。
6.在一个关系R中,若X能够函数决定关系R中的每个属性,并且X的任何真子集都不能函数决定R中的每个属性,则称【X】为关系R的一个【候选码】。
7.设一个关系为R(A,B,C,D,E),它的最小函数依赖集为FD={A→B,C→D,(A,C)→E},则该关系的候选码为【(A,C)】,该候选码含有【2】属性。
8.设一个关系为R(A,B,C,D,E),它的最小函数依赖集为FD={A→B,B→C,B→D,D→E},则该关系的候选码为【A】,该候选码含有【1】属性。
9.设一个关系为R(A,B,C,D,E,F,G),它的最小函数依赖集为FD={A→B,C→D,B→E,E→F},则该关系的候选码为【(A,C,G)】,该候选码含有【3】属性。
10.对关系进行规范化,通常只要求规范化到【第三】范式,该规范化过程能够很好的保持数据的【无损连接】性和【函数依赖】姓。
11.把一个非规范化的关系变为第一范式时,可以在【属性】上展开,也可以在【元组】上展开,还可以把每个复合属性单独分解为【关系】。
12.一个关系若存在部分函数依赖和传递函数依赖,则必然会找造成【数据冗余】和【操作异常】。
13.设一个关系为R(A,B,C,D,E),它的最小函数依赖集为FD={ A→B,C→D,C→E},该关系只满足【第一】范式,若要规范化为高一级的范式,则将得到【3】个关系。
14.设一个关系为R(A,B,C,D,E),它的最小函数依赖集为FD={ A→B,A →C,(A,D) →E},该关系只满足【第一】范式,若要规范化为高一级的范式,则将得到【2】个关系。
15.设一个关系为R(A,B,C,D,E),它的最小函数依赖集为FD={ A→B,A →C ,A→D,D→E},该关系只满足【第二】范式,若要规范化为高一级的范式,则将得到【2】个关系。
16.若一个关系的任何非主属性都不部分依赖于任何候选码,则称该关系达到【第二】范式。
17.若一个关系的任何属性都不部分依赖和传递依赖于任何候选码,则称该关系达到【BC】范式。
习题四一、填空题1.数据库系统的外模式在SQL中称为【视图】,它由【基本表】产生出来2.SQL是高度【非过程化】和面向【集合】操作的语言3.由create schema KUCUN authorization LIU命令建立的一个数据库为【KUCUN】,所有者为【LIU】4.在SQL中,若一个完整性约束只涉及到一个列,则该完整性约束既可以作为【列级】完整性约束定义,也可以作为【表级】完整性约束定义,两者只选其一。
5.在列级和表级完整性约束中同时存在的约束分别为【主码、单值、外码和检查】四种约束。
6.在SQL中,主码约束的关键字为【primary key】,外码约束的关键字为【foreign key】。
7.在SQL中,create table,alter table和drop table命令分别为在数据库中【建立,修改和删除】基本表结构的命令。
8.向基本表中插入数据有两种命令格式,一种称为【单值】插入格式,另一种称为【多值】插入格式。
9.在SQL中insert update和delete分别为对基本表进行【插入、修改和删除】记录操作的命令。
10.在SQL中,每个视图中的列可以来自不同的【表】,它是在原有表的基础上【建立】的逻辑意义上的新关系。
11.当建立一个视图后,通常只对它做【修改】和【查找】这两种操作。
12.在【基本表】中,通常不应包括由计算机可以得到的属性,而在【视图】中,为了用户查询数据的方便,则需要包含它们。
13.当建立和删除一个视图时,对相应的基本表【没有影响】,当修改一个视图时,则对相应的基本表【有影响】。
14.在SQL中,建立、修改和删除视图的命令分别是【create view、update和drop view】15.在SQL新版的查询语句中,select选项实现【投影】运算,from选项实现【连接】运算,where选项实现【选择】运算。
16.在SQL的查询语句中,【group by】选项实现分组统计功能,【order by】选项实现对结果表的排序功能。
17.在新版的SQL中,表之间的连接共有三种方式,对应的关键字分别是【inner join、leftjoin和right join】。
二、按照下列给出的每项功能写出相应的查询命令。
1从商品库中查询出每种商品的商品代号、单价、数量和产地。
答:1. select 商品表1.商品代号,单价,数量,产地from 商品表1,商品表2where 商品表1.商品代号=商品表2.商品代号2.从商品库中查询出数量在10和20之间的商品种数。
答:select *from 商品表1where 数量 between 10 and 20 (或where 数量>=10 and 数量<=20)3从商品库中查询出每类(及分类名相同)商品的平均数量。
答:select 分类名,avg(数量) as 平均数量from 商品表1group by 分类名4从商品库中查询出单价大于等于2000元,或者数量大于等于15的所有商品。
答:select *from 商品表1where 单价>=2000 or 数量>=155从商品库中查询出比所有商品单价的平均值要高的全部商品。
答:select *from 商品表1where 单价>all(select avg(单价)from 商品表1)6从商品库中查询出同一类商品多余一种的所有分类名。
答:select distinct 分类名from 商品表1group by 分类名 having count(*)>17从商品库中查询出每种商品的总价值,并按降序排列出来。
答:select *,单价*数量 as 总价值from 商品表1order by 总价值 desc8从教学库中查询出至少选修了姓名为@m1学生所选课程中一门课的全部学生。