SQL语句练习 - 图文

更新时间:2023-10-17 11:50:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第三章 SQL语言

一、选择题:

1、SQL语言是 的语言,易学习。A.过程化 B.非过程化 C.格式化 D.导航式 2、SQL语言是 语言。

A.层次数据库 B.网络数据库 C.关系数据库 D.非数据库 3、SQL语言具有 的功能。

A. 关系规范化,数据操纵,数据控制B.数据定义,数据操纵,数据控制 C.数据定义,关系规范化,数据控制D.数据定义,关系规范化,数据操纵 4、SQL语言具有两种使用方式,分别称为交互式SQL和 。 A.提示式SQL B.多用户SQL C.嵌入式SQL D.解释式SQL

5、SQL语言中,实现数据检索的语句是 。A.SELECT B.INSERT C.UPDATE D.DELETE 6、下列SQL语句中,修改表结构的是 。A.ALTER B.CREATE C.UPDATE D.DELETE 7、SQL中,与“NOT IN”等价的操作符是 。A.=SOME B.<>SOME C.=ALL D.<>ALL 8、假设有三个基本表:学生表S、课程表C、学生选课表SC,它们的结构如下: S(S#,SN,SEX,AGE,DEPT) C(C#,CN)

SC(S#,C#,GRADE)

检索所有比“王华”年龄大的学生姓名、年龄和性别。正确的SQL语句是 。 A.SELECT SN,AGE,SEX C.SELECT SN,AGE,SEX

FROM S FROM S WHERE AGE>(SELECT AGE FROM S WHERE AGE>(SELECT AGE

WHERE SN=”王华”) WHERE SN=”王华”)

B.SELECT SN,AGE,SEX D.SELECT SN,AGE,SEX

FROM S FROM S WHERE SN=”王华” WHERE AGE>王华.AGE 9、检索选修课程”C2”的学生中成绩最高的学生的学号。正确的SELECT语句是 。 A.SELECT S# C.SELECT S#

FROM SC FROM SC WHERE C#=”C2” AND GRADE>= WHERE C#=”C2” AND GRADE NOT IN

(SELECT GRADE FROM SC (SELECT GRADE FROM SC WHERE C#= “C2”) WHERE C#= “C2”)

B.SELECT S# D.SELECT S#

FROM SC FROM SC WHERE C#=”C2” AND GRADE IN WHERE C#=”C2” AND GRADE>=ALL

(SELECT GRADE FROM SC (SELECT GRADE FROM SC WHERE C#= “C2”) WHERE C#= “C2”)

10、检索学生姓名及其所选修课程的课程号和成绩。正确的SELECT语句是: 。 A.SELECT S.SN,SC.C#,SC.GRADE C.SELECT S.SN,SC.C#,SC.GRADE FROM S FROM S,SC WHERE S.S#=SC.S# WHERE S.S#=SC.S# B.SELECT S.SN,SC.C#,SC.GRADE D.SELECT S.SN,SC.C#,SC.GRADE FROM SC FROM S,SC WHERE S.S#=SC.S#

11、要查找选修“COMPUTER“课程的女学生姓名,将涉及到关系 。 A.S B.SC,C C.S,SC D.S,C,SC 12、若用如下SQL语句创建一个表student:

CREATE TABLE student (NO CHAR(4) NOT NULL,

NAME CHAR(8)NOT NULL, SEX CHAR(2),

AGE INT)

可以插入到student 表中的是 。 A.(?1031?,?曾华?,男,23) B.(?1031?,?曾华?,NULL,NULL) C.(NULL,?曾华?,?男?,?23?) D.(?1031?,NULL,?男?,23) 13、SQL是 的缩写。

A Standard Query Language B Select Query Language C Structured Query Language D 以上都不是 14、视图是 。A 基本表 B 外视图 C 概念视图 D 虚拟表

15、SQL语言的操作对象 A 只能是一个集合 B 可以是一个或多个集合 C 不能是集合 D 可以是集合或非集合 16、索引的作用之一是 。 A 节省存储空间 B 便于管理 C 加快查询速度 D 建立各数据表之间的关系 17、以下有关索引的叙述中正确的是 。 A 索引越多,更新速度越快B 索引需要用户维护C 并置索引中列的个数不受限制 D 索引可以用来提供多种存取路径 18、以下有关视图查询的叙述中正确的是 。

A 首先查询出视图中所包含的数据,再对进行查询B 直接对数据库存储的视图数据进行查询 C 将对视图的查询转换为对相关基本表的查询D 不能对基本表和视图进行连表操作 19、以下有关UNIQUE约束的叙述中不正确的是 。

A UNIQUE约束中不允许出现空值B UNIQUE用于保证列或列组合的值唯一性

C 可以定义多个UNIQUE约束 D 系统为定义了UNIQUE约束的那些列建立唯一索引 20、以下关于空值的叙述中不正确的是 。

A 用=NULL查询指定列为空值的记录B 包含空值的表达式其计算结果为空值

C 聚集函数通常忽略空值 D 对允许空值的列排序时,包含空值的记录总是排在最前面 21、部分匹配查询中有关通配符“%”的叙述中正确的是 。

A“%”代表一个字符B“%”代表多个字符C“%”可以代表零个或多个字符D“%”不能与“_”同使用

22、在分组检索中,要去掉不满足条件的分组,应当 。A 使用WHERE子句B 使用HAVING子句C 先使用WHERE子句,再使用HAVING子句D 先使用HAVING子句,再使用WHERE子句

23、以下有关子查询的叙述中不正确的是 。A 子查询可以向其外部查询提供检索条件的条件值 B 子查询可以嵌套多层C 子查询的结果是一个集合D 子查询总是先于其外部查询 24、以下有关ORDER BY子句的叙述中不正确的是 。

A ORDER BY 子句可以对多个列进行排序 B 在SELECT语句中,ORDER BY 只能在所有其他子句之后,作为最后一个子句出现 C 子查询也可以使用ORDER BY子句D 在视图中不能使用ORDER BY子句

25、以下有关WHERE子句的叙述中不正确的是 。A WHERE子句中可以包含子查询 B 连接条件和选择条件之间应当使用OR逻辑运算C 不包含WHERE子句的SELECT语句进行的是单纯的投影操作 D 如果FROM子句中引用了N个表,则FROM子句中至少应当包括N-1个连接条件

26、以下有关SELECT子句的叙述中不正确的是 。 A SELECT子句中只能包含表中的列及其构成的表达式 B SELECT子句规定了结果集中的列顺序C SELECT子句中可以使用别名

D 如果FROM子句中引用的两个表中有同名的列,则在SELECT子句中引用它们时必须使用表名前缀加以限制。 27、以下有关聚集的叙述中不正确的是 。A 聚集将具有一个或多个公共列,并经常一起使用的相关表物理地聚集存储在一起 B 聚集中相同的值只存储一次 C 聚集加快了多个表连接操作速度,但对于单个表则没有什么意义 D 必须首先删除所有聚集表,才能删除聚集 二、填空题:

1、SQL是 。

2、SQL语言的数据定义功能包括 、 、 和 。

3、SELECT命令中, 子句用于选择满足给定条件的元组,使用 子句可按指定列的值分组,同时使用 子句可提取满足条件的组。

4、在SELECT命令中进行查询,若希望查询的结果不出现重复元组,应在SELECT语句中使用 保留字。 5、子查询的条件依赖于父查询,这类查询称为 。 6、视图是一个虚表,它是从 导出的表。在数据库中,只存放视图的 ,不存放视图对应的 。 7、设有如下关系表R,S,T: R(BH,XM,XB,DWH) S(DWH,DWM)

T(BH,XM,XB,DWH)

① 实现R?T的SQL语句是 。 ② 实现?DWH?'100'(R)的SQL语句是 。 ③ 实现?XM,XB(R)的SQL语句是 。 ④ 实现?XM,XB(?XB?'女'(R))的SQL语句是 。

⑤ 实现R*S的SQL语句是 。 ⑥ 实现

?XM,XB,DWM(?XB?'男'(R*S))的SQL语句

是 。

8、设有如下关系表R:

R(NO,NAME,SEX,AGE,CLASS) 主码是NO(学号)。 ① 插入一条记录(25,‘李明’,‘男’,21,‘95031’) ② 插入95031班学号为30号、姓名为‘郑和’的学生记录 ③ 将学号为10的学生姓名改为‘王华’ ④ 将所有‘95101’班号改为‘95091’ ⑤ 删除学号为20的学生记录 ⑥ 删除姓‘王’的学生记录

9、宿主语言向SQL语言提供参数是通过 ,在SQL语句中应用时,必须在宿主变量前加 。 10、用OPEN语句打开游标时,游标指针指向查询结果的 。 11、SQL语言具有 和 两种使用方式。

12、SELECT由 、 、 和 四个部分组成。

13、查询包含空值的记录时,使用比较运算符 ;查询不包含空值的记录时,使用比较运算符 。 14、建立索引的两个主要目的是 和 。

15、SQL的数据更新功能主要包括 、 和 三个语句。

16、视图是一个虚拟表,它由 导出,数据库系统只存储视图的 ,而不存储视图的 。 17、在部分匹配查询中,通配符“%”代表 ,“_”代表 。

18、在SQL的数据库空值功能中,授予权限使用 语句,收回权限使用 语句。 三、应用题: 1、有两个关系:

C(CNO,CN,PCNO) SC(SNO,CNO,G)

其中,C为课程表,对应的属性分别是课程号、课程名、选修课号;SC为学生选课表,对应的属性分别是学号、课号和成绩。用SQL语言写出:

(1)对关系SC中课号等于C1的选择运算 (2)对关系C的课号、课程名的投影运算 (3)两个关系的自然连接运算 2、设有如下4个关系模式:

书店(书店编号,书店名,地址) 图书馆(馆号,馆名,城市,电话) 图书(书号,书名,定价) 图书发行(馆号,书号,书店号,数量) 请回答下列问题:

(1)用SQL语句检索已经发行的图书中最贵和最便宜的书名和定价 (2)写出下列SQL语句所表达的中文含义:

SELECT 馆名 WHERE 书号 IN FROM 图书馆 (SELECT 书号 WHERE 馆名IN FROM 图书 (SELECT 馆号 WHERE 书名=‘数据库系统基 FROM 图书发行 础’)

3、设有职工关系模式如下:

people(pno,pname,sex,job,wage,dptno)

其中,pno为职工号,pname为职工姓名,sex为性别,job为职业,wage为工资,dptno为所在部门号。请写出下列查

询使用的SQL语句:

(1)查询工资比其所在部门平均工资高的所有职工信息 (2)查询工资大于‘赵明华’工资的所有职工信息

4、设有三个基本表:A表(A#{商店代码},ANAME{商店名},WQTY{店员人数},CITY{所在城市});B表(B#{商品号},BNAME{商品名称},PRICE{价格},QTY{商品数量});AB表(A#,B#,QTY)。试用SQL语句写出下列查询:

(1)找出店员人数不超过100人或者在长沙市的所有商店的商店代码和商店名; (2)找出供应书包的商店名;

(3)找出至少供应代号为256的商店所供应的全部商品的商店名和所在城市; 5、设有学生表S(SNO,SN)和学生选修课程表SC(SNO,CNO,CN,G),试用SQL语句完成以下操作: (1)建立一个视图V-SSC(SNO,SN,CNO,CN,G),并按CNO升序排序 (2)从视图V-SSC上查询平均成绩在90分以上的SN,CN,和G 6、设有4个关系模式:

S(SNO,SNAME,STATE,CITY):S为供应商,属性依次为:供应商号、供应商名、所在城市; P(PNO,PNAME,COLOR,WEI,PRICE):P表示零件,属性依次为:零件号、零件名、零件颜色、零件重量和单价;

J(JNO,JNAME,CITY):J表示工程,属性依次为: 工程号、工程名、所在城市

SPJ(SNO,PNO,JNO,QTY)SPJ表示供货关系,属性依次为:供应商号、零件号、工程号和供货数量; 用SQL语句实现下面的查询要求:

(1)查询供应了全部零件的供应商名和其所在城市 (2)查询供应红色零件的供应商名 7、关于教学数据库的关系模式如下: S(S#,SNAME,AGE,SEX):S表示学生,各属性依次为:学号、 姓名、年龄、性别

SC(S#,C#,GRADE):SC表示成绩,个属性依次为:学号、课程号、成绩

C(C#,CNAME,TEACHER)C表示课程,个属性依次为:课程号、课程名、教师 试用SQL语句完成下列查询:

(1)检索王老师所授课程的课程号和课程名 (2)检索年龄大于22岁的男学生的学号和姓名

(3)检索学号为10001学生所学课程的课程名与任课教师 (4)检索至少选修王老师所授课程中一门课程的女学生姓名 (5)检索张同学不学的课程的课程号 (6)检索至少选修两门课程的学生学号

(7)检索全部学生都选修的课程的课程号与课程名 (8)检索选修课程包含王老师所授课程的学生学号

第三章 答案 一、选择题: 1、B. 2、C. 3、B. 4、C. 5、A. 6、A. 7、D. 8、A.

9、D. 10、C. 11、D. 12、B. 13、 C 14、 D 15、 B 16、 C 17、 D 18、 C 19、 A 20、 A 21、 C 22、 B 23、 D

24、 C 25、B 26、 A 27、 C

二、填空题:

1、结构化查询语言

2、定义数据库、定义基本表、定义视图、定义索引 3、WHERE、GROUP BY 、HAVING

4、DISTINCT 5、相关子查询

6、一个或几个基本表、定义、数据

7、 ① SELECT * FROM R UNION SELECE * FROM T

② SELECT * FROM R WHERE DWH=?100? ③ SELECT XM,XB FROM R

④ SELECT XM,DWH FROM R WHERE XB=?女?

⑤SELECT R.BH,R.XM,R.XB,R.DWH,S.DWM FROM R,S WHERE R.DWH=S.DWH

⑥ SELECT R.XM,R.XB,S.DWM FROM R,S WHERE R.DWH=S.DWH AND R.XB=?男?

8、① INSERT INTO R VALUES (25,‘李明’,‘男’21,‘95031’)

② INSERT INTO R (NO,NAME,CLASS) VALUES(30,11、自含型 宿主型 ‘郑和’,’95031’) 12、数据查询 数据更新 数据定义

③ UPDATE R SET NAME=‘王华’WHERE NO=10 数据控制 ④ UPDATE R SET CLASS=‘95091‘ WHERE CLASS=’13、IS NULL IS NOT NULL 95101‘ 14、加快查询速度 保证行的唯一性

⑤ DELETE FROM R WHERE NO=20 15、INSERT UPDATE DELETE ⑥ DELETE FROM R WHERE NAME LINK‘王%‘ 16、一个或几个基本表 定义 数据 9、 宿主变量、 : 17、任意序列的零个或多个字符 任意单个字符 10、第一个记录 18、GRANT REVOKE 三、应用题:

1、有两个关系:C(CNO,CN,PCNO) SC(SNO,CNO,G)

其中,C为课程表,对应的属性分别是课程号、课程名、选修课号;SC为学生选课表,对应的属性分别是学号、课号和成绩。用SQL语言写出:

(1)对关系SC中课号等于C1的选择运算 (2)SELECT CNO,CN

FROM C (2)对关系C的课号、课程名的投影运算

(3)两个关系的自然连接运算 (3)SELECT C.CNO,C.CN,C.PCNO,SC.SNO,SC.G

FROM C, SC (1)SELECT *

FROM SC WHERE C.CNO=SC.CNO WHERE CNO=‘C1’

2、设有如下4个关系模式:

书店(书店编号,书店名,地址) 图书(书号,书名,定价)

图书馆(馆号,馆名,城市,电话) 图书发行(馆号,书号,书店号,数量) 请回答下列问题:

(1)用SQL语句检索已经发行的图书中最贵和最便宜的书名和定价 (2)写出下列SQL语句所表达的中文含义:

SELECT 馆名 WHERE 书号 IN FROM 图书馆 (SELECT 书号 WHERE 馆名IN FROM 图书 (SELECT 馆号 WHERE 书名=‘数据库系统基 FROM 图书发行 础’) (1) ELECT 图书.书名,图书.定价

FROM 图书

WHER 定价=(SELECT MAX(定价) FROM 图书,图书发行

WHERE 图书.书号=图书发行.书号) SELECT 图书.书名,图书.定价

FROM 图书

WHER 定价=(SELECT MIN(定价) FROM 图书,图书发行

WHERE 图书.书号=图书发行.书号)

(2)查询拥有已发行的‘数据库系统基础’一书的图书馆馆名。 3、设有职工关系模式如下:

people(pno,pname,sex,job,wage,dptno)

其中,pno为职工号,pname为职工姓名,sex为性别,job为职业,wage为工资,dptno为所在部门号。请写出下列查询使用的SQL语句:

(1)查询工资比其所在部门平均工资高的所有职工信息 (2)查询工资大于‘赵明华’工资的所有职工信息

(1)SELECT *

FROM people x

WHERE wage>( SELECT AVG(wage) FROM people y

WHERE x.dptno=y.dptno)

(2)SELECT *

FROM people

WHERE wage>( SELECT wage FROM people

WHERE pname=?赵明华?)

4、设有三个基本表:A表(A#{商店代码},ANAME{商店名},WQTY{店员人数},CITY{所在城市});B表(B#{商品号},BNAME{商品名称},PRICE{价格},QTY{商品数量});AB表(A#,B#,QTY)。试用SQL语句写出下列查询:

(1)找出店员人数不超过100人或者在长沙市的所有商店的商店代码和商店名; (2)找出供应书包的商店名;

(3)找出至少供应代号为256的商店所供应的全部商品的商店名和所在城市; (1)SELECT A#,ANAME FROM A

WHERE WQTY<=100 OR CITY=‘长沙市’ (2)SELECT A.ANAME

FROM A,B,AB

WHERE A.A#=AB.A# AND B.B#=AB.B# AND B.BNAME=‘书包’ (3)SELECT A.ANAME,A.CITY FROM A,AB

WHERE A.A#=AB.A# AND AB.B# IN (SELECT AB.B# FROM AB

WHERE A#=?256?)

5、设有学生表S(SNO,SN)和学生选修课程表SC(SNO,CNO,CN,G),试用SQL语句完成以下操作: (1)建立一个视图V-SSC(SNO,SN,CNO,CN,G),并按CNO升序排序 (2)从视图V-SSC上查询平均成绩在90分以上的SN,CN,和G (1)CREATE VIEW V-SSC(SNO,SN,CNO,CN,G)

AS SELECT S.SNO,S.SN,SC.CNO,SC.CN,SC.G FROM S,SC

WHERE S.SNO=SC.SNO ORDER BY CNO (2)SELECT SN,CN,G

FROM V-SSC GROUP BY SNO

HAVING AVG(G)>90

6、设有4个关系模式:

S(SNO,SNAME,STATE,CITY):S为供应商,属性依次为:供应商号、供应商名、所在城市; P(PNO,PNAME,COLOR,WEI,PRICE):P表示零件,属性依次为:零件号、零件名、零件颜色、零件重量和单价;

J(JNO,JNAME,CITY):J表示工程,属性依次为: 工程号、工程名、所在城市

SPJ(SNO,PNO,JNO,QTY)SPJ表示供货关系,属性依次为:供应商号、零件号、工程号和供货数量; 用SQL语句实现下面的查询要求:

(1)查询供应了全部零件的供应商名和其所在城市 (2)查询供应红色零件的供应商名 (1)SELECT SNAME ,CITY

FROM S

WHERE NOT EXISTS ( SELECT * FROM P

WHERE NOT EXISTS ( SELECT * FROM SPJ

WHERE SPJ.SNO=S.SNO AND SPJ.PNO=P.PNO) (2)SELECT SNAME

FROM S,P,SPJ

WHERE S.SNO=SPJ.SNO AND SPJ.PNO=P.PNO AND P.COLOR=?红色?

7、关于教学数据库的关系模式如下: S(S#,SNAME,AGE,SEX):S表示学生,各属性依次为:学号、 姓名、年龄、性别

SC(S#,C#,GRADE):SC表示成绩,个属性依次为:学号、课程号、成绩

C(C#,CNAME,TEACHER)C表示课程,个属性依次为:课程号、课程名、教师 试用SQL语句完成下列查询:

(1)检索王老师所授课程的课程号和课程名 姓名 (2)检索年龄大于22岁的男学生的学号和姓名 (5)检索张同学不学的课程的课程号 (3)检索学号为10001学生所学课程的课程名与任课教(6)检索至少选修两门课程的学生学号 师 (7)检索全部学生都选修的课程的课程号与课程名 (4)检索至少选修王老师所授课程中一门课程的女学生(8)检索选修课程包含王老师所授课程的学生学号

WHERE X.S#=Y.S# AND X.C#! =Y.C# (1)SELECT C#,CNAME

FROM C (7)SELECT C#,CNAME

FROM C WHERE TEACHER=?王'

WHERE NOT EXISTS (2)SELECT S#,SNAME

FROM S (SELECT *

FROM S WHERE AGE>22 AND SEX=?男?

WHERE NOT EXISTS (3)SELECT CNAME,TEACHER

FROM SC,C (SELECT * WHERE SC.C#=C.C# AND S#=?10001? FROM SC

WHERE S#=S.S# AND C#=C.C#)) (4)SELECT SNAME

FROM S,SC,C (8)SELECT DISTINCT S# WHERE S.S#=SC.S# AND SC.C#=C.C# AND FROM SC X

WHERE NOT EXISTS SEX=?女? AND TEACHER=?王?

(5)SELECT C# (SELECT *

FROM C FROM C WHERE NOT EXISTS WHERE TEACHER=?王? AND NOT EXISTS (SELECT * FROM S,SC (SELECT * WHERE S.S#=SC.S# AND SC.C#=C.C# FROM SC Y

WHERE Y.S#=X.S# AND AND SNAME=?张?))

Y.C#=C.C#)) (6)SELECT DISTINCT X..S#

FROM SC X,SC Y

第二章 关系数据库

一、选择题:

1、对于关系模型叙述错误的是 。A.建立在严格的数学理论、集合论和谓词演算公式基础之一 B.微机DBMS绝大部分采取关系数据模型C.用二维表表示关系模型是其一大特点 D.不具有连接操作的DBMS也可以是关系数据库管理系统

2、关系模式的任何属性 A.不可再分 B.可再分C.命名在该关系模式中可以不唯一 D.以上都不是 3、在通常情况下,下面的表达中不可以作为关系数据库的关系的是 。 A.R1(学号,姓名,性别) B.R2(学号,姓名,班级号) C.R3(学号,姓名,宿舍号) D.R4(学号,姓名,简历) 4、关系数据库中的码是指 。

A.能唯一关系的字段 B.不能改动的专用保留字 C.关键的很重要的字段 D.能惟一表示元组的属性或属性集合 5、根据关系模式的完整性规则,一个关系中的“主码” 。

A.不能有两个 B.不能成为另外一个关系的外码C.不允许为空 D.可以取值 6、关系数据库中能唯一识别元组的那个属性称为 。

A.唯一性的属性 B.不能改动的保留字段C.关系元组的唯一性 D.关键字段

7、在关系R(R#,RN,S#)和S(S#,SN,SD)中,R的主码是R#,S的主码是S#,则S#在R中称为 。 A.外码 B.候选码C.主码 D.超码 8、关系模型中,一个码是 。

A.可由多个任意属性组成B.至多由一个属性组成 C.可由一个或多个其值能唯一标识该关系模式中任意元组的属性组成D.以上都不是

9、一个关系数据库文件中的各条记录 。A.前后顺序不能任意颠倒,一定要按照输入的顺序排列B.前后顺序可以任意颠倒,不影响库中的数据关系C.前后顺序可以任意颠倒,但排列顺序不同,统计处理的结果可能不同D.前后顺序不能任意颠倒,一定要按照码段的顺序排列

10、关系数据库管理系统应能实现的专门关系运算包括 。

A.排序、索引、统计 B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表 11、同一个关系模型的任意两个元组值 。

A.不能全同 B.可全同C.必须全同 D.以上都不是

12、自然连接是构成新关系的有效方法。一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或多个共有的 。A.元组 B.行C.记录 D.属性 13、设关系R(A,B,C)和S(B,C,D),下列各关系代数表达式不成立的是 。 A.?A(R)???D(S) B.R?S C.?B(R)??B(S) D.R??S

14、有两个关系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

15、取出关系中的某些列,并消去重复元组的关系代数运算称为 。 A.取列运算 B.投影运算 C.连接运算 D.选择运算

16、设W=R??S,且W,R,S的元组个数分别为p,m,n,那么三者之间满足 。 A.p<(m+n) B.p<=(m+n) C.p<(m*n) D.p<=(m*n)

17、设关系R和S的属性个数分别为2和3,那么R??S(1<2)等价于 。 A.?1?2(R*S) B.?1?4(R*S)C.?1?2(R??S) D.?1?2(R??S) 18、设关系R和S的属性个数为r和s,那么R??S(i?j)与下式 等价。

A.?i?(r?j)(R*S) B.?i?j(R*S)C.?i?(r?j)(R??S)D.?i?j(R??S)

19、参加差运算的两个关系 。

A.属性个数可以不同 B.属性个数必须相同 C.一个关系包含另一个关系的属性D.属性名必须相同

1

20、两个关系在没有公共属性时,其自然连接操作表现为 。

A.结果为空关系B.笛卡儿积操作C.等值连接操作 D.无意义的操作 21、有关系:R(A,B,C)(主码为A)和S(D,A)(主码为D,外码为A)参照于R的A属性。关系R和S的元组如图所示: 关系R

A 1 2 关系S D 1 2 3 4 A 2 NULL 3 1 B 2 1 C 3 3 指出关系S中违反完整性规则的元组是 。A.(1,2)B.(2,null) C.(3,3) D.(4,1) 22、设有属性A,B,C,D,以下表示中不是关系的是 。

A.R(A) B.R(A,B,C,D)C.R(A*B*C*D) D.R(A,B)

23、关系运算中花费时间可能最长的运算是 。A.投影 B.选择 C.笛卡儿积 D.除 二、填空题:

1、关系操作的特点是 操作。

2、关系模型的完整性规则包括 、 和 。 3、连接运算是由 和 操作组成的。

4、自然连接运算是由 、 和 组成。 5、关系模型由 、 和 组成。 6、关系模式是关系的 ,相当于 。 7、在一个实体表示的信息中, 称为码。

8、传统的结合运算施加于两个关系时,这两个关系的 必须相等, 必须取自同一个域。

9、关系模式是对关系 的描述。

10、在关系中能唯一标识元组的属性或属性集称为关系模式的 。 11、一个关系模式可以形式化地表示为 。 12、关系数据库模式是 的集合。

13、一个关系模式的定义主要包括关系名、 、 、 和主关系键。 14、在关系中选作元组标识的候选键称为 。

15、关系模型的三类完整型规则包括: 、 、 。 16、关系键的值 的约束条件称为实体完整性。

17、实体完整性规则定义了关系中 ,不存在没有被标识的元组。 18、参照完整性规则定义了 的引用规则,不引用不存在的实体; 与关系键对应可实现两个关系的关联。 19、关系运算可分为 和 两大类,其中关系演算又可分为 和 两类。 20、关系代数中四类传统的集合运算分别为:__________、__________、_________ 和广义笛卡儿积运算。

21、关系代数中专门的运算操作包括 、 、 、 和除法运算五种操作。 22、关系操作的特点是 操作。 23、在传统集合运算中,假定有关系R和S,运算结果为RS。如果RS中的元组属于R或者属于S,则RS是 运算的结果;如果RS中的元组属于R而不属于S,则RS是

运算的结果。如果RS中的元组既属于R又属于S,则RS是 运算的结果。

24、在专门关系运算中,从表中按照要求取出指定属性的操作称为 ;从表中选出满足某种条件的元组的操作称为 ;将两个关系中满足一定条件的元组连接到一起构成新表的操作称为 。

2

三、应用题:

1、设有如图所示的关系R,W和D,计算: (1)R1=?Y,T(R) (2)R2=?P?5?T?e(R) (3)R3?R??W

关系R P 2 9 2 9 7 7 Q b a b a g g T c e e d e c

关系W

Y d f f e f d (4)R4??[2],[1],[6](?[3]?[5](R*D) (5)R5?R?D

T c c d Y d d f 关系D B m n n T c e Y d f

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

关系S

S# 1 2 3

关系C C# K1 K5 K8 关系SC S# 1 82 5 2 5 5 C# K1 K1 K1 K5 K5 K8 GRADE 83 85 92 90 84 80 (4)检索“李强”同学不学课程的课程号。 (5)检索至少选修两门课程的学生学号(S#)。

(6)检索全部学生都选修的课程的课程号(C#)和课程名(CNAME)。

(7)检索选修课程包含“程军”老师所授课程之一的学生学号(S#)。

3

SNAME 李强 刘丽 张友 AGE 23 22 22 SEX 男 女 男 CNAME C语言 数据库原理 编译原理 TEACHER 王华 程军 程军 (1)检索“程军”老师所授课程的课程号(C#)和课程

名(CNAME)。

(2)检索年龄大于21的男学生学号(S#)和姓名(SNAME)。

(3)检索至少选修“程军”老师所授全部课程的学生姓名。

(8)检索选修课程号为K1和K5的学生学号(S#)。 (9)检索选修全部课程的学生姓名(SNAME)。 (10)检索选修课程包含学号为2的学生所修课程的学生学号(S#)。

(11)检索选修课程名为“C语言”的学生学号(S#)和姓名(SNAME)。

3、已知一个关系数据库的模式如下: S (SNO,SNAME,SCITY)

P (PNO,PNAME,COLOR,WEIGHT) J (JNO,JNAME,JCITY) SPJ (SNO,PNO,JNO,QTY) 供应商S由供应商代码SNO、供应商姓名SNAME、供应商所在城市SCITY组成;零件P由零件代码PNO、零件名PNAME、颜色COLOR、重量WEIGHT组成;工程项目J由工程项目代码JNO、工程项目名JNAME、和所在城市JCITY组成;供应情况SPJ由供应商代码SNO、零件代码PNO、工程项目代码JNO、供应数量QTY组成。 用关系代数表达式表示下面的查询要求:

(1)找出向北京的供应商购买重量大于30的零件工程名。

(2)求供应工程J1零件的供应商代码 (3)求供应工程J1零件P1的供应上代码 (4)求供应工程J1零件为红色的供应商代码

(5)求没有使用天津供应商生产的红色零件的工程项目一、选择题:

1、D. 2、A. 3、D. 4、D. 5、C. 6、D. 7、A. 8、C. 9、B.

10、B. 11、A. 12、D. 13、B. 14、B. 15、B. 16、D. 17、B.

18、A. 19、B. 20、B. 21 C. 22、C. 23、C.

二、填空题: 1、集合

2、实体完整性规则、参照完整性规则、用户自定义的完整性规则

3、笛卡儿积、选择

4、笛卡儿积、选择、投影

5、数据结构、数据操作、完整性约束 6、框架、记录格式

7、能唯一标识实体的属性或属性组 8、属性个数、相对应的属性值 9、结构 10、关系键 三、应用题:

1、设有如图所示的关系R,W和D,计算:

代码 (6)求至少用了供应商S1所供应的全部零件的工程项目代码

4、设有下列关系模式:

STUDENT(SNO,SNAME,AGE,SEX,DNO)其中,SNO表示学号,CNAME表示姓名,AGE表示年龄,SEX表示性别,DNO表示院系号。

SC(SNO,CNO,GRADE),其中SNO表示学号,CNO表示课程号,GRADE表示成绩。 COURSE(CNO,CNAME),其中CNO表示课程号,CNAME表示课程名。

请用关系代数表示下列查询:

1) 检索年龄小于16的女学生的学号和姓名。 2) 检索成绩大于85分的女学生的学号、姓名。 3) 检索选修课程为C1或C2的学生的学号

4) 检索至少选修了课程号为C1和C2的学生的学号。 5) 检索选修课程号为C1的学生的学号,姓名,课程名

和成绩。

6) 检索选修了全部课程的学生的学号、姓名和年龄。

第二章 答案

11、R(A1,A2,?,An)其中R为关系名,A1,A2,?An为属性名。

12、一组关系模式 13、属性名, 属性类型, 属性长度 14、关系键

15、实体完整性规则 参照完整性规则,用户定义完整性规则

16、不能取空值或部分空值 17、不能有重复的元组

18、外部关系键与关系键 外部关系键 19、关系代数 关系演算 元组演算 域演算

20、并运算 差运算 交运算 21、选择运算 投影运算 连接运算 自然连接 22、集合

23、并 差 交 24、投影 选择 连接

(1)R1=?Y,T(R)(2)R2=?P?5?T?e(R)(3)R3?R??W(4)R4??[2],[1],[6](?[3]?[5](R*D)(5)R5?R?D

4

关系R P Q T Y 2 b c d 9 a e f 2 b e f 9 a d e 7 g e f 7 g c d

关系W T Y B c d m c d n d f n 关系D T Y c d e f 关系R1 Y T d c f e e d 关系R2 P Q T Y 9 a e f 7 g e f 关系R3 P Q T Y B 2 b c d m 2 b c d n 7 g c d m 7 g c d n 关系R4 Q P Y b 2 d a 9 f b 2 f g 7 f g 7 d 关系R5 P Q 5

2 7 b g

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

关系S S# 1 2 3 关系C C# K1 K5 K8 关系SC

S# 1 82 5 2 5 5 C# K1 K1 K1 K5 K5 K8 GRADE 83 85 92 90 84 80 CNAME C语言 数据库原理 编译原理 TEACHER 王华 程军 程军 SNAME 李强 刘丽 张友 AGE 23 22 22 SEX 男 女 男 (1)检索“程军”老师所授课程的课程号(C#)和课程名(CNAME)。 (2)检索年龄大于21的男学生学号(S#)和姓名(SNAME)。 (3)检索至少选修“程军”老师所授全部课程的学生姓名。 (4)检索“李强”同学不学课程的课程号。 (5)检索至少选修两门课程的学生学号(S#)。

(6)检索全部学生都选修的课程的课程号(C#)和课程名(CNAME)。 (7)检索选修课程包含“程军”老师所授课程之一的学生学号(S#)。 (8)检索选修课程号为K1和K5的学生学号(S#)。 (9)检索选修全部课程的学生姓名(SNAME)。

(10)检索选修课程包含学号为2的学生所修课程的学生学号(S#)。 (11)检索选修课程名为“C语言”的学生学号(S#)和姓名(SNAME)。 答:

(1)?c#,cname(?TEACHER?\程军\(C)) (2)?S#,SNAME(?AGE?21?SEX?\男\(S))

(3)?SNAME(S??(?S#,C#(SC)??C#(?TEACHER?\程军\(C)))) (4)?C#(C)??C#(?SNAME?\李强\(S)??SC) (5)?S#(?[1]?[4]?[2]?[5](SC*SC))

(6)?c#,cname(C??(?S#,C#(SC)??S#(S)))

6

(7)?S#(SC???C#(?TEACHER?\程军\(C))) (8)?S#(SC)??C#(?C#?'K1'?C#?'K5'(C)) (9)?SNAME(S??(?S#,C#(SC)??C#(C))) (10)?S#,C#(SC)??C#(?C#?'2'(SC))

(11)?S#,SNAME(S???S#(SC??(?CNAME?'C语言'(C))))

3、已知一个关系数据库的模式如下: S (SNO,SNAME,SCITY)

P (PNO,PNAME,COLOR,WEIGHT) J (JNO,JNAME,JCITY) SPJ (SNO,PNO,JNO,QTY)

供应商S由供应商代码SNO、供应商姓名SNAME、供应商所在城市SCITY组成;零件P由零件代码PNO、零件名PNAME、颜色COLOR、重量WEIGHT组成;工程项目J由工程项目代码JNO、工程项目名JNAME、和所在城市JCITY组成;供应情况SPJ由供应商代码SNO、零件代码PNO、工程项目代码JNO、供应数量QTY组成。 用关系代数表达式表示下面的查询要求:

(1)找出向北京的供应商购买重量大于30的零件工程名。 (2)求供应工程J1零件的供应商代码 (3)求供应工程J1零件P1的供应上代码 (4)求供应工程J1零件为红色的供应商代码

(5)求没有使用天津供应商生产的红色零件的工程项目代码 (6)求至少用了供应商S1所供应的全部零件的工程项目代码 答:

(1)?JNAME(?SCITY?'北京'?WEIGHT?30(SPJ??P??S??J)或

?JNAME(SPJ???WEIGHT?30(P)???SCITY?'北京'(S)??J)

(2)?SNO(?JNO?'J1'(SPJ)) (3)?SNO(?JNO?'J1'?SNO?'P1'(SPJ))

(4)?SNO(?JNO?'J1'?COLOR?'红色'(P??SPJ))

(5)?JNO(J)??JNO(?CITY?'天津'(S)??SPJ???COLOR?'红色'(P)) (6)?PNO,JNO(SPJ)??PNO(?SNO?'S1'(SPJ))

4、设有下列关系模式:STUDENT(SNO,SNAME,AGE,SEX,DNO)其中,SNO表示学号,CNAME表示姓名,AGE表示年龄,SEX表示性别,DNO表示院系号。

SC(SNO,CNO,GRADE),其中SNO表示学号,CNO表示课程号,GRADE表示成绩。 COURSE(CNO,CNAME),其中CNO表示课程号,CNAME表示课程名。 请用关系代数表示下列查询:

(1) 索年龄小于16的女学生的学号和姓名。 (2) 索成绩大于85分的女学生的学号、姓名。

7

(3) 检索选修课程为C1或C2的学生的学号

(4) 检索至少选修了课程号为C1和C2的学生的学号。

(5) 检索选修课程号为C1的学生的学号,姓名,课程名和成绩。 (6) 检索选修了全部课程的学生的学号、姓名和年龄。 答:

1) ∏SNO,SNAME(σAGE<16(STUDENT))

2) ∏SNO,SNAME(σGRADE>85^SEX=?女?(STUDENT*SC)) 3) ∏SNO(σCNO=?C1?∨CNO=?C2?(SC))

4) ∏SNO(σCNO=?C1?(SC))∩∏SNO(σCNO=?C2?(SC))

5) ∏STUDENT。SNO,SNAME,CNAME,GRADE(σCNO=?C1?((STUDENT*SC)*COURSE)) 6) ∏STUDENT.SNO,SNAME, AGE(STUDENT*∏SNO.CNO(SC)÷∏CNO(COURSE))

第四章 关系系统及其查询优化

一、选择题:

1、如果一个系统定义为关系系统,则它必须 。

A.支持关系数据库 B.支持选择、投影和连接运算 C.A和B均成立 D.A、B都不需要 2、设E是关系代数表达式,F1、F2是选取条件表达式,则有 。 A.?F1(?F2(E))??F1?F2(E) B.?F1(?F2(E))??F1?F2(E) C.?F1(?F2(E))??F1(E) D.?F1(?F2(E))??F2(E)

二、填空题:

1、关系系统的查询优化既是关系数据库管理系统实现的关键技术,又是关系系统的优点。因为,用户只要提出 ,不必指出 。

2、在关系代数运算中, 、 运算最费时间和空间。究竟应采用什么样的策略才能节省时间、空间,这就是优化的准则。 三、问答题:

1、为什么要对关系代数表达式进行优化? 2、查询优化的总目标是什么?

第四章 答案

一、选择题: 的顺序执行,必将花费很多时间,并生成大量中间结果,1、C. 2、B. 效率较低。如果在执行前,由DBMS的查询子系统先对二、填空题: 关系代数表达式进行优化,尽可能先执行选择和投影操1、干什么、怎么干 作,则进行笛卡儿积或连接时可以减少中间结果,并节省2、笛卡儿积、连接 时间。优化工作是由DBMS做的,用户在写关系代数表三、问答题: 达式时不必关系优化一事,仍以简练的形式书写。 1、为什么要对关系代数表达式进行优化? 2、查询优化的总目标是什么? 答:关系代数表达式由关系代数操作组合而成。操作 答:查询优化的总目标是选取有效的存取路径,求得中,笛卡儿积和连接操作最费时。如果直接按表达式书写给定关系代数表达式的值。

模拟试题1

单项选择题(本大题共15小题,每小题2分,共30分)

1.在文件系统中,所具有的数据独立性是[ ]A.系统独立性 B.物理独立性 C.逻辑独立性 D.设备独立性 2.数据库系统中存放三级结构定义的DB称为[ ]A.DBS B.DD C.DDL D.DBMS 3.设有关系R(A,B,C)和关系S(B,C,D),那么与R?S等价的关系代数表达式 [ ]

A.σ1=5(R?S) B.σ1=5(R×S) C.σ1=2(R?S) D.σ1=2(R×S) 4.与域表达式 { ab | (?c) (R(ac) ∧ R(cb))} 等价的关系代数表达式是 [ ]

8

A.π1,4(σ2=3(R×R)) B.π1,3(R?R) C.π1,4(R?R) D.π1,3(R?S) 5.设有两个关系R(A,B)和S(B,C),与下列SELECT语句 2=1 2=3

SELECT A,B FROM R WHERE B NOT IN(SELECT B FROM S WHERE C='C56'); 等价的关系代数表达式是 [ ]

A.πA,B(σC≠'C56'(R?S))B.πA,B(R ? S)C.R-πA,B(σC= 'C56'(R?S))D.R-πA,B(σC≠'C56'(R?S)) 6.嵌入式SQL的预处理方式,是指 C≠ [ ] 'C56'

A.识别出SQL语句,加上前缀标识和结束标志B.把嵌入的SQL语句处理成函数调用形式

C.对源程序进行格式化处理 D.把嵌入的SQL语句编译成目标程序 7.设关系模式R(A,B,C,D),F是R上成立的FD集,F={ B→D,AD→C },那么

ρ={ ABC,BCD }相对于F [ ] A.是无损联接分解,也是保持FD的分解B.是无损联接分解,但不保持FD的分解 C.不是无损联接分解,但保持FD的分解D.既不是无损联接分解,也不保持FD的分解

+

8.设有关系模式R(A,B,C,D),F是R上成立的FD集,F={A→B,C→D},则F中左部为(BC)的函数依赖有 A.2个 B.4个 C.8个 D.16个

9.有12个实体类型,并且它们之间存在着15个不同的二元联系,其中4个是1:1联系类型,5个是1:N联系类型,6

个M:N联系类型,那么根据转换规则,这个ER结构转换成的关系模式有[ ] A.17个 B.18个 C.23个 D.27个

10.DBMS的并发控制子系统,保证了事务__________的实现[ ]A.原子性 B.一致性 C.隔离性 D.持久性 11.SQL中不一定能保证完整性约束彻底实现的是 [ ]A.主键约束 B.外键约束 C.局部约D.检查子句 12.ORDB中,同类元素的有序集合,并且允许一个成员可多次出现,称为[ ] A.结构类型B.集合类型C.数组类型D.多集类型

13.在ORDB中,当属性值为单值或结构值时,引用方式任和传统的关系模型一样,在层次之间加 [ ]

A.冒号“:” B.单箭头“→” C.下划线“_” D.圆点“.”

14.某一种实际存在的事物具有看来好像不存在的性质,称为[ ]A.不存在性B.虚拟性C.无关性D.透明性 15.DDBS中,全局关系与其片段之间的映象是[ ]A.一对一的 B.一对多的 C.多对一的D.多对多的 二.填空题(本大题共10小题,每小题1分,共10分)

16.关系模型和层次、网状模型最大差别是用___________而不是用___________导航数据。

17.DBS的全局结构体现了DBS的____________结构。18.在关系代数中,交操作可由__________操作组合而成。 19.SQL的SELECT语句中使用分组子句以后,SELECT子句的语义就不是投影的意思了,而是______________________。 20.设关系模式R(A,B,C),F是R上成立的函数依赖集,F={ A→B,B→C,C→A },那么F在模式AB上投影πAB

(F)=___________。

21.数据库中,悬挂元组是指___________________。22.DBD中,子模式设计是在___________阶段进行的 23.封锁能避免错误的发生,但会引起 问题。

24.ORDB中,引用类型是指嵌套引用时,不是引用对象本身的值,而是引用___________。

25.DDBS中,如果系统具有分片透明性,那么用户只要对___________就能操作了,不必了解数据的___________情况。 三.简答题(本大题共10小题,每小题3分,共30分) 26.“数据独立性”在文件系统阶段、数据库阶段和分布式数据库阶段中各表现为什么形式? 27.设有关系R和S:

R A B C S A B D 1 2 3 1 3 6 1 3 5 3 6 8 2 4 6 1 3 5 3 6 9 3 4 5 试写出R?S、 R?S的值 28.设有关系R(A,B,C)和S(D,E,F),设有关系代数表达式。 2>2

πA,B(R)-πA,B(σA=D ∧ E='E8'(R×S))

试写出与上述关系代数表达式等价的元组表达式,关系逻辑规则和SQL语句。 29.嵌入式SQL的预处理方式是如何实现的?这种方式有什么重要意义?

9

30.设关系模式R(A,B,C,D,E),F是R上成立的FD集,F={ AB→C,BC→A, AC→B,D→E },试写

出R的候选键,并说明理由。

31.逻辑设计阶段的输入和输出是什么?

32.什么是“脏数据”?如何避免读取“脏数据”? 33.对象联系图与ER图的主要差别是什么?

34.什么是“死锁”?在系统发生死锁时,系统如何处理?

35. DDB中数据分片必须遵守哪三个条件?这三个条件的目的各是为了什么? 四.设计题(本大题共5小题,每小题4分,共20分) 设某商业集团关于商店销售商品的数据库中有三个基本表: 商店 SHOP(S#,SNAME,AREA,MGR_NAME)

其属性是商店编号,商店名称,区域名,经理姓名。 销售 SALE(S#,G#, QUANTITY)

其属性是商店编号,商品编号,销售数量。

商品 GOODS(G#,GNAME,PRICE)

其属性是商品编号,商品名称,单价。

36.试写出下列查询的关系代数表达式、元组表达式和关系逻辑规则:检索销售“冰箱”的商店的编号和商店名称。 37.试写出上面第36题的SELECT语句表达形式。并写出该查询的图示形式。

38.试写出下列操作的SQL语句:从SALE表中,把“开开商店”中销售单价高于1000元的商品的销售元组全部删除。 39.写一个断言,要求区域名为“EAST”的商店里销售商品的单价不能低于100元。 40.试写出下列操作的SQL语句:

统计区域名为“EAST”的所有商店销售的每一种商品的总数量和总价值。 要求显示(G#,GNAME,SUM_QUANTITY,SUM_VALUE),其属性为商品编号、商品名称、销售数量、销售价值。 五.综合题(本大题共2小题,每小题5分,共10分)

41.某汽车运输公司数据库中有一个记录司机运输里程的关系模式: R(司机编号,汽车牌照,行驶公里,车队编号,车队主管)

此处每个汽车牌照对应一辆汽车。“行驶公里”为某司机驾驶某辆汽车行驶的总公里数。如果规定每个司机属于一个车队,每个车队只有一个主管。

(1)试写出关系模式R的基本FD和关键码。

(2)说明R不是2NF模式的理由,并指出数据冗余之所在。试把R分解成2NF模式集。 (3)进而把R分解成3NF模式集,并说明理由。

42.设某商业集团数据库中有三个实体集。一是“仓库”实体集,属性有仓库号、仓库名和地址等;二是“商店”实

体集,属性有商店号、商店名、地址等;三是“商品”实体集,属性有商品号、商品名、单价。

设仓库与商品之间存在“库存”联系,每个仓库可存储若干种商品,每种商品存储在若干仓库中,每个仓库每

存储一种商品有个日期及存储量;商店与商品之间存在着“销售”联系,每个商店可销售若干种商品,每种商品可在若干商店里销售,每个商店销售一种商品有月份和月销售量两个属性;仓库、商店、商品之间存在着“供应”联系,有月份和月供应量两个属性。

(1)试画出ER图,并在图上注明属性、联系类型、实体标识符; (2)将ER图转换成关系模型,并说明主键和外键。 (3)将ER图转换成对象联系图。 (4)将ER图转换成UML的类图。

模拟试题1答案

一. 单项选择题答案1.D 2.B 3.B 4.A 5.C 6.B 7.B 8.C9.B 10.C 11.D

12.C 13.D 14.D 15.B

二.填空题答案

16.关键码 指针 17.模块功能

18.差 19.对每一分组执行聚合操作 20.{ A→B,B→A } 21.破坏泛关系存在的元组 22.逻辑设计 23.活锁、饿死和死锁

10

24.对象标识符 25.全局关系 分片和分配 三.简答题答案 26.答:“数据独立性”在文件系统中表现为“设备独立性”;在数据库阶段表现为“物理独立性”和“逻辑独立性”;

在分布式数据库中表现为“分布透明性”。 27.答:

R?S A B C D R?S R.A R.B C S.A S.B D 1 3 5 6 2=2 2 4 6 1 3 6

1 3 5 5 2 4 6 1 3 5 3 6 9 8 3 6 9 1 3 6

3 6 9 1 3 5 3 6 9 3 4 5

28.答:元组表达式为:{ t|(?u)(?v)(R(u)∧S(v)∧(u[l]=v[1] ? v[2]≠'E8')∧t[1]=u[1] ∧t[2]=u[2])} 关系逻辑规则为:W(x,y)← R(x,y,a)∧┐(x,'E8',c) SQL语句为:

SELECT A,B FROM R WHERE A NOT IN (SELECT D FROM S WHERE E='E8');

29.答:预处理方式是先用预处理程序对源程序进行扫描,识别出SQL语句,并处理成宿主语言的函数调用形式;然

后再用宿主语言的编译程序把源程序编译成目标程序。

这种方法的重要意义在于不必改动宿主语言的编译程序,这样,SQL的编译程序和宿主语言的编译程序之间就

可独立,互不影响。

30.答:模式R有三个候选键:ABD、BCD、ACD三个。推导过程如下:

① 从AB→C和D→E,可推出ABD→ABCDE。 ② 从BC→A和D→E,可推出BCD→ABCDE。

③ 从AC→B和D→E,可推出ACD→ABCDE。 31.答:逻辑设计阶段的输入信息有四种:

① 概念设计阶段的概念模式;② 应用的处理需求;③ 完整性、安全性约束条件;④ DBMS特性。 逻辑设计阶段的输出信息主要有四种:

① DBMS可处理的模式;② 子模式;③ 应用程序设计指南;④ 物理设计指南。 32.答:在数据库运行时,把未提交随后又被撤消的数据称为“脏数据”。 为避免读取“脏数据”,事务可以对数据实行加S锁的方法,以防止其他事务对该数据进行修改。

33.答:对象联系图与ER图的主要差别是对象联系图能通过“引用”类型表示嵌套、递归的数据结构,还有能表示数

据结构之间的继承性(即子类和超类)。

34.答:在对并发事务采用封锁机制时,有可能若干事务都处于等待状态,等待对方释放封锁,造成事务都不能继续

运行下去,这种现象称系统进入死锁状态。

发生死锁时,系统将抽取某个事务作牺牲品,把它撤销,释放封锁,使其它事务有可能继续运行下去。 35.答:DDB中数据分片必须遵守三个条件:

(1)完备性条件:指全局关系中所有数据均应映射到片段中。目的是保证所有数据均在DB中存储,不会丢失数据。 (2)重构条件:由各个片段可以重建全局关系。目的是可以像无损联接那样不丢失信息。 (3)不相交条件:数据片段相互之间不应该重叠(主键除外)。目的是为了防止数据冗余。 四.设计题答案

36.解:关系代数表达式:πS#,SNAME(σGNAME='冰箱'(SHOP?SALE?GOODS))

元组表达式:{ t | (?u) (?v) (?w) (SHOP (u)∧SALE (v)∧GOODS (w)

∧u[1]=v[1]∧v[2]=w[1]∧w[2]= '冰箱'∧t[1]=u[1]∧t[2]=u[2])}

关系逻辑规则:W(u1,u2)?SHOP(u1,u2,u3,u4)∧SALE(u1,v2,v3)∧GOODS(v2, '冰箱',w3) 37.解:SELECT语句如下: SELECT A.S#,SNAME

FROM SHOP A,SALE B,GOODS C

WHERE A.S#=B.S# AND B.G#=C.G# AND GNAME='冰箱';

该查询语句的图示形式如下:

SHOP S# SNAME AREA MGR_NAME

11

SALE P._X P. S# G# QUANTITY

GOODS G# GNAME PRICE _X _Y _Y 冰箱 38.解:DELETE FROM SALE

WHERE S# IN(SELECT S# FROM SHOP WHERE SNAME='开开商店') AND G# IN(SELECT G# FROM GOODS WHERE PRICE>1000); 39.解:CREATE ASSERTION ASSE8 CHECK (100<=ALL(SELECT PRICE

FROM SHOP A,SALE B,GOODS C

WHERE A.S#=B.S# AND B.G#=C.G# AND AREA='EAST')); 或 CREATE ASSERTION ASSE8 CHECK (NOT EXISTS(SELECT *

FROM SHOP A,SALE B,GOODS C WHERE A.S#=B.S# AND B.G#=C.G#

AND AREA='EAST' AND PRICE<100));

40.解:SELECT C.G#,GNAME,SUM(QUANTITY)AS SUM_QUANTITY,

PRICE*SUM(QUANTITY)AS SUM_VALUE

FROM SHOP A,SALE B,GOODS C

WHERE A.S#=B.S# AND B.G#=C.G# AND AREA='EAST' GROUP BY C.G#,GNAME;

(注:SELECT子句中的属性C.G#,GNAME应在分组子句中出现) 五.综合题答案 41.解:(1)根据已知条件,可写出基本的FD有三个:

司机编号 → 车队编号 车队编号 → 车队主管 (司机编号,汽车牌照)→ 行驶公里

从上述三个FD,可知R的关键码为(司机编号,汽车牌照)。 (2)从上述三个FD,可推出下列FD成立:

(司机编号,汽车牌照)→(车队编号,车队主管) 这是一个局部FD。因此R不是2NF模式。

此时在R的关系中,每个司机只属于一个车队及主管人员,但要记载某司机驾驶过10辆汽车的行驶公里数,在R的关系中要出现10个元组。也就是这10个元组的司机相同,其车队编号和车队主管要重复出现10次,这就是数据冗余。

R应分解成 R1(司机编号,汽车牌照,行驶公里)R2(司机编号,车队编号,车队主管)

这两个模式都是2NF模式。

(3)R1已是3NF模式,但R2不是3NF模式。

因为在R2中的基本FD有两个:司机编号 → 车队编号,车队编号 → 车队主管。

显然,存在传递依赖:司机编号 → 车队主管。

此时在R2的关系中,一个车队只有一个主管人员,但这个车队有20名司机,则在关系中就要有20个元组。这20个元组的车队编号相同,而车队主管要重复出现20次,这就是数据冗余。 R2应分解成 R21(司机编号,车队编号) R22(车队编号,车队主管)

这样,ρ={ R1,R21,R22 },其中每个模式均是3NF模式。 42.解:(1)ER图如图1所示。 仓库仓库地址 仓库 月份 M M 日期 月供应库存 供应 库存N N P 12 商品 M 销售 N 商店 商品商品单价 商店商店地址 图1

(2)据转换规则,图2的ER图可转换成6个关系模式:

仓库(仓库号,仓库名,地址) 商品(商品号,商品名,单价) 商店(商店号,商店名,地址) 库存(仓库号,商品号,日期,库存量) 销售(商店号,商品号,月份,月销售量) 供应(仓库号,商店号,商品号,月份,月供应量)

(3)图1的ER图的对象联系图如图2所示。其转换规则基本上与转换成关系模型的规则类似。三个实体类型转换成三个对象类型,两个M:N联系类型和一个M:N:P联系类型也转换成三个对象类型。因此对象联系图中共有六个对象类型,如图2所示。图中未标出基本数据类型属性,具体如下:

仓库(仓库号,仓库名,地址) 商品(商品号,商品名,单价) 商店(商店号,商店名,地址) 库存(日期,库存量) 销售(月份,月销售量) 供应(月份,月供应量)

仓库

库存

供应

商品 销售 商店

图2 (4)图1的ER图的UML类图如图3所示。三个实体类型转换成三个类,三个联系类型转换成三个关联类,如图3所示。

仓库 仓库号 * 仓库名 库存 地址 日期 供应 库存量 * 月份 月供应量 * 商品 商品号 商店 商品名* * 商店号 * 单价 商店名 * 地址

销售 图3 月份

月销售量

13

模拟试题2

一. 单项选择题(本大题共15小题,每小题2分,共30分) 1.对现实世界进行第二层抽象的模型是[ ]

A.概念数据模型 B.用户数据模型 C.结构数据模型 D.物理数据模型 2.数据库在磁盘上的基本组织形式是[ ]A.DB B.文件 C.二维表 D.系统目录 3.在关系模型中,起导航数据作用的是[ ]A.指针 B.关键码 C.DD D.索引 4.查询优化策略中,正确的策略是 [ ]

A.尽可能早地执行笛卡尔积操作B.尽可能早地执行并操作C.尽可能早地执行差操D.尽可能早地执行选择操作 5.SQL中,“DELETE FROM 表名”表示 [ ]

A.从基本表中删除所有元组B.从基本表中删除所有属性C.从数据库中撤消这个基本表D.从基本表中删除重复元组 6.设关系模式R(A,B,C),F是R上成立的FD集,F={A→B,C→B},

ρ={AB,AC}是R的一个分解,那么分解ρ [ ]

A.保持函数依赖集F B.丢失了A→B C.丢失了C→B D.丢失了B→C 7.在关系模式R分解成数据库模式ρ时,谈论无损联接的先决条件是 [ ]

A数据库模式ρ中的关系模式之间有公共属性B保持FD集C关系模式R中不存在局部依赖和传递依赖D.存在泛关系 8.在关系数据库设计中,子模式设计是在__________阶段进行[ A物理设计 B逻辑设计 C概念设计 D.程序设计 9.如果有9个不同的实体集,它们之间存在着12个不同的二元联系(二元联系是指两个实体集之间的联系),其中4

个1:1联系,4个1:N联系,4个M:N联系,那么根据ER模型转换成关系模型的规则,这个ER结构转换成的关系模式个数为 [ ] A.9个 B.13个 C.17个 D.21个 10.在DB技术,未提交的随后被撤消了的数据,称为 [ ]

A.报废的数据 B.过时的数据 C.撤消的数据 D.脏数据

11.SQL中的“断言”机制属于DBS的 [ ]

A.完整性措施 B.安全性措施 C.物理安全措施 D.恢复措施

12. ORDB中,同类元素的无序集合,并且允许一个成员可多次出现,称为 [ ]

A.结构类型 B.集合类型 C.数组类型 D.多集类型

13.在OODB中,包含其他对象的对象,称为 [ ]A.强对象B.超对象C.复合对象 D.持久对象 14.在DDBS中,数据传输量是衡量查询时间的一个主要指标,导致数据传输量大的主要原因是 [ ] A.场地间距离过大B.数据库的数据量大C.不同场地间的联接操作 D.在CPU上处理通信的代价高 15.DDBS中,透明性层次越高 [ ]

A.网络结构越简单 B.网络结构越复杂 C.应用程序编写越简单 D.应用程序编写越复杂 二、填空题(本大题共10小题,每小题1分,共10分)

16.数据管理技术的发展,与__________、__________和__________有密切的联系。 17.在DBS中存放三级结构定义的数据库称为__________。18.SQL中,与操作符“NOT IN”等价的操作符是__________。 19.在关系数据库中,规范化关系是指__________。20.两个函数依赖集F和G等价的充分必要条件是__________。 21.DBD中的概念模型应充分表达用户的要求,并且应该独立于_________________。 22.判断一个并发调度是否正确,可用__________概念来衡量。

23.ORDB中,复合类型有结构类型、列表类型、数组类型、__________和集合类型。 24.DDBS中,分布透明性可以归入__________范围。25.在DDBS中,基于半联接查询优化策略的基本思想是__________。

三.简答题(本大题共10小题,每小题3分,共30分)

26.在层次、网状、关系、面向对象等数据模型中,数据之间联系是如何实现的? 27.设有关系R(A,B,C)和S(B,C,D),试写出与关系代数表达式πB,C(σA>D(R?S)) 等价的元组表达式、关系逻辑规则和SQL语句。

28.设有域表达式 { t1t2t3 | (?u1) (?u2)(?u3) (R(t1u1t2) ∧ S(u2t3u3) ∧ u1>t3)},

试写出其等价的关系代数表达式、元组表达式和关系逻辑规则。 29.设教学数据库中,有两个基本表: (S#,C#,GRADE) 学生表:S(S#,SNAME,AGE,SEX) 学习表:SC 现有一个SQL语句:

14

SELECT SEX,AGE,AVG(GRADE) 31.试解释联系的元数、连通词和基数的三个概念。 FROM S,SC 32.有些事务只要读数据,为什么也要加S锁? WHERE S.S# = SC.S# 33.为什么只有PX协议还不够,还要提出PXC协议? GROUP BY SEX,AGE 34.试解释DDBS的“分布透明性”概念。“分布透明性” ORDER BY 3 DESC; 分成哪几个层次?分布透明性在数据独立性中可以试写出与此语句等价的汉语查询语句。 归入哪个范围? 30.试写出3NF的定义。当一个关系模式不是3NF时,会35.关系代数的自然连接操作和半连接操作之间有些什么出现什么问题?试举例说明。 联系

四.设计题(本大题共5小题,每小题4分,共20分) 36.设数据库中有两个基本表:

职工表 EMP(E#,ENAME,AGE,SALARY,D#),其属性分别表示职工工号、姓名、年龄、工资和工作部门的编号。 部门表 DEPT(D#,DNAME,MGR#),其属性分别表示部门编号、部门名称和部门经理的职工工号。 试指出每个表的主键和外键。并写出每个表创建语句中的外键子句。

37.在第36题的两个基本表中,写出下列查询的关系代数表达式和SQL语句:

检索每个部门经理的工资,要求显示其部门编号、部门名称、经理工号、经理姓名和经理工资。

38.在第36题的两个基本表中,建一个年龄大于50岁的职工视图,属性为(D#,DNAME,E#,ENAME,AGE,SALARY)。 39.在第36题的两个基本表中,写一个断言,要求每个部门的经理工资应大于本部门所有职工的工资。 40.下面是用ORDB的定义语言定义的数据库:

CREATE TYPE MyString char varying; CREATE TYPE cname MyString;

CREATE TABLE department(dno MyString,dname MyString,staff setof(ref(employee))); CREATE TABLE employee(eno MyString,ename MyString,salary integer,children setof(cname), works_for res(department));

(1)试画出上述数据库的对象联系图。

(2)试用ORDB的查询语言写出下列查询的SELECT语句:

检索部门编号为D6的部门中每个职工的子女名,要求显示职工的姓名、子女名。

五.综合题(本大题共2小题,每小题5分,共10分)

41.设有一个记录各个球队队员每场比赛进球数的关系模式R(队员编号,比赛场次,进球数,球队名,队长名)

如果规定每个队员只能属于一个球队,每个球队只有一个队长。 ① 试写出关系模式R的基本FD和关键码。

② 说明R不是2NF模式的理由,并把R分解成2NF模式集。 ③ 进而把R分解成3NF模式集,并说明理由。

42.设某汽车运输公司数据库中有三个实体集。一是“车队”实体集,属性有车队号、车队名等;二是“车辆”实体

集,属性有牌照号、厂家、出厂日期等;三是“司机”实体集,属性有司机编号、姓名、电话等。

设车队与司机之间存在“聘用”联系,每个车队可聘用若干司机,但每个司机只能应聘于一个车队,车队聘用

司机有个聘期;车队与车辆之间存在“拥有”联系,每个车队可拥有若干车辆,但每辆车只能属于一个车队;司机与车辆之间存在着“使用”联系,司机使用车辆有使用日期和公里数两个属性,每个司机可使用多辆汽车,每辆汽车可被多个司机使用。

(1)试画出ER图,并在图上注明属性、联系类型、实体标识符;(2)将ER图转换成关系模型,并说明主键和外键。 (3)将ER图转换成对象联系图。(4)将ER图转换成UML的类图。

模拟试题2答案

一. 单项选择题答案1.C 2.B 3.B 4.D 5.A 6.C 7.D 8.B9.B 10.D 11.A

12.D 13.C 14.C 15.C

二.填空题答案

16.硬件 软件 计算机应用 17.DD

18.<>ALL 19.满足1NF(或属性值不可分解)

15

20.F=G 21.硬件和DBMS

22.可串行化 23.多集类型(或包类型)

24.物理独立性 25.不参与连接的数据不在网络中传输 三.简答题答案

26.答:层次、网状模型中,数据联系通过指针实现的。

关系模型中,数据联系通过外键与主键相联系实现的。

面向对象模型中,数据联系通过引用类型实现的,引用类型是指引用的不是对象本身,而是对象标识符。

27.答:元组表达式如下:

{ t | (?u) (?v) (R(u) ∧ S(v) ∧ u[2]= v[1] ∧ u[3]=v[2] ∧ u[1]>v[3]

∧ t[1]=u[2] ∧ t[2]=u[3])}

关系逻辑规则如下:W(b,c)?R(a,b,c)∧ S(b,c,d)∧ a>d

SQL语句:SELECT R.B,R.C FROM R,S WHERE R.B=S.B AND R.C=S.C AND A>D; 28.答:等价的关系代数表达式如下:π1,3,5(σ2>2(R×S))

等价的元组表达式如下:

{ t | (?u) (?v) (R(u) ∧ S(v) ∧ u[2]>v[2] ∧ t[1]=u[1] ∧ t[2]=u[3]∧t[3]=v[2])} 关系逻辑规则如下:W(x,y,z)?R(x,a,y)∧ S(b,z,c)∧ a>z

29.答:检索每一性别每一年龄的学生的平均成绩,显示时,按平均成绩降序排列。

30.答:如果关系模式R是1NF,并且R中每一个非主属性都不传递依赖于R的候选键,那么称R是3NF模式。

当一个模式不是3NF模式时,那么会存在非主属性对候选键的传递依赖,在关系中会存在数据冗余,进而引起操作异常。

例R(A,B,C)中,有A→B,B→C。此时R的关键码是A,因此A→C是一个传递依赖。设关系r的值如下: A B C a1 b1 c1

a2 b1 c1

a3 b1 c1

此时,A→B和B→C在上述关系中成立。但三个元组中的c1冗余地出现了三次。在修改时有可能引起异常。 31.答:联系的元数是指一个联系涉及到的实体集个数。

联系的连通词是指联系涉及到的实体集之间实体对应的方式。譬如二元联系的连通词有四种:1:1,1:N,M:N,M:1。 联系的基数是对实体间联系方式更为详细的描述,应描述出有联系实体的数目的最小值和最大值。

32.答:一个事务在读一批数据时,为了防止其他事务对这批数据进行修改,也应对这批数据加S锁,这样才能读到

全部正确的数据。

33.答:如果事务只执行PX协议,那么就有可能使其他事务发生丢失更新问题。

譬如事务T1对某数据修改后立即释放X封锁,此时其他事务就有可能对该数据实现X封锁,并进行修改。但是事务T1尚未结束,若T1是以ROLLBACK操作结束。那就使其他事务的更新丢失了。因此X封锁必须保留到事务终点,即实现PXC协议。

34.答:DDBS的分布透明性是指用户不必关心数据的逻辑分片,不必关心数据物理位置分配的细节,也不必关心各个

场地上数据库的数据模型。

上述定义中的“三个不必”就是分布透明性的三个层次,即分片透明性、位置透明性和局部数据模型透明性。

分布透明性可以归入物理独立性范围。

35.答:自然连接和半连接之间的联系可用下面两点来表示:(1)半连接是用自然连接操作来定义的:R ?S =πR(R?S);

(2)连接操作用半连接方法来求的:R?S =(R ?S)?S。 四.设计题答案 36.

答:EMP表的主键为E#,外键为D#。

DEPT表的主键为D#,外键为MGR#

在EMP表的创建语句中,可写一个外键子句: FOREIGN KEY D# REFERENCES DEPT(D#); 在DEPT表的创建语句中,可写一个外键子句:

16

++

FOREIGN KEY MGR# REFERENCES EMP(E#);

37.答:关系表达式为:πDEPT.D#,DNAME,MGR#,ENAME,SALARY(DEPT ? EMP) SELECT语句为: MGR#=E# SELECT DEPT.D#,DNAME,MGR#,ENAME,SALARY FROM DEPT,EMP WHERE MGR#=E#; 38.解:CREATE VIEW VIEW5

AS SELECT DEPT.D#,DNAME,E#,ENAME,AGE,SALARY FROM DEPT,EMP

WHERE DEPT.D#=EMP.D# AND AGE>50; 39.解:CREATE ASEERTION ASSE8 CHECK

(NOT EXISTS( SELECT *

FROM EMP,DEPT WHERE E#=MGR# AND SALARY<=ALL

(SELECT SALARY FROM EMP

WHERE D#=DEPT.D#)));

40解:(1)对象联系图如图4所示

staff eno dno ename

department employee dname salary

works_for children

图4

(2) SELECT B.ename,C.cname

FROM department as A,A.staff as B,B.children as C WHERE A.dno=‘D6’;

或 SELECT B.ename,C.cname

FROM employee as B,B.children as C WHERE B.works_for.dno=‘D6’; (3)

五.综合题答案

41.解:⑴ 根据每个队员只能属于一个球队,可写出FD 队员编号?球队名;

根据每个球队只有一个队长,可写出FD 球队名?队长名; “每个队员每场比赛只有一个进球数”,这条规则也是成立的,因此还可写出FD : (队员编号,比赛场次)?进球数。

从上述三个FD可知道,R的关键码为(队员编号,比赛场次)。 ⑵ 从⑴可知,R中存在下面两个FD:

(队员编号,比赛场次)?(球队名,队长名) 队员编号 ?(球队名,队长名) 显然,其中第一个FD是一个局部依赖,因此R不是2NF模式。

对R应该进行分解,由第二个FD的属性可构成一个模式,即 R1(队员编号,球队名,队长名); 另一个模式由R的属性集去掉第二个FD右边的属性组成,即 R2(队员编号,比赛场次,进球数)。

R1和R2都是2NF模式,因此ρ={ R1,R2 }

⑶ R2(队员编号,比赛场次,进球数)中,FD是(队员编号,比赛场次)?进球数,关键码为(队员编号,比赛场次),可见R2已是3NF模式。

17

R1(队员编号,球队名,队长名)中,FD有两个:队员编号?球队名 球队名?队长名 关键码为队员编号,可见存在传递依赖,因此R1不是3NF模式。

对R1应分解成两个模式:R11(队员编号,球队名),R12(球队名,队长名)。这两个模式都是3NF模式。 因此,R分解成3NF模式集时,ρ={ R11,R12,R2 }。 42.解:(1)ER图如图5所示。 车队号 车队名 车队 1 1 聘期 图5 拥有 聘用 N N M N 司机 车辆 使用 电话 司机编号 牌照号 厂家 出厂日期 姓名 公里数 (2)转换成的关系模型应具有使用日期4个关系模式: 车队(车队号,车队名)

车辆(牌照号,厂家,生产日期,车队号) 司机(司机编号,姓名,电话,车队号,聘期) 使用(司机编号,车辆号,使用日期,公里数)

(3)图5的ER图的对象联系图如图6所示。三个实体类型转换成三个对象类型,一个M:N联系类型转换成一个对象类型。因此对象联系图中共有四个对象类型,如图6所示。图中未标出基本数据类型属性,具体如下:

车队(车队号,车队名)

车辆(牌照号,厂家,生产日期) 司机(司机编号,姓名,电话,聘期) 使用(使用日期,公里数)

车队

商品 销售 商店 图6 (4)图5的ER图的UML类图如图7所示。图中,三个实体类型转换成三个类,一个M:N联系类型转换成一个关联车队 类。 车队号 车队名 1 1 * * 车辆 司机 牌照号 司机编号 厂家 姓名 * 电话 出厂日期 * 图7 聘期 使用 18 使用日期 公里数

模拟试题3

一.单项选择题(本大题共10小题,每小题2分,共20分)

1.在数据库方式下的信息处理中,占据中心位置的是 A.数据 B.程序 C.软件 D.磁盘 2.设R和S都是二元关系,那么与元组演算表达式

{ t | R(t)∧ (?u) (S(u) ∧ u[1]≠ t[2])}

不等价的关系代数表达式是 [ ]

A.π1,2(σ2≠3(R×S)) B.π1,2(σ2≠1(R×S))C.π1,2(R ?S) D.π3,4(σ1≠4(S×R)) 3.设有规则: 2 W≠(1 a,b,c,d)← R(a,b,x)∧ S(c,d,y)∧ x>y

与上述规则头部等价的关系表达式是 [ ] A.π1,2,4,5(σ3>6(R?S))B.π1,2,4,5(σ3>3(R×S))C.π1,2,4,5(R ? S)D.π1,2,4,5(R ? R) 4.SQL中,聚合函数 3>3 COUNT(列名)用于 3>6 [ ]

A.计算元组个数 B.计算属性的个数C.对一列中的非空值计算个数D.对一列中的非空值和空值计算个数 5.设有关系R(A,B,C)的值如下:

A B C

2 2 3 2 3 4 3 3 5

下列叙述正确的是 A.函数依赖A→B在上述关系中成立 B.函数依赖BC→A在上述关系中成立

C.函数依赖B→A在上述关系中成立 D.函数依赖A→BC在上述关系中成立 6.设关系模式R(A,B,C,D),F是R上成立的FD集,F={ AB→C,D→B },那么 ρ={ ACD,BD }相对

于F( )A.是无损联接分解,也是保持FD的分解B.是无损联接分解,但不保持FD的分解 C.不是无损联接分解,但保持FD的分解D.既不是无损联接分解,也不保持FD的分解 7.在有关“弱实体”的叙述中,不正确的是 [ ] A.弱实体的存在以父实体的存在为前提B.弱实体依赖于父实体的存在

C.父实体与弱实体的联系可以是1:1、1:N或M:ND.父实体与弱实体的联系只能是1:1或1:N

2nn

8.如果有n个事务串行调度,那么不同的有效调度有 A.n B.2 C.4 D.n!

9.在传统SQL技术中使用“ORDER BY”子句的SELECT语句查询的结果实际上为 A.数组 B.列表 C.包 D.集合 10.在DDBS中,用户或应用程序应当了解分片情况,但不必了解片段的存储场地,这种透明性称为 [ ] A.分片透明性 B.局部数据模型透明性 C.片段透明性 D.位置透明性 二.填空题(本大题共10小题,每小题1分,共10分)

11.DBS具有较高的数据独立性,其原因是______________________。

12.在关系逻辑中,关系用__________符号表示。13.在SQL中,只有__________视图才可以执行更新操作。

14.SQL的SELECT语句在未使用分组子句但在SELECT子句中使用了聚合函数。此时SELECT子句的语句就不是投影的

意思了,而是 。 15.设关系模式R(A,B,C),F是R上成立的函数依赖集,F={ AB→C,C→A }那么R的候选键有________个,为___________。 16.事务的持久性是由DBMS的___________实现的。 17.在ODMG2.0中,类的定义有三部分组成:__________,__________和__________在定义类时要用到关键字__________。 18.在事务依赖图中,如果在图中___________________,那么系统就会出现死锁现象。

19.在UML类图中,类、对象、关联的概念分别相当于ER模型中__________、__________、__________的概念。 20.DDBS逐渐向C/S模式发展。单服务器的结构本质上还是___________系统。只有在网络中有多个DB服务器时,并

可协调工作,为众多客户机服务时,才称得上是___________系统。 三.简答题(本大题共10小题,每小题3分,共30分)

21.对现实世界抽象层次的不同,数据模型分为哪两种?各有什么特点? 22.设有关系R和S:

R A B C S D E F 1 2 3 6 5 1 4 5 6 7 4 2

19

7 8 9 8 3 3 试写出元组表达式

{ t | (?u) (?v) (R(u) ∧ S(v) ∧ u[3]

和域表达式

{ t1t2t3 | (?u1) (?u2)(?u3) (R(t1t2t3) ∧ S(u1u2u3) ∧ t2>u3)}

的具体值。

23.设教学数据库中,有两个基本表:

学生表:S(S#,SNAME,AGE,SEX) 学习表:SC(S#,C#,GRADE) 现有一个SQL语句: SELECT S# FROM S

WHERE S# NOT IN (SELECT S# FROM SC

WHERE C# IN('C2','C4'));

试写出与此语句等价的汉语查询语句及关系代数表达式。

24.在嵌入式SQL中,什么情况下的DML语句不必涉及到游标操作?

+

25.设有关系模式R(A,B,C,D),F是R上成立的FD集,F={ AB→C,D→B },试求属性集AD的闭包(AD)。并回答

所有左部为AD的函数依赖有多少个?

26.在ER模型转换成关系模型时,如果二元联系是1:N,并在1端实体类型转换成的关系模式中加入N端实体类型的

键和联系类型的属性,那末这个关系模式将会有什么问题? 试举例说明。

27.什么是“饿死”问题?如何解决?

28.与传统的关系模型相比,对象关系模型有哪些扩充? 29.C/S结构为什么要从两层结构发展到三层、多层结构? 30.DDB的体系结构有些什么显著的特点?

四.设计题(本大题共5小题,每小题4分,共20分) 31.设某商业集团为仓库存储商品设计了三个基本表: 仓库 STORE(S#,SNAME,SADDR),其属性是仓库编号、仓库名称和地址。

存储 SG(S#,G#,QUANTITY),其属性是仓库编号、商品编号和数量。 商品 GOODS(G#,GNAME,PRICE), 其属性是商品编号、商品名称和单价 现检索仓库名称为“莘庄”的仓库里存储的商品的编号和名称。试写出相应的关系代数表达式、元组表达式、关

系逻辑规则和SELECT语句。

32.在第31题的基本表中,检索存储全部种类商品的仓库的编号及名称。试写出相应的关系代数表达式、元组表达式、

关系逻辑规则和SELECT语句。 33.在第31题的基本表中,检索每个仓库存储商品的总价值。试写出相应的SELECT语句。要求显示(S#,SUM_VALUE),

其属性为仓库编号及该库存储商品的总价值。

34.在第31题的基本表中,写一个断言,规定每个仓库存储商品的单价为1万元以上的商品种类最多为20种。 35.图8是有关大学(university)和学生(student)信息的对象联系图:

sno(身份证号)

staff uname (大学名)sname(姓名) city(籍贯) university student city (城市)

languages(掌握的外语)

study 图8

(1)试用ORDB的定义语言,定义这个数据库。

20

(2)试用ORDB的查询语言写出下列查询的SELECT语句:检索每个大学里,籍贯为本地的学生,要求显示大学名、

城市、学生身份证号和学生姓名。

五.综合题(本大题共4小题,每小题5分,共20分) 36.设有关系模式

R(职工名,项目名,工资,部门名,部门经理)

如果规定每个职工可参加多个项目,各领一份工资;每个项目只属于一个部门管理;每个部门只有一个经理。 ① 试写出关系模式R的基本FD和关键码。

② 说明R不是2NF模式的理由,并把R分解成2NF模式集。 ③ 进而把R分解成3NF模式集,并说明理由。

37.设大学里教学数据库中有三个实体集。一是“课程”实体集,属性有课程号、课程名称;二是“教师”实体集,属性有教师工号、姓名、职称;三是“学生”实体集,属性有学号、姓名、性别、年龄。

设教师与课程之间有“主讲”联系,每位教师可主讲若干门课程,但每门课程只有一位主讲教师,教师主讲课程将选用某本教材;教师与学生之间有“指导”联系,每位教师可指导若干学生,但每个学生只有一位指导教师;学生与课程之间有“选课”联系,每个学生可选修若干课程,每门课程可由若干学生选修,学生选修课程有个成绩。 (1)试画出ER图,并在图上注明属性、联系类型、实体标识符; (2)将ER图转换成关系模型,并说明主键和外键。 (3)将ER图转换成对象联系图。 (4)将ER图转换成UML的类图。

38.设大学教学数据库中有下面一些数据:

·Dept(系)有属性dno(系编号)和dname(系名);

·Student(学生)有属性sno(学号)和sname(学生姓名); ·Course(课程)有属性cno(课程号)、cname(课程名)和teacher(任课教师); ·学生选修课程有个grade(成绩)。

如果规定:每个系有若干学生,每个学生只能属于一个系;每个系开设了若干课程,每门课程由一个系开设;每个学生可以选修若干课程,每门课程可以有若干学生选修。

(1)试画出ER图,并在图上注明属性、联系类型、实体标识符; (2)将ER图转换成关系模型,并说明主键和外键。 39.(1)试画出第38题数据库的对象联系图。(2)试画出第38题数据库的UML类图。

模拟试题3答案 一、单项选择题答案1.A 2.B 3.C 4.C 5.B 6.B 7.C 8.D 9.B 10.D

二.填空题答案11.三级结构之间存在着两级映象 12.谓词

13.行列子集视图

14.对查询结果执行聚合操作

15.2 AB和BC 16.恢复管理子系统

17.属性 联系 方法 interface 18.沿着箭头方向存在一个循环

19.实体集 实体 联系 20.集中式DB 分布式DB

21

三.简答题答案21.答:在数据库设计中,概念设计使用的是概念数据模型,逻辑设计中使用的是结构数据模型。

概念模型是一种独立于硬件和软件的模型,完全不涉及信息在系统中的表现,只是用来描述某个特定组织所关心的信息结构。这种模型是从用户的观点对数据建模,必须充分反映用户的需求,并得到用户的确认才可定下来。它是现实世界的第一层抽象,是用户和数据库设计人员之间进行交流的工具,其典型代表是ER模型。

结构模型用于描述数据库的逻辑结构,与DBMS有关。这种模型是从计算机的观点对数据建模。它是现实世界的第二层抽象,是数据库设计人员和应用程序员之间进行交流的工具。其典型代表是层次、网状、关系和面向对象模型。 22.答:元组表达式的值为: A F

1 1 1 2 1 3 4 2 4 3

域表达式的值为: A B C 4 5 6 7 8 9 23.答:查询语句为:

检索至少不选修编号为C2和C4课程的学生学号。

关系代数表达式为:

πS#(S)-πS#(σC#= 'C2'∨C#= 'C4'(S?SC))

(注意:此处,“不选修C2和C4课程”的对立面是“选修C2或C4课程”) 24.答:SQL嵌入式DML语句在下列情况不必涉及游标操作:

① INSERT、DELETE和UPDATE语句;

② 对于SELECT语句,如果已知查询结果肯定是单元组值时。

25.答:从已知D→B可知AD→AB;再据已知AB→C和推理规则可推出AD→ABCD。

+

所以 (AD)=ABCD。

4

从AD的闭包为ABCD,可知所有左部为AD的FD有2,即16个。 26.答:在生成的关系模式的关系中出现冗余和异常现象。

例如部门与职工之间联系是1:N,若在部门模式中加入职工信息,那么部门模式将是如下形式:

DEPT(D#,DNAME,E#)

如果一个部门有20个职工,那么关系中就要出现20个元组,即该部门的部门名(DNAME)就要重复20次,这就是冗余。在部门名修改时,稍不谨慎,就会产生数据不一致现象。

27.答:有可能存在一个事务序列,其中每个事务都申请对某数据项加S锁,且每个事务在授权加锁后一小段时内释放封锁,此时若另有一个事务T1欲在该数据项上加X锁,则将永远轮不上封锁的机会。这种现象称为“饿死”(starvation)。

可以用下列方式授权加锁来避免事务饿死。

当事务T2中请对数据项Q加S锁时,授权加锁的条件是: ① 不存在在数据项Q上持有X锁的其他事务;

② 不存在等待对数据项Q加锁且先于T2申请加锁的事务。 28.答:与传统的关系模型相比,对象关系模型有下列扩充: (1)在定义语言上有三个扩充:

·数据类型的扩充(引入复合类型); ·在类型一级和表一级实现继承性; ·使用“引用类型”。

(2)在查询语言方面,用户需记住属性值是单值还是多值。在多值时,需定义新的元组变量。 29.答:为了减轻集中式系统主机的负担,才产生了两层式C/S结构。

两层C/S结构实现了功能的分布,但还不均衡。为了减轻客户端的负担,引入了三层C/S结构。三层结构的

22

思路是使客户机变“瘦”,服务器品种繁多。

为了适应企业业务环境的变化速度,以及新的技术、新的应用。将应用逻辑集中到中间层,实现了多层结构的

C/S(即B/S)。

30.答:这种分层的模式结构为理解DDB提供了一种通用的概念结构。它有三个显著的特征:

(1)数据分片和数据分配概念的分离,形成了“数据分布独立型”概念。

(2)数据冗余的显式控制。数据在各个场地的分配情况在分配模式中一目了然,便于系统管理。 (3)局部DBMS的独立性。这个特征也称为“局部映射透明性”。此特征允许我们在不考虑局部DBMS专用数据模型的情况下,研究DDB管理的有关问题。

四.设计题答案

31.解:关系代数表达式为:πG#,GNAME(σSNAME= '莘庄'(STORE?SG?GOODS)) 元组表达式为:{ t | (?u) (?v) (?w) (GOODS(u)∧SG(v)∧STORE(w)

∧u[1]=v[2]∧v[1]=w[1]∧w[2]= '莘庄'∧t[1]=u[1]∧t[2]=u[2])}

关系逻辑规则如下:

W(x,y)?GOODS(x,y,a)∧SG(b,x,c)∧STORE(b,'莘庄',d)

SELECT语句为:

SELECT A.G#,GNAME

FROM GOODS AS A,SG AS B,STORE AS C

WHERE A.G#=B.G# AND B.S#=C.S# AND SNAME= '莘庄';

32.解:关系代数表达式为:

πS#,SNAME(STORE?(πS#,G#(SG)÷πG#(GOODS))) 元组表达式为:

{ t | (?u) (?v) (?w) (STORE(u) ∧ GOODS(v)∧ SG(w) ∧ w[1]=u[1] ∧ w[2]=v[1] ∧ t[1]=u[1] ∧

t[2]=u[2])}

关系逻辑规则如下:

W(x,y)← STORE(x,y,a)∧┐GOODS(b,c,d)∧┐SG(x,b,e) SELECT语句为: SELECT S#,SNAME FROM STORE

WHERE NOT EXISTS

(SELECT * FROM GOODS

WHERE NOT EXISTS

(SELECT * FROM SG

WHERE SG.S#=STORE.S# AND SG.G#=GOODS.G#));

33.解:SELECT语句为:

SELECT S#,SUM(QUANTITY *PRICE)AS SUM_VALUE FROM SG,GOODS

WHERE SG.G#=GOODS.G# GROUP BY S#;

34.解:CREATE ASSERTION ASSE6 CHECK (20>=ALL(SELECT COUNT(SG.G#)

FROM SG,GOODS

WHERE SG.G#=GOODS.G# AND PRICE>10000

23

本文来源:https://www.bwwdw.com/article/qjvf.html

Top