Chap3 习题解答
- 1. 试述 SQL 的特点。
- 2. 说明在 DROP TABLE 时,RESTRICT 和 CASCADE 的区别。
- 3. 有两个关系 S ( A , B , C , D ) S(A,B,C,D) S(A,B,C,D) 和 T ( C , D , E , F ) T(C,D,E,F) T(C,D,E,F),写出与下列查询等价的 SQL 表达式。
- 4-5. 详见N
- 6. 什么是基本表?什么是视图?两者的区别和联系是什么?
- 7. 试述视图的优点。
- 8. 哪类视图是可以更新的?哪类视图是不可更新的?各举一例说明。
- 9. 请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。详见N
1. 试述 SQL 的特点。
-
(1)综合统一。 SQL 语言集数据定义语言 DDL、数据操纵语言 DML、数据控制语言 DCL 的功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动。
-
(2)高度非过程化。用 SQL 语言进行数据操作,只要提出“做什么”,而无需指明“怎么做”,因此无需了解存取路径,存取路径的选择以及 SQL 语句的操作过程由系统自动完成。
-
(3)面向集合的操作方式。 SQL 采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。
-
(4)以同一种语法结构提供多种使用方式。 SQL 语言既是独立的语言,又是嵌入式语言。作为独立的语言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接键入 SQL 命令对数据库进行操作;作为嵌入式语言,它能够嵌入到高级语言程序中,供程序员设计程序时使用。
-
(5)语言简捷,易学易用。
2. 说明在 DROP TABLE 时,RESTRICT 和 CASCADE 的区别。
- RESTRICT:该表的删除是有限制条件的。该表不能被其他表的约束所引用(如CHECK,FOREIGN KEY等约束),不能有触发器,不能有视图,不能有函数和存储过程等。如果该表存在这些依赖的对象,此表不能删除。
- CASCADE:该表的删除是没有限制条件。在删除基本表的同时,相关的依赖对象将会被一起删除。
3. 有两个关系 S ( A , B , C , D ) S(A,B,C,D) S(A,B,C,D) 和 T ( C , D , E , F ) T(C,D,E,F) T(C,D,E,F),写出与下列查询等价的 SQL 表达式。
- (1)
σ
A
=
10
(
S
)
\sigma_{A=10}(S)
σA=10(S)
SELECT * FROM S WHERE A='10'
- (2)
Π
A
,
B
(
S
)
\Pi_{A,B}(S)
ΠA,B(S)
SELECT A,B FROM S
- (3)
S
⋈
T
S \Join T
S⋈T
SELECT A,B,S.C,S.D,E,F FROM S,T WHERE S.C=T.C AND S.D=T.D
- (4)
S
⋈
S
.
C
=
T
.
C
T
S \underset{S.C=T.C}{\Join} T
SS.C=T.C⋈T
SELECT * FROM S,T WHERE S.C=T.C
- (5)
S
⋈
A
<
E
T
S \underset{A<E}{\Join} T
SA<E⋈T
SELECT * FROM S,T WHERE A<E
- (6)
Π
C
,
D
(
S
)
×
T
\Pi_{C,D}(S) \times T
ΠC,D(S)×T
SELECT S.C,S.D,T.* FROM S,T
4-5. 详见N
6. 什么是基本表?什么是视图?两者的区别和联系是什么?
- 基本表:是本身独立存在的表,在 SQL 中一个关系就对应一个表。
- 视图:是从一个或几个基本表导出的表。
- 区别和联系:视图与基本表不同,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。
7. 试述视图的优点。
- (1)视图能够简化用户的操作;
- (2)视图使用户能以多种角度看待同一数据;
- (3)视图对重构数据库提供了一定程度的逻辑独立性;
- (4)视图能够对机密数据提供安全保护;
- (5)适当利用视图可以更清晰地表达查询;
8. 哪类视图是可以更新的?哪类视图是不可更新的?各举一例说明。
- 一般地,行列子集视图是可以更新的。
- 一般地,如果视图的更新不能唯一地有意义地转换成对相应基本表的更新,则该视图是不可更新的。例如,带有集合函数的视图。