王珊《数据库系统概论》(第4版)章节专项练习及详解(txt+pdf+epub+mobi电子书下载)


发布时间:2021-05-16 23:43:29

点击下载

作者:圣才电子书

出版社:圣才电子书

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

王珊《数据库系统概论》(第4版)章节专项练习及详解

王珊《数据库系统概论》(第4版)章节专项练习及详解试读:

第1章 绪 论

一、选择题

1信息是有价值的,信息的价值与(  )有关。

A.正确性、及时性、完整性、开放性和可靠性

B.正确性、及时性、完整性和可靠性

C.正确性、完整性、开放性和可靠性

D.正确性、及时性、完整性和开放性【答案】B【解析】信息的特征体现在它的正确性、及时性、完整性、开放性和可靠性。正确的、及时的、完整的和可靠的信息才具有意义和价值,但是信息是否开放与价值的高低并不成正比,有些保密的国家机密或科技机密是极具价值的。

2文件系统与数据库系统的重要区别是数据库系统具有(  )。

A.数据共享性

B.数据无冗余

C.数据结构化

D.数据独立性【答案】C【解析】文件系统和数据库系统都具有数据独立性和数据共享性,只是文件系统的对应性能弱于数据库系统。至于数据无冗余,没有哪个系统可以完全做到。而通过数据模型表示复杂的数据结构,则是数据库系统所独有的。

3DB、DBS和DBMS三者的关系是(  )。

A.DB包括DBS和DBMS

B.DBS包括DB和DBMS

C.DBMS包括DB和DBS

D.DBS和DBMS包括DB【答案】B【解析】数据库系统(DBS DataBase System)数据库系统是一个引入数据库以后的计算机系统,它由计算机硬件(包括计算机网络与通信设备)及相关软件(主要是操作系统)、数据库(DB DataBase)、数据库管理系统(DBMS DataBase Management System)、数据库应用开发系统和人员组成。

4用户或应用程序看到的那部分局部逻辑结构的描述是(  )。

A.模式

B.子模式

C.物理模式

D.概念模式【答案】B【解析】用户或应用程序看到的那部分局部逻辑结构属于外部层,外部层又称外模式或子模式,是数据库的用户视图。这一层描述每个与用户相关的数据库部分。

5下面关于数据库三层模式结构两层映射的说法,不正确的是(  )。

A.模式与内模式映射可以实现物理数据的独立性

B.外模式与模式映射可以实现逻辑数据的独立性

C.DBMS在数据库的三层模式结构之间提供了两层映射

D.子模式与内模式映射可以实现逻辑数据的独立性【答案】D【解析】数据库三层模式体系结构的目的是将用户的数据库逻辑视图与数据库的物理描述分离开来。外模式与概念模式之间的映射,它把用户数据库与概念数据库联系起来了。这一层的映射可以保证逻辑数据独立性,即外模式不受概念模式变化的影响。概念模式与内模式之间的映射,它把概念数据库与物理数据库联系起来了。这一层的映射可以保证物理数据独立性,即概念模式不受内模式变化的影响。

6数据模型的三要素是(  )。

A.数据定义、数据操作和数据安全性约束

B.数据结构、数据操作和数据完整性约束

C.数据定义、数据存储和数据操作约束

D.数据结构、数据存储和数据一致性约束【答案】B【解析】数据模型是数据库系统的数学形式框架,是用来描述数据的一组概念和定义。数据模型包含以下三要素:

①数据结构:由一组创建数据库的规则组成。数据结构用于描述系统的静态特性,它是所研究对象类型的集合,也是刻画一个数据模型性质最重要的方面。

②数据操作:定义允许对数据库进行操作的种类(包括更新和检索数据库中的数据以及修改数据库结构)。

③数据完整性约束条件:一组完整性规则,确保数据的准确性。

7关于E-R实体-联系模型的叙述,不正确的是(  )。

A.实体型用矩形表示、属性用椭圆形表示、联系用无向边表示

B.实体之间的联系通常有:1:1、1:n和m:n三类

C.实体型用矩形表示、属性用椭圆形表示、联系用菱形表示

D.联系不仅局限在实体之间,也存在于实体内部【答案】A【解析】E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。构成E-R图的基本要素是实体型、属性和联系,其表示方法为:实体型:用矩形表示,矩形框内写明实体名。

属性:用椭圆形表示,并用无向边将其与相应的实体连接起来。

联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)。

实体型之间的联系不仅存在于两个实体型之间,也存在于两个以上的实体型之间。同一个实体集内的各实体之间也可以存在联系。

8代表层次模型、网状模型、关系模型和面向对象模型的典型系统分别是(  )。

A.DBTG、IMS、SQL Server、GIS

B.IMS、DBTG、Oracle、GIS

C.Oracle、IMS、Sybase、DBTG

D.GIS、DBTG、Access、IMS【答案】B【解析】①按照层次模型建立的数据库系统称为层次模型数据库系统,其典型代表是IBM的IMS(Information Management System)。

②按照网状数据结构建立的数据库系统称为网状数据库系统,其典型代表是DBTG(DataBase Task Group)。

③按照关系数据结构建立的数据库系统称为关系数据库系统,关系数据库管理系统是被公认为最有前途的一种数据库管理系统。自20世纪80年代以来,作为商品推出的数据库管理系统几乎都是关系型的,例如,Oracle、Sybase、Informix、Visual FoxPro、Access和SQL Server等。

