数据库原理及应用基础开发技术实践习题参考答案.docx
《数据库原理及应用基础开发技术实践习题参考答案.docx》由会员分享,可在线阅读,更多相关《数据库原理及应用基础开发技术实践习题参考答案.docx(41页珍藏版)》请在冰豆网上搜索。
数据库原理及应用基础开发技术实践习题参考答案
习题1
一、单项选择题
1.A2.B3.A4.B5.C6.D7.B8.B9.A10.D
11.C12.D13.D14.C15.D
16.A17.D18.D19.D20.C21.A22.B23.A
24.D25.D26.A27.A28.C29.C
二、填空题
1.①人工管理②文件系统③数据库系统
2.①组织②共享
3.①数据库管理系统②用户③操作系统
4.①数据定义功能②数据操纵功能
5.①逻辑数据独立性②物理数据独立性
6.物理独立性。
7.①层次模型②网状模型③关系模型
8.根
9.1
10.关系模型
11.①现实世界②信息世界③计算机世界(或数据世界)
12.DBA
13.实体
14.数据模型
15.文件
16.关系模型
17.二维表
18.主码
19.关系模式
三、简答题
1.答:
数据库长期存储在计算机内、有组织的、可共享的数据集合。
数据库是按某种数据模型进行组织的、存放在外存储器上,且可被多个用户同时使用。
因此,数据库具有较小的冗余度,较高的数据独立性和易扩展性。
2.答:
数据库管理系统(DBMS)是操纵和管理数据库的一组软件,它是数据库系统(DBS)的重要组成部分。
不同的数据库系统都配有各自的DBMS,而不同的DBMS各支持一种数据库模型,虽然它们的功能强弱不同,但大多数DBMS的构成相同,功能相似。
一般说来,DBMS具有定义、建立、维护和使用数据库的功能,它通常由三部分构成数据描述语言及其翻译程序、数据操纵语言及其处理程序和数据库管理的例行程序。
(1)数据描述语言(DDL)
数据描述语言对应数据库系统的三级模式(外模式、概念模式和内械式)分别有三种不同的DDL:
外模式DDL和内模式DDL,它们是专门提供给DBA使用的,一般用户不必去关心。
外模式DDL是专门定义外视图的,外视图是用户观点的数据库描述,它是数据库的局部逻辑结构。
概念模式DDL是用来定义内视图的数据描述语言。
内视图是从物理层中分离出来的,但不是物理视图。
虽然它有存储记录和块的概念,但它不受任何存储设备和设备规格(如柱面大小、磁道容量等)的限制。
它包括对存储记录类型、索引方法等方面的描述。
3.答:
数据库管理系统(DBMS)是位于操作系统与用户之间的一个数据管理软件,它的主要功能包括以下几个方面:
·数据定义功能DBMS提供数据描述语言(DDL),用户可通过它来定义数据。
·数据操纵功能DBMS还提供数据操纵语言(DML),实现对数据库的基本操作:
查询、插入、删除和修改。
·数据库的运行管理这是DBMS运行时的核心部分,它包括开发控制,安全性检查,完整性约束条件的检查和执行,数据库的内容维护等。
·数据库的建立和维护功能它包括数据库初始数据的输入及转换,数据库的转储与恢复,数据库的重组功能和性能的监视与分析功能等。
4.答:
数据独立性表示应用程序与数据库中存储的数据不存在依赖关系,包括逻辑数据独立性和物理数据独立性。
逻辑数据独立性是指局部逻辑数据结构(外视图即用户的逻辑文件)与全局逻辑数据结构(概念视图)之间的独立性。
当数据库的全局逻辑数据结构(概念视图)发生变化(数据定义的修改、数据之间联系的变更或增加新的数据类型等)时,它不影响某些局部的逻辑结构的性质,应用程序不必修改。
物理数据独立性是指数据的存储结构与存取方法(内视图)改变时,对数据库的全局逻辑结构(概念视图)和应用程序不必作修改的一种特性,也就是说,数据库数据的存储结构与存取方法独立。
物理数据独立性的好处是,数据的物理存储设备更新了,物理表示及存取方法改变了,但数据的逻辑模式可以不改变。
数据的逻辑模式改变了,但用户的模式可以不改变,因此应用程序也可以不变。
这将使程序维护容易,另外,对同一数据库的逻辑模式,可以建立不同的用户模式,从而提高数据共享性,使数据库系统有较好的可扩充性,给DBA维护、改变数据库的物理存储提供了方便。
5.为了用计算机处理现实世界中的具体事物,人们必须事先对具体事物加以抽象,提取主要特征,归纳形成一个简单清晰的轮廓,转换成计算机能够处理的数据,这就是“数据建模”。
通俗地讲数据模型就是现实世界的模型。
数据模型是用来抽象、表示和处理现实世界中的数据和信息的。
数据模型通常都应包含数据结构、数据操作和完整性约束三个部分,它们是数据模型的三要素。
6.
习题2
一、单项选择题
1.C2.A3.A4.D5.B6.①B②A③C
7.D8.A9.C10.D11.C
12.A13.B14.A15.D16.C17.B18.C19.A20.B
21.B22.B23.①C②B24.C25.B26.D27.C
28.①E②B③E④E⑤B
二、填空题
1.关系名(属性名1,属性名2,…,属性名n)
2.属性名
3.能惟一标误用实体的属性或属性组
4.①选择②投影③连接
5.①关系代数②关系演算
6.交
7.①系编号②无③学号④系编号
8.控制冗余,避免插入和删除异常,从而增强数据库结构的稳定性和灵活性。
9.外键
10.不部分函数依赖于
三、简答题
1.答:
假如有如图所示的两个关系表,在成绩表中,学号是关键字,课程号是处关键字;在课程表中课程号是关键字,根据关系参照完整性的定义,R2是成绩表,R1是课程表,也就是成绩表中课程号的值或者为空或者在课程表中的课程号中能够找到。
成绩表
课程表
学号
姓名
课程号
成绩
课程号
课程号
101
212
221
…
刘军
王丽
章华
k5
k8
k9
80
76
92
K5
K8
K9
…
高等数学
C语言
计算机网络
2.解:
本题各小题的结果如图所示
R1
A
B
C
a1
b1
c1
R2
A
B
C
a1
a1
a2
a1
b1
a2
b2
b3
c1
c2
c1
c2
R3
A
B
C
a1
a2
b2
b2
c2
c1
R4
A
B
a1
a2
b2
b2
3.解:
本题各小题的结果如图所示。
R1
A
B
C
D
E
3
4
7
4
6
5
2
4
7
7
3
3
2
2
4
4
3
3
5
5
R2
A
B
C
C
D
E
7
2
3
3
4
5
R3
A
B
C
C
D
E
7
4
2
4
3
3
7
3
2
4
3
5
4.
1
Π学号,姓名(δ成绩<60(学生∞选课))
2
Π学号,姓名(δ课程名=‘数据库’(学生∞选课∞课程))
3
Π学号,姓名(δ课程名=‘数据库’∧成绩<60(学生∞选课∞课程))
4
Π学号,姓名(δ课程名=‘数据库’(学生∞选课∞课程))∩Π学号,姓名(δ课程名=‘数据结构’(学生∞选课∞课程))
5
Π学号,姓名(δ课程名=‘数据库’(学生∞选课∞课程))∪Π学号,姓名(δ课程名=‘数据结构’(学生∞选课∞课程))
6
Π学号(学生)-Π学号(δ课程名=‘数据库’(选课∞课程))
7
Π学号(δ课程名=‘数据库’(选课∞课程))
选课.课程号=课程.先行课
8
Π学号,姓名,课程号(学生∞选课)÷Π课程号(课程)
或Π学号,姓名(Π学号,课程号(选课)÷Π课程号(课程)∞(学生))
5.解:
经分析有:
候选关键字:
学号(每个学生只有惟一的学号)
最小依赖集:
{学生→姓名,学号→出生日期,学号→班号,系名→宿舍区,班号→系名}
存在传递函数依赖:
学号→系名→宿舍区,∴有学号
宿舍区;
班号→系名→宿舍区,∴有班号
宿舍区;
学号→班号→系名,∴有学号
系名;
6.解:
(1)R是BCNF。
R候选关键字为XY,F中只有一个函数依赖,而该函数依赖的左部包含了R的候选关键字XY。
(2)R是3NF。
R候选关键字为XY和XZ,R中所有属性都是主属性,不存在非主属性对的候选关键字的传递依赖。
(3)R是BCNF。
R候选关键字为X和Y,∵X→YZ,∴X→Y,X→Z,由于F中有Y→Z,Y→X,因此Z是直接函数依赖于X,而不是传递依赖于X。
又∴F的每一函数依赖的左部都包含了任一候选关键字,∴R是BCNF。
(4)R是BCNF。
R的候选关键字为X,而且F中每一个函数依赖的左部都包含了候选关键字X。
(5)R是BCNF。
R的候选关键字为XY,而且F中函数依赖的左部包含了候选关键字XY。
(6)R是1NF。
R的候选关键字为WX,则Y,Z为非主属性,又由于X→Z,因此F中存在非主属性对候选关键字的部分函数依赖。
7.解:
(1)它是2NF。
∵R的候选关键字为课程名,而课程名→教师名,教师名→课程名,教师名→教师地址,∴课程名
教师地址,即存在非主属性教师地址对候选关键字课程名的传递函数依赖,因此R不是3NF。
又∵不存在非主属性对候选关键字的部分函数依赖,∴R是2NF。
(2)存在。
当删除某门课程时会删除不该删除的教师的有关信息。
(3)分解为高一级范式如图所示。
R1
R2
课程名
教师名
教师名
教师地址
C1
马千里
马千里
D1
C2
于得水
于得水
D1
C3
余快
余快
D2
C4
于得水
分解后,若删除课程数据时,仅对关系R1操作,教师地址信息在关系R2中仍然保留,不会丢失教师方面的信息。
8.解:
R不属于3NF,它是2NF。
∵R的候选关键字为职工号和职工名,而:
职工号→单位号,单位号→职工号,单位号→单位名
∴职工号
单位名,即存在非主属性单位名对候选关键字职工号的传递函数依赖。
规范化后的关系子模式为如图所示的关系R1和R2。
R1
R2
职工号
职工名
年龄
性别
单位号
单位号
单位名
E1
ZHAO
20
F
D3
D3
CCC
E2
QIAN
25
M
D1
D1
AAA
E3
SEB
38
M
D3
E4
LI
25
F
D3
习题3
一、单项选择题
1.B2.C3.B4.A5.C6.A
7.A8.A9.D10.C11.B12.B13.B
二、填空题
1.结构化查询语言
2.①定义数据库②定义基本表③定义视图④定义索引
3.①一个或几个基本表②定义③视图对应数据
4.①INSERTINTORVALUES(25,"李明","男",21,"95031")
②INSERTINTOR(NO,NAME,CLASS)VALUES(30,"郑和","95031")
③UPDATERSETNAME="王华"WHERENO=10
④UPDATERSETCLASS="95091"WHERECLASS="95101"
⑤DELETEFROMRWHERENO=20
⑥DELETEFROMRWHERENAMELIKE"王%"
三、简答题
1.答:
SQL语言支持的三级逻辑结构如图所示。
2.
(1)找出店员人数超过100人或者在长沙市的所有商店的代号和商店名。
SELECTA#,ANAMEFROMA;
WHEREWQTY<=100ORCITY="长沙"
(2)找出供应书包的商店名。
SELECTA.ANAMEFROMW,B,AB;
WHEREA.A#=AB.A#ANDB.B#ANDB.BNAME="书包"
(3)找出至少供应代号为256的商店所供应的全部商品名和所在城市。
SELECTA.ANAME,A.CITYFROMA,B;
WHEREA.A#=AB.B#IN(SELECTAB.B#;
FROMABWHEREA#="256")
A
A#
ANAME
WQTY
CITY
101
韶山商店
15
长沙
204
前门面货商店
89
北京
256
东风商场
501
北京
345
铁道商店
76
长沙
620
第一百货公司
413
上海
B
B#
BNAME
PRICE
1
毛笔
21
2
羽毛球
784
3
收音机
1325
4
书包
242
AB
A#
B#
QTY
101
1
105
101
2
42
101
3
25
101
4
104
204
3
61
256
1
241
256
2
91
345
1
141
345
2
18
345
4
74
602
4
125
图5.2关系A、B和AB
3.
(1)按图书馆编号BNO建立TS表的索引ITS。
(2)查询按出版社统计其出版图书总数。
(3)删除索引ITS。
(1)USETS
INDEXONBNOTOITS
(2)SELECTPUB,COUNT(BNO)
FROMTS
GROUPBYRUB
(3)DELETEFILEITS.IDX
4.解:
(1)CREATESQLVIEWR-S-T
ASSELECTR.S,B,CS.D,E,F
FROMR,S,T
WHERER.A=S.AANDS.D,E,F
FROMR,S,T
WHERER.A=S.AANDS.D=T.D
(2)SELECTAVG(C),AVG(E)
FROMR-S-T
GROUPBYA
5.解:
(1)SELECTB
FROM,S
WHERER.A=S.AWNDC>50
(2)UPDATER
SETB=‘b4’
WHEREAIN
(SELECTA
FROMS
WHEREC=40)
6.解:
(1)SELECTDISTINCTPROV
FROMS
WHERESD=“信息系”
(2)SELECTSNGR
FRONS,SC
WHERESD="英语系"ANDCD="计算机"ANDS.SNO=SC.SNO
ORDERBYGRDESC;
7.解:
(1)CREATESQLVIEWV-SSC(SNO,SN,CNO,CN,G)
ASSELECTS.SNO,S.SN,SNO,SC.CN,SC.G
FROMS,SC
WHERES.SNO=SC.SNO
ORDERBYCNO
(2)SELECTSN,CNG
FROMV-SSC
GROUPBYSNO
HAVINGAVG(G)>90
习题4
一、填空题
1.主数据文件二级数据文件日志文件
2.主文件组自定义文件组默认文件组
3.查询操纵
4.NULL/NOTNULLUNIQUEPRIMARYKEY
二、简答题
1.答:
Server2005数据平台包括以下工具。
(1)关系型数据库
(2) 复制服务
(3) 通知服务
(4) 集成服务
(5) 分析服务
(6) 报表服务
(7) 管理工具
(8) 开发工具
2.答:
主要包括企业版(EnterpriseEdition)、标准版(StandardEdition)、开发版(DeveloperEdition)、工作组版(WorkgroupEdition)和精简版(ExpressEdition)。
3.答:
SQLServer2005数据库使用的操作系统文件分为主数据文件、二级数据文件和日志文件。
(1) 主数据文件。
主数据文件是所有数据库文件的起点,包含指向其他数据库文件的指针。
每个数据库都必须包含一个也只能包含一个数据文件。
默认扩展名是.mdf。
(2) 二级数据文件。
除主数据文件以外的其他数据文件。
数据库可以有0个或多个二级数据文件。
默认扩展名是.ndf。
(3) 日志文件。
日志文件用于存放恢复数据库用的所有日志信息。
每个数据库至少拥有一个日志文件,也可以拥有多个日志文件。
默认扩展名是.ldf。
企业版(EnterpriseEdition)、标准版(StandardEdition)、开发版(DeveloperEdition)、工作组版(WorkgroupEdition)和精简版(ExpressEdition)。
答:
SQLServer2005数据库使用的操作系统文件分为主数据文件、二级数据文件和日志文件。
(1) 主数据文件。
主数据文件是所有数据库文件的起点,包含指向其他数据库文件的指针。
每个数据库都必须包含一个也只能包含一个数据文件。
默认扩展名是.mdf。
(2) 二级数据文件。
除主数据文件以外的其他数据文件。
数据库可以有0个或多个二级数据文件。
默认扩展名是.ndf。
(3) 日志文件。
日志文件用于存放恢复数据库用的所有日志信息。
每个数据库至少拥有一个日志文件,也可以拥有多个日志文件。
默认扩展名是.ldf。
为了便于分配和管理,SQLServer允许将多个文件归纳为同一组,并赋予此组一个名称,这就是文件组。
SQLServer2005提供了3种文件组类型,分别是主文件组、用户自定义文件组、默认文件组。
(1) 主文件组:
包含主数据文件和所有没有被包含在其他文件组里的文件。
数据库的系统表都包含在主文件组里。
(2) 自定义文件组:
包括所有在CREATEDATABASE或ALTERDATABASE中使用FILEGROUP关键字来进行约束的文件。
(3) 默认文件组:
容纳所有在创建时没有指定文件组的表、索引以及text、ntext、image数据类型的数据。
任何时候,只能有一个文件组被指定为默认文件组。
在默认情况下,主文件组被当成默认文件组。
4.答:
CREATEDATABASECompany
ON
(NAME='Company_data',
FILENAME='f:
\tsql\Company.mdf',
SIZE=10,
MAXSIZE=UNLIMITED,
FILEGROWTH=10%)
LOGON
(NAME='Company_log',
FILENAME='f:
\tsql\Company.ldf',
SIZE=1MB,
MAXSIZE=5MB,
FILEGROWTH=1MB)
5.答:
CREATEDATABASEemployees
ONPRIMARY
(NAME='employee1',
FILENAME='f:
\tsql\employee1.mdf',
SIZE=10,
MAXSIZE=UNLIMITED,
FILEGROWTH=10%),
(NAME='employee2',
FILENAME='f:
\tsql\employee2.mdf',
SIZE=20,
MAXSIZE=100MB,
FILEGROWTH=1MB)
LOGON
(NAME='employeelog1',
FILENAME='f:
\tsql\employeelog1.ldf',
SIZE=10MB,
MAXSIZE=50MB,
FILEGROWTH=1MB),
(NAME='employeelog2',
FILENAME='f:
\tsql\employeelog2.ldf',
SIZE=10MB,
MAXSIZE=50MB,
FILEGROWTH=1MB)
6.答:
Createtableemployee
(idchar(20)notnullprimarykey,
namevarchar(50)notnull,
departmentvarchar(30)null,
ageintnull,
memovarchar(40)null
)
7.答:
(1)altertableemployeeaddsalarydecimal(10,2)
(2)altertableemployeedropcolumnage
(3)altertableemployeealtercolumnmemovarchar(50)
习题5
1.答:
为了提高程序的执行效率,在Transact_SQL语言编写的程序中,还可以使用GO语句将多条SQL语句进行分隔,两个GO之间的SQL语句可作为一个批处理。
在一个批处理中可包含一条或多条Transact_SQL语句,成为一个语句组。
这样的语句组从应用程序一次性的发送到SQLServer服务器进行执行。
SQLServer服务器将批处理编译成一个可执行单元,称为执行计划。
2.答:
a.注释:
单行注释:
使用两个连在一起的减号“--”作为注释符。
多行注释:
使用“/**/”作为注释符。
b.变量:
全局变量:
以两个@@字符开头,由系统定义和维护。
全局变量中通常存储的是一些SQLServer的配置设定值和统计数据。
局部变量:
局部变量在定义和引用时要在其前面加上@,而且必需先用Declare命令定义后才可以使用。
c.运算符:
算术运算符、赋值运算符、位运算符、比较运算符、逻辑运算符、字符串运算符、连接运算符
d.函数:
系统函数、字符串函数、日期和时间函数、数学函数、转换函数、用户自定义函数
e.流程控制语句:
BEGIN….end语句、if….else语句、case语句、
while….continue….break语句、goto语句、waitfor语句、return语句
3.答:
全局变量以两个@@字符开头,由系统定义和维护。
SQLServer使用全局变量来记录SQLServer服务器的活动状态。
全局变量的作用范围不仅仅局限于某一个程序,它们可以在整个SQLServer系统内使用,任何程序都可以随时调用它。
全局变量中通常存储的是一些SQLServer的配置设定值和统计数据。
用户可以在程序中使用全局变量来测试系统的设定值或Transact—SQL命令执行后的状态值。
4.答:
Declare@变量名数据类型
Set@变量名=表达式
或
select@变量名=表达式,@变量名=表达式……
5.答:
存储过程是一系列预先编辑好的、能实现特定数据操作功能的SQL代码集,它与特定的数据库相关联,存储在SQLServer服务