《数据库原理》试题库2 下载本文

《数据库原理》试题库

一、 选择题

第一章 数据库的基础知识 数据库系统概述

1. 以下内容中不属数据库所具特点的是( )。 A.数据共享 B.数据完整性 C.存储数据量大 D.最小宂余 2. 下列四项中,不属于关系数据库特点的是( ) A.数据冗余小 B.数据独立性高 C.数据共享性好 D.多用户访问 3. 以下表示数据库管理系统的是( ) A.DBA B.DBMS C.DB D.DATA 4. 数据库系统的核心是( )。 A.数据库 B.软件工具 C.数据模型 D.数据库管理系统 5. 数据库与文件系统的根本区别在于( ) A.提高了系统效率 B.方便了用户使用 C.数据的结构化 D.节省了存储空间 6. 数据管理技术发展阶段中,文件系统阶段与数据库系统阶段的主要区别之一是数据库系统( )

A.数据可共享 B.数据可长期保存

C.采用一定的数据模型组织数据 D.有专门的软件对数据进行管理 7.下面列出的条目中,哪些是数据库技术的主要特点( )。 Ⅰ.数据的结构化 Ⅱ.数据的冗余度小 Ⅲ.较高的数据独立性 Ⅳ.程序的标准化 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.在以下所列的条目中,哪些是数据库管理员DDA的职责( )

1

① 决定数据库存取结构和存取策略 ② 决定数据库中的内容和结构

③ 定义数据安全性的要求和完整性约束条件 ④ 为用户提供资料和培训方面的帮助

A.①和② B.①、②和③ C.③和④ D.都是 13.在DBS中,DBMS和OS之间的关系是 ( ) A.相互调用 B.DBMS调用OS C.OS调用DBMS D.并发运行 14. 下面列出的条目中,哪些是数据库系统的组成成员?( )

Ⅰ.操作系统 Ⅱ.数据库管理系统 Ⅲ.用户 Ⅳ.数据库管理员 Ⅴ..数据库

A.Ⅱ、Ⅲ、Ⅳ和Ⅴ B.Ⅱ、Ⅳ和Ⅴ C.Ⅰ、Ⅱ、Ⅳ和Ⅴ D.都是 15. 下面列出的数据管理技术发展的三个阶段中,哪个(些)阶段没有专门的软件对数据进行管理( )。 Ⅰ.人工管理阶段 Ⅱ.文件系统阶段 Ⅲ.数据库阶段 A.只有Ⅰ B. 只有Ⅱ C.Ⅰ和Ⅱ D.Ⅱ和Ⅲ

数据模型

16.在数据库技术中,实体—联系模型是一种( ) A.概念模型 B.结构模型 C.物理模型 D.逻辑模型 17.数据库设计中的概念模型独立于( )。 A.现实世界 B.E-R图 C.信息世界 D.具体的机器和DBMS 18.在数据库技术中,独立于计算机系统的模型是( ) A.E-R模型 B.层次模型 C.关系模型 D.面向对象的模型 19.在下面列出的数据模型中,哪一个是概念数据模型( )。 A.关系模型 B.层次模型 C.网状模型 D.实体-联系模型 20. 目前应用最广泛的数据库数据模型是( )。 A.层状模型 B.网状模型 C.混合模型 D.关系模型 21. 下列数据模型中,数据独立性最高的是( ) A.网状数据模型 B.关系数据模型 C.层次数据模型 D.非关系模型 22. 下列四项中,必须进行查询优化的是( ) A.关系数据库 B.网状数据库 C..层次数据库 D.非关系模型 数据库系统结构

23. 数据库系统的体系结构是( )

2

A.两级模式结构和一级映象 B.三级模式结构和一级映象 C.三级模式结构和两级映象 D.三级模式结构和三级映象 24. 在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是( )。 A.外模式 B.内模式 C.存储模式 D.模式 25. 数据库系统的三级模式结构是指( ) A.外模式、模式、子模式 B.子模式、模式、概念模式 C.模式、内模式、存储模式 D.外模式、模式、内模式 26. 保证数据库的数据独立性,需要修改的是( ) A.三层模式之间的两种映射 B.模式与内模式 C.模式与外模式 D.三层模式 27. 在关系数据库中,关系模式是三级模式结构中的( )。 A.外模式 B.模式 C.存储模式 D.内模式 28. 单个用户使用的数据视图的描述称为 ( ) A. 外模式 B. 概念模式 C.内模式 D.存储模式

29. 在数据库技术中,为提高数据库的逻辑独立性和物理独立性,数据库的结构被划分成用户级、( )和存储级三个层次。 A.管理员级 B.外部级 C.概念级 D.内部级 30. 以下选项中不属于数据库系统三级模式结构的是( )。 A.外模式 B.模式 C.内模式 D.概念模式

31. 数据库的三级模式结构由外模式、模式和内模式组成,它适合于哪个(些)类型的数据库( )

Ⅰ.关系型数据库 Ⅱ.层次型数据库 Ⅲ.网状型数据库 A. 只有Ⅰ B. Ⅰ和Ⅱ C. Ⅱ和Ⅲ D. 都适合 32.子模式DDL用来描述 ( )

A.数据库的总体逻辑结构 B.数据库的局部逻辑结构 C.数据库的物理存储结构 D.数据库的概念结构 33. 数据库三级模式体系结构的划分,有利于保持数据库的( ) A.数据独立性 B. 数据安全性 C.结构规范化 D.操作可行性 第二章 关系数据库 关系数据结构

34.关系数据模型通常由三部分组成,它们是( ) A.数据结构、数据通信、关数据操作 B.数据结构、数据操作、完整性约束 C.数据通信、数据操作、完整性约束 D.数据结构、数据通信、完整性约束 35.数据模型组成的要素是( ) A.实体、数据、数据依赖

B.数据结构、数据通信、关系操作

C.数据结构、数据操作、数据的完整性约束条件

3

D.数据结构、数据属性、数据依赖

关系数据库与关系代数

36.关系数据模型有许多优点,但下面所列的条目中哪一条不是它的优点( ) A.结构简单 B.适用于集合操作

C.有标准语言 D.可表示复杂的语义 37.用二维表结构表示实体以及实体间联系的数据模型称为( )。

A.网状模型 B.层次模型 C.关系模型 D.面向对象模型 38.同一个关系模型的任两个元组值( )。 A.不能全同 B.可全同 C.必须全同 D.以上都不是 39.一个关系中的各元组( )。

A.前后顺序不能任意颠倒,一定要按照输入的顺序排列 B.前后顺序可以任意颠倒,不影响关系

C.前后顺序可以任意颠倒,但排列顺序不同,统计处理的结果可能不同 D.前后顺序不能任意颠倒,一定要按照码的属性列顺序排列 40.组成关系模型二维表的最小数据单位是( )。 A.记录 B.数据项 C.字段 D.数据库文件 41.关系数据模型的三个组成部分中,不包括( ) A.完整性规则 B.数据结构 C.恢复 D.数据操作 42.关系数据库中的码是指( )。

A.能唯一关系的属性 B.不能改动的专用保留字

C.关键的很重要的属性 D.能唯一表示元组的属性或属性集合 43.根据关系模式的完整性规则,一个关系中的“主码” 。

A.不能有两个 B.不能成为另外一个关系的外码 C.不允许为空 D.可以取值

44.在关系R(R#,RN,S#)和S(S#,SN,SD)中,R的主码是R#,S的主码是S#,则S#在R中称为( )。

A.外码 B.候选码 C.主码 D.超码 45.在关系模型中,一个码是( )。 A.可由多个任意属性组成 B.至多由一个属性组成

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

46.关系数据库管理系统应能实现的专门关系运算包括( )。 A.排序、索引、统计 B.选择、投影、连接 C.关联、更新、排序 D.显示、打印、制表 47.在关系代数运算中,五种基本运算为( )。 A.并、差、选择、投影、自然连接 B.并、差、选择、交、投影 C.并、差、选择、投影、乘积 D.并、差、交、选择、乘积

4

48.五种基本关系代数运算是 ( ) A.∪,-,×,π和σ B.∪,-,∞,π和σ C.∪,∩,×,π和σ D.∪,∩,∞,π和σ

49.关系代数的五个基本操作可直接转换成元组关系演算表达式,它们是:并、差、投影,选择和( ) A.交 B.笛卡尔积 C.自然连接 D.除法 50.取出关系中的某些列,并消去重复元组的关系代数运算称为( )。 A.取列运算 B.投影运算 C.连接运算 D.选择运算 51.自然连接是构成新关系常用方法。一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或多个共有的( )。 A.元组 B.行 C.记录 D.属性 52.设有关系R和S,关系代数表达式R-(R-S)表示的是( ) A.R∩S B.R-S C.R∪S D.R÷S

53.在如下2个数据库的表中,若雇员信息表EMP的主键是雇员号,部门信息表DEPT的主健是部门号若执行所列出的操作,哪个操作不能执行( ) EMP DEPT

______________________________ ____________________________ 雇员号 雇员名 部门号 工资 部门号 部门名 主任 001 张 山 02 2000 01 业务部 李 建 010 王宏达 01 1200 02 销售部 应伟东 056 马林生 02 1000 03 服务部 周 垠

101 赵 敏 04 1500 04 财务部 陈力胜 ______________________________ ____________________________

A.从雇员信息表EMP中删除行'010','王宏达','01','1200'. B.在雇员信息表EMP中插入行'102','赵敬','01','1500'. C.将雇员信息表EMP中雇员号='010'的工资改为1600元 D.将雇员信息表EMP中雇员号='101'的部门号改为'05'

54.在上题雇员信息表关系EMP中,哪个属性是外码(foreign key) ( )。 A. 雇员号 B.雇员名 C.部门号 D.工资 55.设关系R和关系S的元素个数分别是3和4,关系T是R与S的笛卡尔积,即:T=R×S,则关系T的元数个数是( ) A.7 B.9 C.12 D.16

56.设有关系R和S,在下列的关系运算中,哪一种运算不要求:“R和S具有相同的元数,且它们对应属性的数据类型也相同”( ) A. R∪S B.R∩S C.R-S D.R×S 57.设有关系R(A,B,C),在下列的等式中,哪一个是不成立的( )

A.σA<2(πA, B(R))=πA, B(σA<2 (R))

5

B.πA, C(σA<2(R))=σA<2(πA, C(R)) C.πB, C(σA<2(R))=σA<2(πB,C(R)) D.πA(πA, B (R))=πA (R)

58.设关系R和关系S具有相同的元数,且对应的属性取自相同的域。集合{t/t∈R∧t∈S}标记的是( )。 A. R∪ S B. R-S C. R×S D. R∩S 59.已知关系R和关系S以及结果关系如下表所示,在下面四个选项中能得到该结果关系的一项是( )

关系R: 关系S : A B C A B E

a1 b1 5 a1 b1 3

a1 b2 6 a1 b2 7

a2 b3 8 a2 b3 10

a2 B4 12 a2 b3 2

结果关系表: A

a1

a2

B b1 b3

C 5 8 E 3 2 A.R∞S B.R ∞ C >ES C. R∞CE(R ∞S)

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

61.有两个关系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 62.设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)