④按照面向对象数据结构建立的数据库系统称为面向对象数据库系统,其典型代表是GIS(Geographic Information System)。

9DBMS提供的DML所实现的操作一般包括。

A.检索、插入、删除和修改

B.建立、授权、修改和查询

C.插入、授权、修改和查询

D.检索、插入、授权和修改【答案】A【解析】DBMS提供DML(Data Manipulation Language,数据操纵语言)实现对数据库的操作。基本的数据操作有检索、插入、删除和修改四种。

10不属于DBMS基本组成的是(  )。

A.DDL编译器和DML预处理器

B.数据库管理器

C.查询处理器和数据字典

D.编译解释处理程序【答案】D【解析】DBMS的主要组成:①DDL编译器(数据定义语言及其翻译处理程序);②DML预处理器(数据操纵语言及其编译/解释程序);③查询处理器;④数据库管理器(数据库运行控制程序);⑤数据字典(Data Dictionary,DD)管理器。

二、填空题

1数据管理技术经历了(  )、(  )和(  )3个阶段。【答案】人工管理;文件系统;数据库系统

2.数据库管理系统的主要功能有(  )、(  )、数据库的运行管理以及数据库的建立和维护等4个方面。【答案】数据库定义功能;数据库操纵功能

3数据模型是由(  )、(  )和(  )三部分组成。【答案】数据结构;数据操作;完整性约束

4以子模式为框架的数据库是(  );以模式为框架的数据库是(  );以物理模式为框架的数据库是(  )。【答案】用户数据库;概念数据库;物理数据库

5从外部视图到子模式的数据结构的转换是由(  )实现;模式与子模式之间的映象是由(  )实现;存储模式与数据物理组织之间的映象是由(  )实现。【答案】应用程序;DBMS;操作系统的存取方法

三、判断题

1有了外模式/模式映象,可以保证数据和应用程序之间的物理独立性。(  )【答案】×【解析】有了外模式/模式映象,可以保证数据和应用程序之间的逻辑独立性。

2在一个关系模型中,不同关系模式之间的联系是通过公共属性来实现的。(  )【答案】√

3外模式DDL用来描述数据库的总体逻辑结构。(  )【答案】×【解析】外模式DDL用来描述数据库的局部逻辑结构。

四、问答题

1什么是数据冗余?数据库系统与文件系统相比怎样减少冗余?

答:(1)数据冗余

数据冗余是指各个数据文件中存在重复的数据。在文件管理系统中,数据被组织在一个个独立的数据文件中,每个文件都有完整的体系结构,对数据的操作是按文件名访问。数据文件之间没有联系,数据文件是面向应用程序的。每个应用都拥有并使用自己的数据文件,各数据文件中难免有许多数据相互重复,数据的冗余度比较大。(2)数据库系统以数据库方式管理大量共享的数据。数据库系统由许多单独文件组成,文件内部具有完整的结构,但它更注重文件之间的联系。数据库系统中的数据具有共享性。数据库系统是面向整个系统的数据共享而建立的,各个应用的数据集中存储,共同使用,数据库文件之间联系密切,因而尽可能地避免了数据的重复存储,减少和控制了数据的冗余。

2简述E-R模型、层次模型、网状模型、关系模型和面向对象模型各有哪些优缺点?

答:(1)E-R模型的优缺点

①优点:接近于人的思维,容易理解;与计算机无关,用户容易接受。其缺点是:只能说明实体间语义的联系,不能进一步说明详细的数据结构。层次模型的优点是:结构清晰,表示各结点之间联系的方式简单;容易表示如“家族关系”等现实世界的层次结构的事物及其之间的联系。

②缺点:不能表示两个以上实体型之间的复杂联系和实体型之间的多对多联系;严格的层次顺序使数据插入和删除操作变得复杂,如父结点的删除导致子结点的删除。(2)网状模型的优缺点

①优点:能够表示实体之间的多种复杂联系;具有良好的性能,存取效率高。

②缺点:网状模型比较复杂,需要程序员熟悉数据库的逻辑结构;在重新组织数据库时容易失去数据独立性。(3)关系模型的优缺点

①优点:使用表的概念,简单直观;直接表示实体之间的多对多联系:具有更好的数据独立性;具有坚实的理论基础。

②缺点:关系模型的连接等操作开销较大,需要较高性能计算机的支持。(4)面向对象模型的优缺点

①优点:能够完整描述现实世界的数据结构,具有丰富的表达能力,能表达嵌套、递归的数据结构。

②缺点:涉及的知识面较广,用户较难理解。

3为某百货公司设计一个E-R模型。

百货公司管辖若干连锁商店,每家商店经营若干商品,每家商店有若干职工,但每个职工只能服务于一家商店。

实体类型“商店”的属性有:店号、店名、店址、店经理。实体类型“商品”的属性有:商品号、品名、单价、产地。实体类型“职工”的属性有:工号、姓名、性别、工资。在联系中应反映出职工参加某商店工作的开始时间、商店销售商品的月销售量。

试画出反映商店、商品、职工实体类型及其联系类型的E-R图、并将其转换成关系模式集。

答:其E-R图如图所示。转换的关系模式如下:

职工(工号,姓名,性别,工资,店号,开始时间)

商店(店号,店名,店址,店经理)

