数据库第一二三章课后习题复习资料.docx
《数据库第一二三章课后习题复习资料.docx》由会员分享,可在线阅读,更多相关《数据库第一二三章课后习题复习资料.docx(19页珍藏版)》请在冰豆网上搜索。
数据库第一二三章课后习题复习资料
第一章
习题
1.试述数据、数据库、数据库系统、数据库管理系统的概念。
答:
(1)数据(Data):
描述事物的符号记录称为数据。
数据的种类有数字、文字、图形、图像、声音、正文等。
数据与其语义是不可分的。
(2)数据库(D砒aBase,简称DB):
数据库是长期储存在计算机内的、有组织的、可共享的数据集合。
数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
(3)数据库系统(DataBaseSytem,简称DBS):
数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。
(4)数据库管理系统(DataBaseManagementSytem,简称DBMS):
数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。
DBMS的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。
2.试述数据管理技术的发展过程。
答:
从数据管理的角度看,数据库技术到目前共经历了人工管理阶段、文件系统阶段和数据库系统阶段。
人工管理阶段数据管理特点:
数据不保存,没有对数据进行管理的软件系统,没有文件的概念,数据不具有独立性。
文件系统阶段数据管理特点:
数据可以长期保存,由文件系统管理数据,文件的形式已经多样化,数据具有一定的独立性。
数据库系统阶段数据管理特点:
采用复杂的结构化的数据模型,较高的数据独立性,最低的冗余度,数据控制功能
3.文件系统与数据库系统有什么区别和联系?
答:
文件系统和数据库系统之间的区别。
(1)文件系统用文件将数据长期保存在外存上,数据库系统用数据库统一存储数据;
(2)文件系统中的程序和数据有一定的联系,数据库系统中的程序和数据分离;
(3)文件系统用操作系统中的存取方法对数据进行管理,数据库系统用DBMS统一管理和控制数据;
(4)文件系统实现以文件为单位的数据共享,数据库系统实现以记录和字段为单位的数据共享。
文件系统和数据库系统之间的联系:
(1)均为数据组织的管理技术;
(2)均由数据管理软件管理数据,程序与数据之间用存取方法进行转换;
(3)数据库系统是在文件系统的基础上发展而来的。
4.数据独立性包括哪两个方面,含义分别是什么?
答:
数据独立性分为数据逻辑独立性与数据物理独立性两个方面。
1)数据逻辑独立性当模式改变时,由数据库管理员对各个外模式/模式映象作相应改变,可以使外模式保持不变。
应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称为数据逻辑独立性。
2)数据物理独立性当数据库的存储结构等内模式改变了,由数据库管理员对模式/内模式映象作相应改变,可以使模式保持不变,从而应用程序也不必改变。
保证了数据与程序的物理独立性,简称为数据物理独立性。
5.试述数据库系统的特点。
答:
(1)、数据结构化数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。
(2)数据的共享性高,冗余度低,易扩充数据库的数据不再面向某个应用而是面向整个系统,
(3)数据独立性高数据独立性包括数据的物理独立性和数据的逻辑独立性。
(4)数据由DBMS统一管理和控制数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据。
6.试述数据模型的概念、作用和组成部分。
答:
数据模型是按计算机系统的观点对数据建模。
包括数据结构,数据操作,数据的约束条件。
7.试述实体、实体型、实体集、属性、码、域的概念。
答:
实体:
客观存在并可以相互区分的事物叫实体。
实体型:
具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体称为实体型。
实体集:
同型实体的集合称为实体集。
属性:
实体所具有的某一特性,一个实体可由若干个属性来刻画。
码:
唯一标识实体的属性集称为码。
域:
属性的取值范围。
8.分别举出实体型之间具有一对一、一对多、多对多联系的例子。
答:
一对一:
班级与班长之间的联系:
一个班级只有一个正班长
一个班长只在一个班中任职
一对多:
班级与学生之间的联系:
一个班级中有若干名学生,
每个学生只在一个班级中学习
多对多:
课程与学生之间的联系:
一门课程同时有若干个学生选修
一个学生可以同时选修多门课程
9.学校有若干个系,每个系有若干班级和教研室,每个教研室有若干教员,其中有的教授和副教授每人各带若干研究生。
每个班有若干学生,每个学生选修若干课程,每门课程可由若干学生选修。
用E-R图画出该学校的概念模型。
10。
举出一个层次模型的实例,画出它的层次结构,给出它的一个数据库记录。
A1
B1
C3
C8
C10
B2
C12
D2
D3
D4
C14
11.教师与课程之间的联系是多对多联系,试用层次模型表示之。
12.举出一个网状模型的实例,要求三个记录型之间有多对多联系。
它和三个记录型两两之间的三个多对多联系等价吗?
为什么?
13.举出一个关系模型的实例。
商店(商店编号,商店名,地址)
职工(职工编号,姓名,性别,业绩,商店编号,聘期,月薪)
商品(商品号,商品名,规格,单价)
销售(商店编号,商品号,月销售量)
14.试比较层次模型、网状模型和关系模型的优点与缺点。
层次模型优点:
结构清晰、固定结构性能好、完整性约束好。
缺点:
执行力差,插入、删除时较复杂;与现实世界有出入;要查子女必须先查双亲,趋于程式化。
网状模型优点:
更符合现实世界,但越不符合PC世界;具有良好性能,存取效率高。
缺点:
结构复杂,不利于用户掌握;DDL、DML复杂,用户不易掌握使用。
关系模型优点:
建立在矩阵基础上;概念单一,用户易懂易用;具有更高的数据独立性、更好的安全保密性。
缺点:
查询效率不比格式化数据模型;海量数据的处理很难。
15.试述数据库系统的三级模式结构,这种结构的优点是什么?
答:
数据库系统的三级模式结构由外模式、模式和内模式组成。
外模式,亦称子模式或用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
模式,亦称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
模式描述的是数据的全局逻辑结构,外模式涉及的是数据的局部逻辑结构,通常是模式的子集。
内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描述。
数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑抽象地处理数据,而不必关心数据在计算机中的表示和存储。
为了能够在内部实现这三个抽象层次的联系和转换,数据库系统在这三级模式之间提供了两层映像:
外模式/模式映像和模式/内模式映像,正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
16.从用户角度看,数据库系统都有哪些体系结构?
答:
从用户角度看,数据库系统的结构分为单用户结构、主从式结构、分布式结构、客户/服务器、浏览器/应用服务器/数据库服务器多层结构。
这是数据库外部体系结构。
物理存储结构、逻辑存储结构、内存结构和实例进程结构。
这是内部体系结构。
17.数据库管理系统有哪些主要功能?
答:
数据库定义功能;数据存取功能;数据库运行管理;数据库的建立和维护功能。
18.数据库管理系统通常由哪几部分组成?
答:
数据库系统DBS(DataBaseSystem,简称DBS)通常由软件、数据库和数据管理员组成。
其软件主要包括操作系统、各种宿主语言、实用程序以及数据库管理系统。
数据库由数据库管理系统统一管理,数据的插入、修改和检索均要通过数据库管理系统进行。
数据管理员负责创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。
数据库管理员一般是由业务水平较高、资历较深的人员担任。
19.数据库管理系统的工作过程是什么?
答:
DBMS首先进行语法检查,而后找到对应的外模式,再时进行权限检查。
DBMS根据找到的模式,利用概念模式/外模式映像,将其映像到概念模式,确定概念模式应该读入哪些数据。
DBMS利用内模式/概念模式映像,将概念模式映像到内模式,确定数据库应读入哪些物理记录及其具体地址
DBMS根据地址信息向操作系统发出读取记录的命令
操作系统执行读取数据的命令,并将数据从硬盘读系统缓冲区,将执行结果通知DBMS
DBMS将系统缓冲区的数据转换成用户所需的记录格式
DBMS将数据记录从系统缓冲区传送到用户工作区
20.数据库管理系统常用的实现方法有哪些?
答:
一般有四类实现DBMS的方法:
DBMS与应用程序融合在一起(称为N方案)、一个DBMS进程对应一个用户进程(成为2N方案)、多个DBMS进程对应多个用户进程(称为M+N方案)、一个DBMS进程对应所有用户进程(成为N+1方案)。
21.试述数据库设计的步骤。
答:
按照规范化设计方法,从数据库应用系统设计和开发的全过程来考虑,将数据库及其应用软件系统的生命周期的三个时期又可以细分为六个阶段:
需求分析、概念结构设计、逻辑结构设计、物理结构设计、实施及运行维护。
22.DBA的主要职责是什么?
答:
数据库管理员(DBA)负责全面和控制数据库系统,其主要职责有;设计与定义数据库系统;帮助最终用户使用数据库系统;监督与控制数据库系统的使用和运行;转储与恢复数据库;改进和重组数据库系统,调优数据库系统的性能;重构数据库。
、
第二章
习题
1.常用的关系数据语言有哪几种?
答:
基于关系代数的语言、基于谓词演算的语言、结构化查询语言。
2.解释下列概念,并说明它们之间的联系与区别;
(1)码,候选码,外部码
(2)笛卡尔、关系、元组、属性、域
(3)关系模式、关系模型、关系数据库
答:
1)、码:
唯一标识实体的属性组,码可能不止一个候选码:
同类关系中能够唯一标识每个元组的属性组,在这些关系中,这个属性组上的值每行都不同外部码:
设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码,并称基本关系R为参照关系,基本关系S为被参照关系或目标关,外码不一定与相应的主码同名
2)、笛卡尔,关系,元组,属性,域?
笛卡尔积:
给定一组域D1,D2,…,Dn,这些域中可以有相同的。
D1,D2,…,Dn的
笛卡尔积为:
D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}所有域的所有取值的一个组合不能重复笛卡尔积可以表示为一个二维表
关系:
D1×D2ׄ×Dn的子集叫做在域D1,D2,„,Dn上的关系,用R(D1,D2,„,Dn)表示。
这里R是关系的名字,n是关系的目或度。
关系中的每个元素是关系中的元组,通常用t表示。
当n=1时,称该关系为单元关系当n=2时,称该关系为二元关系关系是n个域的笛卡尔积的子集,也是一个二维表
元组:
关系中的每个元素是关系中的元组属性:
实体具有的某一方面的特性,
域:
一组具有相同数据类型的值的集合
关系是一张二维表,表的每行对应一个元组,表的每列对应一个域。
由于域可以相同,为了加以区分,给每列取一个名字,称为属性。
n目关系必有n个属性。
3)、关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。
(1)关系:
一个关系对应通常说的一张表
(2)属性:
表中的一列即为一个属性;
(3)域:
属性的取值范围;
(4)元组:
表中的一行即为一个元组;
(5)主码:
表中的某个属性组,它可以唯一确定一个元祖;
(6)分量:
元组中的一个属性值;
(7)关系模式:
对关系的描述,一般表示为关系名(属性1,属性2,...,属性n)
3.关系模型的完整性规则有哪几类?
答:
关系模型提供了3类完整性规则:
实体完整性、参照完整性、用户定义的完整性规则。
其中实体完整性规则和参照完整性规则是关系模型必须满足的完整性约束条件,成为关系完整性规则。
实体完整性规则:
作为主键的属性或属性组的值在关系中必须是唯一的和确定的。
参照完整性规则:
如果表中存在外键,则外键的值必须与主表中相应的键值相同,或者外键的值为空。
上述两类完整性规则是关系模型必须满足的规则,由系统自动支持。
用户定义的完整性规则是针对某一具体数据的约束条件,由应用环境决定。
它反映某一具体应用所涉及的数据必须满足的语义要求。
4.在关系模型的参照完整性规则中,为什么外部码属性的值也可以为空?
什么情况下才可以为空?
答:
关系模型的完整性规则是对关系的某种约束条件。
关系模型中有三类完整性约束:
实体完整性,参照完整性和用户定义完整性。
参照完整性规则中,外码或者取空值(其中每个属性值均为空值),或者等于S中某个元组的主码值,因此外码属性值可以为空。
若属性F本身不是主属性,则可以取空值,否则不能取空值。
5.等值连接与自然连接的区别是什么?
答:
连接运算符是“=”的连接运算称为等值连接。
它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组
自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉
6.关系代数的基本运算有哪些?
如何用这些基本运算来表示其他的关系基本运算?
答:
并、差、笛卡尔积、投影和选择5种运算为基本的运算。
其他3种运算,即交、连接和除,均可以用这5种基本运算来表达。
7.设有下列四个关系模式:
S(SNO,SNAME,CITY);
P(PNO,PNAME,COLOR,WEIGHT);
J(JNO,JNAME,CITY);
SPJ(SNO,PNO,JNO,QTY);
试分别用关系代数、ALPHA语言、QBE语言完成下列操作:
(1)求供应工程J1零件的供应商号码SNO
SELECTDISTINCTSNO
FROMSPJ
WHEREJNO='J1'
(2)求供应工程J1零件P1的供应商号码SNO
SELECTDISTINCTSNO
FROMSPJ
WHEREJNO='J1'ANDPNO='P1';
(3)求供应工程J1零件为红色的供应商号码SNO
selectdistinctsno
fromp,spj
wherejno=“J1”andcolor=“红”andp.pno=spj.pno;
或者:
SELECTSNO
FROMSPJ,P
WHEREJNO=‘J1’
ANDSPJ.PNO=P.PNO
ANDCOLOR=‘红’;
以上二选一即可。
(4)求没有使用天津供应商生产的红色零件的工程项目代码JNO
selectjno
fromj
wherejnonotin
(selectjno
froms,p,spj
wherecity=“天津”andcolor=“红”and
spj.pno=p.pnoandspj.sno=s.sno);
或者:
SELECTJNO
FROMJ
WHERENOTEXISTS
(SELECTJNO
FROMSPJ
WHERESPJ.JNO=J.JNO
ANDSNOIN
(SELECTSNO
FROMS
WHERECITY=‘天津’)
ANDPNOIN
(SELECTPNO
FROMP
WHERECOLOR=‘红’));
以上二选一。
(5)求至少用了供应商S1所供应的全部零件的工程项目代码JNO
SELECTDISTINCTJNO
FROMSPJSPJ1
WHERENOTEXISTS
(SELECTSNO
FROMSPJSPJ2
WHERESNO=‘S1’
ANDNOTEXISTS
(SELECTSNO
FROMSPJSPJ3
WHERESPJ3.JNO=SPJ1.JNO
ANDSPJ3.PNO=SPJ2.PNO));
8.关系系统可以分为哪几类?
各类关系系统的定义是什么?
关系系统的定义
一个系统可以定义为关系系统,当且仅当它支持如下条件时才可以:
(1)关系数据结构,也就是说,从用户观点看,数据库是由表构成的,并且系统中只有表这种结构。
(2)选择、投影和(自然)连接运算。
对这些运算不要求用户定义任何事物理存取路径。
关系系统可分为以下几类:
(1)表式系统
这类系统仅支持关系数据结构(即表),不支持集合级的操作。
表式系统实际上不能算关系系统。
倒排表列(Invertedlist)系统属于这一类。
(2)(最小)关系系统
这类关系是上面定义的关系系统,它支持关系数据结构和选择、投影、连接三种关系操作。
许多微机关系系统如FoxBASE,FoxPro等属于这一类。
(3)关系完备的系统
这类系统支持关系数据结构和所有的关系代数操作(功能上与关系代数等价)。
目前许多大中型关系系统,如DB2、ORACLE等属于这一类。
(4)全关系系统
这类系统支持关系模型的所有特征,特别是数据结构中域的概念、实体完整性和参照完整性。
虽然DB2、ORACLE等系统已经接近这个目标,但到目前为止尚没有一个系统是全关系系统。
第三章
习题
1.SQL语言有什么特点?
答:
SQL语言集数据查询(datacontrol)、数据操纵(datamanipulation)、数据定义(datadefinition)和数据控制(datacontrol)功能于一体,充分体现了关系数据语言的特点和优点。
其主要特点包括:
1.综合统一2.高度非过程化3.面向集合的操作方式4.以同一种语法结构提供两种使用方式5.语言简洁,易学易用
2.用SQL语言建立第2章第7题中的四个表。
答:
表1:
其中供应商表S由供应商号(SNO)、供应商姓名(SNAME)、供应商所在城市(CITY)组成,记录各个供应商的情况。
(P64)
解:
CREATETABLES(SNOCHAR
(2)UNIQUE,SNAMECHAR(6),CITYCHAR(4));
表2:
零件表P由零件号(PNO)、零件名称(PNAME)、零件颜色(COLOR)、零件重量(WEIGHT)组成,记录各种零件的情况。
解:
CREATETABLEP(PNOCHAR
(2)UNIQUE,PNAMECHAR(6),COLORCHAR
(2),WEIGHTINT
(2));
表3:
工程向目表J由项目号(JNO)、项目名(JNAME)、项目所在城市(CITY)组成,记录各个工程项目的情况。
解:
CREATETABLEJ(JNOCHAR
(2)UNIQUE,JNAMECHAR(8),CITYCHAR(4));
表4:
供应情况表SPJ由供应商号(SNO)、零件号(PNO)、项目号(JNO)、供应数量(QTY)组成,记录各供应商供应各种零件给各工程项目的数量。
解:
CRATETABLESPJ(SNOCHAR
(2),PNOCHAR
(2),JNOCHAR
(2),QTYNVARCHAR
(2));
4.针对第2题创建的表,用SQL语言进行下列各项操作:
(1)统计每种零件的供应总量;
selectpno,sum(qty)
fromspj
groupbypno
(2)求零件供应总量在1000种以上的供应商名字;
selects.sname
froms
wheres.snoin
(
selectspj.sno
fromspj
groupbyspj.snohavingsum(qty)>=1000
);
(3)在S表中插入一条供应商信息:
(S6,华天,深圳);
insertintosvalues('S6','华天','深圳');
(4)把全部红色零件的颜色改为粉红色;
altertablepaltercolumncolorchar(6);
updatep
setcolor='粉红'
wherecolor='红';
(5)将S2供应给J1的零件P1改为由P2供给;
updatespj
setpno='P2'
wheresno='S2'andjno='J1'andpno='P1';
(6)删去全部蓝色零件及相应的SPJ记录。
delete
fromspj
wherepnoin
(
selectpno
fromp
wherecolor='蓝');
以上连敲否则每题末尾加");"
5.视图有什么优点?
视图的优点主要表现在以下几点:
(1)视点集中:
试图集中即是使用户关心它感兴趣的某些特定数据和他们所负责的特定任务。
这样通过只允许用户看到视图中所定义的数据而不是试图引用表中的数据而提高了数据的安全性。
(2)简化操作:
视图大大简化了用户对数据的操作。
因为在定义视图时,若试图本身就是一个复杂查询的结果集,这样在每一次执行相同的查询时,不必重新写这些复杂的查询语句,只要一条简单的查询视图语句即可。
可见视图向用户隐藏了表与表之间的复杂的连接操作。
(3)定制数据:
视图能够实现让不同的用户以不同的方式看到不同或相同的数据集。
因此,当有许多不同水平的用户共用同一数据库时,这显得极为重要。
(4)合并分割数据:
在有些情况下,由于表中数据量太大,故在表的设计时常将表进行水平分割或垂直分割,但表的结构的变化却对应用程序产生不良的影响。
如果使用视图就可以重新保持原有的结构关系,从而使外模式保持不变,原有的应用程序仍可以通过视图重载数据。
(5)安全性:
视图可以作为一种安全机制。
通过视图用户只能查看和修改他们所能看到的数据。
其它数据库或表既不可见也不可以访问。
如果某一用户想要访问视图的结果集,必须授予其访问权限。
视图所引用表的访问权限与视图权限的设置互不影响。
6.在上面各表的基础上创建下列视图VSJ,它记录了给“三建”工程项目的供应灵感见的情况,包括供应商号、零件号和零件数量;并对该视图查询S1供应商的供货情况。
创建VSJ视图:
CREATEVIEWSANJAN_SPJ
AS
SELECTSNO,PNO,QTY
FROMSPJ,J
WHERESOJ.JNO=J.JNOANDJ.JNAME='三建'
查询三件工程使用的各种零件号和零件数量:
SELECTPNO,SUM(QTY)SELECTPNO,QTY
FROMSANJIAN_SPJFROMSANJIAN_SPJ
GROUPBYPNO;
查询S1供应商的供货情况:
SELECT*
FROMSANJIAN_SPJ
WHERESNO='S1'
7.针对第2题创建的表,用SQL语言进行下列各项操作:
(1)将S,P,J和SPJ表的所有权限授予用户张成。
GRANTALLPRIVILEGES
ONTABLES,P,J,SPJ
TO张成
(2)将SPJ表的SELECT权和QT