6

63.设关系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)

64.有关系:R(A,B,C)(主码为A)和S(D,A)(主码为D,外码为A)参照于R的A属性。关系R和S的元组如图所示: 关系R 关系S

A 1 2 3

B 2 1 6 C 3 3 8 D 1 2 3 4 A 2 NULL 3 4 指出关系S中违反完整性规则的元组是( )。 A.(1,2) B.(2,null) C.(3,3) D.(4,1)

65.支持关系数据结构、选择、投影和(自然)连接运算,且对这些运算不必要求定义任何物理存取路径的关系系统称为( )。 A.表式系统 B.最小关系系统 C.关系完备的系统 D.全关系系统

第三章 SQL语言

66.SQL是下面哪个的缩写。( ) A.Standard Query Langu年龄 B.Select Query Langu年龄 C.Structured Query Langu年龄 D.以上都不是 67.SQL语言称为( )。 A.结构化定义语言 B.结构化控制语言 C.结构化查询语言 D.结构人操纵语言 68.SQL语言是( )的语言,简单易学。 A.过程化 B.非过程化 C.格式化 D.导航式 69.SQL语言的操作对象( )。

A.只能是一个集合 B.可以是一个或多个集合 C.不能是集合 D.可以是集合或非集合 70.SQL语言具有的功能是( )。

A.关系规范化,数据操纵,数据控制 B.数据定义,数据操纵,数据控制 C.数据定义,关系规范化,数据控制 D.数据定义,关系规范化,数据操纵

71.SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中CREATE、DROP、ALTER语句实现哪种功能的( )

7

A.数据查询 B.数据操纵 C.数据定义 D.数据控制 72.SQL语言具有两种使用方式,分别称为交互式SQL和( )。 A.提示式SQL B.多用户SQL C.嵌入式SQL D.解释式SQL 73.在SQL语言的SELECT语句中,实现投影操作的是哪个子句( )。 A.select B.from C.where D.group by 74.SQL中,“SALARY IN (1000,2000)”语义是( )。 A.SALARY <= 2000 AND SALARY >= 1000 B.SALARY < 2000 AND SALARY > 1000 C.SALARY = 1000 AND SALARY = 2000 D.SALARY = 1000 OR SALARY = 2000

75.SQL中,下列涉及空值的操作,不正确的是 ( ) A.年龄 IS NULL

B.年龄 IS NOT NULL

C.年龄 = NULL D.NOT (年龄 IS NULL) 76.SQL语言中,实现数据检索的语句是( )。 A.SELECT B.INSERT C.UPDATE D.DELETE 77.下列SQL语句中,修改表结构的是( )。 A.ALTER B.CREATE C.UPDATE D.DELETE 78.下列SQL语句中,修改表结构的是( )。 A.CREATE B.ALTER C.UPDATE D.INSERT 79.SQL语言的GRANT和REVOKE语句主要用来维护数据库的( ) A.安全性 B.完整性 C.可靠性 D.一致性 80.SQL中,与“NOT IN”等价的操作符是 。 A.=ANY B.<>ANY C.=ALL D.<>ALL 81.设有关系R=(A,B,C)。与SQL语句SELECT DISTINCT A FROM R WHERE B=17等价的关系代数表达式是( ) A.πA (R) B.πB=17(R)

C.πA(σB=17(R)) D.σB=17 (πA (R))

82.设有关系R(A,B,C)和S(C,D)。与SQL语句 select A,B,D from R,S where R.C=S.C

等价的关系代数表达式是( )。 A.σR.C=S.C(πA,B,D(R×S))

B.πA,B,D(σR.C=S.C (R×S)) D.σR.C=S.C(πD((πA,BR)×S))

C.σR.C=S.C((πA,BR)×(πDS))

83.若用如下SQL语句创建一个表student:

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

NAME CHAR(8)NOT NULL, SEX CHAR(2), 年龄 INT)

可以插入到student 表中的是( )。

8

A.(?1031?,?曾华?,男,23) B.(?1031?,?曾华?,NULL,NULL) C.(NULL,?曾华?,?男?,?23?) D.(?1031?,NULL,?男?,23) 84.在SQL语言中的表(Table)是数据库的( ) A.内模式 B.模式 C.外模式 D.概念模式 85.当关系R和S自然联接时,能够把R和S原该舍弃的元组放到结果关系中的操作是( ) A. 左外联接 B. 右外联接 C. 外部并 D. 全外联接 86.下列聚合函数中不忽略空值 (null) 的是 ( )

A. SUM (列名) B. MAX (列名) C. COUNT ( * ) D. AVG (列名) 87.基本SQL语言中,不可以实现( ) A.定义视图 B.定义基表 C.查询视图和基表 D.并发控制 88.允许在嵌入式的SQL域具中,引用宿主语言的程序变量,在引用时 ( )。 A.直接引用

B.这些变量前面必须加符号“*” C.这些变量前面必须加符号“:” D.这些变量前面必须加符号“&” 89.下列不属于视图的作用是( ) A.视图能简化用户的操作

B.视图能使用户以多种角度看待同一数据 C.视图能够对机密数据提供安全保护 D.视图能够保证数据的完整性 90.视图是( )。 A.基本表 B.外视图 C.概念视图 D.虚拟表 91.下面列出的关于“视图(View)”的条目中,哪一条是不正确的( )。 A.视图是外模式 B.视图是虚表

C.使用视图可以加快查询语句的执行速度 D.使用视图可以简化查询语句的编写 92.在视图上不能完成的操作是( ) A.更新视图 B.查询

C.在视图上定义新的基本表 D.在视图上定义新视图 93.SQL语言中的”视图view.”对应于数据库系统三级模式结构中的( ) A.外模式 B.模式 C.内模式 D.都不对应 94.以下有关视图查询的叙述中正确的是( )。

A.首先查询出视图中所包含的数据,再对进行查询 B.直接对数据库存储的视图数据进行查询 C.将对视图的查询转换为对相关基本表的查询 D.不能对基本表和视图进行连表操作 95.索引的作用之一是( )。 A.节省存储空间 B.便于管理

9

C.加快查询速度 D.建立各数据表之间的关系 96.以下有关索引的叙述中正确的是( )。 A.索引越多,更新速度越快 B.索引需要用户维护 C.并置索引中列的个数不受限制 D.索引可以用来提供多种存取路径 97.以下有关UNIQUE约束的叙述中不正确的是( )。 A.UNIQUE约束中不允许出现空值

B.UNIQUE用于保证列或列组合的值唯一性 C.可以定义多个UNIQUE约束

D.系统为定义了UNIQUE约束的那些列建立唯一索引 98.以下关于空值的叙述中不正确的是( )。 A.用=NULL查询指定列为空值的记录 B.包含空值的表达式其计算结果为空值 C.聚集函数通常忽略空值

D.对允许空值的列排序时,包含空值的记录总是排在最前面 99.部分匹配查询中有关通配符“%”的叙述中正确的是( )。 A.“%”代表一个字符 B.“%”代表多个字符 C.“%”可以代表零个或多个字符 D.“%”不能与“_”同使用

100.在分组检索中,要去掉不满足条件的分组,应当( )。 A.使用WHERE子句 B.使用HAVING子句

C.先使用WHERE子句,再使用HAVING子句 D.先使用HAVING子句,再使用WHERE子句 101.以下有关子查询的叙述中不正确的是( )。 A.子查询可以向其外部查询提供检索条件的条件值 B.子查询可以嵌套多层

C.子查询的结果是一个集合 D.子查询总是先于其外部查询

102.以下有关ORDER BY子句的叙述中不正确的是( )。 A.ORDER BY 子句可以对多个列进行排序

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

103.以下有关WHERE子句的叙述中不正确的是( )。 A.WHERE子句中可以包含子查询

B.连接条件和选择条件之间应当使用OR逻辑运算

C.不包含WHERE子句的SELECT语句进行的是单纯的投影操作

D.如果FROM子句中引用了N个表,则FROM子句中至少应当包括N-1个连接条件

10

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

D.如果FROM子句中引用的两个表中有同名的列,则在SELECT子句中引用它们时必须使用表名前缀加以限制。

105.以下有关聚集的叙述中不正确的是( )。

A.聚集将具有一个或多个公共列,并经常一起使用的相关表物理地聚集存储在一起 B.聚集中相同的值只存储一次

C.聚集加快了多个表连接操作速度,但对于单个表则没有什么意义 D.必须首先删除所有聚集表,才能删除聚集

第四章 数据库的安全性

106.在数据系统中,对存取权限的定义称为( )。 A.命令 B.授权 C.定义 D.审计

107.在数据库的安全性控制中,为了保证用户只能存取他有权存取的数据,在授权的定义中,数据对象的___,授权子系统就越灵活. A.范围越小 B.范围越大 C.约束越细致 D.范围越适中 第五章 完整性

108.设属性A是关系R的主属性,则属性A不能取空值(NULL)。这是( )。 A.实体完整性规则 B.参照完整性规则 C.用户定义完整性规则 D.域完整性规则 109.数据库的____是指数据的正确性和相容性。 A.安全性 B.完整性 C.并发控制 D.恢复 110.SQL的全局约束是指基于元组的检查子句和 ( ) A.非空值约束 B.域约束子句 C.断言 D.外键子句 111.在数据库中,产生数据不一致的根本原因是( )。 A.数据存储量太大 B.没有严格保护数据 C.未对数据进行完整性控制 D.数据冗余 112.设有关系:班级(班号,专业,班长);学生(学号,姓名,性别,班级)。学生关系中每个元组的“班级”属性值只能取空值(表示该学生没有分配班级)或者是班级关系中的某一个班号。这个要求属于关系的( ) A.实体完整性 B.参照完整性 C.用户定义的完整性 D.以上都不是 113.SQL的全局约束是指基于元组的检查子句和 (C ) A.非空值约束 B.域约束子句 C.断言 D.外键子句 第六章 关系数据理论