商品(商品号,品名,单价,产地)

经营(店号,商品号,月销售量)某百货公司的E-R图

第2章 关系数据库

一、选择题

1在关系中能唯一标识元组的最小属性集称为(  )。

A.外码

B.候选码

C.主码

D.超码【答案】B【解析】超码(Super Key)是关系中能唯一标识每个元组的属性或属性组(集),一个关系可能有多个超码。

候选码(Candidate Key)是关系中能唯一标识每个元组的最小属性或属性组,一个关系可能有多个候选码;主码(Primary Key)则是从候选码中选择一个,作为该关系的主码。数据库系统将按主码标识和排序每个元组。一个关系在任一时刻至多只能有一个主码,但在不同时刻可以指定不同的候选码作为主码。

外码(Foreign Key)则是在关系R中的属性或属性组,若在另1一个关系R中作为主码使用,则称该属性或属性组为R的外码。R211的外码和R中的主码必须定义在相同的域上,允许使用不同的属性2名。

2对关系数据库来说,下面哪些说法是错误的(  )。

A.每一列的分量是同一种类型数据,来自同一个域

B.不同列的数据可以出自同一个域

C.行的顺序可以任意交换,但列的顺序不能任意交换

D.关系中的任意两个元组不能完全相同【答案】C【解析】基本关系具有以下6条性质:

①列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。

②不同的列可出自同一个域,但是具有不同的列名(属性名)。

③列的顺序无所谓,即列的次序可以任意交换。

④任意两个元组的候选码不能相同。

⑤行的顺序无所谓,即行的次序可以任意交换。

⑥分量必须取原子值,即每一个分量都必须是不可分的数据项。

3关于关系的完整性约束条件,下列说法错误的是(  )。

A.在关系模型中,允许定义实体完整性、参照完整性和用户定义的完整性

B.用户完整性应该由关系系统自动支持

C.参照完整性可由用户或系统定义

D.用户定义的完整性是应用领域需要遵循的约束条件【答案】B【解析】关系完整性有三类:实体完整性、参照完整性和用户定义的完整性。其中实体完整性保证每一个数据(实体)是可识别的,参照完整性保证当数据与数据之间有联系时,这种联系造成的数据取值的制约;用户定义的完整性保证每一个数据的取值在应用领域内是合理的。其中,实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称为关系的两个不变性。也就是说,只要是关系数据库系统就应该自动支持实体完整性和参照完整性。

4关系代数中的⋈连接操作由(  )操作组合而成。

A.σ和π

B.σ和×

C.π、σ和×

D.π和×【答案】B【解析】连接又称为θ连接。它是从关系R和S的笛卡尔积中选取属性值之间满足一定条件的元组。因此,该运算首先计算R和S的笛卡尔积,然后再从得到的结果集合中选择属性值之间满足一定条件的元组。该运算得到结果是R和S的笛卡尔积的子集,其关系模式同R和S的笛卡尔积一样。

5设关系R(A,B,C)和S(B,C,D),下列各关系代数表达式不成立的是(  )。

A.R÷S

B.π(R)∪π(S)BB

C.R∩S

D.R⋈S【答案】C【解析】R∩S运算也要求R和S具有相同的属性。

6有两个关系R和S,分别包含15个和10个元组,则在R∪S、R-S、R∩S中不可能出现的元组数目情况是(  )。

A.15,5,10

B.18,7,7

C.21,11,4

D.25,15,0【答案】B【解析】①A项的情形:若R∩S为10个元组,那么R∪S为15个元组、R-S为5个元组是正确的。

②B项的情形:若R∩S为7个元组,那么R∪S应为18个元组、R-S应为8个元组。

③C项的情形:若R∩S为4个元组,那么R∪S为21个元组、R-S为11个元组是正确的。

④D项的情形:若R∩S为0个元组,那么R∪S为25个元组、R-S为15个元组是正确的。

7关系R与关系S只有一个公共属性,T1是R与S等值连接的结果,T2是R与S自然连接的结果,下列叙述正确的是(  )。

A.T1的属性个数等于T2的属性个数

B.T1的属性个数小于T2的属性个数

C.T1的属性个数大于或等于T2的属性个数

D.T1的属性个数大于T2的属性个数【答案】D【解析】连接中有两种最重要也最常用的连接,它们分别是等值连接和自然连接。等值连接就是比较运算符θ为“=”的连接运算;自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性或属性组合,并且在结果中把重复的属性去掉。也就是说,自然连接是在笛卡尔积的结果中选择相同属性值相等的那些元组,最后还要去掉重复的属性。因此,等值连接结果的属性个数应该大于自然连接结果的属性个数。

8设关系R(A,B,C)和S(B,C,D),下列各关系代数表达式不成立的是(  )。

A.π(R)⋈π(S)AD

B.R∪S

C.π(R)∩π(S)BB

D.R⋈S【答案】B【解析】A项、D项都是执行自行连接运算,当两个关系无公共属性时,自然连接就等同于笛卡尔积运算,因此,A项、D项都是正确的。关系的并、交、差运算要求两个关系是相容关系,即两个关系属性个数相等,且对应的属性来自同一个值域,R与S不是相容关系,所以B项是错误的。

9有关系R(X,Y,Z),主键=X;S(W,X),主键W,外键=X,参照R的属性X,关系R和关系S的元组如下所示。指出关系S中违反关系完整性规则的元组是(  )。

