1、1 / 45 第一章绪论 一、选择题 1. DBS 是采用了 数据库 技术的计算机系统, DBS 是一个集合体,包含数据库、计算机硬件、软件和( C)。 A. 系统分析员 B. 程序员 C. 数据库管理员 D.操作员 2. 数据库( DB),数据库系统( DBS)和数据库管理系统( DBMS)之间的关系是( A)。 A. DBS 包括 DB 和 DBMS B. DBMS 包括 DB 和 DBS C. DB 包括 DBS 和 DBMS D. DBS 就是 DB,也就是 DBMS 3. 下面列出的数据库管理技术发展的三个阶段中,没有专门的软件对数据进行管理的是( D)。 I人工管理阶段 II文件系
2、统阶段 III数据库阶段 A. I 和 II B. 只有 II C. II 和 III D. 只有 I 4. 下列四项中,不属于数据 库系统特点的是()。 A. 数据共享 B. 数据完整性 C. 数据冗余度高 D. 数据独立性高 5. 数据库系统的数据独立性体现在()。 A.不会因为数据的变化而影响到应用程序 B.不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序 C.不会因为存储策略的变化而影响存储结构 D.不会因为某些存储结构的变化而影响其他的存储结构 6. 描述数据库全体数据的 全局逻辑结构和特性 的是()。 A. 模式 B. 内模式 C. 外模式 D. 用户模式 7. 要保证数
3、据库的 数 据独立性 ,需要修改的是()。 A. 模式与外模式 B. 模式与内模式 C. 三层之间的两种映射 D. 三层模式 8. 要保证数据库的 逻辑数据独立性 ,需要修改的是()。 A. 模式与外模式的映射 B. 模式与内模式之间的映射 C. 模式 D.三层模式 9. 用户或应用程序看到的那 部分局部逻辑结构和特征 的描述是(),它是模式的逻辑子集。 A.模式 B. 物理模式 C. 子模式 D. 内模式 10.下述()不是 DBA 数据库管理员的职责。 A.完整性约束说明 B. 定义数据库模式 C.数据库安全 D. 数据库管理系统设计 二、简答题 试述数据、数据库、数据库系统、数据库管理系
4、统的概念。 答: 数据:描述事物的符号记录 数据库:长期储存在计算机内、有组织的、可共享的数据集合。 数据库管理系统:位于用户与 操作系统 之间的一层数据管理软件。 数据库系统:指在计算机系统中引入数据库后系统构成,一般由数据库、数据管理系统(已经开发工具)、应用系统、数据库管理员和用户构成。 使用数据库系统有什么好处? 答:查询迅速、准确,而且可以节约大量纸面文件; 数据结构 化,并由 DBMS 同样管理;数据冗余度小;具有较高的数据独立性;共享性好 2; DBMS 提供了数据的控制功能。 试述文件系统与数据库系统的区别和联系。 答: 文件系统面向某一应用程序,共享性差,冗余度大,数据独立性
5、差,记录内有结构,整体无结构,由应用程序自己控制。数据库系统面向现实世界,共享性搞,冗余度小,具有较高的物理独立性和一定的逻辑独立性,整体结构化,用数据模型描述,由数据库管理系统提供数据的安全性、完整性、并发控制盒恢复能力。 文件系统与数据库系统的联系是:文件系统与数据库系统都是计算机系统中管理数据的软件,解析文 件系统是操作系统的重要组成部分,而 DBMS 是独立于操作体统的软件。但是 DBMS 是在操作系统的基础上2 / 45 实现的;数据库中数据的组织和存储是通过操作体统中的文件系统来实现的。 举出适合用文件系统而不是数据库系统的例子;再举出适合用数据库系统的应用例子。 答:( 1)适用
6、于文件系统而不是数据库系统的应用例子:数据的备份、软件或应用程序使用过程中那个的临时数据存储一般使用文件比较合适。早期功能比较简单、比较固定的应用系统也适用文件系统。 ( 2)适用于数据库系统而非文件的应用例子:目前,几乎所有企业或部门 的信息系统都以数据库系统为基础,都使用数据库。例如,一个工厂的管理信息系统,学校的学生管理系统,人事管理系统,图书馆的图书管理系统,等等,都适用数据库系统。 试述数据库系统的特点。 答 ( 1)数据结构化( 2)数据的共享性好,冗余度低 ( 3)数据独立性高( 4)数据由 DBMS 统一管理和控制 数据库管理系统的主要功能有哪些? 答: ( 1)数据库定义功能
7、( 2)数据存取功能( 3)数据库运行管理( 4)数据库的建立和维护功能 试述数据模型的概念、数据模型的作用和数据模型的三个要素。 答: ( 1)数据结构:是所研究的对象类型的集合,是对系统静态特性的描述。 ( 2)数据操作:是指对数据库中各种对象(型)的实例(值)允许进行的操作的集合,包括操作及有关操作规则,是对系统动态特性的描述。 ( 3)数据的约束条件:是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态已经状态的变化,以保证数据的正确、有效、相容。 试述概念模型的作用。 答: 概念模型实际上是现实世界到机器世界的一个中
8、间层次。概念模型用于信息世界的建模,是显示世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。 定义并解释概念模型中以下术语: 实体,实体型,实体集,属性,码,实体联系图( E-R 图) 答: 实体 :客观存在并可以相互区分的事物叫实体。 实体型 :具有相同属性的实体具有相同的特征和性质,好用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。 实体集: 同型实体的集合称为实体集。 属性: 实体所具有的某一特性,一个实体可由若干个属性来刻画。 码: 唯一标识实体的属性集称为码。 实体联系图( E-R 图) :提供了表示实体型、属性
9、和联系的方法。 实体型: 用矩形表示,矩形框内写明实体名; 属性: 用椭圆形表示,并用无向边将其与相应的实体连接起来; 联系: 用菱形表示,菱形框内写明联系名,并用无向边分别于有关实体连接起来,同时在无向边旁上联系的类型( 1:1, 1:n 或 m:n)。 10试给出三个实际部门的 E-R 图,要求实体型之间具有一对一,一 对多,多对多各种不同的联系。 3 / 45 第二章关系 数据库 一、选择题 1. 下面的选项不是关系数据库基本特征的是( A)。 A.不同的列应有不同的数据类型 B.不同的列应有不同的列名 C.与行的次序无关 D.与列的次序无关 2. 一个关系只有一个( D)。 A.候选码
10、 B. 外码 C. 超码 D. 主码 3. 关系模型中,一个码是( C)。 A.可以由多个任意属性组成 B.至多由一个属性组成 C.可有多个或者一个其值能够唯一表示该关系模式中任何元组的属性组成 D.以上都不是 4. 现有如下关系: 患者(患者编号,患者姓名,性别,出生日起,所在单位) 医疗(患者编号,患者姓名,医生编号,医生姓名,诊断日期,诊断结果) 其中,医疗关系中的外码是( A)。 A. 患者编号 B. 患者姓名 C. 患者编号和患者姓名 D. 医生编号和患者编号 5. 现有一个关系:借阅(书号,书名,库存数,读者号,借期,还期),假如同一本书允许一个读者多次借阅,但不能同时对一种书借多
11、本,则该关系模式的外码是( D)。 A. 书号 B. 读者号 C. 书号 +读者号 D. 书号 +读者号 +借期 6. 关系模型中实现实体间 N: M 联系是通过增加一个( A)。 A.关系实现 B. 属性实现 C. 关系或一个属性实现 D.关系和一个属性实现 7. 关系代数运算是以( C)为基础的运算。 A. 关系运算 B. 谓词演算 C. 集合运算 D. 代数运算 8. 关系数据库管理系统应能实现的专门关系运算包括( B)。 A. 排序、索引、统计 B. 选择、投影、连接 C. 关联、更新、排序 D. 显示、打印、制表 9. 五种基本关系代数运算是( A)。 A. B. C. D. 10.
12、 关系代数表达式的优化策略中,首先要做的是( B)。 A.对文件进行预处理 B.尽早执行选择运算 C.执行笛卡尔积运算 D.投影运算 11. 关系数据库中的投影操作是指从关系中( B)。 A.抽出特定记录 B. 抽出特定字段 C.建立相应的影像 D. 建立相应的图形 12. 从一个数据库文件中取出满足某个条件的所有记录形成一个新的数据库文件的操作是( C)操作。 A.投影 B. 联接 C. 选择 D. 复制 13. 关系代数中的联接操作是由( B)操作组合而成。 A.选择和投影 B. 选择和笛卡尔积 C.投影、选择、笛卡尔积 D. 投影和笛卡尔积 14. 自然联接是构成新关系的有效方法。一 般
13、情况下,当对关系 R 和 S 是用自然联接时,要求 R 和 S 含有一4 / 45 个或者多个共有的( C)。 A.记录 B. 行 C. 属性 D. 元组 15. 假设有关系 R 和 S,在下列的关系运算中,( D)运算不要求:“ R 和 S 具有相同的元数,且它们的对应属性的数据类型也相同” 。 A.R S B.R S C. R S D. R S 16. 假设有关系 R 和 S,关系代数表达式 R( R S)表示的是( A)。 A.R S B. R S C. R S D. R S 17. 下面列出的关系代数表达是中,那些式子能够成立( C)。 . f1 ( f2 (E) = f1 f2 (E
14、) . E1 E2 = E2 E1 . (E1 E2) E3 = E1 (E2 E3) . f1 ( f2 (E) = f2 ( f1(E) A.全部 B. 和 C. 没有 D. 和 18. 下面四个关系表达式是等价的,是判别它们的执行效率( A)。 E1 = A ( B=C D=E (R S) )E2 = A ( B=C (R D=E (S) ) E3 = A (R B=C D=E (S) ) E4 = A ( D=E (R B=C S) ) A. E3 最快 B. E2 最快 C. E4 最快 D.E1 最快 19. 有关系 SC( S_ID, C_ID, AGE, SCORE),查找年龄
15、大于 22 岁的学生的学号和分数,正确的关系代数表达式是( D)。 . S_ID, SCORE ( age22 (SC) ) . age22 ( S_ID, SCORE (SC) ) . S_ID, SCORE ( age22 ( S_ID, SCORE, AGE (SC) ) ) A.和 B. 只有正确 C. 只有正确 D. 和正确 二、简答题 1. 试述关系模型的三个组成部分。 答:关系模型由关系 数据结构 、关系操作集合和关系完 整性约束三部分组成。 2. 试述关系数据语言的特点和分类。 答:关系数据语言可以分为三类:关系代数语言。 关系演算语言:元祖关系演算语言和域关系演算语言。 SQ
16、L:具有关系代数和关系演算双重特点的语言。 这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。 3.设有一个 SPJ 数据库,包括 S, P, J, SPJ 四个关系模式: 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 由零件
17、代码( PNO)、零件名( PNAME)、颜色( COLOR)、重量( WEIGHT)组成; 工程项目表 J 由工程项目代码( JNO)、工程项目名( JNAME)、工程项目所在城市( CITY)组成; 供应情况表 SPJ 由供应商代码( SNO)、零件代码( PNO)、工程项目代码( JNO)、供应数量( QTY)组成,表示某供应商供应某种零件给某 工程项目的数量为 QTY。 试用关系代数完成如下查询: ( 1)求供应工程 J1 零件的供应商号码 SNO; SNO ( SNO = J1 (SPJ) ( 2)求供应工程 J1 零件 P1 的供应商号码 SNO; SNO ( SNO = J1 P
18、NO = P1 (SPJ) ( 3)求供应工程 J1 零件为红色的供应商号码 SNO; SNO ( SNO= J1 ( COLOR = 红色 (P SPJ) 5 / 45 ( 4)求没有使用天津供应商生产的红色零件的工程号 JNO; JNO (SPJ) JNO ( CITY = 天津 COLOR = 红色 (S SPJ P) ( 5)求至少用了供应商 S1 所供应的全部零件的工程号 JNO。 JNO, PNO(SPJ) PNO( SNO = S1( SPJ) 4. 定义并理解下列术语,说明它们之间的联系与区别 : ( 1)域,笛卡尔积,关系,元组,属性( 2)主码,候选码,外码( 3)关系模式
19、,关系,关系数据库 答:( 1) 域: 一组具有相同数据类型的值的集合。 笛卡尔积: 建立在一组域 D1, D2, . , Dn 的笛卡尔积为: D1 x D2 x . x Dn=(d1, d2, . , dn) |di Di, I = 1, . ,n 关系: 笛卡尔积 D1 x D2 x . x Dn 的有限子集; 元组: 笛卡尔积的每个元素( d1, d2, , dn)称作一个 n-元组( n tuple) , 简称元组( Tuple); 属性: 关系的每一列对应一个域,给每列起一个名字,称为属性。 ( 2) 主码: 若关系中的某一属性组的值能够唯一地标识一个元组,则称为该属性组为候选码(
20、 Candidate Key) ,主码是从候选码中选定的一个码( PrimaryKey) ; 外部码: F 是关系 R 的一组属性,但不是关系 R 的码,如果 F 与关系 S 的主码 K 相对应,则称 F 是关系 R 的外部码( Foreign Key) . (3)关系模式: 是对关系的型的描述,说明关系由哪些属性组成,这些属性来自于哪些域,以及属性与域的映像。形式化表示为: R(U, D,dom, F),简记为: R(U); 关系: 关系可以理解为关系模式在某一时刻的状态或内容。 关系数据库: 关系数据库即实体关系和实体之间联系的关系的集合。 5. 试述关系模型的完整性规则。在参照完整性中,
21、为什么外码属性的值有时也可以为空?什么情况下才可以为空? 答:关系模型中有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。 关系的实体完整性规则为:若属性 A 是基本关系 R 的主属性,则属性 A 的值不能为空值。关系的参照完整性规则为:若属性(或属性组) F 是基本关系 R 的外码,它与基本关系 S 的主码 Ks 相对应(基本关系 R 和 S不一定是不同的关系),则对干 R 中每个元组在 F 上的值必须取空值 (F 的每个属性值均为空值)或者等于 S中某个元组的主码值。用户定义的完整性就是针对某一具 体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。 由于外
22、码在被参考关系 A 中,是非主属性,其值为空,不影响关系的实体完整性。当外码值不清楚或不确定时,可以设为空值,此时参照表中没有对应的记录与之匹配。 6. 试述等值连接与自然连接的区别和联系。 答:连接运算符是“ =”的连接运算称为等值连接。它是从关系 R 与 S 的广义笛卡尔积中选取 A, B 属性值相等的那些元组。 自然连接时一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。 7. 关系代数的基本运算有哪些? 答:并( U)、差( -)、笛卡尔积( X)、投影()、选择() 5 种运算为基本的运算。其他 3 中国运算,即交、连接和除,均可以
23、使用这 5 种基本运算来表达。 8. 试用关系代数的基本运算来表示其他运算。 R S = R - ( R S) R S= A B(R S) R S= x( x(R) S-R) 第三章 SQL 语言 一、选择题 6 / 45 1. SQL 语言是( B)的语言,容易学习。 A.过程化 B. 非过程化 C.格式化 D. 导航式 2. SQL 语言的数据操纵语句包括 SELECT、 INSERT、 UPDATE、 DELETE 等。其中最重要的,也是使用最频繁的语句是( A)。 A. SELECT B. INSERT C. UPDATE D. DELETE 3. 在视图上不能完成的操作是( C)。
24、A. 更新视图 B. 查询 C. 在视图上定义新的表 D. 在视图上定义新的视图 4. SQL 语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中, CREATE、 DROP、 ALTER 语句是实现哪种功能( C)。 A. 数据查询 B.数据操纵 C. 数据定义 D. 数据控制 5. SQL 语言中,删除一个视图的命令是( B)。 A.DELETE B.DROPC.CLEARD.REMOVE 6. 在 SQL 语言中的视图 VIEW 是 数据库 的( A)。 A. 外模式 B. 模式 C. 内模式 D. 存储模式 7. 下列的 SQL 语句中,( D)不是数据定义语句。 A. CR
25、EATE TABLE B. DROP VIEW C. CREATE VIEW D. GRANT 8. 若要撤销数据库中已经存在的表 S,可用( C)。 A. DELETE TABLE S B. DELETE SC. DROP TABLE S D. DROP S 9. 若要在基本表 S 中增加一列 CN(课程名),可用( C)。 A.ADD TABLE S( CN CHAR() B.ADD TABLE S ALTER( CN CHAR() C.ALTERTABLE S ADD( CN CHAR() D.ALTER TABLE S ( ADD CN CHAR() 10. 学生关系模式 S( S,
26、Sname, Sex, Age), S 的属性分别表示学生的学号、姓名、性别、年龄。要在表S 中删除一个属性“年龄”,可选用的 SQL 语句是()。 A. DELETE Age from S B. ALTER TABLE S DROP AgeC. UPDATE S Age D. ALTER TABLE S Age 11. 有关系 S( S, SNAME, SAGE), C( C, CNAME), SC( S, C, GRADE)。其中 S是学生号, SNAME是学生姓名, SAGE 是学生年龄, C是课程号, CNAME 是课程名称。要查询选修“ ACCESS”课的年龄不小于 20 的全体学生
27、姓名的 SQL 语句是 SELECT SNAME FROM S, C, SC WHERE 子句。这里的 WHERE 子句的内容是( A)。 A. S.S# = SC.S# and C.C# = SC.C# andSAGE=20 and CNAME= ACCESS B. S.S# = SC.S# and C.C# = SC.C# and SAGE in=20 and CNAME in ACCESS C. SAGE in=20 and CNAME in ACCESS D. SAGE=20 and CNAME= ACCESS 12. 设关系数据库中一个表 S 的结构为 S( SN, CN, grad
28、e),其中 SN 为学生名, CN 为课程名,二者均为字符型; grade 为成绩,数值型,取值范围 0 100。若要把“张二的化学成绩 80 分”插入 S 中,则可用( D)。 A. ADD INTO S VALUES(张二,化学, 80) B. INSERT INTO S VALUES(张二,化学, 80) C. ADD INTO S VALUES(张二,化学, 80) D.INSERT INTO S VALUES(张二,化学, 80) 13. 设关系数据库中一个表 S 的结构为: S( SN, CN, grade),其中 SN 为学生名, CN 为课程名,二者均为字符型; grade 为
29、成绩,数值型,取值范围 0 100。若要更正王二的化学成绩为 85 分,则可用()。 A.UPDATE S SETgrade 85 7 / 45 WHERESN王二 AND CN化学 B. UPDATE S SET grade 85 WHERE SN王二 AND CN化学 C. UPDATE grade 85 WHERE SN王二 AND CN化学 D. UPDATE grade 85 WHERE SN王二 AND CN化学 14. 在 SQL 语言中,子查询是( D)。 A. 返回单表中数据子集的查询语言 B. 选取多表中字段子集的查询语句 C. 选取单表中字段子集的查询语句 D. 嵌入到另
30、一个查询语句之中的查询语句 15. SQL 是一种( C)语言。 A. 高级 算法 B. 人工智能 C. 关系数据库 D. 函数型 16. 有关系 S( S, SNAME, SEX), C( C, CNAME), SC( S, C, GRADE)。其中 S是学生号, SNAME是学生姓名, SEX 是性别, C是课程号, CNAME 是课程名称。要查询选修“数据库”课的全体男生姓名的SQL 语句是 SELECT SNAME FROM S, C, SC WHERE 子句。这里的 WHERE 子句的内容是( A)。 A.S.S# = SC.S# and C.C# = SC.C# and SEX=男
31、 and CNAME=数据库 B.S.S# = SC.S# and C.C# = SC.C# and SEX in男 and CNAME in 数据库 C.SEX 男 and CNAME 数据库 D.S.SEX=男 and CNAME= 数据库 17. 若用如下的 SQL 语句创建了一个表 SC: CREATE TABLE SC ( S# CHAR( 6) NOT NULL, C# CHAR( 3) NOT NULL, SCORE INTEGER, NOTE CHAR( 20);向 SC 表插入如下行时,( B)行可以被插入。 A.( 201009, 111, 60,必修) B.( 20082
32、3, 101, NULL, NULL) C.( NULL, 103, 80,选修) D.( 201132, NULL, 86,) 18. 假设学生关系 S( S, SNAME, SEX),课程关系 C( C, CNAME),学生选课关系 SC( S, C, GRADE)。要查询选修“ Computer”课的男生姓名,将涉及到关系( D)。 A. S B. S, SC C. C, SC D. S, C, SC 二、简答题 1. 试述 SQL 语言的特点。 答: ( 1)综合统一 。 SQL 语言集定义语言 DDL,数据操纵语言 DML、数据控 制语言 DCL 的功能与一体。 ( 2)高度非过程化
33、。 用 SQL 语言进行数据操纵,只要提出“做什么”,而无需指明“怎么做”,因此无需了解存取路径,存取路径的选择以及 SQL 语句的操作过程由系统自动完成。 ( 3)面向集合的操作方式。 SQL 语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。 ( 4)以同一种语法结构提供两种使用方式。 SQL 语言既是自含式语言,又是嵌入式语言。作为自含式语言它能够独立地用于联机交互的使用方式;作为嵌入式语言,它能够嵌入到高级语言程序中,供程序员设计程序时使用。 ( 5)语言简洁,易学易用。 2. 试述 SQL 的定义功能。 答: SQL
34、的数据定义功能包括定义表、定义视图和定义索引。 SQL 语言使用 CREATE TABLE 语句建立基本表, ALTER TABLE 语句修改基本表定义, DROP TABLE 语句删除基本表;使用 CREATE INDEX 语句建立索引,DROP INDEX 语句删除索引;使用 CREATEVIEW 语句建立视图, DROPVIEW 语句删除视图。 3. 用 SQL 语句建立第 3 章习题 3 中的四个表。 8 / 45 答:对于 S 表: S ( SNO, SNAME,STATUS, CITY); 建 S 表: CREATE TABLE S ( SNO CHAR(2) UNIQUE,SNA
35、ME CHAR(6), STATUS CHAR(2), CITY CHAR(4); 对于 P 表: P(PNO, PNAME, COLOR,WEIGHT); 建 P 表: CREATE TABLE P (PNOCHAR(2) UNIQUE, PNAM CHAR(6), COLOR CHAR(2), WEIGHT INTEGER); 对于 J 表: J (JNO, JNAME, CITY); 建 J 表: CREATE TABLE J ( JNOCHAR(2) UNIQUE, JNAME CHAR(8), CITY CHAR(4); 对于 SPJ 表: SPJ( SNO, SNO, JNO,QT
36、Y); 建 SPJ 表: CREATE TABLE SPJ (SNOCHAR(2), PNO CHAR(2), JNO CHAR(2), QTY INTEGER); 4. 针对上题中建立的四个表试用 SQL 语言完成第 3 章习题 3 中的查询。 (1) 求供应工程 J 零件的供应商号码 SNO; SELECTDISTINCY SNO FROM SPJ WHERE JNO = J1 (2) 求供应工程 J 零件 P1 的供应商号码 SNO SELECT DISTINCY SNO FROM SPJ WHEREJNO = J1 AND PNO = P1 (3) 求供应工程 J1 零件为红色的供应商
37、号码 SNO SELECT SNO FROM SPJ, P WHERE JNO = J1 AND SPJ.PNO = P.PNO AND COLOR = 红 (4) 求没有使用天津供应商生产的红色零件的工程号 JNO; SELECT DISTINCY JNO FROM SPJ WHERE JNONOT IN ( SELECT JNO FROM SPJ, P, S WHERE S.CITY = 天津 AND COLOR =红 AND S.SNO = SPJ.SNO AND P.PNO = SPJ.PNO) (5) 求至少用了供应商 S1 所供应的全部零件工程号 JNO 将查询分为两步: 1. 查
38、询 S1 供应商供应的零件号 SELECTDISTINCY PNO FROM SPJ WHERE SNO = S1 2.查询哪一个工程既使用 P1 零件又 P2 零件 SELECT JNOFROM SPJ WHERE PNO = P1 AND JNO IN(SELECT JNO FROM SPJ WHERE PNO = P2 ) 5. 针对习题 3 中的四个表试用 SQL 语言完成以下各项操作: ( 1)找出所有供应商的姓名和所在城市。 SELECT SNAME, CITY FROM S ( 2)找出所有零件的名称、颜色、重量。 SELECT PNAME,COLOR, WEIGHT FROM
39、P ( 3)找出使用供应商 S1 所供应零件的工程号码。 SELECT DISTINCY JNO FROM SPJ WHERE SNO = S1 ( 4)找出工程项目 J2 使用的各种零件的名称及其数量。 SELECT PNAME,QTY FROM SPJ, P WHERE P.PNO = SPJ.PNO AND SPJ.JNO= J2 ( 5)找 上海厂商供应的所有零件号码。 SELECT PNO FROM SPJ, S WHERE S.SNO = SPJ.SNO AND CITY = 上海 ( 6)找出使用上海产的零件的工程名称。 SELECT JNAME FROM SPJ, S, J W
40、HERE S.SNO = SPJ.SNO AND S.CITY =上海 AND J.JNO = SPJ.JNO ( 7)找出没有使用天津产的零件的工程号码。 SELECT DISTINCY JNO FROM SPJ WHERE JNO NOT IN (SELECT JNO FROM SPJ, P, S WHERE S.CITY = 天津 AND COLOR =红 AND S.SNO = SPJ.SNO AND P.PNO = SPJ.PNO) ( 8)把全部红色零件的颜色改 成蓝色。 UPDATE P SET COLOR = 蓝 WHERECOLOR =红 ( 9)由 S5 供给 J4 的零件
41、 P6 改为由 S3 供应,请作必要的修改。 UPDATE SPJ SET SNO = S3 WHERE SNO = S5 AND JNO = J4 AND PNO= P6 ( 10)从供应商关系中删除 S2 的记录,并从供应情况关系中删除相应的记录。 9 / 45 A. DELETE FROM S WHERE SNO = S2 B. DELETE FROM SPJ WHERE SNO = S2 ( 11)请将 (S2, J6, P4, 200) 插入供应情况关系。 INSERT INTO SPJ VALUES ( S2 , J6 , P4 , 200) 6. 什么是基本表?什么是视图?两者的
42、区别和联系是什么? 答: 基本表是本身独立存在的表,在 SQL 中一个关系就对应一个表。视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存在视图的定义而不存放视图对应 的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同使用基本表那样使用视图,可以在视图上再定义视图。 7. 试述视图的优点。 答: ( 1)视图能够简化用户的操作;( 2)视图使用户以多种角度看待同一数据。 ( 3)视图对重构数据库提供一定程度的逻辑独立性。( 4)视图能够对机密数据提供安全保护 8. 所有的视图是否都可以更新?为什么? 答: 不是。视图是不实
43、际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。因为有些视图 的更新不能唯一地有意义地转换成对相应基本表的更新,所以,并不是所有的视图都是可更新的。如概论 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
44、中的例 11。 若视图的属性来自集函数、表达式,则视图肯定是不可以更新的。 10. 试述某个你熟悉的实际系统中对视图更新的规定。 11. 请为三建工程项目建立一个供应情况的视图,包括供应商代码( SNO)、零件 代码( PNO)、供应数量( QTY)。针对该视图完成下列查询: 答:建视图: CREATEVIEW V_SPJ AS SELECTSNO, PNO, QTY FROMSPJ WHEREJNO = (SELECT JNO FROM J WHERE JNAME = 三建 ); 对视图的查询: ( 1)找出三建工程项目使用的各种零件代码及其数量。 SELECT PNO, QTY FROM
45、V_SPJ; ( 2)找出供应商 S1 的供应情况。 SELECT PNO, QTY /* S1 供应三建工程的零件号和对应的数量 */ FROM V_SPJ WHERE SNO=S1; 10 / 45 第 4 章关系系统及其优化 一、选择题 1.概念模型是现实世界的第一层抽象,这一类最著名的模型是( D)。 A.层次模型 B.关系模型 C. 网状模型 D. 实体 -关系模型 2.区分不同实体的依据是( B)。 A.名称 B. 属性 C. 对象 D.概念 3.关系数据模型是目前最重要的一种数据模型,它的三个要素分别为( B)。 A.实体完整、参照完整、用户自定义完整 B.数据结构 、关系操作、完整性约束 C.数据增加、数据修改、数据查询 D.外模式、模式、内模式 4.在( A)中一个结点可以有多个双亲,节点之间可以有多种联系。 A.网状模型 B.关系模型 C.层次模型 D.以上都有 5.( B)的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性, 也简化了程序员的工作和 数据库 开发建立的工作。 A.网状模