11

114.关系数据库的规范化理论主要解决的问题是( )。 A.如何构造合适的数据逻辑结构 B.如何构造合适的数据物理结构 C.如何构造合适的应用程序界面 D.如何控制不同用户的数据操作权限 115. 关系数据库规范化是为解决关系数据库中( )。 A.插入异常、删除异常、修改异常和数据冗余 B.提高查询速度

C.减少数据操作的复杂性 D.保证数据的安全性和完整性

116.现有一个关系:借阅(书号、书名,库存数,读者号,借期,还期),假如同一本书允许一个读者多次借阅,但不能同时对一种书借多本。则该关系模式的码是()。 A.书号 B.读者号 C.书号+读者号 D.书号+读者号+借期 117.1NF、2NF、3NF、BCNF、4NF之间的关系是 。

A.1NF≥2NF≥3NF≥BCNF≥4NF

B.1NF?2NF?3NF?BCNF?4NF C.1NF?2NF?BCNF?3NF?4NF D.1NF?2NF?3NF?BCNF?4N 118.关系模式的候选码可以有( )。 A.0个 B.1个 C.1个或多个 D.多个 119.关系模式R中的属性全部是主属性,则R的最高范式必定是( )。 A.1N B.2N C.3N D.BCNF 120.当B属性函数依赖于A属性时,属性A与B的联系是( ) A.1对多 B.多对1 C.多对多 D.以上都不是 121.在关系模式中,如果属性A和B存在1对1的联系,则说( ) A.A→B  B.B→A C.A←→B D.以上都不是 122.在关系DB中,任何二元关系模式的最高范式必定是( ) A.1NF B.2NF C.3NF D.BCNF 123.设有如图所示的关系R,它是( )。 A.1NF B.2NF C.3NF D.4NF

材料号 M1 M2 M3 M4 材料名 线材 型材 板材 型材 生产厂 武汉 武汉 广东 武汉 124.当关系模式R(A,B)已属于3NF,下列说法中哪个是正确的。( ) A.它一定消除了插入和删除异常 B.一定属于BCNF C. 仍存在一定的插入和删除异常 D.A和B都是 125.下列关于函数依赖的叙述中,哪一条是不正确的( )

12

A.由X→y,X→Z,有X→yZ B.由XY→Z,有X→Z Y→Z C.由X→Y,有WY→Z XW→Z D.由X→y及Z ?y,有X→Z

126.当下述哪一条成立时,称X→y为平凡的函数依赖( ) A.X?y B.Y?X C.X∩Y=φ D.X∩Y≠φ

127.设有关系模式R(S,D,M),其函数依赖集F:{S→D,D→M},则关系R的规范化程度至多达到: A.INF B.2NF C.3NF D.BCNF

128.设有关系R(A,B,C,D),其函数依赖集F={A→B,A→C,B→D},则关系R至多满足( ) A.INF B.2NF C.3NF D.BCNF 129.设有关系模式R(S,T,J),其函数依赖集F={(S,J)→T;(S,T)→J;T→J},则关系R至多满足( )。

A.INF B.2NF C.3NF D.BCNF

130.关系模式R(A,B,C,D)的函数依赖集S={A→BC,B→C,C→D },则下列说法中错误的一项是( ) A.{A}={A,B,C,D} B. AB是键码

C. A是键码 D. A→BC中C是无关属性 131.关系模式规范化的最起码的要求是达到第一范式,即满足( ) A.每个非码属性都完全依赖于主码 B.主码属性唯一标识关系中的的元组 C.关系中的元组不可重复 D.每个属性都是不可分解的

132.若关系模式R(U,F)属于3NF,则( )

A.一定属于BCNF B.消除了插入的删除异常 C.仍存在一定的插入和删除异常 D.属于BCNF且消除了插入和删除异常 133.设有关系模式R(A,B,C,D),F是R上成立的FD集,F={AB→C,D→A},则R的关键码为 ( )。 A.AB B.AD C.BC D.DB

134.设有关系模式R (A,B,C,D),F是R上成立的函数依赖集,F = {D→A,D→B},关系模式R的码是( )。 A.AB B.B C.CD D.D 135.有关系模式A(C,T,H,R,S),其中各属性的含义是:

C:课程 T:教员 H:上课时间 R:教室 S:学生 根据语义有如下函数依赖集:

F={C→T,(H,R)→C,(H,T)→R,(H,S)→R} 关系模式A的规范化程度最高达到( )。 A.INF B.2NF C.3NF D.BCNF

136.有关系模式A(C,T,H,R,S),其中各属性的含义是:

13

+

C:课程 T:教员 H:上课时间 R:教室 S:学生 根据语义有如下函数依赖集:

F={C→T,(H,R)→C,(H,T)→R,(H,S)→R} 关系模式A的码是( )。 A. C B. (H,R) C.(H,T) D.(H,S)

137.设U是所有属性的集合,X、Y、Z都是U的子集,且Z=U-X-Y。下面关于多值依赖的叙述中,不正确的是( )。 A.若X→→Y,则X→→Z  B.若X→Y,则X→→Y

 C.若X→→Y,且Y'包含Y,则X→→Y'  D.若Z=φ,则X→→Y

138.在关系数据库中,任何二元关系模式的最高范式必定是 。 A.1NF B.2NF C.3NF D.BCNF 139.下面关于函数依赖的叙述中,不正确的是( )。

 A. 若X→Y,Y→Z,则X→YZ B.若XY→Z,则X→Z,Y→Z  C. 若X→Y,Y→Z,则X→Z D.若X→Y,Y'包含Y,则X→Y'

140.关系R(A,B,C)的函数依赖集F={A→B,C→B}。哪种分解ρ是无损连接的分解。(B)

A. ρ={AB,BC} B. ρ={AC,BC} C. ρ={A,BC} D. ρ={AB, C} 141.设关系模式R (A,B,C),F是R上成立的FD集,F = {B→C},则分解ρ = {AB,BC}相对于F ( )

A. 是无损联接,也是保持FD的分解 B. 是无损联接,但不保持FD的分解 C. 不是无损联接,但保持FD的分解

D. 既不是无损联接,也不保持FD 的分解

142.关系模式R分解成ρ = {R1,…,Rk},F是R上的一个FD集,那么R中满足F的每一个关系r,与其投影联接表达式mρ(r) 间的关系满足 ( ) A. rí mρ(r) B. mρ(r) í r C. r = mρ(r) D. r≠mρ(r) 第七章 数据库设计

143.需求分析阶段得到的结果是( )。 A.数据字典描述的数据需求 B.E-R图表示的概念模型

C.某个DBMS所支持的数据模型

D.包括存储结构和存取方法的物理结构

144.在数据库的概念设计中,最常用的数据模型是( )。 A.形象模型 B.物理模型 C.逻辑模型 D.实体联系模型

145.数据库设计的概念结构设计阶段,表示概念结构的常用方法和描述工具是( ) A.层次分析法和层次结构图

14

B.数据流程分析法和数据流程 C.结构分析法和模块结构图 D.实体---联系方法和E-R图 146.在关系数据库设计中,对关系进行规范化处理,使关系达到一定的范式,例如达到3NF,这是哪个设计阶段的内容( ) A.需求分析阶段 B.概念设计阶段 C.逻辑设计阶段 D.物理设计阶段

147.在关系数据库设计中,设计关系模式是数据库设计中哪个阶段的任务?( ) A.需求分析阶段 B.概念设计阶段 C.逻辑设计阶段 D.物理设计阶段

148.在数据库设计中,将E-R图转换成关系数据模型的过程属于( ) A. 需求分析阶段 B. 逻辑设计阶段 C. 概念设计阶段 D. 物理设计阶段

149.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是( ) A.多对多 B.一对一 C.多对一 D.一对多 150.一个实体型转换为一个关系模式。关系的码为( )。 A.实体的码 B.二个实体码的组合 C.n端实体的码 D.每个实体的码 151.一个1:n联系可以转换为一个独立的关系模式,关系的码为( )。

A.实体的码 B.各实体码的组合 C.n端实体的码 D.每个实体的码 152.一个m :n联系转换为一个关系模式。关系的码为( )。 A.实体的码 B.各实体码的组合 C.n端实体的码 D.每个实体的码

(数据库管理系统)

153.对数据库中数据可以进行查询、插入、删除、修改,这是因为数据库管理系统提供了( )

A.数据库定义功能 B.数据库操纵功能

C.数据库维护功能 D.数据库控制功能

154. 在下面所列出的条目中,哪些是数据库管理系统的基本功能( )。 Ⅰ.数据库定义  Ⅱ.数据库的建立和维护 Ⅲ.数据库存取 Ⅳ.数据库和网络中其他软件系统的通信 A.Ⅰ和Ⅱ B.Ⅰ、Ⅱ和Ⅲ C.Ⅱ和Ⅲ D.都是 155.从用户来看,下面列出的条目中哪些是数据库管理系统应具有的目标( )

①用户界面友好

②内部结构清晰、层次分明 ③开放性,即符合标准和规范 ④负责管理企业组织的数据库资源

15

A.①和② B.①,②和③ C.③和④ D.都是

156.主流数据库管理系统应该更强调系统在理论上和实践上的完备性,具有巨大的数据存储和管理能力,有利于支持全局性的及关键性的数据管理工作。如下列出的数据库管理系统中,哪一个目前还不能称为主流数据库管理系统( ) A.Oracle B.IBM DB2 C.FoxPro D.SYBASE

157.在数据库管理系统的层次结构中,由高级到低级的层次排列顺序为( )。

A.应用层、数据存取层、数据存储层、语言翻译处理层 B.应用层、数据存储层、数据存取层、语言翻译处理层 C.应用层、数据存储层、语言翻译处理层、数据存取层 D.应用层、语言翻译处理层、数据存取层、数据存储层