A.(1,2)

B.(2,null)

C.(3,3)

D.(4,1)【答案】C【解析】关系完整性有三类:实体完整性、参照完整性和用户自定义的完整性。其中参照完整性保证当数据与数据之间有联系时,这种联系造成数据取值的制约。参照完整性规则是:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码K相对。s

对于S关系而言,X是该关系的外码,它与R关系的主码X相对应。根据参照完整性规则,S关系中X的取值或者取空值或者等于R中X的某个分量值。因此,S关系中X的分量值为3这一元组就是违背参照完整性规则的元组。

10关系运算以关系代数为理论基础,关系代数的最基本操作是并、差、笛卡尔积、(  )。

A.投影、连接

B.连接、选择

C.选择、投影

D.交、选择【答案】C【解析】关系代数是一种抽象的查询语言,它通过对关系的运算来表达查询要求。关系代数的运算共有8种,可分两类:传统的集合运算和专门的关系运算一传统的集合运算有:交、并、差、笛卡尔积,专门的关系运算有:选择、投影、连接和除。其中,并、差、笛卡尔积、选择和投影5种运算是基本运算,其他3种运算均可以用这5种基本运算来表达。

二、填空题

1关系模型由(  )、(  )和(  )组成。【答案】数据结构;数据操作;完整性规则

2关系代数运算中,基本的运算是(  )、(  )、(  )、(  )和(  )。【答案】并;差;笛卡尔积;投影;选择

3关系数据库中基于数学的两类运算是(  )和(  )。【答案】关系代数;关系演算

4已知系(系编号,系名称,系主任,电话,地点)和学生(学号,姓名,性别,入学日期,专业,系编号)两个关系,系关系的主码是(  ),系关系的外码是(  ),学生关系的主码是(  ),外码是(  )。【答案】系编号;无;学号;系编号

三、判断题

1在一个关系中,不同的列可以对应同一个域,但必须具有不同的列名。(  )【答案】√【解析】例如一个关系中有平时分数、期末考试分数和总分属性,它们的域都是相同的。

2关系中任何一列的属性取值是不可再分的数据项,可取自不同域中的数据。(  )【答案】×【解析】关系中任何一列的属性取值是不可再分的数据项,只能取自同一域中的数据。

3一个关系中不可能出现两个完全相同的元组是由实体完整性规则确定的。(  )【答案】×【解析】一个关系中不可能出现两个完全相同的元组,这是由关系的定义和特点确定的。

4投影操作是对关系表进行水平方向的分割。(  )【答案】×【解析】投影操作是对关系表进行垂直方向的分割。

5有两个关系R和S,分别包含15个和10个元组,则在R∪S、R-S、R∩S中可能出现的一种元组数目情况是18、7、7。(  )【答案】×【解析】因为若R∪S元组数目为18,表示R和S中有25-18=7个相同元组,R∩S的元组数目为7,但R-S的元组数应为15-7=8个。

四、问答题

1设有如图2-1所示的关系R和S,计算:(1)R=R-S1(2)R=R∪S2(3)R=R∩S3(4)R=R×S4

图2-1 关系R和S

答:本题各小题的结果如图2-2所示。

图2-2 计算结果

2设有如图2-3所示的3个关系S、C和SC,将下列关系代数表达式用汉语表示出来,并求其结果。

图2-3 关系S、C和SC(1)π(б(S⋈SC))2,6,7籍贯=‘上海’(2)π(S⋈SC⋈б(C))2,6,7课程=‘操作系统’(3)π(S⋈(π(SC)÷π(C)))2,31,21

答:(1)检索籍贯为上海的学生的姓名、选修的课程号和成绩,其结果为图2-4中的R。1(2)检索选修操作系统的学生姓名、课程号和成绩,其结果为图2-4中的R。2(3)检索选修了全部课程的=学生姓名和年龄,其结果为图2-4中的R。3

图2-4 关系R、R和R123

3设有如图2-5所示的关系S、SC和C,试用关系代数表达式表示下列查询语句:

