《数据库原理及应用Oracle版》习题答案.docx
- 文档编号:11146128
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:25
- 大小:277KB
《数据库原理及应用Oracle版》习题答案.docx
《《数据库原理及应用Oracle版》习题答案.docx》由会员分享,可在线阅读,更多相关《《数据库原理及应用Oracle版》习题答案.docx(25页珍藏版)》请在冰点文库上搜索。
《数据库原理及应用Oracle版》习题答案
《数据库原理及应用(Oracle版)》-习题答案
习题1
1.1选择题
(1)C
(2)B(3)A(4)B
1.2名词解释
关系:
一个关系就是一张二维表格。
无组(记录):
表中的行称为元组或记录,一行为一个元组或一条记录。
属性(字段):
表中的列称为属性或字段,给每一个属性起一个名称为属性名或字段名。
域:
域是属性的取值范围,即不同元组对同一个属性的值所限定的范围。
候选码:
若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。
主码:
用户选作元组标识的候选码称为主码。
外码:
如果一个关系中的属性或属性组并非该关系的码,但它们是另外一个关系的码,则称其为该关系的外码。
1.2什么是数据,什么是信息,二者之间有什么关系?
信息:
信息是现实世界中各种事物(包括有生命的和无生命的、有形的和无形的)的存在方式、运动形态,以及它们之间的相互联系等诸多要素在人脑中的反映,是通过人脑抽象后形成的概念。
数据:
数据(Data)是信息的载体,是信息的一种符号化表示。
数据与信息的关系:
信息和数据既有联系又有区别。
数据是承载信息的物理符号或称之为载体,而信息是数据的内涵。
信息是抽象的,同一信息可以有不同的数据表示方式。
数据可以表示信息,但不是任何数据都能表示信息,同一数据也可以有不同的解释。
1.4试述数据库、数据库系统、数据库管理系统这几个概念。
数据库(Database,简称DB),是为了满足对数据管理和应用的需要,按照一定的数据模型存储在计算机中的、能为多个用户所共享的、与应用程序彼此独立的、相互关联的数据集合。
数据库系统:
能够对外提供数据服务的所有软件和硬件的总和。
数据库管理系统:
提供数据管理的软件系统。
1.5试述数据模型的概念、作用及三要素。
数据模型表示数据与数据之间联系的方法,数据模型就是对现实世界的数据描述。
显然,在计算机中,人们经常要考虑数据的存储、数据的操作、操作的效率与性能以及数据可靠性等因素。
因此,目前定义数据模型时,通常要从3个方面来考虑,包括:
数据结构、数据操作、完整性约束。
三要素:
数据结构、数据操作、完整性约束。
1.6试述数据库系统的组成。
数据库管理系统由数据库、数据库管理系统、数据库运行环境、数据库管理员和数据库用户组成。
习题2
2.1选择题
(1)A
(2)B(3)B(4)B(5)B(6)C(7)B
2.2为什么关系中的元组没有先后顺序,且不允许重复?
因为关系代数是定义在传统集合论的基础上的,而集合中的元素是没有先后顺序且不通话重复的。
2.3 连接、等值连接和自然连接有什么样的区别?
连接(Join)是从两个运算关系的广义笛卡儿积找出若干元组构成新的关系,是从行的角度施加的操作。
连接运算由广义笛卡儿积中的R关系在A属性集上的值与S关系在B属性集上值满足θ比较运算的那些元组构成。
当θ为“=”号时,连接运算为等值连接。
自然连接为舍弃重复列的等值连接,它要求两个关系R与S具有公共属性,在连接结果中把重复的属性消除。
2.4 设有一个学生借书SJB数据库,包括S,B,SJB3个关系模式:
S(SNO,SNAME,SAGE,SSEX,SDEPT)
B(BNO,BNAME,BWRI,BPUB,BQTY,BPRI)
SJB(SNO,BNO,BT,ST,QTY,FEE)
学生表S由学生号(SNO)、学生名(SNAME)、年龄(SAGE)、性别(SSEX)、系部(SDEPT)组成;
图书表由图书号(BNO)、图书名(BNAME)、作者(BWRI)、出版社(BPUB)、数量(BQTY)、价格(BPRI)组成;
学生借阅表由学生号(SNO)、图书号(BNO)、借阅时间(BT)、归还时间(HT)、借出数量(QTY)、欠费情况(FEE)组成。
试用关系代数完成下列查询并给出结果:
(1)检索S1学生的借书情况。
σSNO=‘S1’(SJB)
(2)检索计算机系学生的借书情况。
σSDEPT=‘计算机系’(S∞SJB)
(3)检索学生李明借的图书的书名和出版社情况。
∏BNAME,BPUB(σSNAME=‘李明’(S∞SJB∞B))
(4)检索李明借的数据库原理书欠费情况。
∏FEE(σSNAME=‘李明^BNAME=’数据库原理’(S∞SJB∞B))
(5)检索至少借了王小川同学所借的所有书的学生号。
∏SNO,BNO(S∞SJB)÷∏BNO(σSNAME=‘王小川’(S∞SJB))
(6)检索12月31号归还的图书情况。
σBT=‘12/31/2008’(SJB)
(7)检索木华出版社出版的30元以下的图书情况。
σBPUB=‘木华出版社’^BPRICE<30(B)
习题3
3.1 搭建Oracle实验环境需要哪些工具软件?
OracleDatabase11gExpress数据库、JAVASE、SQLDeveloper等相关工具。
3.2 简述Oracle11g的特点。
Oracle11g扩展了Oracle独家具有的提供网格bai计du算优势的功能,来提高用户zhi服务水平、减少停机时间以及更加有效地利用IT资源dao,同时还增强全天候业务应用程序的性能、可伸缩性和安全性,利用真正应用测试尽量降低更改的风险
3.3 何谓Oracle的实例?
Oracle实例是系统中内存中创建一个内存结构。
启动数据库时首先需要在内存中创建它的一个实例,然后由实例加载并打开数据库。
当用户连接数据库时,实际上是直接与实例交互,而由实例来访问物理数据库,实例在用户和数据库之间充当中间层的角色。
3.4 Oracle内存分为哪几个区域?
软件代码区、系统全局区、程序全局区、排序区
3.5如果在安装数据库服务器后忘记sys和system的密码,该如何找回密码呢?
(1)通过cmd打开命令提示符,sqlplus/nolog;
(2)输入conn/assysdba
(3)输入alter usersytemidentified by 新密码;如alteruser sysidentifiedby123456;
习题4
4.1 选择题
(1)D
(2)C(3)C(4)D(5)C
4.2简述列约束和表约束的区别是什么,常用的约束有哪些?
直接在列后面定义的约束为列级约束。
在表定义时,单独一行定义的约束为表级约束。
4.3简述CHAR(n)和NCHAR(n),VARCHAR2(n)和NVARCHAR2(n)的区别。
(1)CHAR(n)存储的每一个字符占用一个字节,存储大小为n个字节。
如果实际输入不足n个字节,系统会自动在后面添加空格来填满设定的空间。
NCHAR(n)括号内的n指明了要存储长度为n个字节的固定长度Unicode的字符数据。
(2)VARCHAR2(n)存储大小为输入数据的字节的实际长度,而不是n个字节。
所输入的数据字符长度可以为零。
一般情况下,使用VARCHAR2(n)可以节省使用空间。
NVARCHAR2用来存储Unicode字符集的变长字符型数据,使用方法和VARCHAR2相同。
习题5
5.1选择题
(1)D
(2)C(3)B(4)C
5.2分别用BETWEEN…AND…、IN(…)、OR运算符确定考试成绩为80、81或82的学生学号,请写出相应的条件表达式。
SELECTSNOFROMXSWHEREGRADEBTEWEEN80AND82;
SELECTSNOFROMXSWHEREGRADEIN(80,81,82);
SELECTSNOFROMXSWHEREGRADEGRADE=81ORGRADE=81ORGRAE=82;
习题6
6.1选择题
(1)A
(2)B(3)B(4)A(5)A
6.2比较连接查询和子查询的执行效率。
连接查询要进行表的笛卡尔积运算,子查询无需进行表连接,所以子查询的效率要高于连接查询
6.3比较相关子查询和非相关子查询的区别。
非相关子查询是用内查询的结果作为查询条件进行外查询,相关子查询执行过程中内查询执行时要用外查询中字段的值作比较。
习题7
7.1选择题
(1)C
(2)D(3)C(4)D
7.2简述索引的优点和缺点。
索引的优点是可以提高查询效率,缺点是如果数据增删改频繁,系统会花费许多时间来维护索引
7.3简述视图的特点,哪类视图不可更新。
视图定义后,用户就可以像对基本表查询一样对视图进行查询了,可以简化SQL,既可以定义在表中也可以定义在视图上。
一般的DBMS都支持单表行列子集视图的更新,并有下列限制:
●若视图是由两个以上基本表导出的,则此视图不允许更新。
●若视图的字段来自字段表达式或常数,则不允许对此视图执行INSERT和UPDATE操作,但允许执行DELETE操作。
●若视图的字段来自组函数,则此视图不允许更新。
●若视图定义中含有GROUPBY子句,则此视图不允许更新。
●若视图定义中含有DISTINCT短语,则此视图不允许更新。
●若视图定义中有嵌套查询,并且内层查询的FROM子句中涉及的表也是导出该视图的基本表,则此视图不允许更新。
7.4简述同义词的用途。
通过同义词可以给表、索引、视图等数据库对象创建一个别名,来隐藏一些信息,提供一定的安全性。
当DBA改变数据库对象的名称时,通过同义词可以避免前台应用程序的改变。
7.5简述序列的用途。
序列(SEQUENCE)是Oracle提供的用于生成一系列唯一数值的数据库对象,以实现自动提供唯一的主键值。
习题8
8.1选择题
(1)D
(2)B
8.2创建包含插入、删除、修改多种触发事件的触发器TRIG_STUDENT,对XS、和CJ表进行参照完整性关系的维护。
对XS表进行删除操作,则删除CJ表中对应学号的所有记录;对XS表的学号进行更新操作,则更新CJ表中对应学号的所有记录。
CREATEORREPLACETRIGGERtrig_strudentAFTERINSERTORDELETEORUPDATE
ONXSFOREACHROW
BEGIN
IFDELETINGTHEN
DELETEFROMCJWHERESNO=:
OLD.SNO;
ELSIFUPDATINGTHEN
UPDATECJSETSNO=:
NEW.SNOWHERESNO=:
OLD.SNO;
ENDIF;
END;
/
习题9
9.1选择题
(1)C
(2)B(3)C(4)C(5)D(6)D
9.2请设计一个图书馆数据库,此数据库中对每个借阅者保存读者记录,包括:
读者号、姓名、性别、年龄、单位。
对每本书存有:
书号、书名、作者、出版社。
对每本被借出的书存有读者号、图书号、借出日期和应还日期。
要求:
画出E-R图,再将其转换为关系模型。
读者(读者号,姓名,性别,年龄,单位)
图书(书号,书名,作者,出版社)
借阅(读者号,书号,借出日期,应还日期)
9.3 假设某公司在多个地区设有销售部经销本公司的各种产品,每个销售部聘用多名职工,且每名职工只属于一个销售部。
销售部有部门名称、地区和电话等属性,产品有产品编码、品名和单价等属性,职工有职工号、姓名和性别等属性,每个销售部的销售产品有数量属性。
(1)根据上述语义画出E-R图,要求在图中画出属性并注明联系的类型;
(2)试将E-R图转换成关系模型,并指出每个关系模式的主码和外码。
销售部(部门名称,地区,电话)
产品(产品编码,品名,单价)
职工(职工号,姓名,性别,部门名称)
销售(部门名称,产品编码,数量)此处的部门名称和产品编码为外键
9.4 某商场可以为顾客办理会员卡,每个顾客只能办理一张会员卡,顾客信息包括顾客
姓名、地址、电话、身份证号,会员卡信息包括号码、等级、积分。
(1)若顾客具有多个地址和多个电话号码,地址包括省、市、区、街道,电话号码包括区号、号码
根据上述语义分别画出E-R图,并将E-R图转换成关系模式,并指出每个关系模式的主码和外码。
顾客(身份证号,姓名,会员卡号码)外码:
会员卡号码
地址(地址ID,省,市,区,街道,身份证号)外码:
身份证号
电话号码(区号,号码,身份证号)外码:
身份证号
会员卡(会员卡号码,等级,积分)
(2)若顾客具有多个地址,每个地址具有多个电话号码,地址包括省、市、区、街道,电话号码包括区号、号码。
顾客(身份证号,姓名,会员卡号码)外码:
会员卡号码
地址(地址ID,省,市,区,街道,身份证号)外码:
身份证号
电话号码(区号,号码,地址ID)外码:
地址ID
会员卡(会员卡号码,等级,积分)
9.5某数据库记录乐队、成员和歌迷的信息,乐队包括名称、多个成员、一个队长,队长也是乐队的成员,成员包括名字、性别,歌迷包括名字、性别、喜欢的乐队、喜欢的成员。
(1)画出基本的E-R图;
(2)修改E-R图,使之能够表示成员在乐队的工作记录,包括进入乐队时间以及离开乐
队时间。
9.6考虑某个T公司的数据库信息:
(1)部门具有部门编号、部门名称、办公地点等属性;
(2)部门员工具有员工编号、姓名、级别等属性,员工只在一个部门工作;
(3)每个部门有唯一一个部门员工作为部门经理;
(4)实习生具有实习编号、姓名、年龄等属性,只在一个部门实习
(5)项目具有项目编号、项目名称、开始日期、结束日期等属性;
(6)每个项目由一名员工负责,由多名员工、实习生参与;
(7)一名员工只负责一个项目,可以参与多个项目,参与每个项目具有工作时间比;
(8)每个实习生只参与一个项目。
画出E-R图,并将E-R图转换为关系模型(包括关系名、属性名、码)。
部门(部门编号,部门名称,办公地点,经理编号)外码:
经理编号
实习生(实习编号,姓名,年龄,部门编号,项目编号)外码:
部门编号,项目编号
员工(员工编号,姓名,级别,部门编号)外码:
部门编号
项目(项目编号,项目名称,开始日期,结束日期,负责员工)外码:
负责员工
员工参与项目(员工编号,项目编号,工作时间比)外码:
员工参与,项目编号
习题10
10.1已知关系模式R(SNO,CNO,GRADE,TNAME,TADDR),其属性分别表示学号、课程号、成绩、教师名、教师地址等意义。
语义为:
每个学生每学一门课程只有一个成绩,每门课程只有一个教师任教,每个教师只有一个地址(不允许教师重名)。
求:
(1)关系模式R的基本函数依赖;
(2)关系模式R的码;
(3)关系模式R满足几范式,为什么?
(4)将R分解为第三范式,并说明理由。
解:
(1)根据语义,其函数依赖集为:
F={(SNO,CNO)→GRADE,CNO→TNAME,TNAME→TADDR}。
(2)由于(SNO,CNO)能够决定所有的属性集合,且没有任一真子集能够决定所有的属性集合,所以R的码为(SNO,CNO)。
(3)已知R的候选码为(SNO,CNO)。
∵F中存在CNO→TNAME,
∴存在非主属性TNAME对候选码(SNO,CNO)的部分函数依赖,所以R∈1NF。
(4)将R分解为R1,R2,R3:
R1(SNO,CNO,GRADE),F1={(SNO,CNO)→GRADE};
R2(CNO,TNAME),F2={CNO→TNAME}。
R3(TNAME,TADDR),F2={TNAME→TADDR}。
R1,R2,R3中不存在非主属性对候选码的部分函数依赖和传递函数依赖,所以R1,R2,R3∈3NF。
10.2已知关系模式R(A,B,C,D,E),其函数依赖集为F={A→C,C→A,B→AC,D→AC}。
求解:
(1)计算(AD)+;
(2)求F的最小等价函数依赖集Fmin;
(3)求关系模式R的所有候选码;
(4)关系模式R最高属于第几级范式;
(5)将关系模式R分解到第三范式。
解:
(1)(AD)+={A,D,C}
(2)Fmin={A→C,C→A,B→C,D→A}
(3)候选码为BD
(4)已知R的候选码为(B,D)。
∵F中存在B→C,
∴存在非主属性C对候选码(B,D)的部分函数依赖,所以R∈1NF。
(5)R1(B,C)F1={B→C}
R2(D,A)F2={D→A}
R3(A,C)F3={A→C}
R4(C,A)F4={C→A}
10.3建立一个关于系、学生、班级、学会等诸信息的关系数据库,其中:
学生属性:
学号、姓名、出生年月、系名、班级号、宿舍区。
班级属性:
班号、专业名、系名、人数、入校年份。
系属性:
系名、系号、系办公室地点、人数。
学会属性:
学会名、成立年份、地点、人数。
有关语义如下:
一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。
一个系的学生住在同一宿舍区。
每个学生可参加若干学会,每个学会有若干学生。
学生参加某学会有一个入会年份。
请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。
指出各关系的候选码、外部码,有没有全码存在?
(1)关系模式如下:
学生:
S(Sno,Sname,Sbirth,Dept,Class,Rno)
班级:
C(Class,Pname,Dept,Cnum,Cyear)
系:
D(Dept,Dno,Office,Dnum)
学会:
M(Mname,Myear,Maddr,Mnum)
(2)每个关系模式的最小函数依赖集如下:
A、学生S(Sno,Sname,Sbirth,Dept,Class,Rno)的最小函数依赖集如下:
Sno→Sname,Sno→Sbirth,Sno→Class,Class→Dept,DEPT→Rno
传递依赖如下:
由于Sno→Dept,而Dept→Rno(宿舍区)
所以Sno与Rno之间存在着传递函数依赖。
由于Class→Dept,Dept→Class,Dept→Rno
所以Class与Rno之间存在着传递函数依赖。
由于Sno→Class,Class→Dept
所以Sno与Dept之间存在着传递函数依赖。
B、班级C(Class,Pname,Dept,Cnum,Cyear)的最小函数依赖集如下:
Class→Pname,Class→Cnum,Class→Cyear,Pname→Dept.
由于Class→Pname,Pname→Class,Pname→Dept
所以C1ass与Dept之间存在着传递函数依赖。
C、系D(Dept,Dno,Office,Dnum)的最小函数依赖集如下:
Dept→Dno,Dno→Dept,Dno→Office,Dno→Dnum
根据上述函数依赖可知,Dept与Office,Dept与Dnum之间不存在传递依赖。
D、学会M(Mname,Myear,Maddr,Mnum)的最小函数依赖集如下:
Mname→Myear,Mname→Maddr,Mname→Mnum
该模式不存在传递依赖。
(3)各关系模式的候选码、外部码,全码如下:
A、学生S候选码:
Sno;外部码:
Dept、Class;无全码
B、班级C候选码:
Class;外部码:
Dept;无全码
C、系D候选码:
Dept或Dno;无外部码;无全码
D、学会M候选码:
Mname;无外部码;无全码
10.4指出下列关系模式是第几范式?
并说明理由。
(1)R(A,B,C),F={A→C,C→A,A→BC}
(2)R(A,B,C,D),F={B→D,AB→C}
(3)R(A,B,C),F={AB→C}
(4)R(A,B,C),F={B→C,AC→B}
解:
(1)R∈3NF候选码是A,不存在部分依赖和传递依赖关系
(2)R∈1NF候选码是AB,存在部分依赖关系
(3)R∈3NF候选码是AB,不存在部分依赖和传递依赖关系
(4)R∈2NF候选码是AC,存在传递依赖关系
习题11
11.1选择题
(1)D
(2)D(3)C(4)C(5)A
11.2 并发操作可能会产生哪几类数据不一致性?
用什么方法能避免各种不一致的情况?
答:
多个事务对数据库的并发操作会给数据库带来一些问题,主要有3类:
丢失修改、不可重复读、读“脏”数据。
并发控制就是要用正确的方式调度并发操作,保证事务的隔离性,使一个用户事务的执行不受其他事务的干扰,从而避免造成数据的不一致性。
并发控制的主要技术是封锁(Locking)等方法。
11.3 什么是封锁?
试述封锁的类型及含义。
答:
封锁是实现并发控制的一个非常重要的技术。
其基本思想很简单:
即当一个事务需要存取一个数据对象(基本表、若干元组或若干个数据项)时,事务必须获得该对象的某种控制权,以避免来自其他事务的干扰,使得其他事务无法访问该对象,尤其是阻止其他事务更新该对象。
DBMS采用的基本的封锁类型有两种:
排他锁(ExclusiveLocks,简记为X锁)和共享锁(ShareLocks,简记为S锁)。
排他锁:
又称为写锁。
若事务T对数据对象A加上X锁,则只允许T读取和修改A,其他任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。
这就保证了其他事务在T释放A上的锁之前不能再读取和修改A。
共享锁:
又称为读锁。
若事务T对数据对象A加上S锁,则事务T可以读A,但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。
这就保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。
11.4SQL标准定义了几种事务隔离级别,Oracle数据库支持其中的几种事务隔离级别。
答:
1.SQL标准支持的事务隔离级别
SQL标准定义了以下4种事务隔离级别,隔离级别从低到高的依次如下
(1)READUNCOMMITTED:
如果一个事务已经开始写数据,则另外一个事务则不允许同时进行写操作,但允许其他事务读此行数据。
该隔离级别可以通过“排他写锁”实现。
该隔离级别幻读、不可重复读和脏读都允许。
(2)READCOMMITTED:
读取数据的事务允许其他事务继续访问该行数据,但是未提交的写事务将会禁止其他事务访问该行。
这可以通过“瞬间共享读锁”和“排他写锁”实现。
该隔离级别允许幻读、不可重复读,但是不允许脏读。
(3)REPETABLEREAD:
读取数据的事务将会禁止写事务(但允许读事务),写事务则禁止任何其他事务。
这可以通过“共享读锁”和“排他写锁”实现。
该隔离级别允许幻读,但是不允许不可重复读和脏读。
(4)SERIALIZABLE:
它要求事务序列化执行,事务只能一个接着一个地执行,不能并发执行。
仅仅通过“行级锁”是无法实现事务序列化的,必须通过其他机制保证新插入的数据不会被刚执行查询操作的事务访问到。
该隔离级别幻读、不可重复读和脏读都不允许。
SQL标准定义的默认事务隔离级别是SERIALIZABLE。
2.Oracle数据库支持的事务隔离级别
Oracle数据库支持其中两种事务隔离级别。
(1)READCOMMITTED允许幻读、不可重复读,但是不允许脏读。
(2)SERIALIZ
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库原理及应用Oracle版 数据库 原理 应用 Oracle 习题 答案