158.在数据库管理系统中,下面哪个模块不是数据库存取的功能模块( )。 A.事务管理程序模块 B.数据更新程序模块 C.交互式程序查询模块 D.查询处理程序模块

二、 填空题 (数据库技术)

1. 数据是信息的符号表示或称载体;信息是数据的内涵,是数据的语义解释。例如“世界

人口已经达到 26亿”,这是信息。

2. 数据管理技术经历了人工处理、文件系统和数据库三个阶段 。 3. DBMS管理的是______ 的数据。

4. 根据数据模型的应用目的不同,数据模型分为______ 和______ 。

5. 在数据库的三级模式体系结构中,外模式与模式之间的映像(外模式/模式),实现了

数据库的逻辑独立性。

6. 用二维表结构表示实体以及实体间联系的数据模型称为关系 数据模型。 7. 用树型结构表示实体类型及实体间联系的数据模型称为层次模型。

8. 数据库管理系统(DBMS)主要功能有:数据定义、数据操作、数据库的运行管理和数

据库的建立和维护

9. 目前,数据库领域中最常用的数据模型是:层次模型、网状模型、关系模型和面向对象

模型。

10.数据模型通常由三部分组成,它们是数据结构、数据操作和完整性约束。 11.在三大传统的数据模型中,具有严格的数学理论基础的是关系数据模型。 12.实现概念模型最常用的表示方法是E-R图。

13.实体与实体之间的联系的类型有:一对一、一对多、多对一、多对多。 14.用树型结构表示实体类型及实体间联系的数据模型称为__层次模型__。 15.关系数据库的关系演算语言是以___谓词演算___为基础的DML语言。 16.关系操作的特点是 集合 操作。 17.关系模型的完整性规则包括:实体完整性规则、参照完整性规则和用户自定义的完整性

规则。

18.关系模型由数据结构、数据操作和完整性约束组成。

16

19.在一个实体表示的信息中,能唯一标识实体的属性或属性组 称为码。 20.关系模式是对关系 结构的描述。

21.在关系中能唯一标识元组的属性或属性集称为关系模式的 码 。

22.一个关系模式可以形式化地表示为R(A1,A2,?,An)其中R为关系名,A1,A2,?An

为属性名。

23.关系数据库模式是 一组关系模式 的集合。

24.一个关系模式的定义主要包括关系名、 属性名、属性类型、属性长度和主码。 25.

(关系代数)

26.在关系数据模型中,二维表的列称为属性,二维表的行称为元组。 27.关系代数中专门的关系运算包括:选择、投影、连接和除法。 28.关系代数的基本运算是并、差、选择、投影和乘积。 29.连接运算是由 笛卡儿积和选择操作组成的。 30.自然连接运算是由 笛卡儿积、选择和投影组成。

31.关系代数中专门的运算操作包括选择运算、投影运算、连接运算、自然连接和除法运算

五种操作。

32.在专门关系运算中,从表中按照要求取出指定属性的操作称为 投影 ;从表中选出满

足某种条件的元组的操作称为 选择 ;将两个关系中满足一定条件的元组连接到一起构成新表的操作称为 连接 。

33.两个关系进行外连接时有全外连接、右外连接、左外连接三种。

34.外连接可以避免自然连接带来的信息丢失,外连接包括: 、右外连接

和 。

35.在“学生一选课一课程”数据库中的3个关系如下:

S(学号,姓名,性别,年龄),SC(学号,课程号,成绩),C(课程号,课程名,

任课教师)

查找选修“数据库技术”这门课程的学生的学生姓名和成绩,若用关系代数表达式来表

示为:

Π姓名。成绩 S∞(SC∞(σ课程名='数据库技术'(C)))

(SQL语言)

36.在SQL语言的结构中,____有对应的存储文件,而____没有对应的存储文件。 37.设关系R(A,B,C)和S(A,D,E,F),有R.A=S.A。若将关系代数表达式:

πR.A,R.B,S.D,S.F(R∞S)用SQL语言的查询语句表示,则为:

SELECT R.A,R.B,S.D,S.F FROM R,S WHERE R.A=S.A

17

38. 在“学生一选课一课程”数据库中的3个关系如下:

S(学号,姓名,性别,年龄),SC(学号,课程号,成绩),C(课程号,课程名,任课教师) 查找选修”数据库技术”这门课程的学生的姓名和成绩。若使用连接查询的SQL语句是:SELECT 姓名,成绩 FROM S,SC,C WHERE 课程名='数据库技术'AND_ S.学号=SC.学号_AND SC.课程号=C.课程号

39. 设有两个关系R (A,B,C) 和S (C,D,E),用SQL查询语句表达下列关系代数表

达式πA,E (σB = D (R∞S))的语句是SELECT

40. 一个SQL语句原则上可产生或处理一组记录,而主语句一次只能处理一个记录,为

此必须协调两种处理方式,这是通过使用游标 或 Cursor机制来解决的。

41. 数据库管理系统(DBMS)由以下三类程序组成:语言、控制数据库运行和维护数据库,

其中的语言系统分为主语言和SQL语言。 42. 删除操作、修改操作和插入操作可以引发触发器

(关系数据理论)

43. 在关系数据库的规范化设计中,对模式进行等价分解时,要具有无损连接性和保持函

数依赖

44. 在函数依赖中,平凡的函数依赖根据Armstrong推理规则中的 自反律就可推出。 45. 设有关系模式R (A,B,C,D),F是R上成立的函数依赖集,F = {D→A,D→B},

关系模式R的候选键是 CD 。 46. 设关系模式R (A,B,C),F是R上成立的FD集,F = {B→A,B→C},则分解ρ = {AB,

AC}丢失的FD是 B→C。

47. 设关系模式R (A,B,C),F是R上成立的函数依赖集F = {B→A,B→C},则将R

分解为:R1(A,B),R2(A,C),这个分解相对于R来说丢失的函数依赖是 。 48. 关系模式规范化需要考虑数据间的依赖关系,人们已经提出了多种类型的数据依赖,

其中最重要的是函数依赖和多值依赖 。

49. 一个关系R不属于2NF就会产生插入异常、删除异常和修改复杂。 50. 两个函数依赖集F和G等价的充分必要条件F? G+,和G? F+ 51. 关系模式规范化过程中,若要求分解保持函数依赖,那么模式分解一定可以达到3NF,

但不一定能达到BCNF。

52. 如果一个满足1NF关系的所有属性合起来组成一个关键字,则该关系最高满足的范式

是3NF (在1NF、2NF、3NF范围内)。 53. 从关系规范化理论的角度讲,一个只满足1NF的关系可能存在的四方面问题是:数据

冗余度大、修改异常、插入异常和删除异常。

三、 判断题

1. 数据库系统与数据库管理系统概念是一样的。 (×)

2. 完整的数据库系统是由计算机硬件、操作系统、数据库管理系统、数据库及在其上面

开发的应用软件的全体组成。(√)

3. 关系模型是以图的形式来描述实体之间的联系。(×)

18

4. 组成关系模型二维表的最小数据单位是数据项。(√) 5. 数据库事务的原子性是指事务在执行过程中不能中断。(√) 6. 对关系模型来说,范式级别越高,实际应用效果越好。(×) 7. 关系模式实质上是一个二维表。(×)

8. 4.应用程序员的职责是设计和编写应用系统的程序模块,并进行调试和安装。(√) 9. 在关系连接运算中自然连接和等值连接是相同的。(×) 10.关系模式和关系是相同的。(×)

11.在关系中列的顺序无所谓,即列的次序可以任意交换。(√) 12.任意两个元组不能完全相同。(√)

13.若关系R满足2NF,则在R中不存在传递函数依赖。(×) 14.若关系R满足2NF,则在R中不存在部分函数依赖。(√) 15.若关系R满足BCNF,则在R中每个确定因素都包含码。(√) 16.面向集合的操作方式是SQL语言的特点之一。(√) 17.设关系R(A,B,C)和S(A,D,E,F),有R.A= S.A。用SQL语句:

18.SELECT R.A,R.B,S.D,S.F FROM R,S WHERE R.A(*)=S.A 进行连接查询。

这个连接是右连接。(×)

19.视图是关系数据库系统提供给用户以多种角度观察数据库中的数据的重要机制。(√) 20.视图也是一个表。(×)

21.日志文件是记录用户对数据库所做的操作。(×)

22.如果事务T获得了数据项Q上的排它锁,则T对Q不能读不能写(× )。

四、 名词解释

1. 数据:描述事物的符号记录称为数据。数据的种类有文字、图形、图象、声音、正文

等等。数据与其语义是不可分的。

2. 数据库:数据库是长期储存在计算机内、有组织的、可共享的数据集合。数据库中的

数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。

3. 数据库系统:数据库系统( DBS)是指在计算机系统中引入数据库后的系统构成。数

据库系统由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。 4. 数据库管理系统 :数据库管理系统 (DBMS)是位于用户与操作系统之间的一层数据

管理软件。用于科学地组织和存储数据、高效地获取和维护数据。DBMS主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。 5. 实体:客观存在并可以相互区分的事物叫实体。

6. 实体型:具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽

象和刻画同类实体称为实体型。

7. 实体集:同型实体的集合称为实体集。

8. 属性:实体所具有的某一特性,一个实体可由若干个属性来刻画 9. 码:唯一标识实体的属性集称为码。

10.候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码

19

( Candidate key)。

11.主码:若一个关系有多个候选码,则选定其中一个为主码( Primary key)。

12.外部码:设 F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本

关系S的主码Ks相对应,则称F是基本关系R的外部码(Foreign key),简称外码。基本关系 R称为参照关系(Referencing relation),基本关系S称为被参照关系(Referenced relation)或目标关系(Target relation)。关系R和S可以是相同的关系。 13.关系模式:

关系的描述称为关系模式( Relation Schema)。它可以形式化地表示为: 7 R(U,D,dom,F)

其中 R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,dom为属性向域的映象集合,F为属性间数据的依赖关系集合。 14.关系:

在域 D1,D2,?,Dn上笛卡尔积D1×D2×?×Dn的子集称为关系,表示为: R(D1,D2,?,Dn) 15.关系数据库:

关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。 16. 相关子查询

