目录

  • 1 课程导入
    • 1.1 课程导入
  • 2 绪论
    • 2.1 数据模型
    • 2.2 数据模型的组成要素和常用数据模型
    • 2.3 三级模式两层映像两种独立性
    • 2.4 本章习题
  • 3 关系数据库
    • 3.1 关系数据结构和完整性约束
    • 3.2 关系代数
      • 3.2.1 关系代数概念
      • 3.2.2 集合关系代数
      • 3.2.3 选择、投影、连接和除法操作
      • 3.2.4 关系代数复习与习题
    • 3.3 关系数据库标准语言SQL
      • 3.3.1 数据定义与删除
      • 3.3.2 数据查询
        • 3.3.2.1 单表查询
        • 3.3.2.2 多表查询--连接
        • 3.3.2.3 多表查询--嵌套
        • 3.3.2.4 多表查询--集合
      • 3.3.3 数据更新
      • 3.3.4 例题集粹
      • 3.3.5 SQL语言学习小结
    • 3.4 视图
    • 3.5 本章习题
  • 4 数据库安全性
    • 4.1 数据库安全性概述
    • 4.2 数据库安全控制--用户身份鉴别
    • 4.3 数据库安全控制--自主存取控制方法
    • 4.4 视图机制、审计、加密
    • 4.5 本章习题
  • 5 数据库完整性
    • 5.1 数据库完整性约束的概念
    • 5.2 实体完整性
    • 5.3 参照完整性
    • 5.4 用户定义完整性
    • 5.5 完整性约束命名子句
    • 5.6 域中的完整性限制
    • 5.7 断言
    • 5.8 触发器
    • 5.9 本章习题
  • 6 关系数据理论
    • 6.1 问题的提出
    • 6.2 规范化
    • 6.3 数据依赖的公理系统
    • 6.4 模式分解
    • 6.5 本章习题
  • 7 数据库设计
    • 7.1 数据库设计概述
      • 7.1.1 数据库设计的特点
      • 7.1.2 数据库设计的方法
      • 7.1.3 数据库设计的基本步骤
      • 7.1.4 数据库设计过程中的各级模式
    • 7.2 需求分析
    • 7.3 概念结构设计
    • 7.4 逻辑结构设计
      • 7.4.1 E-R图向关系模型的转换
      • 7.4.2 数据模型的优化
    • 7.5 设计用户子模式
    • 7.6 物理设计
      • 7.6.1 数据库物理设计的内容和方法
      • 7.6.2 关系模式存取方法选择
      • 7.6.3 确定数据库的存储结构
      • 7.6.4 评价物理结构
      • 7.6.5 数据库的实施和维护
    • 7.7 本章习题
  • 8 数据库编程
    • 8.1 嵌入式SQL
      • 8.1.1 嵌入式SQL的处理过程
      • 8.1.2 嵌入式SQL语句与主语言之间的通信
      • 8.1.3 不用游标的SQL语句
      • 8.1.4 使用游标的SQL语句
      • 8.1.5 动态SQL
    • 8.2 过程化SQL
      • 8.2.1 过程化SQL的块结构
      • 8.2.2 变量和常量的定义
      • 8.2.3 流程控制
    • 8.3 存储过程和函数
      • 8.3.1 存储过程
      • 8.3.2 函数
    • 8.4 ODBC编程
      • 8.4.1 ODBC概述
      • 8.4.2 ODBC工作原理概述
      • 8.4.3 ODBC API 基础
      • 8.4.4 ODBC的工作流程
    • 8.5 本章习题
  • 9 关系查询处理和查询优化
    • 9.1 关系数据库系统的查询处理
      • 9.1.1 实现查询操作的算法示例
    • 9.2 关系数据库系统的查询优化
      • 9.2.1 一个实例
    • 9.3 代数优化
    • 9.4 物理优化
      • 9.4.1 基于启发式规则的存取路径选择优化
      • 9.4.2 基于代价的优化
    • 9.5 本章习题
  • 10 数据库恢复技术
    • 10.1 事务的基本概念
    • 10.2 数据库恢复概述
    • 10.3 故障的种类
    • 10.4 恢复的实现技术
    • 10.5 恢复策略
    • 10.6 具有检查点的恢复技术
    • 10.7 数据库镜像
    • 10.8 本章习题
  • 11 并发控制
    • 11.1 并发控制概述
    • 11.2 封锁
    • 11.3 封锁协议
    • 11.4 活锁和死锁
    • 11.5 并发调度的可串行性
    • 11.6 两段锁协议
    • 11.7 封锁的粒度
    • 11.8 小结
    • 11.9 本章习题
本章习题

1.什么是数据库的安全性?

2.举例说明对数据库安全性产生威胁的因素。

3.试述信息安全标准的发展历史,试述CC评估保证级划分的基本内容。  

4.试述实现数据库安全性控制的常用方法和技术。

5.什么是数据库中的自主存取控制方法和强制存取控制方法?

6.对下列两个关系模式:

学生(学号,姓名,年龄,性别,家庭住址,班级号)

班级(班级号,班级名,班主任,班长)

使用GRANT语句完成下列授权功能:

(1)授予用户U1对两个表的所有权限,并可给其他用户授权。

(2)授予用户U2对学生表具有查看权限,对家庭住址具有更新权限。

(3)将对班级表查看权限授予所有用户

(4)将对学生表的查询、更新权限授予角色R1

(5)将角色R1授予用户U1,并且U1可继续授权给其他角色。

7.今有以下两个关系模式:

职工(职工号,姓名,年龄,职务,工资,部门号)

部门(部门号,名称,经理名,地址,电话号)

请用SQLGRANTREVOKE语句(加上视图机制)完成以下授权定义或存取控制功能:

(1)用户王明对两个表有SELECT权限

(2)用户李勇对两个表有INSERTDELETE权限。

(3)每个职工只对自己的记录有SELECT权限。

(4)用户刘星对职工表有SELECT权限,对工资字段具有更新权限。

(5)用户张新具有修改这两个表的结构的权限。

(6)用户周平具有对两个表的所有权限(读、插、改、删数据),并具有给其他用户授权的权限。  (7)用户杨兰具有从每个部门职工中SELECT最高工资、最低工资、平均工资的权限,她不能查看每个人的工资。

8.针对习题7(1)~(7)的每一种情况,撤销各用户所授予的权限。

9.解释强制存取控制机制中主体、客体、敏感度标记的含义。

10.举例说明强制存取控制机制是如何确定主体能否存取客体的。

11.什么是数据库的审计功能,为什么要提供审计功能?