数据库系统概论 期末知识点复习

数据库系统复习

  • 第一章 绪论
  • 第二章 关系数据库
    • 2.1 关系模式
    • 2.2 关系操作
    • 2.3 关系语言的分类
    • 2.4 完整性
  • 第三章 SQL语言
  • 第四章 数据库的安全性
    • 4.1 数据不安全的因素
    • 4.2 数据库安全性控制
    • 4.3 视图机制
    • 4.4 审计
    • 4.5 数据加密
    • 4.6 授权:授予与收回
    • 4.7 数据库角色(按岗位职责,组织权限)
  • 第五章 数据库的完整性
    • 5.1 正确性
    • 5.2 相容性
      • 维护完整性需要的功能
    • 5.3 三大完整性
      • (数据库的完整性与安全性的区别)
  • 第六章 关系数据理论
    • 6.1 范式
      • - 1NF
      • - 2NF
      • - 3NF
      • - BCNF
  • 第七章 数据库设计
    • 7.1 基本步骤
    • 7.2 概念结构设计:ER图
    • 7.3 逻辑结构设计:转化表
  • 第八章 数据库编程
    • 8.1 嵌入式SQL
    • 8.2 过程化SQL
    • 8.3 存储过程和函数
  • 第九章 关系查询处理和优化
    • 9.1 查询处理
  • 第十章 数据库恢复技术
    • 10.1 事务(ACID)
    • 10.2 恢复技术

第一章 绪论

第二章 关系数据库

2.1 关系模式

关系模式:对关系的描述(表头、对表的描述)
关系:一张二维表

2.2 关系操作

查询 插入 删除 修改
查询又分为

  1. 选择
  2. 投影:选择某些列
  3. 连接:将共同属性进行等值连接
    -包括自然连接、外连接、左外连接、右外连接
    -自然连接中被舍弃的元组成为悬浮元组
    -外连接即保留悬浮元组
  4. 除法
    R/S 得到完全包含S的R值
  5. 并、差、交
  6. 笛卡尔积

其中基本操作为:选择、投影、并、差、笛卡尔积

2.3 关系语言的分类

  1. 关系代数语言(本章重点)
  2. 关系演算语言
  3. 具有关系代数和关系演算的SQL语言

2.4 完整性

实体完整性:主码唯一且不能为空
参照完整性:外码要么为空,要么对应另一个表的主码
用户定义的完整性:自己定义的完整性(如数据范围要求)

第三章 SQL语言

数据查询:SELECT(P88)
数据定义:CREATE DROP ALTER

  • 模式、表、视图、索引均可使用CREATE和DROP
  • 模式和视图不可以使用ALTER

数据操作:INSERT UPDATE DELETE(P113)
数据控制:GRANT REVOKE(见第四章)

使用方法和例子见书

第四章 数据库的安全性

4.1 数据不安全的因素

  • 非授权用户对数据库的恶意存取和破坏

  • 数据库中重要或敏感的数据被泄露

  • 安全环境的脆弱性

4.2 数据库安全性控制

  • 用户身份鉴别:口令、身份特征

  • 存取控制

  • 自主存取控制

  • 强制存取控制

4.3 视图机制

为不同的用户定义不同的视图,把不需要的数据给隐藏起来,这样用户就不会进行误操作。

4.4 审计

把对数据库的所有操作都记录到审计日志中,然后就可以通过日志审查这个里面是否有一些非法行为。

4.5 数据加密

4.6 授权:授予与收回

1.GRANT

GRANT <权限>[,权限]···

ON <对象类型><对象名>[,<对象类型><对象名>]···

TO <用户>[,<用户>]···

[WITH GRANT OPTION]

如果指定了WITH GRANT OPTION子句,则获得某种权限的用户还可以把这种权限再授予其他的用户
数据库系统概论 期末知识点复习_第1张图片
数据库系统概论 期末知识点复习_第2张图片
2.REVOKE

REVOKE<权限>[,<权限>]···

ON <对象类型><对象名>[,<对象类型><对象名>]···

FROM <用户>[,<用户>]···[CASCADE|RESTRICT]

4.7 数据库角色(按岗位职责,组织权限)

角色(教室、家长、学生…表示一类人)→用户
4.7.1 角色的创建

CREATE ROLE <角色名>

4.7.2 给角色授权

GRANT <权限>[,<权限>]···

ON <对象类型>对象名

TO <角色>[,<角色>]···

3.将一个角色授予其他的角色和用户

GRANT <角色1>[,<角色2>]···

TO <角色3>[,<用户1>]···

[WITH ADMIN OPTION]

如果指定了WITH ADMIN OPTION子句,则获得某种权限的角色或用户还可以把这种权限再授予其他的角色