在嵌套查询中,子查询中查询条件依赖于外层查询中的某个值,所以子查询的处理不只一次,要反复求值,以供外层查询使用。这种嵌套查询称为相关子查询。 17. 连接查询

查询时先对表进行笛卡尔积操作,然后再做等值联接、选择、投影等操作。联接查询的效率比嵌套查询低

18.基本表:基本表是本身独立存在的表,在 SQL中一个关系就对应一个表。 19. 视图

视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图

20. 交互式SQL:在终端交互方式下使用的SQL语言称为交互式SQL。

21. 嵌入式SQL:嵌入在高级语言的程序中使用的SQL语言称为嵌入式SQL。 22.主变量:在嵌入的SQL语句中引用宿主语言的程序变量称为主变量。

23.游标:游标是与某一查询结果相联系的符号名,用于把集合操作转换成单记录处理方

式。

24. 数据库的安全性 :数据库的安全性是指保护数据库以防止不合法的使用所造成的数

据泄露、更改或破坏。

25. 数据库的完整性:数据库的完整性是指数据的正确性和相容性。

26. 关系模式的规范化:把一个低一级的关系模式分解为高一级关系模式的过程。

20

27.函数依赖

设 R (U)是一个关系模式,U是R的属性集合,X和Y是U的子集。对于R (U)的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同, 而在Y上的属性值不同, 则称\函数确定Y\或\函数依赖于X\,记作X→Y。 28.完全函数依赖和部分函数依赖

在 R(U)中,如果X→Y,并且对于X的任何一个真子集X′,都有Y不函数依赖 X′,则称Y对X完全函数依赖;若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖; 29.传递依赖

在关系模式中,如果X→Y,Y→Z,且X决定Y,和Z不属于Y,那么称Y→Z是传递依赖。

30.1NF(第一范式)

如果关系模式R的所有属性的值域中每一个值都是不可再分解的值,则称R是属于第一范式模式。如果某个数据库模式都是第一范式的,则称该数据库存模式属于第一范式的数据库模式。

第一范式的模式要求属性值不可再分裂成更小部分,即属性项不能是属性组合和组属性组成。

31.2NF(第二范式)

如果关系模式R为第一范式,并且R中每一个非主属性完全函数依赖于R的某个候选键,则称是第二范式模式;如果某个数据库模式中每个关系模式都是第二范式的,则称该数据库模式属于第二范式的数据库模式。 32.3NF(第三范式)

如果关系模式R是第二范式,且每个非主属性都不传递依赖于R的候选键,则称R是第三范式的模式。如果某个数据库模式中的每个关系模式都是第三范式,则称为3NF的数据库模式。

33. BCNF (BC范式)

如果关系模式R是第一范式,且每个属性都不传递依赖于R的候选键,那么称R是BCNF的模式

34. 4NF:第四范式。设R是一个关系模式,D是R上的多值依赖集合。如果D中成立

非平凡多值依赖X→→Y时,X必是R的超键,那么称R是第四范式的模式。 五、 简答题 (本大题共10小题,每小题3分,共30分) 1. 试述文件系统与数据库系统的区别和联系。

答:文件系统与数据库系统的区别:

文件系统面向某一应用程序,共享性差、冗余度大,独立性差,纪录内有结构、整体无结构,应用程序自己控制。

数据库系统面向现实世界,共享性高、冗余度小,具有高度的物理独立性和一定的逻辑独立性,整体结构化,用数据模型描述,由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力。

文件系统与数据库系统的联系是:

21

2.

3.

4.

5.

6.

文件系统与数据库系统都是计算机系统中管理数据的软件。 试述数据库系统的特点。

答:数据库系统的主要特点有: 1)数据结构化

数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。

2)数据的共享性高,冗余度低,易扩充

数据库的数据不再面向某个应用而是面向整个系统,因此可以被多个用户、多个应用、用多种不同的语言共享使用。由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充。

3)数据独立性高

数据独立性包括数据的物理独立性和数据的逻辑独立性。

数据库管理系统的模式结构和二级映象功能保证了数据库中的数据具有很高的物理独立性和逻辑独立性。

4)数据由 DBMS统一管理和控制

数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据。为此, DBMS必须提供统一的数据控制功能,包括数据的安全性保护,数据的完整性检查,并发控制和数据库恢复。 简述逻辑数据的独立性。

答:当对数据库的概念模式进行修改时,内模式尽可能保持不变或尽量少的作修改,即对概念模式的修改尽量不影响外模式和应用程序,称数据库达到了逻辑数据独立性。 数据库管理系统的主要功能有哪些? 答:①数据库定义功能; ②数据存取功能; ③数据库运行管理;

④数据库的建立和维护功能。

试述数据模型的概念、数据模型的作用和数据模型的三个要素。

答:数据模型是数据库中用来对现实世界进行抽象的工具,是数据库中用于提供信息表示和操作手段的形式构架。

一般地讲,数据模型是严格定义的概念的集合。这些概念精确地描述系统的静态特性、动态特性和完整性约束条件。因此数据模型通常由数据结构、数据操作和完整性约束三部分组成。

①数据结构:是所研究的对象类型的集合,是对系统的静态特性的描述。

②数据操作:是指对数据库中各种对象(型)的实例(值)允许进行的操作的集合,包括操作及有关的操作规则,是对系统动态特性的描述。

③数据的约束条件:是完整性规则的集合,完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。 试述概念模型的作用。

22

答:概念模型实际上是现实世界到机器世界的一个中间层次。概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。

7. 试给出三个实际情况的E-R图,要求实体型之间具有一对一、一对多、多对多各种不同

的联系。

1 1 1 n 零部件 学校 学校 担任 设置 校长 系 n 组装 m 数量 实体内部的多对多联系

8. 试给出一个实际部门的E-R图,要求有三个实体型,而且三个实体型具有多对多的联系。三

个实体型之间的多对多联系和三个实体型两两之间的多对多的联系等价吗?为什么? 答:

旅行社 n 组团 人数 供应商 n 供应 人数 m 景点 p 游客 m 项目 p 零件 三个实体型的多对多的定义:

若对实体集E1, E2, E3??En,存在对实体集中的Ej(j=1,2, ??i-1,i+1, ??En)中给定的实体,可和Ei中多个实体相联系。反过来,对于实体Ei中给定的实体也只与Ej(j=1,2, ??i-1,i+1, ??En)多个相联系,则称三个实体型具有多对多的联系。 9. 试述关系模型的三个组成部分

答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。

10. 数据库的三级模式和两级映象体系结构中,模式/内模式映象存在于概念级和内部级之

间,用于定义概念模式和内模式间的对应性。其主要作用是什么?

答:由于概念模式和内模式的两级的数据结构可能不-致,即记录类型、字段类型的命名、组成可能不一致,用这个映象说明概念记录和内部记录间的对应性。 11. 试述关系数据语言的特点和分类。

答:关系数据语言可以分为三类: 关系代数语言 例如 ISBL

关系演算语言 (元组关系演算语言 例如 APLHA,QUEL 和 域关系演算语言 例如QBE)

具有关系代数和关系演算双重特点的语言 例如 SQL

23

这些关系数据语言的共同特点是,具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。

12. 在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?

答:在参照完整性中,外部码属性的值可以为空,它表示该属性的值尚未确定。但前提条件是该外部码属性不是其所在关系的主属性。 例如,在下面的 “学生”表中,“专业号”是一个外部码,不是学生表的主属性,可以为空。其语义是,该学生的专业尚未确定。

学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名)

而在下面的 “选修”表中的“课程号”虽然也是一个外部码属性,但它又是“选修”表的主属性,所以不能为空。因为关系模型必须满足实体完整性。 课程(课程号,课程名,学分)

选修(学号,课程号,成绩)

13. 试叙述等值连接与自然连接的区别和联系

答:自然连接( Natural join)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。 14. 关系代数的其本运算有哪些?

答:基本运算有:并、差、笛卡尔积、选择、投影。 15. 关系模式和关系实例有什么区别?

答:关系模式是型,是对关系的描述,描述元组集合的结构、元组语义以及完整性约束条件和属性间的数据依赖关系集合。

关系实例是值,是某时刻关系的值

16. 什么是基本表?什么是视图?两者的区别和联系是什么?

答:基本表是本身独立存在的表,在 SQL中一个关系就对应一个表。

视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。

17. 两个关系进行外连接时有哪几种类型? 18. 试述视图的优点。

答:视图有以下优点:

(1)视图能够简化用户的操作。

(2)视图使用户能以多种角度看待同一数据。

(3)视图对重构数据库提供了一定程度的逻辑独立性。 (4)视图能够对机密数据提供安全保护。 19. 所有的视图是否都可以更新?为什么?

答:不是。视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。因为有些视图的更新不能唯一地有意义地转换成对相应基本表的更新,所以,并不

24

是所有的视图都是可更新的。

20. 什么是数据库的逻辑结构设计?试述其设计步骤。

答:数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本 E-R图转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。 设计步骤为:

(1) 将概念结构转换为一般的关系、网状、层次模型;

(2) 将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换; (3) 对数据模型进行优化。 六、 设计题

1.设有描述学校情况的U关系。

