数据库系统习题解答.docx
《数据库系统习题解答.docx》由会员分享,可在线阅读,更多相关《数据库系统习题解答.docx(16页珍藏版)》请在冰豆网上搜索。
数据库系统习题解答
一、
1、试述数据、数据库、数据库管理系统、数据库系统的概念?
答:
(l)数据(Data):
描述事物的符号记录称为数据。
数据的种类有数字、文字、图形、图像、声音、正文等。
数据与其语义是不可分的。
(2)数据库(DataBase,简称DB):
数据库是长期储存在计算机内的、有组织的、可共享的数据集合。
数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
(3)数据库系统(DataBaseSytem,简称DBS):
数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。
(4)数据库管理系统(DataBaseManagementsytem,简称DBMs):
数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。
DBMS的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。
2、数据模型的三要素是什么,请分别描述?
(l)数据结构:
是所研究的对象类型的集合,是对系统静态特性的描述。
(2)数据操作:
是指对数据库中各种对象(型)的实例(值)允许进行的操作的集合,包括操作及有关的操作规则,是对系统动态特性的描述。
(3)数据的约束条件:
是一组完整性规则的集合。
完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。
3、什么是概念模型,E-R模型?
概念模型也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。
E-R模型是直接从现实世界中抽象出实体类型及实体间的联系,是对现实世界的一种抽象,它的主要成分是实体、联系和属性。
用菱形表示实体间的联系
4、最常用的数据模型有哪些,请分别描述?
非关系模型(层次模型、网状模型)
层次模型用树形结构来表示各类实体以及实体间的联系
网状数据库系统采用网状模型作为数据的组织方式
关系模型
由关系数据结构、关系操作集合和关系完整性约束三部分组成。
在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。
面向对象模型
一种新兴的数据模型,它采用面向对象的方法来设计数据库。
面向对象的数据库存储对象是以对象为单位,每个对象包含对象的属性和方法,具有类和继承等特点。
对象关系模型
5、数据库系统三级模式结构是什么,请分别描述?
(1)模式模式也称逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
模式实际上是数据库数据在逻辑级上的视图。
一个数据库只有一个模式。
定义模式时不仅要定义数据的逻辑结构,而且要定义数据之间的联系,定义与数据有关的安全性、完整性要求。
(2)外模式外模式也称用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
外模式通常是模式的子集。
一个数据库可以有多个外模式。
应用程序都是和外模式打交道的。
外模式是保证数据库安全性的一个有力措施。
每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据对他们是不可见的。
(3)内模式内模式也称存储模式,一个数据库只有一个内模式。
它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。
例如,记录的存储方式是顺序结构存储还是B树结构存储;索引按什么方式组织;数据是否压缩,是否加密;数据的存储记录结构有何规定等。
6、试述数据库系统的组成。
数据库
数据库管理系统(及其开发工具)
应用系统
数据库管理员
二、
1、关系的三类完整性约束是什么,分别描述一下?
实体完整性和参照完整性:
关系模型必须满足的完整性约束条件
若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元祖在F上的值必须为:
※或者取空值(F的每个属性值均为空值)
※或者等于S中某个元祖的主码值。
用户定义的完整性:
应用领域需要遵循的约束条件,体现了具体领域中的语义约束
是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。
2、试述等值连接与自然连接的区别和联系?
等值连接从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,
自然连接两个关系中进行比较的分量必须是相同的属性组
在结果中把重复的属性列去掉
自然连接是一种特殊的等值连接
3、关系代数的基本运算有哪些?
如何用这些基本运算来表示其他运算?
并、差、笛卡尔积、投影和选择5种运算为基本的运算。
即交、连接和除,均可以用这5种基本运算来表达。
三、
S表:
S(SNO,SNAME,STATUS,CITY);
建S表:
CREATETABLES(SnoC
(2)UNIQUE,SnameC(6),StatusC
(2),CityC(4));
对于P表:
P(PNO,PNAME,COLOR,WEIGHT);
建P表:
CREATETABLEP(PnoC
(2)UNIQUE,PnameC(6),COLORC
(2),WEIGHTINT);
对于J表:
J(JNO,JNAME,CITY);
建J表:
CREATETABLEJ(JnoC
(2)UNlQUE,JNAMEC(8),CITYC(4))
对于sPJ表:
sPJ(sNo,PNo,JNo,QTY);
建SPJ表:
SPJ(SNO,PNO,JNO,QTY)
CREATETABLESPJ(SnoC
(2),PnoC
(2),JNOC
(2),QTYINT))
工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成;
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。
1.用SQL语句建立4个表。
2.针对四个表试用SQL语言完成以下各项操作:
(1)找出所有供应商的姓名和所在城市。
SELECTSNAME,CITYFROMS
(2)找出所有零件的名称、颜色、重量。
SELECTPNAME,COLOR,WEIGHTFROMP
(3)找出使用供应商S1所供应零件的工程号码。
SELECTDISTJNOFROMSPJWHERESNO='S1'
(4)找出工程项目J2使用的各种零件的名称及其数量。
SELECTPNAME,QTYFROMSPJ,P
WHEREP.PNO=SPJ.PNOANDSPJ.JNO='J2'
(5)找出上海厂商供应的所有零件号码。
SELECTPNOFROMSPJ,SWHERES.SNO=SPJ.SNOANDCITY='上海'
(6)出使用上海产的零件的工程名称。
SELECTJNAMEFROMSPJ,S,J
WHERES.SNO=SPJ.SNOANDS.CITY='上海'ANDJ.JNO=SPJ.JNO
(7)找出没有使用天津产的零件的工程号码。
注意:
SELECTDISPJNOFROMSPJWHEREJNONOTIN(SELECTDISTJNOFROMSPJ,SWHERES.SNO=SPJ.SNOANDS.CITY='天津')适用于JNO是唯一或不唯一的情况.
注意:
SELECTDISTJNOFROMSPJ,SWHERES.SNO=SPJ.SNOANDS.CITY<>'天津'适用于JNO是唯一的情况
(8)把全部红色零件的颜色改成蓝色。
UPDATEPSETCOLOR='蓝'WHERECOLOR='红'
(9)由S5供给J4的零件P6改为由S3供应。
UPDATESPJSETSNO='S3'WHERESNO='S5'ANDJNO='J4'ANDPNO='P6'
(10)从供应商关系中删除供应商号是S2的记录,并从供应情况关系中删除相应的记录。
A、DELETEFROMSWHERESNO=’S2’
B、DELETEFROMSPJWHERESNO=‘S2’
(11)请将(S2,J6,P4,200)插入供应情况关系。
INSERTINTOSPJVALUES(‘S2’,‘J6’,‘P4’,200)
四、
1.什么是数据库的安全性?
答:
数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。
2.试述实现数据库安全性控制的常用方法和技术。
(l)用户标识和鉴别:
该方法由系统提供一定的方式让用户标识自己的名字或身份。
每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。
(2)存取控制:
通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未被授权的人员无法存取数据。
例如CZ级中的自主存取控制(DAC),Bl级中的强制存取控制(MAC)。
(3)视图机制:
为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。
(4)审计:
建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。
(5)数据加密:
对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容。
3.什么是数据库中的自主存取控制方法和强制存取控制方法?
自主存取控制方法:
定义各个用户对不同数据对象的存取权限。
当用户对数据库访问时首先检查用户的存取权限。
防止不合法用户对数据库的存取。
强制存取控制方法:
每一个数据对象被(强制地)标以一定的密级,每一个用户也被(强制地)授予某一个级别的许可证。
系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象。
4.什么是数据库的审计功能,为什么要提供审计功能?
审计功能是指DBMS的审计模块在用户对数据库执行操作的同时把所有操作自动记录到系统的审计日志中。
因为任何系统的安全保护措施都不是完美无缺的,蓄意盗窃破坏数据的人总可能存在。
利用数据库的审计功能,DBA可以根据审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。
五、
1.什么是数据库的完整性?
数据库的完整性是指数据的正确性和相容性。
2.数据库的完整性概念与数据库的安全性概念有什么区别和联系?
数据的完整性和安全性是两个不同的概念,但是有一定的联系。
前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出(Garba:
eInGarba:
eout)所造成的无效操作和错误结果。
后者是保护数据库防止恶意的破坏和非法的存取。
也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。
3.假设有下面两个关系模式:
职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;部门(部门号,名称,经理名,电话),其中部门号为主码。
用SQL语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:
定义每个模式的主码;定义参照完整性;定义职工年龄不得超过60岁。
CREATETABLEDEPT
(DeptnoNUMBER
(2),
DeptnameVARCHAR(10),
ManagerVARCHAR(10),
PhoneNumberChar(12)
CONSTRAINTPK_SCRIMARYKEY(Deptno));
CREATETABLEEMP
(EmpnoNUMBER(4),
EnameVARCHAR(10),
AgeNUMBER
(2),
CONSTRAINTC1CHECK(Aage<=60),
JobVARCHAR(9),
SalNUMBER(7,2),
DeptnoNUMBER
(2),
CONSTRAINTFK_DEPTNO
FOREIGNKEY(Deptno)
REFFERENCESDEPT(Deptno));
4.关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,一般是如何分别进行处理的?
对于违反实体完整性和用户定义的完整性的操作一般都采用拒绝执行的方式进行处理。
而对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一些附加的操作,以保证数据库的正确性。
六、
1、理解并给出下列术语的定义:
函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、外码、全码(All一key)、1NF、2NF、3NF、BCNF、多值依赖、4NF。
定义1:
设R(U)是属性集U上的关系模式。
X,Y是属性集U的子集。
若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作XY。
(即只要X上的属性值相等,Y上的值一定相等。
)
术语和记号:
XY,但Y不是X的子集,则称XY是非平凡的函数依赖。
若不特别声明,总是讨论非平凡的函数依赖。
XY,但Y是X的子集,则称XY是平凡的函数依赖。
若XY,则X叫做决定因素(Determinant)。
若XY,YX,则记作XY。
若Y不函数依赖于X,则记作XY。
定义2:
在R(U)中,如果XY,并且对于X的任何一个真子集X’,都有X’Y,则称Y对X完全函数依赖
若XY,但Y不完全函数依赖于X,则称Y对X部分函数依赖
定义3:
若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式(1NF)。
定义4:
若关系模式R∈1NF,且每一个非主属性完全函数依赖于码,则关系模式R∈2NF。
(即1NF消除了非主属性对码的部分函数依赖则成为2NF)。
定义5:
关系模式R中若不存在这样的码X、属性组Y及非主属性Z(Z不是Y的子集)使得XY,YX,YZ成立,则称R∈3NF。
定义6:
关系模式R∈1NF。
若XY且Y不是X的子集时,X必含有码,则R∈BCNF。
定义7:
关系模式R∈1NF,如果对于R的每个非平凡多值依赖XY(Y不是X的子集,Z=U-X-Y不为空),X都含有码,则称R∈4NF。
2、试举出3个多值依赖的实例。
(1)学生(学号,课程号,教师工号),一个学生可选一组课程学习,一个学生也可有多个教师来教授,由于一个课程可由多个教师来讲授,而且一个教师可以讲授多们课程,所以存
在如下两个多值依赖:
学号课程号和学号教师工号。
(2)图书馆中的图书(图书号,图书索引号,借阅读者),一种图书可有多个副本,由索引
号标识,一种图书可由多个读者借阅。
所以存在多值依赖:
图书号图书索引号和图书号借阅读者。
(3)上课(学号,教师工号,教室),一个学生可由多个教师来教,一个学生可在多教室上
课,而且一个教师可在多个教室上课,一个教室可由多个教师上课。
所以存在如下多值依赖:
学号教师工号和学号教室。
七、
1.试述数据库设计过程各个阶段上的设计描述。
各阶段的设计要点如下:
(l)需求分析:
准确了解与分析用户需求(包括数据与处理)。
(2)概念结构设计:
通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。
(3)逻辑结构设计:
将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。
(4)数据库物理设计:
为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
(5)数据库实施:
设计人员运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
(6)数据库运行和维护:
在数据库系统运行过程中对其进行评价、调整与修改。
2.数据字典的内容和作用是什么?
答:
数据字典是系统中各类数据描述的集合。
数据字典的内容通常包括:
(l)数据项;
(2)数据结构;(3)数据流;(4)数据存储;(5)处理过程五个部分。
其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构。
数据字典通过对数据项和数据结构的定义来描述数据流和数据存储的逻辑内容。
数据字典的作用:
数据字典是关于数据库中数据的描述,在需求分析阶段建立,是下一步进行概念设计的基础,并在数据库设计过程中不断修改、充实、完盖。
3.什么是数据库的逻辑结构设计?
试述其设计步骤。
数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本E一R图转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。
设计步骤为:
(l)将概念结构转换为一般的关系、网状、层次模型;
(2)将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;(3)对数据模型进行优化。
4.试述数据库物理设计的内容和步骤。
数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于给定的DBMS。
为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构,就是数据库的物理设计的主要内容。
数据库的物理设计步骤通常分为两步:
(l)确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;
(2)对物理结构进行评价,评价的重点是时间效率和空间效率。
5.请设计一个图书馆数据库,此数据库中对每个借阅者保存读者记录,包括:
读者号,姓名,地址,性别,年龄,单位。
对每本书存有:
书号,书名,作者,出版社。
对每本被借出的书存有读者号、借出日期和应还日期。
要求:
给出E一R图,再将其转换为关系模型。
E一R图为:
关系模型为:
读者(读者号,姓名,地址,性别,单位)书(书号,书名,作者,出版社)借书(读者号,书号,借出日期,年龄应还日期)
八、
1、什么是游标?
是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。
每个游标区都有一个名字。
用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理。
2、什么是存储过程,使用存储过程的好处?
由PL/SQL(ProceduralLanguage/SQL)语句书写的过程,经编译和优化后存储在数据库服务器中,使用时只要调用即可。
1.运行效率高2.降低了客户机和服务器之间的通信量3.方便实施企业规则
九、
1.试述查询优化在关系数据库系统中的重要性和可能性。
重要性:
关系系统的查询优化既是RDBMS实现的关键技术又是关系系统的优点所在。
它减轻了用户选择存取路径的负担。
用户只要提出“干什么”,不必指出“怎么干”。
查询优化的优点不仅在于用户不必考虑如何最好地表达查询以获得较好的效率,而且在于系统可以比用户程序的“优化’夕做得更好。
可能性:
这是因为:
(l)优化器可以从数据字典中获取许多统计信息,例如关系中的元组数、关系中每个属性值的分布情况、这些属性上是否有索引、是什么索引(B+树索引还是HASH索引或惟一索引或组合索引)等。
优化器可以根据这些信息选择有效的执行计划,而用户程序则难以获得这些信息。
(2)如果数据库的物理统计信息改变了,系统可以自动对查询进行重新优化以选择相适应的执行计划。
在非关系系统中必须重写程序,而重写程序在实际应用中往往是不太可能的。
(3)优化器可以考虑数十甚至数百种不同的执行计划,从中选出较优的一个,而程序员一般只能考虑有限的几种可能性。
(4)优化器中包括了很多复杂的优化技术,这些优化技术往往只有最好的程序员才能掌握。
系统的自动优化相当于使得所有人都拥有这些优化技术。
2.试述查询优化的一般步骤。
各个关系系统的优化方法不尽相同,大致的步骤可以归纳如下:
(l)把查询转换成某种内部表示,通常用的内部表示是语法树。
(2)把语法树转换成标准(优化)形式。
即利用优化算法,把原始的语法树转换成优化的形式。
(3)选择低层的存取路径。
(4)生成查询计划,选择代价最小的。
十、
1.试述事务的概念及事务的4个特性。
事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。
事务具有4个特性:
原子性(Atomicity)、一致性(consistency)、隔离性(Isolation)和持续性(Durability)。
这4个特性也简称为ACID特性。
原子性:
事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。
一致性:
事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。
隔离性:
一个事务的执行不能被其他事务干扰。
即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
持续性:
持续性也称永久性(Perfnanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。
接下来的其他操作或故障不应该对其执行结果有任何影响。
2.数据库运行中可能产生的故障有哪几类?
哪些故障影响事务的正常执行?
哪些故障破坏数据库数据?
数据库系统中可能发生各种各样的故障,大致可以分以下几类:
(1)事务内部的故障;
(2)系统故障;
(3)介质故障;
(4)计算机病毒。
事务故障、系统故障和介质故障影响事务的正常执行;介质故障和计算机病毒破坏数据库数据。
3.什么是日志文件?
为什么要设立日志文件?
(1)日志文件是用来记录事务对数据库的更新操作的文件。
(2)设立日志文件的目的是:
进行事务故障恢复;进行系统故障恢复;协助后备副本进行介质故障恢复。
4.登记日志文件时为什么必须先写日志文件,后写数据库?
把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。
有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。
如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了。
如果先写日志,但没有修改数据库,在恢复时只不过是多执行一次UNDO操作,并不会影响数据库的正确性。
所以一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改。
5.具有检查点的恢复技术有什么优点?
试举一个具体的例子加以说明。
利用日志技术进行数据库恢复时,恢复子系统必须搜索日志,确定哪些事务需要REDO,哪些事务需要uNDO。
一般来说,需要检查所有日志记录。
这样做有两个问题:
一是搜索整个日志将耗费大量的时间;二是很多需要REDO处理的事务实际上已经将它们的更新操作结果写到数据库中了,恢复子系统又重新执行了这些操作,浪费了大量时间。
检查点技术就是为了解决这些问题。
在采用检查点技术之前,恢复时需要从头扫描日志文件,而利用检查点技术只需要从T。
开始扫描日志,这就缩短了扫描日志的时间。
事务Tl的更新操作实际上已经写到数据库中了