4.角色权限的收回

REVOKE <权限>[,<权限>]···

ON <对象类型><对象名>

FROM <角色>[,<角色>]···

第五章 数据库的完整性

数据库的完整性包括正确性及相容性

5.1 正确性

定义:符合现实世界语义、反映当前实际情况的

5.2 相容性

定义:数据库同一对象在不同关系表中的数据是符合逻辑的

维护完整性需要的功能

1、提供定义完整性约束条件的机制
2、提供完整性检查的方法
3、进行违约处理

5.3 三大完整性

实体完整性:主码唯一且不能为空
参照完整性:外码要么为空,要么对应另一个表的主码
用户定义的完整性:自己定义的完整性(如数据范围要求)
实现:创建时用check 或constraint进行完整性约束
CHECK <约束条件>
CONSTRAINT <约束名><约束条件>

(数据库的完整性与安全性的区别)

  • 完整性:数据合理正确、符合逻辑、不发生冲突
  • 安全性:防范非法用户的非法操作

第六章 关系数据理论

函数依赖:
部分函数依赖、完全函数依赖、传递函数依赖
为什么要引入范式?
因为关系模式存在诸多问题:

  1. 数据冗余
  2. 更新异常
  3. 插入异常
  4. 删除异常

超码:能推出所有属性的属性集
候选码:最小的超码,真子集不能再推出所有属性(可以有多个候选码集)
主码:挑选任意候选码中的一个(候选码中的某一个)
:所有主码和候选码的简称(找候选码就行)
全码:所有的属性都可以是码(候选码/主码)

主属性:包含在任意一个候选码中的属性
非主属性:不包含在候选码中的属性

6.1 范式

- 1NF

表中无表

- 2NF

1NF的基础上,没有非主属性对于码的部分依赖
即:不存在→有多个码可以推出某非主属性

- 3NF

2NF的基础上,没有非主属性对于码的传递函数依赖
即:不存在→某个码可以通过传递方式重复地推出某非主属性
例如:
在这里插入图片描述
学号->班级号 学号->班级名
班级号->班级名
拆成R1(学号,姓名,班级号);R2(班级号,班级名)

全码一定是3NF(因为没有非主属性)

- BCNF

在3NF的基础上,没有主属性对码的部分传递函数依赖
注意:之前是非主属性,这里是主属性

第七章 数据库设计

7.1 基本步骤

  • 需求分析
  • 概念结构设计:ER图和数据字典
  • 逻辑结构设计:ER图→逻辑模型(表)
  • 物理结构设计
  • 数据库实施
  • 运行和维护

7.2 概念结构设计:ER图

矩形表示实体
椭圆表示属性
菱形表示联系
联系:

  • 1对1:人和身份证
  • 1对n:班级和学生
  • m对n:顾客和商品

7.3 逻辑结构设计:转化表

1对1:转换为主码
1对n:转换为外码
m对n:转换为一张表

第八章 数据库编程

8.1 嵌入式SQL

处理过程:

  1. 预编译转化为函数调用
  2. 主语言再编译
  3. 变成诸语言编译内容

嵌入式SQL与主语言的通信:

  1. SQL给主语言传递状态
  2. 主语言给SQL提供参数
  3. SQL把查询结果交给主语言处理

主变量: 主语言程序变量
游标: 一个缓冲区,用于存放SQL的执行结果
不用游标的SQL语句: 说明性语句、数据定义语句、数据控制语句、查询结果为单记录的SELECT语句
使用游标的SQL语句: 查询结果为多条记录的SELECT语句

  1. 说明游标
  2. 打开游标
  3. 推进游标
  4. 关闭游标

动态SQL: 执行的时候才确定SQL子句

8.2 过程化SQL

过程化SQL程序的基本结构是块
过程化SQL的基本语句

8.3 存储过程和函数

存储过程: 没有返回值
函数: 有返回值

第九章 关系查询处理和优化

9.1 查询处理

  1. 查询分析
  2. 查询检查
  3. 查询优化 (代数优化)
  4. 查询执行

数据库系统概论 期末知识点复习_第3张图片

第十章 数据库恢复技术

10.1 事务(ACID)

原子性(atom)、一致性(consistent)、隔离性(isolate)、持久性(duration)
故障的种类:

  1. 事务内部故障:REDO和UNIDO(撤销)
  2. 系统故障(DBMS故障)
  3. 介质故障(硬件损坏)
  4. 计算机病毒

10.2 恢复技术

数据转储: 对失败的事务重新执行
日志文件: 记录事务对数据更新操作的文件

你可能感兴趣的:(数据库,sql)