U(S#,SD,MN,CN,G)

其中:S#属性表示学生学号,SD表示学生所在系名,MN表示系主任,CN表示课程名,G表示成绩。一个系有若干名学生,一个学生只属于一个系,一个系只有一名系主任,一个学生可选多门课,每个学生选每门课有一个成绩。试写出U关系中的函数依赖,并给每个函数依赖一个简短说明。 答:S#→SD 学生学号,决定其所在系名; SD→MN 系名决定了其所在系的系主任; S#,CN→G学号和课程决定该生此课程的成绩。

2.设有关系:职工关系EMPLOYEE (职工号,职工名,街道,城市)

工作关系WORKS (职工号,公司号,工资) 公司关系COMPANY (公司号,公司名,城市) (1) 假设一个职工可在多个公司兼职,请用关系代数表达式写出至少在公司号为?C2?和?C5?公司兼职的职工的职工号。

(2)试用SQL语句写出下列操作:将所有在“联华公司”工作的职工加薪5﹪。

UPDATE WORKS

SET工资 = 工资 * 1.05 WHERE公司号IN (SELECT公司号 FROM COMPANY

WHERE公司名 =?联华公司?);

3.图书出版管理数据库中有两个基本表:

图书 (书号,书名,作者编号,出版社,出版日期) 作者 (作者编号,作者名,年龄,地址)

试用SQL语句写出下列查询:检索年龄低于作者平均年龄的所有作者的作者名、书名和出版社。

SELECT 作者名,书名,出版社

FROM 图书,作者

WHERE 图书 . 作者编号 = 作者 . 作者编号 AND 年龄 < = (SELECT AVG (年龄)

25

FROM 作者);

4.学校有多名学生,财务处每年要收一次学费。为财务处收学费工作设计一个数据库,包括两个关系:

学生 (学号,姓名,专业,入学日期) 收费 (学年,学号,学费,书费,总金额)

假设规定属性的类型:学费、书费、总金额为数值型数据;学号、姓名、学年、专业为字符型数据;入学日期为日期型数据。列的宽度自定义。

试用SQL语句定义上述表的结构。(定义中应包括主键子句和外键子句) CREATE TABLE 学生 (学号 CHAR (8), 姓名 CHAR (8), 专业 CHAR (13), 入学日期 DATE,

PRIMARY KEY (学号)); CREATE TABLE 收费 (学年 CHAR (10), 学号 CHAR (8), 学费 NUMERIC (4), 书费 NUMERIC (5,2), 总金额 NUMERIC (7,2), PRIMARY KEY (学年,学号),

FOREIGN KEY (学号) REFERENCES 学生 (学号));

5.在“学生一选课一课程”数据库中的3个关系如下:

学生(学号,姓名,年龄,性别,班级) 选课(学号,课程号,成绩)

课程(课程号,课程名,学分,学时,任课教师) .

(一)试用关系代数表达式和SQL语言表示下列查询要求。(1) 查询选修了课程名为DB的学生姓名和所在班级。

Π姓名,班级(学生∞选课∞ σ课程名='DB' (课程)) SELECT 姓名,姓名, 班级 FROM 学生

WHERE 学号 IN (SELECT 学号 FROM 选课,课程 WHERE 选课.课程号=课程.课程号 AND 课程名='DB')(2) 查询?刘军?老师所授课程的课程号、课程名。

π课程号,课程名(σ任课教师='刘军'(课程))

26

SELECT 课程号,课程名 FROM 课程 WHERE 任课教师=?LIU? (3) 求选修课程包含“刘军”老师所授课程之一的学生学号 (4) 查询年龄大于23岁的男学生的学号与姓名。 π学号,姓名(σ年龄>'23'∧性别='男'(学生))

SELECT 学号,姓名 FROM S WHERE (年龄>23) AND (性别=?男?) (5) 查询学号为S3学生所学课程的课程名与任课教师名。

π课程名,任课教师(σ学号='S3'∧选课.课程号=C.课程号(选课×课程))

(也可将两个关系自然连接后选择、投影)

π课程名,任课教师(σ学号='S3' ( 学生∞选课))

(6) 查询至少选修LIU老师所授课程中一门课程的女学生的姓名。

π姓名(σ性别='女'∧任课教师='刘军'(学生∞选课∞课程))

SELECT 姓名 FROM 学生 WHERE 性别=?女? AND 学号 IN (SELECT 学号 FROM 选课 WHERE 课程号 IN

(SELECT 课程号 FROM 课程 WHERE 任课教师=?LIU?)

(7) 查询WANG同学不学的课程号。

π课程号(选课)- π课程号(σ姓名='WANG'∧学生.学号=选课.学号(学生×选课))

SELECT 课程号 FROM C WHERE 课程号 NOT IN (SELECT 课程号 FROM 选课 WHERE 学号 IN (SELECT 学号 FROM S WHERE 姓名='WANG'))

(8) 查询至少选修两门课程的学生学号。

π学号(σ1=4∧2≠5(选课×选课)) (选课自乘之后,同一个学号下两个课程号不同的元组)

SELECT 学号 FROM 选课 GROUP BY 学号 HAVING COUNT(课程号)>=2 (9) 查询全部学生都选修的课程的课程号与课程名。

π课程号, 课程名 (选课∞(π学号,课程号(选课)?π学号(学生)))

(涉及到全部值时,应用除法,“除数”是全部量。)

SELECT 课程号,课程名 FROM 课程 WHERE NOT EXISTS (SELECT * FROM 学生 WHERE NOT EXISTS

(SELECT * FROM 选课 WHERE 选课.学号=学生.学号 AND 选课.课程号=课程.课程号))

(10) 查询选修课程包含刘军老师所授课程的学生学号。 π学号(σ任课教师='刘军'(学生∞选课∞课程))

27

SELECT 学号 FROM 学生 WHERE 学号 IN

(SELECT 学号 FROM 选课 WHERE 学生.学号=选课.学号 AND 课程号 IN (SELECT 课程号 FROM 课程 WHERE 任课教师='LIU')) (请讨论一下,本题是否可如此:SELECT DISTINGCT

学号 FROM 选课 WHERE EXISTS (SELECT 课程号 FROM 课程 WHERE 任课教师='LIU'))

(二)试用SQL查询语句表达下列对教学数据库中三个基本表学生、选课、课程的查询要求:

(1)统计有学生选修的课程门数。

SELECT COUNT(DISTINCT 课程号) FROM 选课 (2)求选修C4课程的学生的平均年龄。

SELECT AVG(年龄) FROM 学生 WHERE 学号 IN (SELECT 学号 FROM 选课 WHERE 课程号='C4') (3)求LIU老师所授课程的每门课程的学生平均成绩。

SELECT 课程名,AVG(成绩) FROM 选课 ,课程 WHERE 课程号 IN (SELECT 课程号 FROM 课程 WHERE 任课教师='LIU') GROUP BY 课程号

(4)统计每门课程的学生选修人数(超过10人的课程才统计)。要求输出课程号和选修

人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。 SELECT DISTINCT 课程号,COUNT(学号) FROM 选课

GROUP BY 课程号 HAVING COUNT(学号)>10 ORDER BY 2 DEC,课程号 (5)查询学号比WANG同学大,而年龄比他小的学生姓名。

SELCET 姓名 FROM 学生 AS X WHERE X.学号>SOME

(SELECT 学号 FROM 学生 AS Y WHERE Y.姓名='WANG' AND X.年龄

SELECT 姓名,年龄 FROM 学生 WHERE 姓名 LIKE 'WANG%' (7)在选课中检索成绩为空值的学生学号和课程号。

SELECT 学号,课程号 FROM 选课 WHERE 成绩 IS NULL (8)求年龄大于女同学平均年龄的男学生姓名和年龄。

SELECT 姓名,年龄 FROM 学生 AS X

WHERE X.性别='男' AND X.年龄>(SELECT AVG(年龄) FROM 学生 AS Y WHERE Y.性别='女')

(9)求年龄大于所有女同学年龄的男学生姓名和年龄。

SELECT 姓名,年龄 FROM 学生 AS X

WHERE X.性别='男' AND X.年龄>ALL (SELECT 年龄 FROM 学生 AS Y

WHERE Y.性别='女')

(10)查询?刘军?老师所教的所有课程的课号和学时 (11)查询所有学生的基本情况

(12)求在本学期任课的全部教师姓名,担任两门课以上的教师只出现一次。

28

(13)查询23岁以上男生的学号和姓名。

(14)求所有男生的学号、姓名、年龄。要求按年龄递增排序。 (15)求关系S中学生总数

(16)求学习?C2?课的学生总数:

(17)将关系C中课程号为C2的课程任课教师改为?WANG? (18)求任课教师总数. (19)求学生S1的总分数. (20)求学生的最大年龄.

(21)求出年龄等于最大年龄的所有学生的姓名。

SELECT 学号,姓名 FROM 学生

WHERE 年龄=(SELECT MAX(年龄) FROM 学生 )

(22)求选修课程号为“C2”的课程的学生的姓名和专业 (23)求至少选修两门课程的学生学号 (三)试用SQL更新语句表达对教学数据库中三个基本表学生、选课、课程的各个更新操作:

(1)往基本表学生中插入一个学生元组(?S9?,?WU?,18)。 INSERT INTO 学生(学号,姓名,年龄) VALUES('59','WU',18)

(2)在基本表学生中检索每一门课程成绩都大于等于80分的学生学号、姓名和性别,

并把检索到的值送往另一个已存在的基本表STUDENT(学号,姓名,性别)。 INSERT INTO STUDENT(学号,姓名,性别)

SELECT 学号,姓名,性别 FROM 学生 WHERE NOT EXISTS

(SELECT * FROM 选课 WHERE 成绩>=80 AND 学生.学号=选课.学号) (3)在基本表选课中删除尚无成绩的选课元组。

DELETE FROM 选课 WHERE 成绩 IS NULL (4)把WANG同学的学习选课和成绩全部删去。

DELETE FROM 选课 WHERE 学号 IN (SELECT 学号 FROM 学生 WHERE 姓名='WANG')

(5)把选修MATHS课不及格的成绩全改为空值。

UPDATE 选课 SET 成绩=NULL WHERE 学号 IN

(SELECT 学号 FROM 课程 WHERE 课程名='MATHS') AND 选课.成绩<60 (6)把低于总平均成绩的女同学成绩提高5%。 UPDATE 选课 SET 成绩=成绩*1.05

WHERE 成绩<(SELECT AVG(成绩) FROM 选课)AND 学号 IN (SELECT 学号 FROM S WHERE 性别='女')

(7)在基本表选课中修改C4课程的成绩,若成绩小于等于75分时提高5%,若成绩

大于75分时提高4%(用两个UPDATE语句实现)。 UPDATE 选课 SET 成绩=成绩*1.05 WHERE 课程号='C4' AND 成绩<=75 UPDATE 选课 SET 成绩=成绩*1.04 WHERE 课程号='C4' AND 成绩>75

29

(四)对于教学数据库中基本表选课,已建立下列视图:

CREATE VIEW S_成绩(学号,课程数,平均成绩) AS SELECT 学号,COUNT(C#),AVG(成绩) FROM 选课 GROUP BY 学号

试判断下列查询和更新是否允许执行。若允许,写出转换到基本表选课上的相应操作。 (1) SELECT * FROM S_成绩

允许:SELECT 学号,COUNT(课程号),AVG(成绩) FROM 选课 GROUP BY S# (2) SELECT S#,C_NUM FROM S_成绩 WHERE AVG_成绩>80

允许:SELECT 学号,COUNT(课程号) FROM 选课 GROUP BY S# HAVING AVG(成绩)>80

(3) SELECT S#,AVG_成绩 FROM S_成绩

WHERE C_NUM>(SELECT C_NUM FROM S_成绩 WHERE S#=

?S4?)

允许:SELECT 学号,AVG(成绩) FROM 选课 AS X

WHERE COUNT(X.课程号)>(SELECT COUNT(Y.课程号) FROM 选课 AS Y

WHERE Y.学号='S4')

(4) UPDATE S_成绩 SET C_NUM=C_NUM+1 WHERE S#=?S4? 不允许

(5) DELETE FROM S_成绩 WHERE C_NUM>4 不允许 (五)

(1) 建立一个视图V—SSC(学号,姓名,课程号,课程名,成绩),并按课程号升序排序; (2) 从视图V—SSC上查询平均成绩在90分以上的学号、课程号和成绩。 (计算题) (1) CREATEVIEWV—SSC(学号,姓名,课程号,课程名,成绩) AS SELECT学号,姓

名,课程号,课程名,成绩FROM 学生,选课 WHERE 学生.学号=选课.学号 ORDER BY 课程号; (2) SELECT 学号,课程号,成绩 FROM V—SSC GROUP BY 学号 HAVING AVG(成

绩)>90;

6. 现有关系数据库如下: 学生(学号,姓名,性别,年龄,专业), 课程(课程号,课程名称,学分), 选修(学号,课程号,成绩) 用关系代数表达式实现下列1—4小题,用SQL语句实现5-8小题:

1.查询“国际贸易”专业的学生的学号、姓名;

2.查询学生成绩得过满分(100分)的课程的课程号、课程名称和学分; 3.查询选修了“数据库原理”这门课程的学生的学号、姓名和专业;

4.查询至少选修了学号为200201001这位学生选修了的课程的学生的学号及姓名; 5.查询“数据库原理”这门课成绩在90分以上的学生人数; 6.查询各个课程号及其相应的选课人数;

7.查询选修了3号课程的学生的学号及其成绩,查询结果按成绩降序排列;

30

8.将所有学生的年龄增加1岁。

1. π学号,姓名(δ专业=?国际贸易?(学生))

2. π课程号,课程名称,学分(δ成绩=100(选修) 课程)

3. π学号,姓名,专业(δ课程名=?数据库原理?(课程) 选课 学生)

4. π学号,姓名((选修?π课程号(δ学号=?200201001?(选修))) 学生)

5. Select Count(*) from 课程,选修 Where 课程.课程名=?数据库原理? AND 选修.

成绩>=90 AND 课程.课程号=选修.课程号

6. Select课程号,Count(*) From 选修 GroupBy 课程号

7. Select 学号,成绩 From 选修 Where 课程号=?3? Order By 成绩 Desc 8. Update 学生 Set 年龄=年龄+1

7. 现有关系数据库如下: 学生(学号,姓名,性别,专业、奖学金) 课程(课程号,名称,学分) 选修(学号,课程号,成绩)

(一)用关系代数表达式实现下列(1)—(7)小题:

① 检索“国际贸易”专业中获得奖学金的学生信息,包括学号、姓名、课程名和分数; ② 检索学生成绩得过满分(100分)的课程的课程号、名称和学分;

③ 检索没有获得奖学金、同时至少有一门课程成绩在95分以上的学生信息,包括学

号、姓名和专业;

④ 检索没有任何一门课程成绩在80分以下的学生的信息,包括学号、姓名和专业; ⑤ 查询“计算机”专业的学生的学号、姓名; π学号,姓名(δ专业=?计算机?(学生))

⑥ 查询选修了“数据库原理”这门课程的学生的学号、姓名和专业;

π学号,姓名,专业(δ课程名=?数据库原理?(课程) 选课 学生) ⑦ 查询至少选修了学号为2002003这位学生选修了的课程的学生的学号及姓名; π学号,姓名((选修?π课程号(δ学号=?200201003?(选修))) 学生) (二)用SQL语言实现下列(1)—(6)小题:

① 检索没有获得奖学金、同时至少有一门课程成绩在95分以上的学生信息,包括学

号、姓名和专业;

② 检索没有任何一门课程成绩在80分以下的所有学生的信息,包括学号、姓名和专

业;

③ 对成绩得过满分(100分)的学生,如果没有获得奖学金的,将其奖学金设为1000

元;

④ 查询“数据库原理”这门课成绩在60分以下的学生人数;

Select Count(*) from 课程,选修 Where 课程.课程名=?数据库原理? AND 选修.成绩< 60 AND 课程.课程号=选修.课程号

⑤ 查询选修了3号课程的学生的学号及其成绩,查询结果按成绩降序排列; Select 学号,成绩 From 选修 Where 课程号=?3? Order By 成绩 Desc

⑥ 定义学生成绩得过满分(100分)的课程视图AAA,包括课程号、名称和学分; 8. 现有图书借阅关系数据库如下:

图书(图书号、书名,作者,单价,库存量)

31

读者(读者号,姓名,工作单位,地址) 借阅(图书号,读者号,借期,还期,备注) 其中:还期为NULL表示该书未还。 (一)用关系代数表达式实现下列1-4小题:

① 检索读者号为R016的读者姓名、工作单位;

π姓名,工作单位(σ读者号=?R016?(读者))

② 检索借阅图书号为B5的读者姓名;

π姓名 ((σ图书号=?B5?(读者))∞借阅)

③ 检索读者“李林”所借图书的书名;

Π姓名,书名((σ姓名='李林'(读者))∞借阅∞书))

④ 检索读者“李林”所借图书中未还的书名;

π姓名,书名((σ姓名='李林'∧还期IS NULL(读者))∞借阅∞书))

⑤ 查询读者“李林”共借多少本图书(已还的不算) (二)用SQL语言实现下列1-6小题:

① 检索读者号为R016的读者姓名、工作单位;

SELECT 姓名,工作单位 FROM 读者 WHERE 读者号=?R016?

② 检索借阅图书号为B5的读者姓名;

SELECT 姓名FROM 读者,借阅 WHERE书号=?B5? AND 读者.读者号=借阅.读者号 ③ 检索读者“李林”所借图书的书名;

SELECT 姓名,书名 FROM 读者,借阅,书

WHERE 姓名=?李林? AND 读者.读者号=借阅.读者号AND书.书号=借阅.书号 ④ 检索读者“李林”所借图书中未还的书名;

SELECT 读者号,书名 FROM 读者,借阅,书

WHERE 姓名=?李林? AND 读者.读者号=借阅.读者号 AND书.书号=借阅.书号AND 还期IS NULL ⑤ 查询读者“李林”共借多少本图书(已还的不算) SELECT COUN(*) FROM FROM 读者,借阅,书

WHERE 姓名=?李林? AND 读者.读者号=借阅.读者号 AND书.书号=借阅.书号AND 还期IS NULL ⑥ 将读者“李林”所借图书的信息从借阅表中删除;

DELETE FROM借阅 WHERE借阅.读者号=(SELECT读者号FROM读者WHERE姓名=?李林?)

⑦ 建立未还图书的读者姓名和单位视图。

32

CREATE VIEW NO-BOOK AS

SELECT姓名, 单位ROM读者,借阅

WHERE读者.读者号=借阅.读者号AND还期IS NULL

七、 综合题

1. 设某单位销售产品所需管理的信息有:订单号、客户号、客户名、客户地址、产品号、

产品名、产品价格、订购数量、定购日期。一个客户可以有多个订单,一个订单可以订多种产品。

(1)请给出销售信息的E-R模型; (2)将E-R模型转换成关系模型。 (1)

1 客户 订货 n 订单 1 订购 m 产品 (2)客户(客户号,客户名,客户地址) 产品(产品号,产品名,产品价格) 订单(订单号,产品号,订购日期) 订购(订单号,产品号,订购数量)

2. 设计一个图书馆数据库,此数据库中对每个借阅者保存读者记录,包括:读者号,姓名,地址,性别,年龄,单位。对每本书存有:书号,书名,作者,出版社。对每本被借出的书存有:读者号,借出日期,和应还日期。 (1)给出图书馆数据库的E-R模型;

地址 借出应还读者 借阅 图书 读者号 姓名 性别 年龄 书号 书名 作者

(2)将E-R模型转换成关系模型。

读者 (读者号,姓名,地址,性别,年龄,单位) 书 (书号,书名,作者,出版社)

借阅 (读者号,书号,借出日期,应还日期) 3. 1).用E-R图来表示下列某个工厂物资管理的概念模型,请标明键码和角色名称。涉

及到的数据包括: 实体集:

仓库:仓库号 面积 电话号码

零件:零件号 名称 规格 单价 描述

供应商:供应商号 姓名 地址 电话号码 帐号

33

项目:项目编号 预算 开工日期 职工:职工号 姓名 年龄 职称 联系集:

仓库和零件是多对多的联系;仓库和职工是一对多的联系;职工之间领导与被领导是一对多的联系;供应商、项目、零件是多对多的三元联系 2).将下列E-R图转换成相应的关系模式,并指明其键码。