图2-5 关系S、C和SC(1)检索程军老师所授课程的课程号(C#)和课程名(CNAME)。(2)检索年龄大于21的男学生学号(S#)和姓名(SNAME)。(3)检索至少选修程军老师所授全部课程的学生姓名(SNAME)。(4)检索李强同学不学课程的课程号(C#)。(5)检索至少选修两门课程的学生学号(S#)。(6)检索全部学生都选修的课程的课程号(C#)和课程名(CNAME)。(7)检索选修课程包含程军老师所授课程之一的学生学号(S#)。(8)检索选修课程号为k和k的学生学号(S#)。15(9)检索选修全部课程的学生姓名(SNAME)。(10)检索选修课程包含学号为2的学生所修课程的学生学号(S#)。(11)检索选修课程名为C语言的学生学号(S#)和姓名(SNAME)。

答:本题各个查询操作对应的关系代数表达式表示如下:(1)π(б(C))C#,CNAMETEACHER=‘程军’(2)π(б(S))S#,SNAMEAGE>21∧SEX=‘男’(3)π(S⋈(π(SC)÷π(бSNAMES#,C#C#TEACHER=‘程军’(C))))(4)π(C)-π(б(S)⋈SC)C#C#SNAME=‘李强’(5)π(б(SC×SC)S#[1]=[4]∧[2]≠[5](6)π(C⋈(π(SC)÷π(S)))C#,CNAMES#,C#S#(7)π(SC⋈π(б(C)))S#C#TEACHER=‘程军’(8)π(SC)÷π(б(C))S#C#C#=‘k1’∨C#=‘k5’(9)π(S⋈(π(SC)÷π(C)))SNAMES#,C#C#(10)π(SC)÷π(б(SC))S#,C#C#C#=‘2’(11)π(S⋈π(SC⋈(б(C))))S#,SNAMES#CNAME=‘C语言’

4现有学生课程数据库,其中包括:学生关系Student,课程关系Course和选修关系Sc,关系的实例如表2-1、表2-2和表2-3所示。其中,Sc中的属性Grade表示该学生该门课取得的成绩,Course中的属性Credit表示该门课程的学分。表2-1 学生课程数据库-Student表2-2 学生课程数据库-Sc表2-3 学生课程数据库-Course

计算下述表达式的结果,并说明各操作的实际查询含义。(1)σ(Course)Cname=‘数据库原理’(2)π(Sc)Sno(3)π(σ(Course))CnameCredit>2(4)π(σ(Sc))Cno,GradeSno=‘03090101’(5)Sc⋈Course⋈Student(6)π(σ(Student⋈Sc⋈Course))SnameCname=‘数据库原理’(7)π(Sc)÷CourseSno,Cno

答(1)对Course关系作选择运算,选择条件是课程名称Cname属性的取值为“数据库原理”。因此,可以逐行考查Cname属性的取值,如果某行的Cname属性的取值为“数据库原理”,就把该行放到结果集中。结果集合的关系模式仍同Course一样。最终得到的结果集如图2-6(a)。该操作实际上就是查询“数据库原理”课程的基本情况。

图2-6(a) (1)的结果集合(2)对Sc关系作投影运算,只留下属性Sno一列,因而结果集合中的关系模式不再同Sc一样了,同时还会出现相同的行,最终结果集合中还会去掉重复的行。最终得到的结果集如图2-6(b)。该操作实际上就是查询选修过课程的学生的学号信息。

图2-6(b) (2)的结果集合(3)括号优先,因此,首先对关系Course作选择运算,选择那些学分Credit属性的取值大于2的行,所得结果集合的关系模式仍同Course一样,元组有2行。然后,再对此结果集合作投影运算,只留下属性Cname一列。最终得到的结果集如图2-6(c)所示。该操作实际上就是查询学分大于2分课程的课程名称信息。

图2-6(c) (3)的结果集合(4)括号优先,因此,首先对关系Sc作选择运算,选择那些学号Sno属性的取值为“03090101”的所有行,所得结果集合的关系模式仍同Sc一样,元组有3行。这部分实际上就是查询学号为“03090101”学生的所有选修情况,再对此结果集合作投影运算,留下课程编号属性Cno和成绩属性Grade两列。最终得到的结果集如图2-6(d)所示。该操作实际上就是查询学号为“03090101”学生选修的所有课程的课程编号和对应的成绩信息。

图2-6(d) (4)的结果集合(5)运算次序从左到右。首先关系Sc与关系Course作自然连接,共同属性是Cno,因而此运算就是在Sc与Course的笛卡尔积中选择那些使Se.Cno-Course.Cno成立的行,同时得到的结果集中去掉重复的Cno属性。结果如图2-6(e)所示。然后,此结果集合再与Student作自然连接,共同属性是Sno,此运算就是在上述结果集合与Student的笛卡尔积中选择那些使Se.Sno=Student.Sno成立的行,同时得到的结果集中去掉重复的Sno属性。最终得到的结果集如图2-6(f)所示。该操作实际上就是查询选修过课程的学生的基本情况、选修情况以及课程情况信息。

图2-6(e) (5)中Sc与Course自然连接的结果集合

图2-6(f) (5)的最终结果集合(6)括号优先,因此,首先进行Student与Sc再与Course的自然连接,得到的中间结果如图2-6(f)所示。然后,对此中间结果集合进行选择运算,即从中选择课程名称Cname属性的取值为“数据库原理”的行,得到的结果如图2-6(g)所示。此操作实际上是查询选修了“数据库原理”课程的学生的基本情况、选修情况以及该门课程的基本、情况。最后,再对图2-6(g)所示的结果集合进行投影运算,只留下学生姓名Sname属性这一列,最终得到的结果集合如图2-6(h)所示。该操作实际上就是查询选修了“数据库原理”课程的学生姓名信息。

图2-6(g) 对自然连接的结果进行选择运算后的结果集合

图2-6(h) (6)的最终结果集合(7)运算次序从左到右。首先对关系Sc作投影运算,留下学号属性Sno和课程编号Cno属性,然后与关系Course作除运算。根据除运算定义,我们可以知道,结果集合是只有属性Sno的新关系,其中的元组根据除运算定义可知只有一行,如图2-6(i)所示。该操作实际上就是查询选修了全部课程的学生学号信息。

图2-6(i) (7)的最终结果集合

第3章 关系数据库标准语言SQL

一、选择题

1SQL的运算参数和结果都是(  )形式。

A.关系

B.元组

C.数据项

D.属性【答案】A【解析】结构化查询语言是一种非过程化、面向集合的数据库语言。面向集合的特点是指SQL的运算参数和结果都是集合形式-表或关系。

2以下有关索引的叙述中正确的是(  )。

A.索引越多,更新速度越快

B.索引可以用来提供多种存取路径

C.索引需要用户维护,并列索引中列的个数不受限制

D.索引需要用户维护【答案】B【解析】索引是建立在列上的一种数据对象,它对表中的数据提供一种逻辑顺序,当在数据库表中搜索某一行时,可以通过使用索引来找到它的物理位置。索引一旦建立后就交由DBMS管理,不需人工干预,所以索引是动态的,每当数据库表更新,相应的索引也随之更新,为此,过多的索引列和频繁的数据更新都会消耗系统资源,增加系统开销,从而降低索引应有的作用。

3下面描述正确的是(  )。

A.可以在任何数据库中创建视图

B.可以在视图上创建索引

C.如果视图引用的基表或者视图被删除,则该视图不能再被使用,直到创建新的基表或者视图

D.通过视图查询数据时,SQL Server不检查数据完整性规则【答案】C【解析】创建和使用视图需遵循一些基本原则,为此还应注意以下问题:

①只能在当前数据库中创建视图。

②如果视图引用的基表或者视图被删除,则该视图不能再被使用,直到创建新的基表或者视图。

③不能在视图上创建索引,不能在规则、默认、触发器的定义中引用视图。

④当通过视图查询数据时,SQL Server要检查数据完整性规则,以确保语句中涉及的所有数据库对象存在,而且数据修改语句不能违反数据完整性规则。

4查询选课关系SC(Sno,Cno,Score)表中还没有给定成绩(Score)的课程号(Sno)和学号(Cno),下列语句正确的是(  )

A.SELECT Sno,Cno FROM SC WHERE Score IS NULL

B.SELECT*FROM SC WHERE Score=NULL

C.SELECT Sno,Cno FROM SC

D.SELECT Score FROM SC WHERE Sno,Cno IS NOT NULL【答案】A【解析】在数据库基本表中,还没有给定成绩的属性列,意味着该属性列的数据还从未更新过,为此,其值应该是空(NULL),SQL中可以用IS NULL和IS NOT NULL来查询属性列值是空值或不为空值的元组。根据题意,应该选择A项。注意,IS不能用“=”来代替。

5SQL语言中,HAVING子句用于筛选满足条件的(  )。

A.列

B.行

C.分组

D.元组【答案】C【解析】HAVING子句常与GROUP BY子句联合使用,GROUP BY通常指出分组的依据列,即依据那个属性列来分组,而HAVING子句则指出各分组提取的条件。例如:要求列出某班本学期所有课程中,班级平均成绩高于75的课程号、课程名称时,GROUP BY子句应该指出分组的依据是选课关系中的课程号属性列,HAVING子句则提出该课程的全班平均成绩AVG要高于75,低于75的就不提取了。

6某校选课关系基本表SC(S#,C#,Grade),其中S#,C#分别代表学号和课程号且均为字符型数据,Grade表示成绩为数值型数据,现要往该表中插入数据,请问以下语句中不正确的是(  )。

A.INSERT INTO SC(S#,C#,Grade)VALUES(‘S4’,‘C6,’90)

B.INSERT INTO SC(S#,C#)VALUES(‘S5,’‘C8’)

C.INSERT INTO SC VALUES<‘S4’,‘C4’,85)

D.INSERT INTO SC(S#,C#,Grade)VALUES(S2,C3,89)【答案】D【解析】在SQL语言中,使用INSERT语句插入数据时,需要注意以下几个问题:首先,列名表和元组值中的项数应该对称相等,并且保持数据类型一致;其次,元组值中给出的数据元素个数应该小于等于关系模式中的属性列个数,而且此时列名表不可缺省,列名表中未给出的属性列的值在插入时取默认值1此外,列表名缺省时意味着取关系模式中的全部属性列,而且其顺序与模式定义一致,插入时还需要注意非空属性列值的输入及主码列值的唯一性等问题。

7下列哪个函数能将一个表达式从一种数据类型改变为另一种数据类型?(  )

A.COUNT(*)

B.COUNT(*)

C.CONVERT(*)

D.AVG(*)【答案】C【解析】CONVERT函数能将某种数据类型的表达式显式转换为另一种数据类型。其他3个都是聚集函数,COUNT(  )的功能是统计一列中值的个数;COUNT(*)统计元组个数;AVG(  )计算一列值的平均值(此列必须是数值型)。此外,SQL语言中还提供了另一个数据类型转换函数CAST,这两个函数均能将表达式值转换为指定的数据类型,CONVERT可以指定长度,而CAST不能指定长度。

8下列说法正确的是(  )。

A.可以利用存储过程在当前数据库中创建固定数据库角色

B.当前数据库中的用户自定义角色可以用存储过程删除

C.不能将数据库用户账户添加为当前数据库中角色的成员

D.Public角色可以被删除【答案】B【解析】在T-SQL中,通过sp-helpdbfixedrole存储过程,查看SQL Server固定数据库角色列表;利用sp-addrolemember存储过程将数据库用户的账户,添加为当前数据库中数据库角色的成员;利用sp-droprolemember存储过程从当前数据库的数据库角色中,删除数据库安全账户。但不能利用存储过程在当前数据库中创建固定数据库角色,排除A项。此外,SQL Server包括两类具有隐含权限的预定义角色,固定服务器角色和固定数据库角色。这些隐含权限不能授予其他用户账户。如果有用户需要这些权限,则必须将其账户添加到这些预定义角色中,排除C项;Public角色是SQL Server数据库管理系统中每个数据库都存在的特殊角色。它提供数据库中用户默认权限,每个数据库用户都自动是此角色的成员。所以Public角色不能被删除,排除D项;在T-SQL中,通过sp-helprole存储过程,查看角色;利用sp-addrole存储过程在当前数据库创建新的数据库角色;利用sp-droprole存储过程从当前数据库删除角色。B项是正确的。

9以下有关SELECT子句的叙述中不正确的是(  )。

A.SELECT子句中只能包含表中的列及其构成的表达式

B.SELECT子句规定了结果集中的列序列

C.SELECT子句中可以使用别名

D.如果FROM子句引用的两个表中有同名的列,则在SELECT子句中引用它们时必须使用表名前缀加以限定【答案】A【解析】SQL语言提供了SELECT语句进行数据库查询,该语句具有灵活的使用方式和丰富的功能。语句的功能是根据WHERE子句的条件表达式,从FROM子句指定的基本表或视图中找出满足条件的元组。再按SELECT子句中目标列表达式,选出元组中属性值形成结果表。在同一个表自身联合查询时可以采用别名的方式以示区别,并在引用时通过表名前缀加以限定。故四个选项中A项是不正确的。

10以下定义的4个视图中,能够进行更新操作的是(  )。

A.

B.

C.

D.【答案】C【解析】根据视图更新操作的限制,A项的视图数据来源于多个基本表,所以不能进行更新操作。B项的视图数据来源于一个基本表的聚合结果,所以不能进行更新操作。D项中视图不含有基本表的主码,所以不能进行更新操作。

二、填空题

1SQL语言的数据定义功能包括______、______、______和______。【答案】定义数据库;定义基本表;定义视图;定义索引

2在SELECT命令中,______子句用于选择满足给定条件的元组,使用______子句可按指定列的值分组,同时使用______子句可提取满足条件的组。【答案】WHERE;GROUP BY;HAVING

3视图是一个虚表,它是从______导出的表。在数据库中,只存放视图的______,不存放视图对应的______。【答案】一个或几个基本表;定义;数据

4设有如下关系表R:R(NO,NAME,SEX,AGE,班号)主码是NO。其中NO为学号,NAME为姓名,SEX为性别,AGE为年龄,班号为班号。

写出实现下列功能的SQL语句。

①插入一个记录(25,‘李明’,‘男’,21,‘09031’):______。

②插入‘09031’班学号为30、姓名为‘郑和’的学生记录:______。

③将学号为10的学生姓名改为‘王华’______。

④将所有‘95101’班号改为‘10091’:______。

⑤删除学号为20的学生记录:______。

⑥删除姓‘王’的学生记录:______。【答案】

①INSERT INTO R VALUES(25,‘李明’,‘男’,21,‘09031’)

②INSERT INTO R(NO,NAME,班号)VALUES(30,‘郑和’,‘09031’)

③UPDATE R SET NAME=‘王华’WHERE NO=10

④UPDATE R SET 班号=‘10091’WHERE 班号=‘95101’

⑤DELETE FROM R WHERE NO=20

⑥DELETE FROM R WHERE NAME LIKE‘王%’

5在SELECT命令中进行查询,若希望查询的结果不出现重复元组,应在SEL ECT语句中使用______保留字。【答案】DISTINCT

三、判断题

1在SQL中,ALTER TABLE语句中MODIFY用于修改字段的类型和长度等,ADD用于添加新的字段。(  )【答案】×【解析】ALTER TABLE语句中,ALTER COLUMN用于修改字段的类型和长度等,ADD用于添加新的字段。

2可以用UNION将两个查询结果合并为一个查询结果。(  )【答案】√

3视图是观察数据的一种方法,只能基于基本表建立。(  )【答案】×【解析】也可以建立视图的视图。

4在SELECT语句中,需要对分组情况满足的条件进行判断时,应使用WHERE子句。(  )【答案】×【解析】应使用HAVING子句。

5在CREATE INDEX语句中,使CLUSTERED来建立簇索引。(  )【答案】√

四、问答题

1设有一个SPJ数据库,包括S、P、J、SPJ 4个关系模式:

S(Sno,Sname,Status,City)

P(Pno,Pname,Color,Weight)

J(Jno,Jname,City)

SPJ(Sno,Pno,Jno,Qty)

供应商表S由供应商代码(Sno)、供应商姓名(Sname)、供应商状态(Status)、供应商所在城市(City)组成。零件表P由零件代码(Pno)、零件名(Pname)、颜色(Color)、重量(Weight)组成。工程项目表J由工程项目代码(Jno)、工程项目名(Jname)、工程项目所在城市(City)组成。供应情况表SPJ由供应商代码(Sno)、零件代码(Pno)、工程项目代码(Jno)、供应数量(Qty)组成,表示某供应商供应某种零件给某工程项目的数量为Qty。请为“三建”工程项目建立一个供应情况的视图,包括供应商代码(Sno)、零件代码(Pno)、供应数量(Qty)。针对该视图完成下列查询:(1)找出“三建”工程项目使用的各种零件代码及其数量。(2)找出供应商S1的供应情况。(3)把对表S的INSERT权限授予用户张勇,并允许他再将此权限授予其他用户。(4)把查询SPJ表和修改Qty属性的权限授给用户李天明。

答:建立视图:

CREATE VIEW V_SPJ AS SELECT Sno,Pno,Qty FROM SPJ

WHERE Jno=(SELECT Jno FROM J WHERE Jname=‘三建’);(1)SELECT Pno,Qty FROM V_SPJ;(2)SELECT Pno,Qty FROM V_SPJ WHERE Sno=‘S1’;(3)GRANT INSERT ON TABLE S TO张勇WITH GRANT OPTION;(4)GRANT SELECT,UPDATE(Qty)ON TABLE SPJ TO 李天明;

2设有关系R和S,如图3-1所示。试用SQL语句实现:(1)查询属性C>50时,R中与之相关联的属性B的值。(2)当属性C=40时,将R中与之相关联的属性B值修改为b。4

图3-1 关系R和S

答:(1)对应的SQL语句如下:(2)对应的SOL语句如下:

3设有4个关系模式如下:

S(供应商号,姓名,STATE,CITY)

P(PNO,PNAME,COLOR,WEI,PRICE)

J(JNO,JNAME,CITY)

SPJ(学号,PNO,JNO,QTY)

其中,S表示供应商,它的各属性依次为供应商号、供应商名、供应商所在省份和供应商所在城市;P表示零件,它的各属性依次为零件号、零件名、零件颜色、零件重量和单价;J表示工程,它的各属性依次为工程号、工程名和工程所在城市;SPJ表示供货关系,它的各属性依次为供应商号、零件号、工程号和供货数量。用SQL语句实现下面的查询要求:(1)查询列出供应了全部零件的供应商名和其所在城市。(2)查询列出供应红色零件的供应商名。

答:(1)对应的SQL语句如下:(2)对应的SQL语句如下:

4设计一个程序采用游标方式输出求每个学生的班号、学号、姓名、课程名和分数,并以班号和学号排序,给出程序的执行结果。

答:对应的程序如下:

本程序的执行结果如下:

5设有如图3-2所示的3个基本表。表中各个属性的含义如下:A#(商店代号)、ANAME(商店名)、WQTY(店员人数)、CITY(所在城市)、B#(商品号)、BNAME(商品名称)、PRICE(商品价格)、QTY(商品数量)。试用SQL语句写出下列查询:(1)找出店员人数不超过100人或者在长沙市的所有商店的商店代号和商店名。(2)找出供应书包的商店名。(3)找出至少供应代号为256的商店所供应的全部商品的商店名和所在城市。

图3-2 3个关系表

答:(1)对应的SQL语句如下:(2)对应的SQL语句如下:

方法1:

方法2:(3)对应的SQL语句如下:

第4章 数据库安全性

一、选择题

1下述哪一个SQL语句用于实现数据存取的安全机制(  )。

A.COMMIT

B.ROLLBACK

C.GRANT

D.CREATE TABLE【答案】C【解析】COMMIT是向数据库递交数据,ROLLBACK是回滚数据,CREATE TABLE是创建表,而GRANT是用来对用户权限进行管理,可以实现数据存取的安全机制。

2关于登录账号和数据库用户,下列各项表述不正确的是(  )。

A.登录账号是在服务器级创建的,数据库用户是在数据库级创建的

B.创建数据库用户时必须存在该用户的登录账号

C.数据库用户和登录账号必须同名

D.一个登录账号可以对应多个数据库用户【答案】C【解析】登录账户属于SQL Server服务安全防线,用户只有拥有SQL Server服务登录账户,才能与SQL Server建立链接;数据库用户属于SQL Server数据库安全防线,SQL Server中的每个数据库都有自己的用户和角色,该数据库只能由它的用户和角色访问。它们是不同级别的账号,它们需要绑定,创建数据库用户时必须存在该用户的登录账号,一个登录账号可以对应多个数据库用户,但不需要同名。

3关于SQL Server的数据库角色叙述正确的是(  )。

A.用户可以自定义固定角色

B.数据库角色是系统自带的,用户一般不可以自定义

C.每个用户只能拥有一个角色

D.角色用来简化将很多用户权限分配给很多用户这一复杂任务的管理【答案】D【解析】服务器级的角色建立在SQL服务器上,是系统预定义的,用户不能创建服务器角色,只能选择合适的服务器角色,但能定义数据库角色;一个数据库用户可以出现在多种角色中;角色是多权限分配给多用户这一复杂任务的管理方式。

4关于SQL Server的数据库权限叙述不正确的是(  )。

A.SQL Server数据库的对象权限可以用GRANT分配,而语句权限不可以用GRANT分配

B.服务器权限能通过固定服务器角色进行分配,不能单独分配给用户

C.系统管理员能使用SQL Server执行任何任务

D.每个用户可以被分配若干权限,并且有可能把权限赋予其他用户【答案】A【解析】服务器级的角色建立在SQL服务器上,是系统预定义的,用户不能创建服务器角色,只能选择合适的服务器角色,SQL Server的数据库权限可以分为数据库对象权限和语句权限,对象权限和语句权限都可以通过GRANT和REVOKE来分配和收回,系统管理员具有最高的权限。

5保护数据库,防止未经授权或不合法的使用造成的数据泄漏、非法更改或破坏。这是指数据的(  )。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载