数据库系统复习
- 第一章 绪论
- 第二章 关系数据库
-
- 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 关系操作 查询 插入 删除 修改
查询又分为
- 选择
- 投影:选择某些列
- 连接:将共同属性进行等值连接
-包括自然连接、外连接、左外连接、右外连接
-自然连接中被舍弃的元组成为悬浮元组
-外连接即保留悬浮元组 - 除法
R/S 得到完全包含S的R值 - 并、差、交
- 笛卡尔积
2.3 关系语言的分类
- 关系代数语言(本章重点)
- 关系演算语言
- 具有关系代数和关系演算的SQL语言
参照完整性:外码要么为空,要么对应另一个表的主码
用户定义的完整性:自己定义的完整性(如数据范围要求)
第三章 SQL语言 数据查询:SELECT(P88)
数据定义:CREATE DROP ALTER
- 模式、表、视图、索引均可使用CREATE和DROP
- 模式和视图不可以使用ALTER
数据控制:GRANT REVOKE(见第四章)
使用方法和例子见书
第四章 数据库的安全性 4.1 数据不安全的因素
- 非授权用户对数据库的恶意存取和破坏
- 数据库中重要或敏感的数据被泄露
- 安全环境的脆弱性
- 用户身份鉴别:口令、身份特征
- 存取控制
- 自主存取控制
- 强制存取控制
4.4 审计 把对数据库的所有操作都记录到审计日志中,然后就可以通过日志审查这个里面是否有一些非法行为。
4.5 数据加密 4.6 授权:授予与收回 1.GRANT
GRANT <权限>[,权限]···
ON <对象类型><对象名>[,<对象类型><对象名>]···
TO <用户>[,<用户>]···
[WITH GRANT OPTION]
如果指定了WITH GRANT OPTION子句,则获得某种权限的用户还可以把这种权限再授予其他的用户
文章图片
文章图片
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 <约束名><约束条件>
(数据库的完整性与安全性的区别)
- 完整性:数据合理正确、符合逻辑、不发生冲突
- 安全性:防范非法用户的非法操作
部分函数依赖、完全函数依赖、传递函数依赖
为什么要引入范式?
因为关系模式存在诸多问题:
- 数据冗余
- 更新异常
- 插入异常
- 删除异常
候选码:最小的超码,真子集不能再推出所有属性(可以有多个候选码集)
主码:挑选任意候选码中的一个(候选码中的某一个)
码:所有主码和候选码的简称(找候选码就行)
全码:所有的属性都可以是码(候选码/主码)
主属性:包含在任意一个候选码中的属性
非主属性:不包含在候选码中的属性
6.1 范式 - 1NF
表中无表
- 2NF
在1NF的基础上,没有非主属性对于码的部分依赖
即:不存在→有多个码可以推出某非主属性
- 3NF
在2NF的基础上,没有非主属性对于码的传递函数依赖
即:不存在→某个码可以通过传递方式重复地推出某非主属性
例如:
文章图片
学号->班级号 学号->班级名
班级号->班级名
拆成R1(学号,姓名,班级号);R2(班级号,班级名)
全码一定是3NF(因为没有非主属性)- BCNF
在3NF的基础上,没有主属性对码的部分 和传递函数依赖
注意:之前是非主属性,这里是主属性
第七章 数据库设计 7.1 基本步骤
- 需求分析
- 概念结构设计:ER图和数据字典
- 逻辑结构设计:ER图→逻辑模型(表)
- 物理结构设计
- 数据库实施
- 运行和维护
椭圆表示属性
菱形表示联系
联系:
- 1对1:人和身份证
- 1对n:班级和学生
- m对n:顾客和商品
1对n:转换为外码
m对n:转换为一张表
第八章 数据库编程 8.1 嵌入式SQL 处理过程:
- 预编译转化为函数调用
- 主语言再编译
- 变成诸语言编译内容
- SQL给主语言传递状态
- 主语言给SQL提供参数
- SQL把查询结果交给主语言处理
游标: 一个缓冲区,用于存放SQL的执行结果
不用游标的SQL语句: 说明性语句、数据定义语句、数据控制语句、查询结果为单记录的SELECT语句
使用游标的SQL语句: 查询结果为多条记录的SELECT语句
- 说明游标
- 打开游标
- 推进游标
- 关闭游标
8.2 过程化SQL 过程化SQL程序的基本结构是块
过程化SQL的基本语句
8.3 存储过程和函数 存储过程: 没有返回值
函数: 有返回值
第九章 关系查询处理和优化 9.1 查询处理
- 查询分析
- 查询检查
- 查询优化 (代数优化)
- 查询执行
文章图片
第十章 数据库恢复技术 10.1 事务(ACID) 原子性(atom)、一致性(consistent)、隔离性(isolate)、持久性(duration)
故障的种类:
- 事务内部故障:REDO和UNIDO(撤销)
- 系统故障(DBMS故障)
- 介质故障(硬件损坏)
- 计算机病毒
日志文件: 记录事务对数据更新操作的文件
推荐阅读
- Python MySQL删除查询使用详细指南
- C语言【微项目】|C语言【微项目17】—DustBase微尘数据库[自制键值对数据库][超轻量]【2022-03-23】
- 数据库快速索引原理!B树和B+树的实现原理和实例代码全解
- Python MySQL 删除表用法指南
- Python MySQL –插入操作详解
- 如何使用JavaScript清除所有cookie()
- Python MongoDB –限制查询limit用法介绍
- 在Python中的__new__用法详细介绍
- 你还不知道的后端开发,对比一下这些,看看你是否合格了