1)E—R图

34

开工日期 项目编号 预算 供应商号 电话号码 姓名 地址 职工号 被领导领导 领导项目 供应商 姓名 帐号 职工 年龄 供应 职称 管理 仓库 存放 零件 描述 仓库号 面积 电话号码 零件号 名称 规格 单价

2)ER图转换成相应的关系模式为: Press(Pressid, Pres姓名) 键码是Pressid Dept(Pressid,Name) 键码是Pressid+Name

4. 设有商店和顾客两个实体,“商店”有属性商店编号、商店名、地址、电话,“顾客”有属

性顾客编号、姓名、地址、年龄、性别。假设一个商店有多个顾客购物,一个顾客可以到多个商店购物,顾客每次去商店购物有一个消费金额和日期,而且规定每个顾客在每个商店里每天最多消费一次。试画出ER图,并注明属性和联系类型。 5. 某医院病房计算机管理中需要如下信息: 科室:名称、地址、电话,医生姓名 病房:病房号,床位号,所属科室名称

医生:姓名、职称、所属科室名称、年龄、工作证号 病人:病历号、姓名、性别、诊断、主管医生、病房号

其中一个科室有多个病房、多个医生;一个病房只能属于一个科室;一个医生只属于一

35

个科室,但可以负责多个病人的诊治,一个病人的主管医生只有一个。

