《数据库原理及应用习题复习资料.docx》由会员分享,可在线阅读,更多相关《数据库原理及应用习题复习资料.docx(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据库原理及应用习题参考答案习题11-1 文件系统阶段的数据管理有哪些特点? 答:文件系统阶段主要有5个特点:数据以“文件”形式长期保存;数据的逻辑构造及物理构造有了区分;文件组织已多样化;数据面对应用;对数据的操作以记录为单位。1-3 数据库阶段的数据管理有哪些特色?答:主要有5个特点:采纳数据模型可以表示困难的数据构造;有较高的数据独立性;为用户供给了便利的用户接口;供给了4个方面的数据限制功能;对数据的操作以数据项为单位,增加了系统的敏捷性。1-4 什么是数据独立性?在数据库中有哪两级独立性? 答:数据独立性是指应用程序及DB的数据构造之间的互相独立。在物理构造变更时,尽量不影响应用程序
2、,称为物理独立性;在逻辑构造变更时,尽量不影响应用程序,称之为逻辑数据独立性。1-5 试说明DB、DBMS和DBS三个概念。答:DB是长期存储在计算机内、有组织的、统一管理的相关数据的集合。 DBMS是位于用户及0S之间的一层数据管理软件,它为用户或应用程序供给访问DB的方法。 DBS是实现有组织地、动态地存储大量关联数据、便利多用户访问的计算机硬件、软件和数据资源组成的系统,即采纳数据库技术的计算机系统。习题22-1名词说明答:逻辑数据:指程序员或用户用以操作的数据形式。物理数据:指存储设备上存储的数据。联络的元数:及一个联络有关的实体集个数,称为联络的元数。1:1联络:假如实体集El中每个
3、实体至多和实体集E2中的一个实体有联习,反之亦然,那么El和E2的联络称为“l:1联络”。1:N联络:假如实体集El中每个实体可以及实体集E2中随意个(零个或多个)实体有联络,而E2中每个实体至多和El中一个实体有联络,那么El和E2的联络是“1:N联络”。M:N联络:假如实体集El中每个实体可以及实体集E2中随意个(零个或多个)实体有联络,反之亦然,那么El和E2的联络称为“M:N联络”。数据模型:能表示实体类型及实体间联络的模型称为“数据模型”。概念数据模型:独立于计算机系统、完全不涉及信息在计算机中的表示、反映企业组织所关切的信息构造的数据模型。外形式:是用户用到的那部分数据的描绘。概念
4、形式:数据库中全部数据的整体逻辑构造的描绘。内形式:DB在物理存储方面的描绘。外形式/形式映象:用于定义外形式和概念形式之间数据构造的对应性。形式/内形式映象:用于定义概念形式和内形式之间数据构造的对应性。数据独立性:应用程序和DB的数据构造之间互相独立,不受影响。物理数据独立性:在DB的物理构造变更时,尽量不影响应用程序。逻辑数据独立性:在DB的逻辑构造变更时,尽量不影响应用程序。2-7什么是数据独立性?其目的是什么?数据库独立性是指应用程序及DB的数据构造之间互相独立。其目的是在物理构造变更或逻辑构造变更时,尽量不影响应用程序。习题33-1 名词说明:关系形式:是对关系的描绘,包括形式名、
5、诸属性名、值域名和形式的主键。关系实例:关系形式具体的值,称为关系实例。属性:即字段或数据项,及二维表中的列对应。属性个数,称为元数。元组:即记录,及二维表中的行对应。元组个数,称为基数。超键:能惟一标识元组的属性或属性集,称为关系的超键。候选键:不含有多余属性的超键,称为候选键。主键:正在运用的、用于标识元组的候选键,称为主键。外键:属性集F是形式S的主键,在形式R中也出现,那么称F是形式R的外键。实体完好性规则:实体的主键值不允许是空值。参照完好性规则:依靠关系中的外键值或者为空值,或者是相应参照关系中某个主键值。3-2 为什么关系中的元组没有先后依次,且不允许有重复元组?答:由于关系定义
6、为元组的集合,而集合中的元素是没有依次的,因此关系中的元组也譬没有先后的依次(对用户而言)。这样既能削减逻辑排序,又便于在关系数据库中引进集合论的理论。每个关系形式都有一个主键,在关系中主键值是不允许重复的。假如关系中有重复元组,那么其主键值确定相等,起不了惟一标识作用,因此关系中不允许有重复元组。3-3 外健值何时允许为空?何时不允许为空?答:在依靠表中,当外键是主键的组成部分时,外键值不允许为空;否则外键值允许为空。3-4 笛卡尔积、等值连接和自然连接三者之间有什么区分?答:笛卡儿积是一个根本操作,而等值连接和自然连接是组合操作。设关系R的元数为r,元组个数为m;关系S的元数为s。,元组个
7、数为n。那么,RS的元数为r+s,元组个数为mn;ijRS的元数也是r+s,但元组个数小于等于mn;RS的元数小于等于r+s,元组个数也小于等于mn:3-5 设有关系R和S,如图3.18所示。ABC327465247733ABC374253RS图3.18 关系R和S22计算RS,R-S,RS,RS,3,2(S),B5(R),R S,R S。ABC327436524477335RSABC324654773R-SABC723RSR.AR.BR.CS.AS.BS.C332277446655224477773333373737374242424253535353RSCB53423,2(S)ABC742
8、433B5(R)R.AR.BR.CS.AS.BS.C723345R S22ABC723R SBC3-6 设有关系R和S,如图3.19所示。计算R S,RS,A=C(RS)。ABacdbbeBCbebcadRS图3.19 关系R和SABCaaccdbbbbecdcdaR SAR.BS.BCaaccbbbbbbbbcdcdR SB23SEX=M(SC)CNAME,TEACHER(S#=S3(SC C)SNAME(SEX=FTEACHER=LIU(S SC C)C#(C)-C#(SNAME=WANG(S SC)1(1=425(SCSC)C#,CNAME(C (S#,C#(SC)S#(S)S#,C#(
9、SC)C#(TEACHER=LIU(C)习题44-1名词说明根本表:实际存储在数据库中的表,称为根本表。视图:是从根本表或其他视图中导出的表,它本身不独立存储在数据库中,也就是数据库中只存放视图的定义而不存放视图的数据。实表:是对根本表的别称。相关子查询:SELECT语句嵌套时,子查询中查询条件依靠于外层查询中的值,因此子查询要反复求值供外层查询运用。这种子查询称为相关子查询。连接查询:查询时要从多个根本表中提取数据,此时把多个根本表写在同一层的FROM子句中,这种查询形式称为连接查询。嵌套查询:查询时要从多个根本表中提取数据,此时把多个根本表分别放在不同层次上的FROM子句中,这种查询形式称
10、为嵌套查询。交互式SQL:在终端交互方式运用的SQL语言。嵌入式SQL:嵌入在高级语言的程序中运用的SQL语言。游标:游标是及某一查询相联络的符号名。游标有游标关系和游标指针两层含义。在游标翻开时,游标(指针)指向查询结果的第一个记录之前。4-2 对于教务管理数据库的三个根本表 S(SNO,SNAME, SEX,AGE,SDEPT) SC(SNO,CNO,GRADE) C(CNO,CNAME,CDEPT,TNAME)试用SQL的查询语句表达下列查询:检索LIU教师所授课程的课程号和课程名。检索年龄大于23岁的男学生的学号和姓名。检索学号为200915146的学生所学课程的课程名和任课教师名。检
11、索至少选修LIU教师所授课程中一门课程的女学生姓名。检索WANG同学不学的课程的课程号。检索至少选修两门课程的学生学号。检索全部学生都选修的课程的课程号及课程名。检索选修课程包含LIU教师所授课程的学生学号。解:SELECT C#,CNAME FROM C WHERE TEACHER=LIU;SELECT S#,SNAMEFROM S WHERE AGE23 AND SEX=M;SELECT CNAME,TEACHERFROM SC,CWHERE SC.C#=C.C#AND S#=200915146SELECT SNAME (连接查询方式) FROM S,SC,C WHERE S.S#=SC.
12、S# AND SC.C#=C.C# AND SEX=F AND TEACHER=LIU; 或:SELECT SNAME (嵌套查询方式) FROM S WHERE SEX=FAND S# IN (SELECT S# FROM SC WHERE C# IN (SELECT C# FROM C WHERE TEACHER=LIU)或:SELECT SNAME(存在量词方式)FROM SWHERE SEX=F AND EXISTS(SELECT*FROM SCWHERE SC.S#=S.S#AND EXISTS(SELECT*FROM CWHERE C.C#=SC.C# AND TEACHER=LI
13、U) SELECT C#FROM C WHERE NOT EXISTS (SELECT* FROM S,SC WHERE S.S#=SC.S#AND SC.C#=C.C# AND SNAME=WANG);SELECT DISTINCT X.S#FROM SC AS X,SC AS YWHERE X.S#=Y.S# AND X.C#!=Y.C#;SELECT C#AME FROM C WHERE NOT EXISTS (SELECT*FROM SWHERE NOT EXISTS(SELECT*FROM SCWHERE S#=S.S#AND C#=C.C#);SELECT DISTINCT S#F
14、ROM SC AS XWHERE NOT EXISTIS(SELECT*FROM C WHERE TEACHER=LIU AND NOT EXISTS (SELECT*FROM SC AS Y WHERE Y.S#=X.S# AND Y.C#=C.C#);4-3 试用SQL查询语句表达下列对4.2题中教务管理数据库的三个根本表S、SC、C查询:统计有学生选修的课程门数。求选修4号课程的学生的平均年龄。求LIU教师所授课程的每门课程的学生平均成果。统计每门课程的学生选修人数(超过10人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数一样,按课程号升序排列。检索学号比WAN
15、G同学大,而年龄比他小的学生姓名。检索姓名以WANG打头的全部学生的姓名和年龄。在SC中检索成果为空值的学生学号和课程号。求年龄大于女同学平均年龄的男学生姓名和年龄。求年龄大于全部女同学年龄的男学生姓名和年龄。解: SELECT COUNT(DISTINCT C#) FROM SC; SELECT AVG(AGE) FROM S,SC WHERE S.S#=SC.S#AND C#=4AND SEX=F;SELECT C.C#,AVG(GRADE) FROM SC,C WHERE SC.C#=C.C#AND TEACHER=LIU;SELECT C#,COUNT(S#) FROM SC GROU
16、P BY C# HAVING COUNT(*)10ORDER BY 2 DESC,1; SELECT SNAME FROM S WHERE S#ALL(SELECT S# FROM S WHERE SNAME=WANG AND AGE(SELECT AVG(AGE)FROM S WHERE SEX=F);SELECT SNAME,AGEFROM S WHERE SEX=MAND AGEALL(SELECT AGEFROM SWHERE SEX=F);4-4 试用SQL更新语句表达对4.2给出的教务管理数据库中三个根本表S、SC、C进展如下更新操作:往根本表S中插入一个学生元组(20091214
17、3,张晶,21)。在根本表S中检索每一门课程成果都大于等于80分的学生学号、姓名和性别,并把检索到的值送往另一个已存在的根本表STUDENT(SNO,SNAME,SEX)。在根本表SC中删除尚无成果的选课元组。把张成民同学在SC中的选课记录全部删去。把选修高等数学课程中不及格的成果全部改为空值。把低于总平均成果的女同学成果进步5%。在根本表SC中修改4号课程的成果,若成果小于等于75分时进步5%,若成果大于75分时进步4%(用两个UPDATE语句实现)。解: INSERT INTO S(S#,SNAME,AGE) VALUES(200912143,张晶,21); INSERT INTO STU
18、DENT(SNO,SNAME,SEX) SELECT S#,SNAME,SEX FROM S WHERE S# IN (SELECT S# FROM SCWHERE 80=ALL(SELECT GRADE FROM SCGROUP BY S#); DELETE FROM SC WHERE GRADE IS NULL; DELETE FROM SC WHERE S#IN(SELECT S#FROM S WHERE SNAME=张民) UPDATE SC SET GRADE=NULL WHERE GRADE60AND C#IN(SELECT C#FROM C WHERE CNAME=高等数学);
19、UPDATE SC SET GRADE=GRADE*1.05 WHERE S#IN(SELECT S#FROM S WHERE SEX=F) AND GRADE75; UPDATE SC SET GRADE=GRADE*1.05 WHERE C#=4AND GRADE=75;留意:这两个UPDATE语句的依次不能颠倒。习题55-1说明下列名词 函数依靠:设有关系形式R(U),X和Y是属性集U的子集,若对于R(U)的随意一个可能的关系r,r中不行能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依靠(Functional Dependency,简记为FD)于X,记作
20、XY。函数依靠集F的闭包F+:被F逻辑蕴涵的函数依靠全体构成的集合,称为F的闭包,记为F+。最小依靠集:设F是属性集U上的FD集,Fmin是F的最小依靠集,那么Fmin应满意下列四个条件:(Fmin)+=F+;每个FD的右边都是单属性;Fmin中没有冗余的FD;每个FD的左边没有冗余的属性。ki=1无损分解:设关系形式R,F是R上的FD集,=Rl,Rk是R的一个分解。假如对R中满意F的每一关系r,都有r=Ri(r),那么称分解相对F是“无损分解”。保持函数依靠:设关系形式R,F是R上的FD分解,=R1,Rk是R的一个分解,假如有那么称分解p保持FD集F。1NF:假如关系形式R的每个关系r的属性
21、值都是不行分的原子值,那么称R是1NF的形式。2NF:假如R是1NF的形式,且每个非主属性完全函数依靠于R的候选键,那么称R是2NF的形式。3NF:假如R是1NF的形式,且每个非主属性都不传递依靠于R的候选键,那么称R是3NF的形式。BCNF:假如R是1NF的形式,且每个属性都不传递依靠于R的候选键,那么称R是BCNF的形式。5-5 设关系形式R(ABC),F是R上成立的FD集,F=BC,CA,那么分解=AB,AC相对于F,是否无损分解和保持FD?并说明理由。A B CABACa1 a2 b13a1 b22 a3A B CABACa1 a2 b13a1 b22 a3由FD答:已知F=BC,CA
22、,而AB(F)=BA,AC(F)=CA,明显这个分解丧失了FD:BC。对于保持无损分解:无a行,所以是有损分解。5-8 设关系形式R(ABCD),F是R上成立的FD集,F=ABCD,AD。试说明R不是2NF形式的理由。试把R分解成2NF形式集。答: 从已知的函数依靠集F,可知R的候选键是AB。另外,由ABCD可推出ABD,再由AD可知ABD是部分(部分)函数依靠,因此R不是2NF形式。 假如将R分解成=AD,ABC,则是2NF形式集。5-9设关系形式R(ABC),F是R上成立的FD集,F=CB,BA。试说明R不是3NF形式的理由。试把R分解成3NF形式集。答:从已知函数依靠集F可知,R的候选键
23、是C。由CB,BA可知,CA是一个传递依靠,因此R不是3NF形式。 此时假如将R分解成=CB,BA,则是3NF形式集。习题66-1 名词说明数据流图:数据流图是从“数据”和“对数据的加工”两方面表达数据处理系统工作过程的一种图形表示法。具有直观、易于被用户和软件人员双方都能理解的一种表达系统功能的描绘方式。 数据字典:数据字典供给了对数据库数据描绘的集中管理,它的功能是存储和检索各种数据描绘,如叙述性的数据定义等,并且为DBA供给有关的报告。对数据库设计来说,数据字典是进展具体的数据搜集和数据分析所获得的主要成果。数据字典中通常包括数据项、数据构造、数据流、数据存储和处理过程五个部分。6-2
24、什么是数据库设计目的?数据库设计的根本步骤有哪些?答:数据库设计的主要目的有:最大限度地满意用户的应用功能需求、获得良好的数据库性能、对现实世界模拟的准确度要高、数据库设计应充分利用和发挥现有DBMS的功能和性能、符合软件工程设计要求。 数据库设计的根本步骤是:需求分析阶段、概念构造设计阶段、逻辑构造设计阶段、物理构造设计阶段、数据库施行阶段、数据库运行和维护阶段。6-7 试述采纳ER方法的数据库概念设计的过程。答:利用ER方法进展数据库的概念设计,可分成三步进展:首先设计部分ER形式,然后把各部分ER形式综合成一个全局ER形式,最终对全局ER形式进展优化,得到最终的ER形式,即概念形式。6-
25、8 逻辑设计的目的是什么?试述逻辑设计过程的输入和输出环境。答:逻辑设计的目的是把概念设计阶段设计好的根本ER图转换为及选用的具体机器上的DBMS所支持的数据模型相符合的逻辑构造(包括数据库形式和外形式)。逻辑设计过程中的输入信息有:独立于DBMS的概念形式,即概念设计阶段产生的全部部分和全局概念形式;处理需求,即需求分析阶段产生的业务活动分析结果;约束条件,即完好性、一样性、平安性要求及响应时间要求等;DBMS特性,即特定的DBMS特性,即特定的DBMS所支持的形式、子形式和程序语法的形式规则。逻辑设计过程输出的信息有:DBMS可处理的形式;子形式;应用程序设计指南;物理设计指南。6-15
26、设某商业集团数据库中有三个实体集。一是“公司”实体集,属性有公司编号、公司名、地址等;二是“仓库”实体集,属性有仓库编号、仓库名、地址等;三是“职工”实体集,属性有职工编号、姓名、性别等。 公司及仓库间存在“隶属”联络,每个公司管辖若干仓库,每个仓库只能属于一个公司管辖; 仓库及职工间存在“聘用”联络,每个仓库可聘用多个职工,每个职工只能在一个仓库工作,仓库聘用职工有聘期和工资。试画出ER图,并在图上注明属性、联络的类型。再转换成关系形式集,并指出每个关系形式的主键和外键。解:ER图及属性、联络图如下:N1隶属聘用仓库编号仓库仓库名地址聘期工资N1公司编号公司名地址公司职工编号职工性别姓名将E
27、R图转换成为关系形式集为:公司(公司编号,公司名,地址)仓库(仓库编号,仓库名,地址,公司编号)职工(职工编号,姓名,性别,仓库编号,聘期,工资)6-16 设某商业集团数据库中有三个实体集。一是“商品”实体集,属性有商品号、商品名、规格、单价等;二是“商店”实体集,属性有商店号、商店名、地址等;三是“供给商”实体集,属性有供给商编号、供给商名、地址等。 供给商及商品间存在“供给”联络,每个供给商可供给多种商品,每种商品可向多个供给商订购,供给商供给每种商品有月供给量;商店及商品间存在“销售”联络,每个商店可销售多种商品,每种商品可在多个商店销售,商店销售商品有月安排数。试画出ER图,并在图上注
28、明属性、联络的类型。再转换成关系形式集,并指出每个关系形式的主键和外键。解:ER图及属性、联络图为:MNM供给销售月安排数商品号单价商品商品名规格供给商名供给商编号供给商地址商店商店号地址商店名月供给量N这个ER图转换的关系形式如下:商品(商品号,商品名,规格,单价)供给商(供给商编号,供给商名,地址)商店(商店号,商店名,地址)供给(商品号,供给商编号,月供给量)销售(商品号,商店号,月安排数)6-18 假设某超市公司要设计一个数据库系统来管理该公司的业务信息。该超市公司的业务管理规则如下: 该超市公司有若干仓库,若干连锁商店,供给若干商品。 每个商店有一个经理和若干收银员,每个收银员只在一
29、个商店工作。 每个商店销售多种商品,每种商品可在不同的商店销售。 每个商品编号只有一个商品名称,但不同的商品编号可以有一样的商品名称。每种商品可以有多种销售价格。 超市公司的业务员负责商品的进货业务。试按上述规则设计ER模型。解:仓库N进货发货M商品库存MPNN业务员M具有销售价格1NP1N收银员经理1商店拥有主管1销售MN习题77-1 名词说明事务:事务是构成单一逻辑工作单元的操作集合。X锁:事务T对某数据加了X锁后,其他事务要等T解除X锁后,才能对这个数据进展封锁。PX协议:只有获准X锁的事务,才能修改数据,否则这个事务进入等待状态。PXC协议:PX协议再加上一条规则:“X锁必需保存到事务
30、终点才能解除”。S锁:事务T对某数据加了S锁后,仍允许其他事务再对该数据加S锁,但在对该数据的全部S锁都解除之前决不允许任何事务对该数据加X锁。PS协议:只有获准X锁的事务,才能修改数据,否则这个事务进入等待状态。PSC协议:PX协议再加上一条规则:“X锁必需保存到事务终点才能解除”。活锁:系统可能使某个事务恒久处于等待状态,得不到封锁的时机,这种现象称为“活锁”。饿死:若干事务连绵不断地对某数据实现加S锁和释放S锁的操作,那么若有一个事务欲对该数据加X锁,将恒久轮不上封锁的时机。这种现象称为“饿死”。死锁:若干事务都处于等待状态,互相等待对方解除封锁,结果造成这些事务都无法接着执行,这种现象
31、称为系统进入了“死锁”状态。串行调度:多个事务依次执行,称为事务的串行调度。并发调度:利用分时的方法,同时处理多个事务,则称为事务的并发调度。可串行化调度:假如一个并发调度的执行结果及某一串行调度的执行结果等价,那么这个并发调度称为“可串行化的调度”。两段封锁协议:事务分成两个阶段,前一阶段只能申请封锁,后一阶段只能释放封锁,这一规则称为事务的两段封锁协议。7-6 “检查点技术”的主要思想是什么?COMMIT语句及检查点时刻的操作如何协调?答:“检查点机制”的主要思想是在检查点时刻才真正做到把对DB的修改写到磁盘。在DB复原时,只有那些在最终一个检查点到故障点之间还在执行的事务才须要复原。事务
32、在COMMIT时,事务对DB的更新已提交,但对DB的更新可能还留在内存的缓冲区,在检查点时刻才真正写到磁盘。因此事务的真正完毕是在COMMIT后还要加上遇到检查点时刻。7-7 什么是“运行记录优先原则”?其作用是什么?答:写一个修改到DB中和写一个表示这个修改的登记记录到日志文件中是两个不同的操作,后者比前者重要,后者应先做。这就是运行记录优先原则。其作用是保证DBS具有可复原性。7-8 试叙述“串行调度”及“可串行化调度”的区分?答:假如多个事务依次执行,则称事务串行调度。假如利用分时的方法处理多个事务,则称为事务的并发调度。假如一个并发调度的结果及某一串行调度执行结果等价,则称这个并发调度是可串行化调度。7-9 试叙述数据库镜像的优缺点?答:数据库镜像的优点:一旦出现介质故障,可由镜像磁盘接着供给运用,同时DBMS自动利用镜像磁盘数据进展数据库的复原,不须要关闭系统和重装数据库副本。数据库镜像的缺点:由于数据库镜像是通过复制数据实现的,频繁地复制数据自然会降低系统运行效率。