数据库原理与应用示范系统第三版习题与复习资料.docx
- 文档编号:26313944
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:29
- 大小:78.01KB
数据库原理与应用示范系统第三版习题与复习资料.docx
《数据库原理与应用示范系统第三版习题与复习资料.docx》由会员分享,可在线阅读,更多相关《数据库原理与应用示范系统第三版习题与复习资料.docx(29页珍藏版)》请在冰豆网上搜索。
数据库原理与应用示范系统第三版习题与复习资料
习题一
1.试回答下列问题
(1)什么是数据库?
(2)什么是数据库管理系统?
(3)什么是数据库系统?
答:
(1)数据库是被长期存放在计算机内,有组织的,统一管理的相关数据的集合。
(2)数据库管理系统(DataBaseManagementSystem,简称DBMS),是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新与各种数据控制。
(3)数据库系统(DBS)通常是指带有数据库的计算机应用系统。
DBS是一个实际可运行的,按照数据库方法存储、维护和向应用系统提供数据支持的系统,它是数据库、硬件、软件和数据库管理员(DBA)的集合体。
2.计算机数据管理经历了哪几个阶段?
答:
数据管理技术的发展经历了三个阶段:
人工管理阶段、文件系统阶段、数据库系统阶段。
3.试述文件系统的缺点。
答:
(1)数据共享性差,冗余度大。
(2)数据不一致性。
(3)数据联系弱。
4.试述数据库系统的特点。
答:
(1)采用复杂的数据模型表示数据结构。
(2)有较高的数据独立性。
(3)数据的共享性高,冗余度低,易扩充。
(4)数据由DBMS统一控制和管理。
5.试述概念模型的作用。
答:
概念模型是独立于计算机系统的数据模型,它完全不涉与信息在计算机系统中的表示,只是用来描述某个特定组织所关系的信息结构。
概念模型用于建立信息世界的数据模型,强调其语义表达能力,概念应该简单、清晰、易于用户理解,它是现实世界的第一层抽象,是用户和数据库设计人员之间进行交流的工具。
这一模型中最著名的是“实体联系模型”。
6.解释下列概念:
内模式、模式、外模式、DDL、DML
答:
内模式也称存储模式(StorageSchema)。
它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。
一个数据库只有一个内模式。
模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
它是数据库系统模式结构的中间层。
外模式也称子模式(Subschema)或用户模式,它是用户与数据库系统的接口,是用户用到的那部分数据的逻辑结构和特征的描述,是数据库用户的数据视图。
DDL是数据定义语言(DataDefinitionLanguage-DDL),用户通过它可以方便地对数据库中的数据对象进行定义。
DML是数据操纵语言(DataManipulationLanguage-DML),实现对数据库中数据的操作。
7.试述数据库系统三级模式结构,这种结构的优点是什么?
答:
数据库系统的体系结构分成三级:
内部级(internal),概念级(conceptual)和外部级(external)。
这个三级结构也称数据库系统的“三级模式结构”。
内部级也称“内模式”,概念级也称“模式”,外部级也称“外模式”,故数据库系统是由外模式、模式和内模式三级构成,如下图所示:
8.试述数据库的物理独立性和逻辑独立性。
答:
数据的独立性包括数据的物理独立性和数据的逻辑独立性。
数据的物理独立性是指当数据在计算机存储设备上的物理存储改变时,应用程序可以不用改动,而由DBMS来处理这种改变。
数据逻辑独立性是指当数据的整体逻辑结构改变时,不影响用户的逻辑结构以与应用程序。
9.DBS由哪几部分组成?
DBA的职责是什么?
答:
DBS一般由数据库(即实际存储在计算机中的数据)、数据库管理系统、相应的硬件、软件和各类人员构成。
数据库系统是一个有使用人员与维护人员、加工设备和数据资源的完整的计算机应用系统。
DBA是数据资源管理机构的一组人员。
总的来说,负责全面地管理和控制数据库系统。
具体职责包括:
(a)决定数据库的信息内容和结构
(b)决定数据库的存储结构和存取策略
(c)定义数据的安全性要求和完整性的约束条件
(d)监督和控制数据库的使用和运行
(e)数据库的改进和重组
10.数据库管理系统的主要功能有哪些?
答:
DBMS的主要功能包括以下几个方面:
①数据定义功能
②数据操纵功能
③数据库的运行管理
④数据库的建立和维护功能
11.试述DBMS在用户访问数据库过程中所起的作用。
答:
应用程序通过DBMS读取数据库中记录,DBMS为程序开辟一个数据库的系统缓冲区,用于数据的传输和格式的转换。
12.试写出用户访问数据库的过程。
答:
(1)用户在应用程序中安排一条读记录的DML语句。
该语句给出涉与的外模式中记录类型名与键值。
当计算机执行该DML语句时,立即启动DBMS,并把读记录的命令传给DBMS。
(2)DBMS接到命令后,加以分析,并调出程序A对应的外模式,检查该操作的合法权限,决定是否执行该命令。
(3)在决定执行A的命令后,DBMS调出相应的模式描述,并从外模式映象到模式,决定应读入哪些模式记录。
(4)DBMS调出相应的内模式描述,并将模式映象成为模式的内部记录模式,确定应读入哪些物理记录。
(5)DBMS向操作系统(OS)发出从指定地址读取物理记录的命令。
(6)OS执行该命令,按指定地址从数据库把记录读入OS的系统缓冲区,进而读入数据库的系统缓冲区,并在操作结束后向DBMS作出回答。
(7)DBMS收到OS的回答后,将读入缓冲区中的数据转换成模式记录,外部记录。
(8)DBMS把导出的外部记录从系统缓冲区送到应用程序A的工作区中。
(9)DBMS向运行日志数据库中写入读一条记录的信息。
(10)DBMS将读记录成功与否信息返回给程序A。
(11)程序A决定是否使用工作区中的数据。
习题二
1.试述关系模型的3个组成部分。
答:
关系模型是由关系数据结构、关系操作集合和关系完整性约束三部分组成。
这是关系模型的三要素。
2.定义并理解下列术语。
(1)域,笛卡尔积,关系,元组,属性
(2)主键,候选键,外键
答:
(1)域:
一组具有相同数据类型的值的集合。
给定一组域D1,D2,…,Dn,其笛卡尔积为:
D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n},其中每一元素(d1,d2,…,dn)叫做一个元组(Tuple)。
D1×D2×…×Dn的子集叫做域D1,D2,…,Dn上的关系。
关系是笛卡尔积的有限子集,所以关系也是一个二维表,表的每一行表示一个元组,表的每一列对应一个域。
对每列起一个名字,称为属性(Attribute)。
(2)如果一个属性集能唯一标识元组,又不含有多余属性,那么这个属性集称为候选键。
主键(primarykey):
用户选作元组标识的一个候选键称为主键。
注意:
若一个关系有多个候选键,只能指定其中一个为主键。
如果关系中的属性或属性组不是本关系的主键,而是引用另一个关系的主键,则称这一属性或属性组为外键。
3.试回答下列问题:
(1)可以表示任何关系代数操作的五种基本代数操作是什么?
(2)连接、等值连接、自然连接、外连接、半连接的区别是什么?
(3)元组关系演算表达式和域关系演算表达式的区别是什么?
(4)域关系演算表达式的安全性定义是什么?
答:
(1)关系代数操作的五种基本代数操作是并、差、笛卡尔积、投影、选择。
(2)连接也称为θ连接。
它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。
θ为“=”的连接运算称为等值连接。
它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组。
自然连接(Naturaljoin)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。
如果在R和S做自然连接时,保留被舍弃的元组,其空缺的另一关系的属性的值用空值(mull)填充,那么这种操作称为“外连接”操作。
关系R和S的半连接操作记为RS,定义为R和S的自然连接在关系R的属性集上的投影,
(3)在元组关系演算系统中,我们称{t|P(t)}型表达式为元组演算表达式,其中P(t)是元组关系演算公式,t是元组变量。
一个元组演算表达式表示一个关系。
域关系演算类似于元组关系演算,不同的是用域变量代替元组变量。
域关系演算的变量在域中取值,故称为域变量,每个自由变量对应一个列或一个属性。
(4)如果域关系演算表达式满足以下三个条件则是安全的:
(1)每一个关系代数表达式有一个等价的、安全的元组演算表达式。
(2)每一个安全的元组演算表达式有一个等价的安全域演算表达式。
(3)每一个安全的域演算表达式有一个等价的关系代数表达式。
4.设有关系R和S,如图2-9所示,试计算:
R∪S、R∩S、R-S、R×S。
A
B
C
A
B
C
a
b
c
b
g
a
d
a
c
d
c
d
c
b
d
(b)S
d
c
d
(a)R
答:
R∪S:
A
B
C
a
b
c
d
a
c
c
b
d
d
c
d
b
g
a
R∩S:
A
B
C
d
c
d
R-S:
A
B
C
a
b
c
d
a
c
c
b
d
R×S:
R.A
R.B
R.C
S.A
S.B
S.C
a
a
d
d
c
c
d
d
b
b
a
a
b
b
c
c
c
c
c
c
d
d
d
d
b
d
b
d
b
d
b
d
g
c
g
c
g
c
g
c
a
d
a
d
a
d
a
d
5.设有关系R和S,如图2-10所示。
计算:
R×S,RS,σA=C(R×S)。
B A B B C a b b c c b e a d e b d 关系R 关系S 答: R×S: R.A R.B S.B S.C a a a c c c d d d b b b b b b e e e b e b b e b b e b c a d c a d c a d RS: A B C a a c c d b b b b e c d c d a σA=C(R×S): R.A R.B S.B S.C a c d b b e E b b a c d 6.如果R是二目关系,那么下列元组表达式的结果是什么? {t∣(∃u)(R(t)∧R(u)∧(t[1]≠u[1]∨t[2]≠u[2]))} 答: 当R的元组数≥2时,R中每个元组都存在与之不相同的元组,因此表达式的结果为关系R;当R的元组数为0或1时,表达式的结果为空关系R。 7.设有两个关系R(A,B,C)和S(D,E,F)。 试表下列关系代数表达式转换成等价的元组表达式: (1)πA(R) (2)σB=’19’(R)(3)R×S(4)πA,F(σC=D(R×S)) 答: (1)πA(R)转换成{t∣(∃u)(R(u)∧t[1]=u[1])} (2)σB=’19’(R)转换成{t∣R(t)∧t[2]=‘19’)} (3)R×S转换成{t∣(∃u)(∃v)(R(u)∧S(v)∧t[1]=u[1]∧t[2]=u[2]∧t[3]=u[3]∧t[4]=v[1]∧t[5]=v[2]∧t[6]=v[3])} (4)πA,F(σC=D(R×S))转换成{t∣(∃u)(∃v)(R(u)∧S(v)∧t[1]=u[1]∧t[2]=v[3]∧u[3]=v[1])} 8.已知学生一课程数据库的三个关系。 S(学生关系),C(课程关系),SC(学生选课关系)。 S(S#,SN,SD,SA) SC(S#,C#,GS) C(C#,CN,PC#) 试用关系代数表达式表示下列查询要求: (1)取出所有学生的全部细节 答: πS#,SN,SD,SA(S) (2)取出选修课程号为‘C2’的学生姓名与所属的系。 答: πSN,SD(sπS#(σc#=‘C2’(SC))) (3)取出同时选修课程号为‘C1’和‘C2’两门课程的学生名字。 答: πSN(πS#,c#(SC)÷πc#(σc#=’C1’∨c#=’c2’(C))S) (4)取出选修“BASIC”语言这门课程的学生姓名。 答: πSN(sπS#(σcN=‘BASIC’(C)SC)) (5)取出年龄大于23岁的计算机系的学生姓名。 答: πSN(σAge>23∧SD=‘计算机‘(S)) (6)取出不选“操作系统”课程的学生姓名与年龄。 答: πSN,SA-πSN,SA(sπS#(σcN=‘操作系统’(C)SC)) (7)取出学号为‘S1’的学生选修的课程号、课程名与成绩。 答: πC#,CN,GS(CπC#,GS(σS#=‘S1’(SC))) (8)取出全部学生都选修的课程号与课程名。 πS#,c#(SC)÷πS#(S)πC#,CN(C) 9.试用元组关系演算表达式表示第8题的各个查询语句。 (1)取出所有学生的全部细节 答: {t∣S(t)} (2)取出选修课程号为‘C2’的学生姓名与所属的系。 答: {t∣(∃u)(∃v)(S(u)∧SC(v)∧v[2]=‘C2’∧u[1]=v[1]∧t[1]=u[2]∧t[2]=u[3])} (3)取出同时选修课程号为‘C1’和‘C2’两门课程的学生名字。 答: {t∣(∃w)(∃u)(∃v)(S(w)∧SC(u)∧SC(v)∧u[2]=‘C1’∧v[2]=‘C2’∧u[1]=v[1]∧w[1]=u[1]∧t[1]=w[2])} (4)取出选修“BASIC”语言这门课程的学生姓名。 答: {t∣(∃u)(∃v)(∃w)(S(u)∧SC(v)∧C(w)∧u[1]=v[1]∧v[2]=w[1]∧w[2]=“BASIC”∧t[1]=u[2])} (5)取出年龄大于23岁的计算机系的学生姓名。 答: {w∣(∃t)(S(t)∧t[4]>‘23’∧t[3]=‘计算机’∧w[1]=t[2])} (6)取出不选“操作系统”课程的学生姓名与年龄。 答: {t∣((∃u)(∀v)(∃w)(C(u)∧SC(v)∧S(w)∧u[2]=“操作系统”∧u[1]=v[1]∧t[1]=w[2]∧t[2]=w[4]∧w[1]≠v[1])}(此答案仅供参考) (7)取出学号为‘S1’的学生选修的课程号、课程名与成绩。 答: {t∣(∃u)(∃v)(∃w)(S(u)∧SC(v)∧C(w)∧u[1]=v[1]∧v[2]=w[1]∧w[2]=“BASIC”∧t[1]=u[2])} (8)取出全部学生都选修的课程号与课程名。 答: {t∣(∃u)(∀v)(∃w)(C(u)∧S(v)∧SC(w)∧u[1]=w[2]∧w[1]=v[1]∧t[1]=u[1]∧t[2]=u[2])} 10.若对于第8题的学生一课程数据库进行下列检索操作,试指出检索后的结果。 用汉语句子表达出来。 (1)πS#(σC#=’C1’(SC)) 答: 取出选修课程号为‘C1’的学生学号。 (2)πSN(πS#,C#(SC)÷πC#(C)πS#,SN(S)) 答: 取出选修全部课程的学生姓名。 11.假设R和S分别是三元和二元关系,试把表达式 π1,5(σ2=4∨3=4(R×S)) 转换成等价的: (1)汉语查询句子; 答: 从R与S的笛卡儿积中选择R的第2列与S的第1列相等或者R的第3列与S的第1列相等的元组并投影R的第1列与S的第2列。 (2)元组表达式; 答: {t∣(∃u)(∃v)(R(u)∧S(v)∧t[1]=u[1]∧t[2]=v[2]∧(u[2]=v[1]∨u[3]=v[1]))} (3)域表达式。 答: {xv∣(∃x)(∃u)(R(xyz)∧(S(uv)∧(y=u∨z=u))} 12.假设R和S都是二目关系,试把元组表达式 {t∣R(t)∧(∃u)(S(u)∧u[1]≠t[2])} 转换成等价的: (1)汉语查询句子; 答: 从R中选择R的第2列与S的第1列值不相等的那些元组,组成新的关系。 (2)关系代数表达式; 答: π1,2(σ2≠3(R×S)) (3)域表达式 答: {xy∣(R(xy)∧(∃u)(S(uv)∧u≠y)} 13.把域关系演算表达式{ab|R(ab)∧R(ba)} (1)转换为元组关系演算表达式。 答: {t∣R(t)∧(∃u)(R(u)∧t[1]=u[2]∧t[2]=u[1])} (2)转换为关系代数表达式。 答: π1,2(σ1=4∧2=3(R×R)) 习题三 1. SELECT编号,姓+名FROM家庭成员表 2. SELECT编号,姓+名FROM家庭成员表WHERE生日=1972-08-04 3. SELECTA.姓+A.名,B.角色FROM家庭成员表A,角色表BWHEREA.成员编号=B.编号 4. SELECTA.姓+A.名,B.地址FROM家庭成员表A,家庭状况表BWHEREA.地址编号=B.地址编号 5. SELECT编号,姓+名FROM家庭成员表WHERESUBSTR(生日,1,2)=”1965” 6. SELECT编号,姓+名FROM家庭成员表WHERE发送贺卡=YES 7. SELECT编号,姓+名FROM家庭成员表WHERE成员编号IN(SELECT编号FROM角色表WHERE角色=‘子女’) 8. INSERTINTO家庭成员表VALUES(16,1,‘鹏’,‘李’,7,#1972-09-04#,‘NO’,#2005-1-16#,‘喜欢踢足球’) 9. DELETEFROM家庭成员表WHERE地址编号IN(SELECT地址编号FROM家庭状况表WHERE国家=‘英国’) 10. UPDATE家庭成员表SET发送贺卡=YESWHERE地址编号IN(SELECT地址编号FROM家庭状况表WHERE省/自治区/直辖市=‘北京’) 习题四 1.解释下列术语: 函数依赖部分函数依赖传递函数依赖完全函数依赖主键外部键 答: 设有关系模式R(∪),∪是R的属性的集合,X、Y⊆∪,对于R的任意关系实例r,r中的任意两个元组t和s,如果t[X]=s[X],则t[Y]=s[Y],则称Y函数依赖于X,或称X函数地决定Y,记作X→Y。 设R是一个具有属性集合∪的关系模式,如果X→Y,并且对于X的任何一个真子集Z,Z→Y都不成立,则称Y完全函数依赖于X,记作: X Y。 若X→Y,但Y不完全函数依赖于X,则称Y部分函数依赖于X,记作: X Y。 设R是一个具有属性集合∪的关系模式,X,Y,Z是∪的子集,Y→X不成立,Z-X、Z-Y和Y-X不空。 如果X→Y,Y→Z则称Z传递函数依赖于X,记作: X Z。 设R是一个具有属性集合∪的关系模式,K是∪的子集。 若K满足下列两个条件,则称K是R的一个候选键。 (1)K→∪ (2)不存在K的真子集Z,使得Z→∪。 候选键可以唯一地识别关系的元组。 一个关系模式中可能具有多个候选键。 我们可以指定一个候选键作为主键。 设X是关系模式R的属性的子集。 如果X是另一关系模式的候选键,则称X是R的外部键。 2.什么是范式? 它有几种类型? 这些类型之间的关系是什么? 答: 关系数据库中的关系满足一定的要求。 而把满足不同程度要求的关系称为不同的范式。 满足最低要求的关系叫第一范式,简称1NF。 在第一范式中进一步满足一定要求的为第二范式,简称2NF,其余以此类推。 各种范式之间的联系是: INF⊃2NF⊃3NF⊃4NF⊃5NF 3.3NF与BCNF有何区别和联系? 答: 如果关系模式R是2NF,且它的任何一个非主属性都不传递函数依赖于任何候选键,则称R为第三范式。 如果关系模式R∈1NF,且每个函数依赖X→Y,X必为候选键,则R是BCNF范式。 如果R是BCNF,由定义可知,R中不存在任何属性传递地函数依赖或部分地函数依赖于任何候选键,所以R必为3NF。 但是,反过来,如果R是3NF,R未必是BCNF。 因为3NF中可能存在主属性传递地函数依赖或部分地函数依赖于键。 4.设有关系模式R(A,B,C,D,E)上的函数依赖集为F,并且F={A→BC,CD→E,B→D,E→A} (1)试求关系模式R的所有侯选键。 答: R的所有侯选键为: A、BC、CD和E。 (2)关系模式R最高是第几范式? 答: 关系模式R最高是第3范式。 (3)分别将关系模式R规范到3NF和BCNF。 答: 关系模式R已是第3范式,故只需分解为BCNF。 ∵B→D,该函数依赖不满足BCNF∴将R分解为R1(BD)和R2(ABCE),此时R1和R2已是BCNF。 5.下面的结论哪些是正确的,哪些是错误的? 对于错误的结论请给出反例说明。 (1)任何一个二目关系都属于3NF。 (√) (2)任何一个二目关系都属于BCNF。 (√) (3)任何一个二目关系都属于4NF。 (√) (4)当且仅当函数依赖A→B在R上成立,关系R(A,B,C)等于其投影R1(A,B)和R2(A,C)的连接。 (×) (5)如果R.A→R.B,R.B→R.C,则R.A→R.C。 (√) (6)如果R.A→R.B,R.A→R.C,则R.A→R.(B,C)。 (√) (7)如果R.B→R.A,R.C→R.A,则R.(B,C)→R.A。 (√) (8)如果R.(B,C)→R.A,则R.B→R.A,R.C→R.A。 (×) 习题五 1.简述数据库设计的几个阶段与其研究的目的. 答: (1)需求分析阶段: 需求分析是整个设计过程的基础,是最困难、最耗费时间的一步。 需求分析是否做得充分与准确,决定了在此基础上创建数据库与应用程序的速度与质量。 需求分析做得不好,轻则使应用程序的开发反复性比较大,重则会导致整个数据库设计返工重做。 无论那一种都将造成巨大的经济浪费,给企业、单位和个人造成一定程度的影响。 因此,这一阶段必须认真对待。 (2)概念结构设计阶段 概念结构设计是整个数据库设计的关键。 是系统分析员根据用户的需求进行综合、归纳与抽象后形成一个独立于具体DBMS的整体概念模型。 它是对用户需求的一种总结与升华,它更能够体现用户需求的整体全貌。 (3)逻辑结构设计阶段 逻辑结构设计是将概念结构转换为所选择的DBMS所支持的数据模型,并对其进行优化。 对于不同的数据库管理系统,本身支持的功能也不完全一样,所以一般要根据用户的需求选择一个合适的DBMS。 一味地选择大型数据库将增加系统开销,同时也未必能真正发挥大型数据库的所有优势。 (4)数据库物理设计阶段 数据库物理设计是为逻辑数据模型选取一个最适合应用环境的物理结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 应用 示范 系统 第三 习题 复习资料