设计要求:

1、 设计该计算机管理系统的E-R图; 2、 将该E-R图转换为关系模式结构; 3、 指出转换结果中每个关系的键码。

病房号 床位号 科室号 科室地址 电话 病房 m 组成 1 科室 1 入住 从属 1 m 病人 m 诊治 1 医生 m 病历号 姓名 性别 工作证号 姓名 职称 年龄

1、答案

科室(科室名,科室地址,科室电话) 病房(病房号,床位号,科室名)

医生(工作证号,姓名,职称,年龄,科室名)

病人(病历号,姓名,性别,诊治,主管医生,病房号) 2、答案

科室(科室名,科室地址,科室电话) 病房(病房号,床位号)

医生(工作证号,姓名,职称,年龄) 病人(病历号,姓名,性别) 组成(科室号,病房号) 入住(病历号,病房号) 从属(工作证号,科室名) 诊治(工作证号,病历号,诊治结果)

6. 下面是医院组织的结构图。要求完成以下工作:

(1) 画出医院组织的E-R图;

(2) 查询所有外科病区和内科病区的所有医生姓名; (3) 查询内科病区患胃病的病人的姓名。

36

答案(1)

编号 名称 病房号 医生姓名 病区 管理 住有 医生 管理病房号 编号 姓名 职称 年龄 治疗 编号 病人 姓名 病科 病房号

病区 编号 名称 病房号 医生姓名 医生 编号 姓名 年龄 职称 管理病房号 37

病人 编号 姓名 患何病科 病房号 7. (每小题5分,共20分)现有如下关系模式: R(A#,B#,C,D,E) 其中:A#B

#组合为码 R上存在的函数依赖有A#B#→E,B#→C,C→D (1) 该关系模式满足2NF吗?为什么? (2) 如果将关系模式R分解为:

R1(A#,B#,E) R2(B#,C,D) 指出关系模式R2的码,并说明该关系模式最高满足第几范式?(在1NF~BCNF之内)。

(3) 将关系模式R分解到BCNF。

(4) 在E-R模型中,如果实体间是1∶M的联系,如何设计相应部分的关系模型? 8. 现有某个应用,涉及两个实体集,相关的属性为:

实体集R(A#,A1,A2,A3),实体集S(B#,B1),其中A#和B#分别表示相应实体集的码;从实体集R到S是一对多(1:M)的联系,联系属性C1和C2。 (1) 试画出相应的E-R图,并设计相应的关系数据模型; (2) 如果将上述应用的数据库设计为一个关系模式,如下:

RS(A#,A1,A2,A3,B#,B1,C1,C2) 指出该关系模式的码。

(3) 上述第2题的关系模式RS最高满足第几范式?并说明理由。 (4) 如果将上述应用的数据库设计为两个关系模式,如下:

R1(A#,A1,A2,A3,B#,C1,C2) R2(B#,B1)

指出关系模式R1、R2最高满足第几范式?(在1NF-BCNF之内)。 9. 本题共10分)假设某商业集团数据库中有一关系模式R如下: R (商店编号,商品编号,数量,部门编号,负责人) 如果规定:

? 每个商店的每种商品只在一个部门销售; ? 每个商店的每个部门只有一个负责人; ? 每个商店的每种商品只有一个库存数量。 试回答下列问题:

(1) 根据上述规定,写出关系模式R的基本函数依赖; (2) 找出关系模式R的候选码;

(3) 试问关系模式R最高已经达到第几范式?为什么? (4) 如果R不属于3NF,请将R分解成3NF模式集。

答案:(1) 有三个函数依赖:(商店编号,商品编号) →部门编号 (商店编号,部门编号) →负责人 (商店编号,商品编号) →数量

(2) R的候选码是 (商店编号,商品编号)

(3) 因为R中存在着非主属性“负责人”对候选码 (商店编号、商品编号)的传递函数依赖,所以R属于2NF,R不属于3NF。

(4) 将R分解成:R1 (商店编号,商品编号,数量,部门编号)

38

R2 (商店编号,部门编号,负责人)

10. 设关系模式R(学号,课程号,成绩,TNAME,TADDR),其属性分别表示学生学号、选修

课程的编号,成绩、任课教师地址等意义。如果规定,每个学生每学一门课只有一个成绩;每门课只有一个教师任教;每个教师只有一个地址(此处不允许教师同名同姓)。 (1) 试写出关系模式R基本的函数依赖和候选键。 (2) 试把R分解成2NF模式集并说明理由。 (3) 试把R分解成3NF模式集,并说明理由。 解:

(1)F={(学号,课程号)→成绩,课程号→TNAME,TNAME→TADDR}关系模式的侯选键是学号,课程号。

(2)可分解为下列三个关系。SC={学号,课程号,成绩} C={课程号,TNAME,TADDR}

理由如下:在原模式R中,TNAME不完全依赖于键(学号,课程号),因此需进行分解,分解后,SC中,成绩完全依赖于(学号,课程号),在C中,主属性是课程号,其他非主属性均完全依赖于课程号。因此这个分解是正确的。

(3)分解成3NF,若每个关系模式是2NF,则每个非主属性都不传递于R的候选键。按上述已分好的两个模式,SC已是3NF,而在C中,TADDR传递依赖于课程号,因此还需分成两个模式:C1(课程号,TNAME),

T(TNAME,TADD)。总共有三个模式。是第三范式了。 11. 假设教学管理规定:

①一个学生可选修多门课,一门课有若干学生选修; ②一个教师可讲授多门课,一门课只有一个教师讲授; ③一个学生选修一门课,仅有一个成绩。

学生的属性有学号、学生姓名;教师的属性有教师编号,教师姓名;课程的属性有课程号、课程名。 要求:

(1) 根据上述语义画出E-R图,在E-R图中需注明实体的属性、联系的类型及实体的标识符。

(2) 将E-R模型转换成关系模型,并指出每个关系模式的主码和外码。 (3) 写出每个关系模式的函数依赖集。 (4) 分析每个关系模式已经达到第几范式。 答案: (1)

教师号 教师名 教师 1讲授 学生 学号 姓名 n选修 成绩(2)教师(教师号,教师名) 主码:教师号

学生(学号,姓名)

主码:学号

n课程(课程号,课程名,任课教师号)

主码:课程号

课程 m外码:任课教师号

39 选修(学号,课程号,成绩)

课程号 课程名 主码:(学号,课程号) 外码:课程号,学号

(3)教师F={教师号→教师名}

学生 F={学号→姓名,}

课程 F={课程号→课程名,课程号→任课教师号} 选修F={(学号,课程号)→成绩} (4)都达到了BCNF

12. 假设为自学考试成绩管理设计了一个关系R(S#,SN,C#,CN,G,U),其属

性的含义依次为考生号、姓名、课程号、课程名、分数和主考学校名称。

规定每个学生学习一门课程只有一个分数;一个主考学校主管多门课程的考试,且一门课程只能属于一个主考学校管理;每名考生有唯一的考号,每门课程有唯一的课程号。

(1) 写出关系模式R基本的函数依赖集。 (2) 写出关系模式R的候选键。

(3) 关系模式R最高达到第几范式?为什么? (4) 将R规范化为3NF。

解:(1) F={(学号 课程号)→G, 课程号→U, 学号→SN, 课程号→CN} (2) (学号 课程号)

(3) 最高达到第一范式,因为(学号 课程号)是主键,但课程号→U, 学号→SN, 课程号→CN,即U,

SN,CN这些非主属性均部分函数依赖于主键,所以只能达到第一范式。 (4) S (学号, SN)

C (课程号, CN, U) SC (学号, 课程号, G)

13. 设计一个用于管理会议室的数据库。经调查分析,得到的数据项列出如下:

房间号r# CHAR(4),部门号d# CHAR(3),部门名称dname CHAR(20),房间容量content INT,部门主管dman年龄r CHAR(8),开会日期mdate DATE,会议名称课程名 CHAR(20),会议主题(subject)CHAR(80),会议类型(type),部门人数dnum INT,当前房间状态state CHAR(1),

并确定以会议室(room)信息,部门(department)信息,会议(conference)信息为实体,它们通过\开会(meeting)\联系起来。为了简化问题做如下假定: ? 会议以部门召开,但一个部门在同一会议室不能重复召开同一个会议。 ? 会议室按部门借用,且不预借。

? 当前房间状态取值为'1'表示该会议室当前正在开会,取值为'0'表示该会议室当前未被借

用。

数据库概念设计的只包含主键属性的简化E-R图如下: 要求:

⑴ 数据库的逻辑结构设计:

给出相应的表名、表的属性名(数据类型可省)、主键。(14分) ⑵ 给出下列查询的SQL语句:(16分,每小题4分)

40

a) 当前未借用的会议室(房间号)和容量:

b) 2000年4月8日有哪些部门(部门名称)在开会?他们的主管是谁?

c) 2000年4月8日'信息中心'在哪个会议室(房间号)开会?会议名称和主题是什么? d) 当前能够适合'信息中心'开会的有哪些会议室(房间号)?

14. 现有如下关系模式: R(A,B,C,D,E) 其中:R上存在的函数依赖有AB→E,

B→C,C→D 1).分别求{AB}、{B}、{C} (3分) 2).该关系模式R的键码是什么? (2分) 3). 该关系模式满足2NF吗?为什么? (4分) 4). 如果将关系模式R分解为: R1(A,B,E)

R2(B,C,D) 指出关系模式R2的键码,并说明该关系模式最高满足第几范式?(在

1NF~BCNF之内)。 (5分)

5). 将关系模式R分解到BCNF。 (4分) 1){AB}={A,B,C,D,E} (1分) {B}={B,C,D} (1分)

{C}={C,D} (1分)

2).该关系模式R的键码是AB (2分)

3). 该关系模式不满足2NF,因为C对AB是部分函数依赖 (4分) 4).关系模式R2的键码是B (2分)

该关系模式最高满足2NF范式,由于有函数依赖B→C,C→D,所以有传递函数依赖。(3分)

5). 将关系模式R分解到BCNF如下:

R1(A,B,E) R2(B,C) R3(C,D) (4分)

+++

+

+

+

41