GDPU 数据库原理 期末复习(持续更新……)
文章目录
- 期末考点
- 一、 概述
- ✅ 单项选择题
- ✅ 填空题
- 二、关系数据库
- ✅ 选择题
- ✅ 填空题
- ✅ 简答题
- 1. **定义并理解下列术语,说明它们之间的联系与区别**
- 2. **试述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?**
- 3. **等值连接与自然连接的区别是什么?**
- 4. **代数的基本运算有哪些?如何用这些基本运算来表示其他的关系基本运算?**
- 三、SQL
- ✅ 选择题
- ✅ 填空题
- 四、数据库安全性
- ✅ 选择题
- ✅ 简答题
- 1. 什么是数据库的安全性?
- 2. 数据库安全性和计算机系统的安全性有什么关系?
- 3. 试述实现数据库安全性控制的常用方法和技术。
- 4. 什么是数据库中的自主存取控制方法和强制存取控制方法?
- 5. SQL语言中提供了哪些数据控制(自主存取控制)的语句?请试举几例说明它们的使用方法。
- 6. 今有两个关系模式:
- 7. 把习题8中(a)~(g) 的每一种情况,撤销各用户所授予的权力。
- 8. 为什么强制存取控制提供了更高级别的数据库安全性?
- 9. 什么是数据库的审计功能,为什么要提供审计功能?
期末考点
- 单选题 40
- 多选题 20
- 综合题 40
- 关系代数
- SQL代码
- 候选码
- 函数依赖
- 闭包
- 概念模型
- 逻辑模型
一、 概述
✅ 单项选择题
-
在数据库管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。在这几个阶段中,数据独立性最高的是
A
.- A.数据库系统
- B.文件系统
- C.人工管理阶段
- D.数据项管理
-
数据库系统与文件系统的主要区别是
B
.- A.数据库系统复杂而文件系统简单
- B.文件系统不能解决数据冗余和数据独立性问题而数据库系统可以解决
- C.文件系统只能管理程序文件而数据库系统能够管理各种类型的文件
- D.文件系统的数据量少,而数据库系统可以管理庞大的数据量
-
存储在计算机外部存储介质上的结构化的数据集合,其英文名称是
C
.- A.Data Dictionary(简写DD)
- B.Data Base System(简写DBS)
- C.data base (简写DB)
- D.data base mangement(简写DBMS)
-
数据库的概念模型独立于
A
.- A.具体的机器和DBMS
- B.E-R图
- C.信息世界
- D.现实世界
-
数据库是在计算机系统中按照一定的数据模型组织、存储和应用的
① B
.支持数据库各种操作的软件系统叫② B
.由计算机硬件、DBMS、数据库、应用程序及用户等组成的一个整体叫做③ B
.- ①
A.文件的集合
B.数据的集合
C.命令的集合
D.程序的集合 - ②
A.命令系统
B.数据库管理系统
C.数据库系统
D.操作系统 - ③
A.文件系统
B.数据库系统
C.软件系统
D.数据库管理系统
- ①
-
数据库的基本特点是
B
.- A.数据可以共享;数据独立性;数据冗余大,易移植;统一管理和控制
- B.数据可以共享;数据独立性;数据冗余小,易扩充;统一管理和控制
- C.数据可以共享;数据互换性;数据冗余小,易扩充;统一管理和控制
- D.数据非结构化;数据独立性;数据冗余小,易扩充;统一管理和控制
-
在数据库中,下列说法
A
是不正确的。- A.数据库避免了一切数据的重复
- B.若系统是完全可以控制的,则系统可确保更新时的一致性
- C.数据库中的数据可以共享
- D.数据库减少了数据冗余
-
B
是存储在计算机内结构化的数据的集合。- A.数据库系统
- B.数据库
- C.数据库管理系统
- D.数据结构
-
在数据库中存储的是
C
。- A.数据
- B.数据模型
- C.数据及数据间的联系
- D.信息
-
数据库中,数据的物理独立性是指
C
。- A.数据库与数据库管理系统的相互独立
- B.用户程序与DBMS的相互独立
- C.用户的应用程序与存储在磁盘上的数据库中的数据是相互独立
- D.应用程序与数据库中数据的逻辑结构相互独立
-
数据库的特点之一是数据的共享,严格地讲,这里的数据共享指
D
。- A.同一个应用中的多个程序共享一个数据集合
- B.多个用户、同一种语言共享数据
- C.多个用户共享一个数据文件
- D.多种应用、多种语言、多个用户相互覆盖地使用数据集合
-
下述关于数据库系统的正确叙述是
A
。- A.数据库系统减少了数据冗余
- B.数据库系统避免了一切数据冗余
- C.数据库系统中数据的一致性是指数据类型一致
- D.数据库系统比文件系统能管理更多的数据
-
下述关于数据库系统的正确叙述是
B
。- A.数据库中只存在数据项之间的联系
- B.数据库的数据项之间和记录之间都存在联系
- C.数据库的数据项之间无联系,记录之间存在联系
- D.数据库的数据项之间和记录之间都不存在联系
-
数据库技术采用分级方法将数据库的结构划分成多个层次,是为了提高数据库的
①B
和②B
。- ①
A.数据规范性
B.逻辑独立性
C.管理规范性
D.数据的共享 - ②
A.数据独立性
B.物理独立性
C.逻辑独立性
D.管理规范性
- ①
-
在数据库中,产生数据不一致的根本原因是
D
。- A.数据存储量太大
- B.没有严格保护数据
- C.未对数据进行完整性控制
- D.数据冗余
-
数据库管理系统中用于定义和描述数据库逻辑结构的语言称为
A
。- A.数据描述语言
- B.数据库子语言
- C.数据操纵语言
- D.数据结构语言
-
在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特性的是
D
。- A.外模式
- B.内模式
- C.存储模式
- D.模式
-
数据库的三级模式之间存在的映像关系正确的是
B
。- A.外模式/内模式
- B.外模式/模式
- C.外模式/外模式
- D.模式/模式
-
数据模型是
D
。- A.文件的集合
- B.记录的集合
- C.数据的集合
- D.记录及其联系的集合
-
模式和内模式
A
。- A.只能有一个
- B.最多只能有一个
- C.至少两个
- D.可以有多个
-
在数据库系统中,通常用三级模式来描述数据库,其中,
①A 外模式
是用户与数据库的接口,是应用程序可见到的数据描述,②B 概念模式
是对数据整体的③D 逻辑结构
的描述,而④C 内模式
描述了数据的⑤F 物理结构
。- A.外模式
- B.概念模式
- C.内模式
- D.逻辑结构
- E.层次结构
- F.物理结构
-
不预先定义固定的数据结构,而是以“表”结构来表达数据之间的相互关系,这是
A
数据库。- A.关系型
- B.集中型
- C.网状型
- D.层次型
-
层次模型不能直接表示
C
。- A.1:1联系
- B.1:n联系
- C.m:n联系
- D.1:1和1:n联系
-
数据库管理系统能实现对数据库中数据的查询、插入、修改和删除,这类功能称为
C
。- A.数据定义功能
- B.数据管理功能
- C.数据操纵功能
- D.数据控制功能
-
现实世界中的事物个体在信息世界中称为
A
。- A 实体
- B 实体集
- C 字段
- D 记录
-
现实世界中,事物的特性在信息世界中称为
C
。- A 实体
- B 实体键
- C 属性
- D 关系键
-
下列实体类型的联系中,属于一对一联系的是
B
。- A 班级与学生的所属联系
- B 公司与公司经理的联系
- C 学生与课程之间的联系
- D 供应商与工程项目的供货联系
-
下列实体类型的联系中,属于一对多联系的是
D
。- A 学校与校长的联系
- B 飞机的座位与乘客之间的联系
- C 学生与课程之间的联系
- D 车间与工人之间的联系
-
下列实体类型的联系中,属于多对多联系的是
A
。- A 学生与课程之间的联系
- B 学校与教师之间的联系
- C 商品条形码与商品之间的联系
- D 班级与班长之间的联系
-
实体联系模型属于
D
。- A 层次模型
- B 网状模型
- C 关系模型
- D 概念数据模型
-
采用二维表格结构表达实体型及实体间联系的数据模型是
C
。- A层次模型
- B 网状模型
- C 关系模型
- D 实体联系模型
-
数据库中全部数据的整体逻辑结构的描述是
A
。- A模式
- B内模式
- C外模式
- D存储模式
-
单个用户使用的数据视图的描述,称为
A
。- A外模式
- B 存储模式
- C内模式
- D 概念模式
-
数据库三级模式体系结构的划分,有利于保持数据库的
B
。- A 数据安全性
- B 数据独立性
- C 数据并发性
- D 数据完整性
-
逻辑数据独立性是指
A
。- A 概念模式改变,外模式和应用程序不变
- B 概念模式改变,内模式不变
- C 内模式改变,概念模式不变
- D 内模式改变,外模式和应用程序不变
-
物理数据独立性是指
C
。- A 概念模式改变,外模式和应用程序不变
- B 内模式改变,外模式和应用程序不变
- C内模式改变,概念模式不变
- D概念模式改变,内模式不变
-
数据库系统由
A
组成。- A硬件. 数据库. 软件系统和各类相关人员
- B 数据库及相应的硬件. 软件系统
- C数据库及相应的软件系统
- D数据库及其必备的硬件系统
-
在数据库中存储的是
C
。- A 数据
- B数据模型
- C数据以及数据之间的联系
- D 信息
-
数据库的数据的共享是指
D
。- A同一个应用中的多个程序共享一个数据集合
- B 多个用户. 同一种语言共享数据
- C多个用户共享一个数据文件
- D多种应用. 多种语言. 多个用户相互覆盖地使用数据集合
-
下述关于数据库系统的正确叙述是
A
。- A 数据库系统减少了数据冗余
- B 数据库系统避免了数据冗余
- C 数据库系统中数据的一致性是指数据类型一致
- D 数据库系统比文件系统能管理更多的数据
-
DBMS对数据库中数据查询、插入、修改和删除操作的功能称为
C
。- A 数据定义
- B 数据管理
- C 数据操作
- D 数据控制
-
DBMS是
B
。- A OS的一部分
- B OS支持下的系统软件
- C一种编译程序
- D一种操作系统
-
下面的叙述中,
D
不符合数据库系统的特点。- A 数据结构化
- B数据独立性强
- C数据共享性高
- D 数据面向应用程序
-
要保证数据库物理数据独立性,需要修改的是
B
。- A.模式
- B.模式与内模式的映射
- C.模式与外模式的映射
- D.内模式
-
下列四项中,不属于数据库特点的是
C
。- A.数据共享
- B.数据完整性
- C.数据冗余很高
- D.数据独立性高
-
反映现实世界中实体及实体间联系的信息模型是
D
。- A.关系模型
- B.层次模型
- C.网状模型
- D.E-R
-
子模式DDL用来描述
B
。- A. 数据库的总体逻辑结构
- B. 数据库的局部逻辑结构
- C. 数据库的物理存储结构
- D. 数据库的概念结构
-
在DBS中,DBMS和OS之间的关系是
B
。- A. 相互调用
- B. DBMS调用OS
- C. OS调用DBMS
- D. 并发运行
-
在下面给出的内容中,不属于DBA职责的是
C
。- A.定义概念模式
- B.修改模式结构
- C.编写应用程序
- D.编写完整性规则
✅ 填空题
-
DBMS是指
数据库管理系统
,它是位于用户
和操作系统
之间的一层管理软件。 -
数据库管理系统的主要功能有
数据库定义功能
、数据库操纵功能
、数据库的运行管理以及数据库的建立和维护等四个方面。 -
数据库语言包括
数据描述语言
、数据操纵语言
两大部分,前者负责描述和定义数据库的各种特性,后者说明对数据进行的各种操作。 -
数据独立性又可分为
逻辑数据独立性
和物理数据独立性
。 -
数据模型是由
数据结构
、数据操作
和完整性约束
三部分组成。 -
数据结构
是对数据库系统的静态特性的描述,数据操作
是对数据库系统的动态特性的描述。 -
层次数据模型中,只有一个结点无父结点,它被称为
树根结点
。 -
数据库体系结构按照
外模式
、模式
和内模式
三级结构进行组织。 -
独立于计算机系统,只用于描述某个特定组织所关心的信息结构模型,称为
概念模型
;直接面向数据库的逻辑结构的模型称为数据模型
。 -
实体之间的联系可抽象为三类,它们是
1:1
、1:n
和m:n
。 -
数据冗余可能导致的问题有:
浪费存储空间及修改麻烦
和潜在的数据不一致
。 -
经过处理和加工提炼而用于决策或其他应用活动的数据称为
信息
。 -
数据库管理技术经历了人工处理阶段、
文件系统阶段
和数据库系统阶段
三个发展阶段。 -
在文件系统阶段,数据管理的四个主要缺陷是
数据重复存储
、冗余度大
、一致性差
和数据之间联系较弱。 -
数据库系统提供的数据控制功能主要包括
实体完整性控制
、参照完整性控制
和用户完整性控制。 -
根据不同的数据模型,数据库管理系统可以分为层次型、
网状型
、关系型
和面向对象型。 -
两个不同实体集的实体联系有
1:1
、1:n
和m:n
三种联系。 -
在E-R模型中,用
矩形框
表示实体型;用菱形框
表示联系类型;用椭圆形框
表示实体型和联系型的联系。 -
用树型结构表示实体类型及实体间联系的数据模型称为
层次数据模型
;用有向图结构表示实体类型及实体间联系的数据模型称为网状数据模型
;用二维表格表示实体类型及实体间联系的数据模型称为关系数据模型
。 -
关系模型是由一个或多个
关系模式
组成的集合。 -
数据库管理系统在数据库的三级模式之间提供了
外模式/模式映像
和模式/内模式映像
两层映像功能,保证了数据库系统具有较高的数据独立性。 -
在数据库的三级模式结构中,单个用户使用的数据视图的描述,称为
外模式
;全局数据视图的描述,称为模式
;内视图的描述,称为内模式
。 -
数据独立性分成
逻辑
独立性和物理
独立性两级。 -
物理独立性
是指数据库的物理结构改变时,尽量不影响整体逻辑结构、用户的逻辑结构以及应用程序。 -
逻辑独立性
是指数据库的整体逻辑结构改变时,尽量不影响用户的逻辑结构以及应用程序。 -
数据库系统中,存放三级结构定义的数据库,称为
数据字典
。 -
DBMS中的
并发性控制
可防止多个用户同时对同一个数据库操作时可能对数据库造成的破坏。 -
DBMS提供的
完整性控制
可以确保数据库中数据的正确性、有效性和一致性。 -
数据库系统(DBS)是由
硬件
、软件
、数据库
和用户
四部分组成。 -
DBMS提供的
安全性控制
可确保未经授权的用户存取数据库中数据。 -
DBS中核心的软件是
数据库管理系统
;最重要得用户是数据库管理员
。 -
DBS中负责数据库物理结构和逻辑结构的定义和修改的人员,称为
数据库管理员
;使用宿主语言和DML编写应用程序的人员,称为应用程序员
;DBS中使用应用程序对数据库进行操作的人员,称为终端用户
。 -
数据库管理系统(DBMS)通常提供
数据定义
、数据操纵、数据控制和数据库维护。 -
数据库中对数据的操作可以
记录
为单位,也可以集合
为单位。 -
针对不同的抽象层次和应用目的,分别采用不同的数据库模型,它们是
概念数据模型
、结构数据模型
和物理数据模型。 -
数据模型的三要素是
数据结构
、数据操作
和完整性约束。 -
数据库用户共分为四类,分别是终端用户、
应用程序员
、系统分析员
和数据库管理员。
二、关系数据库
✅ 选择题
-
下面的选项不是关系数据库基本特征的是(
A
)。- A. 不同的列应有不同的数据类型
- B. 不同的列应有不同的列名
- C. 与行的次序无关
- D. 与列的次序无关
-
一个关系只有一个(
D
)。- A. 候选码
- B. 外码
- C. 超码
- D. 主码
-
关系模型中,一个码是(
C
)。- A. 可以由多个任意属性组成
- B. 至多由一个属性组成
- C. 由一个或多个属性组成,其值能够唯一标识关系中一个元组
- D. 以上都不是
-
现有如下关系:患者(患者编号,患者姓名,性别,出生日期,所在单位)医疗(患者编号,医生编号,医生姓名,诊断日期,诊断结果)其中,医疗关系中的外码是(
A
)。- A. 患者编号
- B. 患者姓名
- C. 患者编号和患者姓名
- D. 医生编号和患者编号
-
关系代数运算是以(
C
)为基础的运算。- A. 关系运算
- B. 谓词演算
- C. 集合运算
- D. 代数运算
-
关系数据库管理系统应能实现的专门关系运算包括(
B
)。- A. 排序、索引、统计
- B. 选择、投影、连接
- C. 关联、更新、排序
- D. 显示、打印、制表
-
五种基本关系代数运算是(
A
)。- A. ∪ - × σ π
- B. ∪ - σ π
- C. ∪ ∩ × σ π
- D. ∪ ∩ σ π
-
关系数据库中的投影操作是指从关系中(
B
)。- A. 抽出特定记录
- B. 抽出特定字段
- C. 建立相应的影像
- D. 建立相应的图形
-
从一个数据库文件中取出满足某个条件的所有记录形成一个新的数据库文件的操作是(
C
)操作。- A. 投影
- B. 连接
- C. 选择
- D. 复制
-
关系代数中的连接操作是由(
B
)操作组合而成。- A. 选择和投影
- B. 选择和笛卡尔积
- C. 投影、选择、笛卡尔积
- D. 投影和笛卡尔积
-
一般情况下,当对关系R和S进行自然连接时,要求R和S含有一个或者多个共有的(
C
)。- A. 记录
- B. 行
- C. 属性
- D. 元组
-
假设有关系R和S,关系代数表达式R-(R-S)表示的是(
A
)。- A. R∩S
- B. R∪S
- C. R-S
- D. R×S
✅ 填空题
-
试述关系模型的三个组成部分
关系数据结构
、关系操作集合
、关系完整性约束
。 -
关系数据模型中,二维表的列称为
属性
,二维表的行称为记录或元组
。 -
用户选作元组标识的一个候选码为
主码
,其属性不能取空值
。 -
关系代数运算中,传统的集合运算有
笛卡尔积
,并
,交
,差
。 -
关系代数运算中,基本的运算是
笛卡尔积
,并
,差
,选择
,投影
。 -
关系代数运算中,专门的关系运算有
选择
,投影
,连接
。 -
关系数据库中基于数学上的两类运算是
关系代数
和关系演算
。 -
关系代数中,从两个关系中找出相同元组的运算称为
交
运算。 -
R ⋈ \Join ⋈ S 表示
自然连接
。 -
设有学生关系:S(XH,XM,XB,NL,DP)。在这个关系中,XH表示学号,XM 表示姓名,XB表示性别,NL表示年龄,DP 表示系部。查询学生姓名和所在系的投影操作的关系运算式是 π 2 , 5 ( s ) π_{2,5}(s) π2,5(s) 或 π X M , D P ( S ) π_{XM,DP}(S) πXM,DP(S)。
-
在“学生-选课-课程”数据库中的3个关系如下:
学生:S(S#,SNAME,SEX,AGE)
选课:SC(S#,C#,GRADE)
课程:C(C#,CNAME,TEACHER)
查找选修“数据库技术”这门课程学生的学生名和成绩,若用关系代数表达式来表示为 π S N A M E , G R A D E ( S ⋈ ( S C ⋈ ( σ C N A M E = ′ 数据库技 术 ′ ( C ) ) ) ) π_{SNAME,GRADE}(S \Join (SC \Join (σ_{CNAME='数据库技术'}(C)))) πSNAME,GRADE(S⋈(SC⋈(σCNAME=′数据库技术′(C)))) -
已知系(系编号,系名称,系主任,电话,地点)和学生(学号,姓名,性别,入学日期,专业,系编号)两个关系,系关系的主码是
系编号
,系关系的外码暂无
,学生关系的主码是学号
,学生关系的外码是系编号
。
✅ 简答题
1. 定义并理解下列术语,说明它们之间的联系与区别
-
域:域是一组具有相同数据类型的值的集合。
- 例子:假设我们有一个“学生”表,其中有一个“性别”属性。性别的域可以是 {男, 女},即所有可能的性别值。
-
笛卡尔积:给定一组域D1,D2,…,Dn(这些域中可以有相同的),它们的笛卡尔积定义为所有可能的元组集合,即:D1×D2×…×Dn = { (d1, d2, …, dn) | di ∈ Di, i = 1, 2, …, n }。其中,每个元素 (d1, d2, …, dn) 称为一个n元组(或简称元组),每个值 di 称为一个分量。
-
例子:假设我们有两个域:
- 域D1 = {男, 女}(性别)
- 域D2 = {数学, 英语, 物理}(课程)
它们的笛卡尔积为:
{(男, 数学), (男, 英语), (男, 物理), (女, 数学), (女, 英语), (女, 物理)}
这表示所有可能的“性别-课程”组合。
-
-
关系:在域D1,D2,…,Dn上的笛卡尔积D1×D2×…×Dn的一个子集称为一个关系,表示为 R(D1, D2, …, Dn)。
- 例子:在上面的笛卡尔积中,一个实际出现的“选课”关系可能是:
这表示实际发生的选课情况。{(男, 数学), (女, 英语), (男, 物理)}
- 例子:在上面的笛卡尔积中,一个实际出现的“选课”关系可能是:
-
元组:关系中的每个元素称为一个元组。
- 例子:在上面的“选课”关系中,每个选课记录(如 (男, 数学))就是一个元组。
-
属性:关系也可以看作是一个二维表,表的每一行对应一个元组,每一列对应一个域。由于不同的列可能来自相同的域,为了区分,必须为每一列起一个名字,称为属性。
- 例子:在“选课”关系中,属性可以是“性别”和“课程”。
-
主码:如果关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码(Candidate key)。如果一个关系有多个候选码,则选定其中一个作为主码(Primary key)。
- 例子:在“学生”表中,“学号”可以作为一个主码,因为它唯一标识每个学生。
-
外部码:设F是基本关系R的一个或一组属性,但不是R的主码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外部码(Foreign key),简称外码。基本关系R称为参照关系,基本关系S称为被参照关系。
- 例子:在“选课”关系中,“学号”可以是一个外部码,它引用“学生”表中的主码“学号”。
-
关系模式:关系的描述称为关系模式(Relation Schema),它可以形式化地表示为:R(U, D, dom, F),其中R为关系名,U为属性名集合,D为属性域,dom为属性到域的映射,F为属性间的数据依赖关系。
- 例子:在“学生”表中,关系模式可以表示为:学生(学号, 姓名, 性别, 年龄)。
-
关系:关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,而关系是动态的、随时间变化的,因为关系操作会不断更新数据库中的数据。
- 例子:在某一时刻,“学生”表中的数据可能如下:
{(1, 张三, 男, 20), (2, 李四, 女, 21), (3, 王五, 男, 19)}
- 例子:在某一时刻,“学生”表中的数据可能如下:
-
关系数据库:关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述,包括若干域的定义以及在这些域上定义的关系模式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常称为关系数据库。
- 型就是数据表的结构定义,值就是表里的数据。
2. 试述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?
-
关系模型的完整性规则是对关系的约束条件,主要包括三类:实体完整性、参照完整性和用户定义的完整性。其中,实体完整性和参照完整性是关系模型必须满足的,被称为关系的两个不变性。
- 实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。
- 参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值),或者等于S中某个元组的主码值。
- 用户定义的完整性:这是针对某一具体关系数据库的约束条件,反映了特定应用所涉及的数据必须满足的语义要求。
-
在参照完整性中,外部码属性的值可以为空,这意味着该属性的值尚未确定。但前提条件是该外部码属性不是其所在关系的主属性。例如,在“学生”表中,“专业号”是一个外部码,不是主属性,可以为空,表示该学生的专业尚未确定。而在“选修”表中,“课程号”虽然也是一个外部码属性,但它又是主属性,所以不能为空,因为关系模型必须满足实体完整性。
3. 等值连接与自然连接的区别是什么?
- 连接运算中有两种重要的连接方式:等值连接和自然连接。
- 等值连接:从关系R与S的笛卡尔积中选取属性值相等的那些元组。
- 自然连接:是一种特殊的等值连接,它对两个关系中具有相同名称的属性进行匹配,并且结果中要去掉重复的属性。
4. 代数的基本运算有哪些?如何用这些基本运算来表示其他的关系基本运算?
- 在八种关系代数运算中,并、差、笛卡尔积、投影和选择是五种基本运算。其他三种运算,即交、连接和除,均可以用这五种基本运算来表达。
三、SQL
✅ 选择题
-
SQL语言是(
B
)的语言,容易学习。- A. 过程化
- B. 非过程化
- C. 格式化
- D. 导航式
-
在视图上不能完成的操作是(
C
)。- A. 更新视图
- B. 查询
- C. 在视图上定义新的表
- D. 在视图上定义新的视图
-
SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,CREATE、DROP、ALTER语句是实现哪种功能(
C
)。- A. 数据查询
- B. 数据操纵
- C. 数据定义
- D. 数据控制
-
SQL语言中,删除一个视图的命令是(
B
)。- A. DELETE
- B. DROP
- C. CLEAR
- D. REMOVE
-
在SQL语言中的视图VIEW是数据库的(
A
)。- A. 外模式
- B. 模式
- C. 内模式
- D. 存储模式
-
下列的SQL语句中,(
D
)不是数据定义语句。- A. CREATE TABLE
- B. DROP VIEW
- C. CREATE VIEW
- D. GRANT
-
若要撤销数据库中已经存在的表S,可用(
C
)。- A. DELETE TABLE S
- B. DELETE S
- C. DROP TABLE S
- D. DROP S
-
若要在基本表S中增加一列CN(课程名),可用(
C
)。- A. ADD TABLE S(CN CHAR(8))
- B. ADD TABLE S ALTER(CN CHAR(8))
- C. ALTER TABLE S ADD(CN CHAR(8))
- D. ALTER TABLE S (ADD CN CHAR(8))
-
学生关系模式 S( S#,Sname,Sex,Age),S的属性分别表示学生的学号、姓名、性别、年龄。要在表S中删除一个属性“年龄”,可选用的SQL语句是(
B
)。- A. DELETE Age from S
- B. ALTER TABLE S DROP Age
- C. UPDATE S Age
- D. ALTER TABLE S ‘Age’
-
有关系S(S#,SNAME,SAGE),C(C#,CNAME),SC(S#,C#,GRADE)。其中S#是学生号,SNAME是学生姓名,SAGE是学生年龄, C#是课程号,CNAME是课程名称。要查询选修“ACCESS”课的年龄不小于20的全体学生姓名的SQL语句是 SELECT SNAME FROM S,C,SC WHERE子句。这里的WHERE子句的内容是(
A
)。- A.
S.S# = SC.S# and C.C# = SC.C# and SAGE >= 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’
- A.
-
设关系数据库中一个表S的结构为S(SN,CN,grade),其中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)
-
设关系数据库中一个表S的结构为:S(SN,CN,grade),其中SN为学生名,CN为课程名,二者均为字符型;grade为成绩,数值型,取值范围0-100。若要更正王二的化学成绩为85分,则可用(
A
)。- A.
UPDATE S SET grade=85 WHERE SN='王二' 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=’化学’
- A.
-
在SQL语言中,子查询是(
D
)。- A. 返回单表中数据子集的查询语言
- B. 选取多表中字段子集的查询语句
- C. 选取单表中字段子集的查询语句
- D. 嵌入到另一个查询语句之中的查询语句
✅ 填空题
-
试述SQL语言的特点。
综合统一
:SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体。高度非过程化
:用SQL语言进行数据操作,只要提出“做什么”,而无须指明“怎么做”,因此无需了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。面向集合的操作方式
:SQL语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。以同一种语法结构提供两种使用方式
:SQL语言既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式,也能够嵌入到高级语言程序中,供程序员设计程序时使用。语言简捷,易学易用
。
-
SQL的中文全称是
结构化查询语言
。 -
试述SQL的定义功能。
- SQL的数据定义功能包括定义表、定义视图和定义索引。
- 表:
CREATE TABLE
语句建立基本表ALTER TABLE
语句修改基本表定义DROP TABLE
语句删除基本表
- 索引
CREATE INDEX
语句建立索引DROP INDEX
语句删除索引
- 视图
CREATE VIEW
命令建立视图DROP VIEW
语句删除视图。
-
SQL语言除了具有数据查询和数据操纵功能之外,还具有
数据定义
和数据控制
的功能,它是一个综合性的功能强大的语言。 -
在关系数据库标准语言SQL中,实现数据检索的语句命令是
SELECT
。 -
用SQL语句建立第2章习题5中的四个表。
-- 建S表 CREATE TABLE S ( SNO CHAR(3), SNAME CHAR(10), STATUS CHAR(2), CITY CHAR(10) ); -- 建P表 CREATE TABLE P ( PNO CHAR(3), PNAME CHAR(10), COLOR CHAR(4), WEIGHT INT ); -- 建J表 CREATE TABLE J ( JNO CHAR(3), JNAME CHAR(10), CITY CHAR(10) ); -- 建SPJ表 CREATE TABLE SPJ ( SNO CHAR(3), PNO CHAR(3), JNO CHAR(3), QTY INT );
-
在SQL语言的结构中,
基本表
有对应的物理存储,而视图
没有对应的物理存储。 -
针对上题中建立的四个表试用SQL语言完成第2章习题5中的查询。
- (1)求供应工程J1零件的供应商号码SNO;
SELECT SNO FROM SPJ WHERE JNO='J1';
- (2)求供应工程J1零件P1的供应商号码SNO;
SELECT SNO FROM SPJ WHERE JNO='J1' AND PNO='P1';
- (3)求供应工程J1零件为红色的供应商号码SNO;
或者使用连接查询:SELECT SNO /*这是嵌套查询*/ FROM SPJ WHERE JNO='J1' AND PNO IN /*找出红色的零件的零件号码PNO */ ( SELECT PNO FROM P /*从P表中找*/ WHERE COLOR='红' );
SELECT SNO FROM SPJ, P /*这是两表连接查询*/ WHERE JNO='J1' /*这是复合条件连接查询*/ AND SPJ.PNO=P.PNO AND COLOR='红';
- (4)求没有使用天津供应商生产的红色零件的工程号JNO;
或者/*解析:读者可以对比第2章习题5中用ALPHA语言来完成该查询的解答。如果大家理解了有关该题的解析说明,那么本题的解答可以看成是把关系演算用SQL来表示的过程。*/ SELECT JNO FROM J WHERE NOT EXISTS ( SELECT * FROM SPJ WHERE SPJ.JNO=J.JNO AND SNO IN /*天津供应商的SNO*/ ( SELECT SNO FROM S WHERE CITY='天津' ) AND PNO IN /*红色零件的PNO*/ ( SELECT PNO FROM P WHERE COLOR='红' ) );
SELECT JNO FROM J WHERE NOT EXISTS ( SELECT * FROM SPJ, S, P WHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND SPJ.PNO=P.PNO AND S.CITY='天津' AND P.COLOR='红' );
- (5)求至少用了供应商S1所供应的全部零件的工程号JNO (类似于P113例44)。
/*解析:本查询的解析可以参考第二章第5题,用ALPHA语言的逻辑蕴函来表达。上述查询可以抽象为:要求这样的工程x,使(?y) p ? q为真。即:对于所有的零件y,满足逻辑蕴函 p ? q:P表示谓词:“供应商S1供应了零件y” q表示谓词:“工程x选用了零件y” 即只要“供应商S1供应了零件y”为真,则“工程x选用了零件y”为真。逻辑蕴函可以转换为等价形式:(?y)p ? q ≡ ?(?y(?(p ? q)) ≡ ?(?y(?(?p∨q)) ≡ ?(?y(p∧?q)。它所表达的语义为:不存在这样的零件y,供应商S1供应了y,而工程x没有选用y。*/ SELECT DISTINCT JNO FROM SPJ SPJZ WHERE NOT EXISTS /*这是一个相关子查询 */ ( SELECT * /*父查询和子查询均引用了SPJ表*/ FROM SPJ SPJX /*用别名将父查询与子查询中的SPJ表区分开*/ WHERE SNO='S1' AND NOT EXISTS ( SELECT * FROM SPJ SPJY WHERE SPJY.PNO=SPJX.PNO AND SPJY.JNO=SPJZ.JNO AND SPJY.SNO='S1' ) );
- (1)求供应工程J1零件的供应商号码SNO;
-
针对习题3中的四个表试用SQL语言完成以下各项操作。
- (1) 找出所有供应商的姓名和所在城市。
SELECT SNAME, CITY FROM S;
- (2) 找出所有零件的名称、颜色、重量。
SELECT PNAME, COLOR, WEIGHT FROM P;
- (3) 找出使用供应商S1所供应零件的工程号码。
SELECT JNO FROM SPJ WHERE SNO='S1';
- (4) 找出工程项目J2使用的各种零件的名称及其数量。
SELECT P.PNAME, SPJ.QTY FROM P, SPJ WHERE P.PNO=SPJ.PNO AND SPJ.JNO='J2';
- (5) 找出上海厂商供应的所有零件号码。
SELECT DISTINCT PNO FROM SPJ WHERE SNO IN (SELECT SNO FROM S WHERE CITY='上海');
- (6) 找出使用上海产的零件的工程名称。
或者SELECT JNAME FROM J, SPJ, S WHERE J.JNO=SPJ.JNO AND SPJ.SNO=S.SNO AND S.CITY='上海';
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 * 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。*/
- (1) 找出所有供应商的姓名和所在城市。
-
关系R(A,B,C)和S(A,D,E,F),R和S有相同属性A,若将关系代数表达式: π R . A , R . B , S . D , S . F ( R ⋈ S ) π_{R.A,R.B,S.D,S.F}(R\Join S) π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;
-
什么是基本表?什么是视图?两者的区别和联系是什么?
- 基本表是本身独立存在的表,在SQL中一个关系就对应一个表。
- 视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。
- 区别和联系:视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。
-
视图是从
基本表
中导出的表,数据库中实际存放的是视图的定义
。 -
试述视图的优点。
- 视图能够简化用户的操作。
- 视图使用户能以多种角度看待同一数据。
- 视图对重构数据库提供了一定程度的逻辑独立性。
- 视图能够对机密数据提供安全保护。
-
关系数据操作语言(DML)的特点是:操作对象与结果均为关系、操作的
非过程性强
、语言一体化并且是建立在数学理论基础之上。 -
设有如下关系表R、S、T: R(BH,XM,XB,DWH) S(DWH,DWM) T(BH,XM,XB,DWH)
- (1) 实现
R
∪
T
R∪T
R∪T 的SQL语句是
SELECT * FROM R UNION SELECT * FROM T
。 - (2) 实现
σ
D
W
H
=
′
10
0
′
(
R
)
σ_{DWH='100'}(R)
σDWH=′100′(R) 的SQL语句是
SELECT * FROM R WHERE DWH='100'
。 - (3) 实现
π
X
M
,
X
B
(
R
)
π_{XM,XB}(R)
πXM,XB(R) 的SQL语句是
SELECT XM, XB FROM R
。 - (4) 实现
π
X
M
,
D
W
H
(
σ
X
B
=
′
女
′
(
R
)
)
π_{XM,DWH}(σ_{XB='女'}(R))
πXM,DWH(σXB=′女′(R)) 的SQL语句是
SELECT XM, DWH FROM R WHERE XB='女'
。 - (5) 实现
R
⋈
S
R \Join S
R⋈S的SQL语句是
SELECT R.BH, R.XM, R.XB, R.DWH, S.DWM FROM R, S WHERE R.DWH=S.DWH
。 - (6) 实现
π
X
M
,
X
B
,
D
W
H
(
σ
X
B
=
′
男
′
(
R
⋈
S
)
)
π_{XM,XB,DWH}(σ_{XB='男'}(R \Join S))
πXM,XB,DWH(σXB=′男′(R⋈S)) 的SQL语句是
SELECT R.XM, R.XB, S.DWH FROM R, S WHERE R.DWH=S.DWH AND R.XB='男'
。
- (1) 实现
R
∪
T
R∪T
R∪T 的SQL语句是
-
所有的视图是否都可以更新?为什么?
- 不是。
- 视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。因为有些视图的更新不能唯一地有意义地转换成对相应基本表的更新,所以,并不是所有的视图都是可更新的
- 如下视图S_G(学生的学号及他的平均成绩)
- 要修改平均成绩,必须修改各科成绩,而我们无法知道哪些课程成绩的变化导致了平均成绩的变化。
CREAT VIEW S_G(Sno,Gavg) AS
SELECT Sno,AVG(Grade) /* 设SC表中“成绩”列 Grade为数字型 */
FROM SC GROUP BY Sno;
- 设有如下关系表 R:R(NO,NAME,SEX,AGE,CLASS),主码是NO
- 插入一个记录(25,“李明”,“男”,21,“95031”):
INSERT INTO R VALUES(25, "李明", "男", 21, "95031")
。 - 插入“95031”班学号为30,姓名为“郑和”的学生记录:
INSERT INTO R(NO, NAME, CLASS) VALUES(30, "郑和", "95031")
。 - 将学号为10的学生姓名改为“王华”:
UPDATE R SET NAME="王华" WHERE NO=10
。 - 将所有“95101”班号改为“95091”:
UPDATE R SET CLASS="95091" WHERE CLASS="95101"
。 - 删除学号为20的学生记录:
DELETE FROM R WHERE NO=20
。 - 删除姓“王”的学生记录:
DELETE FROM R WHERE NAME LIKE “王%”
。
-
哪类视图是可以更新的,哪类视图是不可更新的?各举一例说明。
- 基本表的行列子集视图一般是可更新的
- 若视图的属性来自集函数、表达式,则该视图肯定是不可以更新的。
-
.请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。针对该视图完成下列查询:
- 建视图:
CREATE VIEW V_SPJ AS S ELECT SNO, PNO, QTY FROM SPJ WHERE JNO= (SELECT JNO FROM J WHERE JNAME='三建');
- 对该视图查询:
- 找出三建工程项目使用的各种零件代码及其数量:
SELECT PNO, QTY FROM V_SPJ;
- S1供应三建工程的零件号和对应的数量:
SELECT PNO, QTY FROM V_SPJ WHERE SNO = 'S1';
- 找出三建工程项目使用的各种零件代码及其数量:
- 建视图:
-
(扩展题)针对习题3建立的表,用SQL语言完成以下各项操作:
- (1) 把对表 S 的 INSERT 权限授予用户张勇,并允许他再将此权限授予其他用户。
GRANT INSERT ON TABLE S TO 张勇 WITH GRANT OPTION;
- (2) 把查询 SPJ 表和修改 QTY 属性的权限授给用户李天明。
GRANT SELECT, UPDATE(QTY) ON TABLE SPJ TO 李天明;
- (1) 把对表 S 的 INSERT 权限授予用户张勇,并允许他再将此权限授予其他用户。
-
(扩展题)在嵌入式SQL中是如何区分SQL语句和主语言语句的?
- 在SQL语句前加上前缀 EXEC SQL。
- SQL语句的结束标志则随主语言的不同而不同。
- 例如在PL/1和C中以分号(;)结束,在COBOL中以END-EXEC结束。
-
(扩展题)在嵌入式SQL中是如何解决数据库工作单元与源程序工作单元之间通信的?
- SQL通信区SQLCA,用来向主语言传递SQL语句的执行状态信息,使主语言能够根据此信息控制程序流程。
- 主变量(Host Variable)
- 用来实现主语言向SQL语句提供参数。
- 将SQL语句查询数据库的结果交主语言进一步处理
- 游标(Cursor),解决集合性操作语言与过程性操作语言的不匹配通过游标逐一获取记录,并赋给主变量,交由主语言进一步处理。
-
(扩展题)在嵌入式SQL中是如何协调SQL语言的集合处理方式和主语言的单记录处理方式的?
- 用游标来协调这两种不同的处理方式。游标区是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果,每个游标区都有一个名字。用户可以通过游标逐一获取记录,并赋给主变量,交由主语言进一步处理。
四、数据库安全性
✅ 选择题
-
以下(
D
)不属于实现数据库系统安全性的主要技术和方法。- A. 存取控制技术
- B. 视图技术
- C. 审计技术
- D. 出入机房登记和加锁
-
SQL中的视图提高了数据库系统的(
D
)。- A. 完整性
- B. 并发控制
- C. 隔离性
- D. 安全性
-
SQL语言的GRANT和REMOVE语句主要是用来维护数据库的(
C
)。- A. 完整性
- B. 可靠性
- C. 安全性
- D. 一致性
✅ 简答题
1. 什么是数据库的安全性?
- 数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。
2. 数据库安全性和计算机系统的安全性有什么关系?
- 安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题。
- 只是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全性问题更为突出。
- 系统安全保护措施是否有效是数据库系统的主要指标之一。
- 数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、相互支持的。
3. 试述实现数据库安全性控制的常用方法和技术。
- 用户标识和鉴别:该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。
- 存取控制:通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未被授权的人员无法存取数据。例如C2级中的自主存取控制(DAC),B1级中的强制存取控制(MAC)。
- 视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。
- 审计:建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。
- 数据加密:对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容。
4. 什么是数据库中的自主存取控制方法和强制存取控制方法?
- 自主存取控制方法:定义各个用户对不同数据对象的存取权限。当用户对数据库访问时首先检查用户的存取权限。防止不合法用户对数据库的存取。
- 强制存取控制方法:每一个数据对象被(强制地)标以一定的密级,每一个用户也被(强制地)授予某一个级别的许可证。系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象。
解析:自主存取控制中自主的含义是:用户可以将自己拥有的存取权限“自主”地授予别人。即用户具有一定的“自主”权。
5. SQL语言中提供了哪些数据控制(自主存取控制)的语句?请试举几例说明它们的使用方法。
答:
SQL中的自主存取控制是通过GRANT语句和REVOKE语句来实现的。例如:
GRANT SELECT, INSERT ON Student TO 王平 WITH GRANT OPTION;
这条语句将Student表的SELECT和INSERT权限授予了用户王平,后面的WITH GRANT OPTION
子句表示用户王平同时也获得了“授权”的权限,即可以把得到的权限继续授予其他用户。REVOKE INSERT ON Student FROM 王平 CASCADE;
这条语句将Student表的INSERT权限从用户王平处收回,选项CASCADE
表示,如果用户王平将Student的INSERT权限又转授给了其他用户,那么这些权限也将从其他用户处收回。
6. 今有两个关系模式:
- 职工(职工号,姓名,年龄,职务,工资,部门号)
- 部门(部门号,名称,经理名,地址,电话号)
请用SQL的GRANT和REVOKE语句(加上视图机制)完成以下授权定义或存取控制功能:
(a) 用户王明对两个表有SELECT权力;
GRANT SELECT ON 职工,部门
TO 王明;
(b) 用户李勇对两个表有INSERT和DELETE权力;
GRANT INSERT,DELETE ON 职工,部门
TO 李勇;
© 用户刘星对职工表有SELECT权力,对工资字段具有更新权力;
GRANT SELECT,UPDATE(工资) ON 职工
TO 刘星;
(d) 用户张新具有修改这两个表的结构的权力;
GRANT ALTER TABLE ON 职工,部门
TO 张新;
(e) 用户周平具有对两个表所有权力(读,插,改,删数据),并具有给其他用户授权的权力;
GRANT ALL PRIVILIGES ON 职工,部门 TO 周平 WITH GRANT OPTION;
(f) 用户杨兰具有从每个部门职工中SELECT最高工资,最低工资,平均工资的权力,他不能查看每个人的工资。
首先建立一个视图。然后对这个视图定义杨兰的存取权限。
CREATE VIEW 部门工资 AS
SELECT 部门.名称,MAX(工资),MIN(工资),AVG(工资)
FROM 职工,部门
WHERE 职工.部门号 = 部门.部门号
GROUP BY 职工.部门号;
GRANT SELECT ON 部门工资 TO 杨兰;
7. 把习题8中(a)~(g) 的每一种情况,撤销各用户所授予的权力。
答:
(a)
REVOKE SELECT ON 职工,部门
FROM 王明;
(b)
REVOKE INSERT,DELETE ON 职工,部门
FROM 李勇;
©
REVOKE SELECT,UPDATE ON 职工
FROM 刘星;
(d)
REVOKE ALTER TABLE ON 职工,部门
FROM 张新;
(e)
REVOKE ALL PRIVILIGES ON 职工,部门
FROM 周平;
(f)
REVOKE SELECT ON 部门工资
FROM 杨兰;
DROP VIEW 部门工资;
8. 为什么强制存取控制提供了更高级别的数据库安全性?
强制存取控制(MAC)是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据,从而提供了更高级别的安全性。
9. 什么是数据库的审计功能,为什么要提供审计功能?
-
审计功能是指DBMS的审计模块在用户对数据库执行操作的同时把所有操作自动记录到系统的审计日志中。
-
因为任何系统的安全保护措施都不是完美无缺的,蓄意盗窃破坏数据的人总可能存在。利用数据库的审计功能,DBA可以根据审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。