或
SELECT JNAME FROM J
WHERE JNO IN (SELECT JNO FROM SPJ, S
WHERE SPJ. SNO=S.SNO AND S.CITY='上海');
(7) 找出没有使用天津产的零件的工程号码。
SELECT JNO FROM J
WHERE NOT EXISTS (SELECT * FROM SPJ
WHERE SPJ.JNO=J.JNO AND SNO IN (SELECT SNO FROM S
WHERE CITY=‘天津’)); 或
SELECT JNO FROM J
WHERE NOT EXISTS (SELECT *1 FROM SPJ, S
WHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND S.CITY=‘天津’); (8) 把全部红色零件的颜色改成蓝色。
UPDATE P
SET COLOR='蓝'
WHERE COLOR='红' ;
(9) 由S5供给J4的零件P6改为由S3供应,请作必要的修改。
UPDATE SPJ SET SNO='S3'
WHERE SNO='S5' AND JNO='J4' AND PNO='P6';
(10) 从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录。
DELETE FROM SPJ
WHERE SNO='S2'; 或
DELETE FROM S
WHERE SNO='S2';
解析:注意删除顺序,应该先从SPJ表中删除供应商S2所供应零件的记录,然后从从S表中删除S2。 (11) 请将 (S2,J6,P4,200) 插入供应情况关系。
INSERT INTO SPJ(SNO, JNO, PNO, QTY) VALUES (S2,J6,P4,200); 或
INSERT INTO SPJ
11
VALUES (S2,P4,J6,200);
6. 什么是基本表?什么是视图?两者的区别和联系是什么?
答:基本表是本身独立存在的表,在SQL中一个关系就对应一个表。
视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。 7. 试述视图的优点。
答:(1)视图能够简化用户的操作。
(2)视图使用户能以多种角度看待同一数据。
(3)视图对重构数据库提供了一定程度的逻辑独立性。 (4)视图能够对机密数据提供安全保护。 8. 所有的视图是否都可以更新?为什么?
答:不是。视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。因为有些视图的更新不能唯一地有意义地转换成对相应基本表的更新,所以,并不是所有的视图都是可更新的。如《概论》3.5.1中的视图S_G(学生的学号及他的平均成绩) CREAT VIEW S_G(Sno,Gavg) AS SELECT Sno,AVG(Grade) FROM SC
GROUP BY Sno;
要修改平均成绩,必须修改各科成绩,而我们无法知道哪些课程成绩的变化导致了平均成绩的变化。 9. 哪类视图是可以更新的,哪类视图是不可更新的? 各举一例说明。 答:基本表的行列子集视图一般是可更新的。如《概论》3.5.3中的例1。 若视图的属性来自集函数、表达式,则该视图肯定是不可以更新的。 如《概论》3.5.3中的S_G视图。
10. 试述某个你熟悉的实际系统中对视图更新的规定。 答:(略)
解析:不同的系统对视图更新的规定是不同的,读者必须了解你所用系统对视图更新的规定。 11. 请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件 代码(PNO)、供应数量(QTY)。针对该视图完成下列查询: (1)找出三建工程项目使用的各种零件代码及其数量。 (2)找出供应商S1的供应情况。 答:建视图:
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) 找出供应商S1的供应情况。
SELECT PNO, QTY /* S1供应三建工程的零件号和对应的数量*/ FROM V_SPJ
WHERE SNO='S1';
12
关系系统及其优化
一、选择题
1.概念模型是现实世界的第一层抽象,这一类最著名的模型是( ) 。
A.层次模型 B. 关系模型 C. 网状模型 D. 实体-关系模型 2.区分不同实体的依据是( ) 。
A. 名称 B. 属性 C. 对象 D. 概念
3.关系数据模型是目前最重要的一种数据模型,它的三个要素分别为( )。
A.实体完整、参照完整、用户自定义完整 B.数据结构、关系操作、完整性约束 C.数据增加、数据修改、数据查询 D.外模式、模式、内模式 4.在( )中一个结点可以有多个双亲,节点之间可以有多种联系。
A.网状模型 B. 关系模型 C.层次模型 D. 以上都有
5.( )的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。
A.网状模型 B. 关系模型 D.层次模型 D. 以上都有
6.在关系数据库中,要求基本关系中所有的主属性上不能有空值,其遵守的约束规则是( ) 。
A.数据依赖完整性规则 B. 用户定义完整性规则 C.实体完整性规则 D. 域完整性规则 选择题参考答案:(1) D (2) B (3) B (4) A (5) B (6) C 二、简答题
1.试述关系模型的三个组成部分。
答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。 2.试述关系数据语言的特点和分类。 答:关系数据语言可以分为三类: 关系代数语言 例如ISBL
关系演算语言 (元组关系演算语言 例如APLHA,QUEL 和 域关系演算语言 例如QBE) 具有关系代数和关系演算双重特点的语言 例如SQL
这些关系数据语言的共同特点是,具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。
3. 定义并理解下列术语,说明它们之间的联系与区别: (1)域,关系,元组,属性
答: 域:域是一组具有相同数据类型的值的集合。
关系:在域D1,D2,?,Dn上笛卡尔积D1×D2×?×Dn的子集称为关系,表示为 R(D1,D2,?,Dn)
元组:关系中的每个元素是关系中的元组。
属性:关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可 以相同,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。 (2)主码,候选码,外部码
答: 候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码(Candidate key)。 主码:若一个关系有多个候选码,则选定其中一个为主码(Primary key)。
外部码:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外部码(Foreign key),简称外码。 基本关系R称为参照关系(Referencing relation),基本关系S称为被参照关系(Referenced relation)或目标关系(Target relation)。关系R和S可以是相同的关系。 (3)关系模式,关系,关系数据库
关系模式:关系的描述称为关系模式(Relation Schema)。它可以形式化地表示为: R(U,D,dom,F)
其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,dom为属性向域的映象
13
集合,F为属性间数据的依赖关系集合。
关系:在域D1,D2,?,Dn上笛卡尔积D1×D2×?×Dn的子集称为关系,表示为 R(D1,D2,?,Dn)
关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。
关系数据库:关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。
4.试述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?
答: 关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。
其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。
1) 实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。
2) 参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必 须为: · 或者取空值(F的每个属性值均为空值);
· 或者等于S中某个元组的主码值。
3) 用户定义的完整性是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。
在参照完整性中,外部码属性的值可以为空,它表示该属性的值尚未确定。但前提条件是该外部码属性不是其所在关系的主属性。
例如,在下面的“学生”表中,“专业号”是一个外部码,不是学生表的主属性,可以为空。其语义是,该学生的专业尚未确定。
学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名)
而在下面的“选修”表中的“课程号”虽然也是一个外部码属性,但它又是“选修”表的主属性,所以不能为空。因为关系模型必须满足实体完整性。 课程(课程号,课程名,学分) 选修(学号,课程号,成绩)
5.等值连接与自然连接的区别是什么?
答:连接运算中有两种最为重要也最为常用的连接,一种是等值连接(equi-join),另一种是自然连接(Natural join)。
θ为“=”的连接运算称为等值连接。
它是从关系R与S的笛卡尔积中选取A、B属性值相等的那些元组。即等值连接为: R A=B S = { tr ts| tr∈R ∧ ts∈S ∧ tr[A] = ts[B] } 自然连接(Natural join)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。即若R和S具有相同的属性组B,则自然连接可记作: R S = { tr ts| tr∈R ∧ ts∈S ∧ tr[B] = ts[B] }
关系数据理论
一、选择题
1. 为了设计出性能较优的关系模式,必须进行规范化,规范化主要的理论依据是( ) 。
A. 关系规范化理论 B. 关系代数理论 C.数理逻辑 D. 关系运算理论
2. 规范化理论是关系数据库进行逻辑设计的理论依据,根据这个理论,关系数据库中的关系必须满足:每一个属性都是( ) 。
14
A. 长度不变的 B. 不可分解的 C.互相关联的 D. 互不相关的
3. 已知关系模式R(A,B,C,D,E)及其上的函数相关性集合F={A→D,B→C ,E→A },该关系模式的候选关键字是( ) 。
A.AB B. BE C.CD D. DE 4. 设学生关系S(SNO,SNAME,SSEX,SAGE,SDPART)的主键为SNO,学生选课关系SC(SNO,CNO,SCORE)的主键为SNO和CNO,则关系R(SNO,CNO,SSEX,SAGE,SDPART,SCORE)的主键为SNO和CNO,其满足( )。
A. 1NF B.2NF C. 3NF D. BCNF 5. 设有关系模式W(C,P,S,G,T,R),其中各属性的含义是:C表示课程,P表示教师,S表示学生,G表示成绩,T表示时间,R表示教室,根据语义有如下数据依赖集:D={ C→P,(S,C)→G,(T,R)→C,(T,P)→R,(T,S)→R },关系模式W的一个关键字是( ) 。
A. (S,C) B. (T,R) C. (T,P) D. (T,S) 6. 关系模式中,满足2NF的模式( ) 。
A. 可能是1NF B. 必定是1NF C. 必定是3NF D. 必定是BCNF
7. 关系模式R中的属性全是主属性,则R的最高范式必定是( ) 。
A. 1NF B. 2NF C. 3NF D. BCNF
8. 消除了部分函数依赖的1NF的关系模式,必定是( ) 。
A. 1NF B. 2NF C. 3NF D. BCNF
9. 如果A->B ,那么属性A和属性B的联系是( ) 。
A. 一对多 B. 多对一 C.多对多 D. 以上都不是
10. 关系模式的候选关键字可以有1个或多个,而主关键字有( ) 。
A. 多个 B. 0个 C. 1个 D. 1个或多个 11. 候选关键字的属性可以有( ) 。
A. 多个 B. 0个 C. 1个 D. 1个或多个 12. 关系模式的任何属性( ) 。
A. 不可再分 B. 可以再分 C. 命名在关系模式上可以不唯一 D. 以上都不是 13. 设有关系模式W(C,P,S,G,T,R),其中各属性的含义是:C表示课程,P表示教师,S表示学生,G表示成绩,T表示时间,R表示教室,根据语义有如下数据依赖集:D={ C→P,(S,C)→G,(T,R)→C,(T,P)→R,(T,S)→R },若将关系模式W分解为三个关系模式W1(C,P),W2(S,C,G),W2(S,T,R,C),则W1的规范化程序最高达到( ) 。
A. 1NF B.2NF C. 3NF D. BCNF
14. 在关系数据库中,任何二元关系模式的最高范式必定是( ) 。
A. 1NF B.2NF C. 3NF D. BCNF 15. 在关系规范式中,分解关系的基本原则是( )。
I.实现无损连接
II.分解后的关系相互独立 III.保持原有的依赖关系
A. Ⅰ和Ⅱ B. Ⅰ和Ⅲ C. Ⅰ D. Ⅱ
16. 不能使一个关系从第一范式转化为第二范式的条件是( )。
A.每一个非属性都完全函数依赖主属性 B.每一个非属性都部分函数依赖主属性 C.在一个关系中没有非属性存在 D.主键由一个属性构成 17. 任何一个满足2NF但不满足3NF的关系模式都不存在( )。
A.主属性对键的部分依赖 B.非主属性对键的部分依赖 C.主属性对键的传递依赖 D.非主属性对键的传递依赖 18. 设数据库关系模式R=(A,B,C,D,E),有下列函数依赖:A→BC,D→E,C→D;下述对R的分解中,哪些分解是R的无损连接分解( ) 。
I.(A,B,C)(C,D,E)
15