数据库系统概论期末整理

Shen Ying Lv6

数据库四个基本概念

  • 数据:描述事物的符号记录
  • 数据库: 大量存储在计算机中数据的集合
  • 数据库管理系统:用户与系统间的数据管理软件,主要功能包括:
    • 数据定义功能
    • 数据组织、存储和管理功能
    • 数据操纵功能
    • 数据库的事务管理和运行管理功能
    • 数据库的建立和维护功能
    • 其他功能
  • 数据库系统:由前三者组成

数据库发展的三个阶段

又叫做数据库管理技术的产生和发展

  • 人工管理阶段
  • 文件系统阶段
  • 数据库系统阶段,有如下特点:
    • 整体数据的结构化
    • 数据的共享性强、冗余度低且易于扩展
    • 数据的独立性强,包含:
      • 数据的物理独立性
      • 数据的逻辑独立性
  • 数据库由数据管理系统统一管理和控制

实体之间的联系

实体之间的联系有下面三种:

  • 一对多
  • 一对一
  • 多对多

数据模型的三要素

  • 数据结构:描述数据库组成对象与对象之间的联系
  • 数据操纵:对数据库各种对象操作的集合
  • 完整性约束:一组完整性规则

数据库三种模型

  • 层次模型
  • 网状模型
  • 关系模型: 二维表

数据库系统的三级模式结构

  1. 模式:用户看到的数据视图
  2. 外模式:数据库用户看到的局部数据和逻辑结构的描述
  3. 内模式:对物理结构和存储方式的描述,是数据在数据库内部的组织方式

数据库系统的组成

  • 硬件平台
  • 软件平台
  • 人员

关系完整性

  • 实体完整性:主码不为空
  • 参照完整性:关联表应遵守的规则,即更新规则
  • 用户定义的完整性

关系代数

传统的集合运算

  • 并:U
  • 差:
  • 交:
  • 笛卡尔积:x

专门的关系运算

  • 选择σ
  • 投影π
  • 连接
  • ÷

基本表的定义、删除与修改

  1. 定义基本表
1
CREATE TABLE <表名>(<列名><数据类型>[列级完整性约束], ...);
  1. 修改基本表
1
2
3
4
5
6
ALTER TABLE<表名>
[ADD[COLUMN]<新列名><数据类型>[完整性约束]]
[ADD<表级完整性约束>]
[DROP[COLUMN]<列名>]
[RENAME COLUMN<列名> TO <新列名>]
[ALTER COLUMN <列名> TYPE <数据类型>];
  • add:添加新列,新的完整性约束
  • drop column:用于删除列
  • rename column:用于修改列名
  • alter column ... type:用于修改列的数据类型
  1. 删除基本表
1
DROP TABLE <表名>;

索引的建立与删除

  1. 建立索引

    1
    CREATE[UNIQUE]INDEX<索引名> ON <表名>(<列名>...);
  2. 修改索引

1
ALTER INDEX <旧索引名> RENAME TO <新索引名>;
  1. 删除索引
1
DROP INDEX <索引名>;

TCSEC/TDI 安全级别划分

安全级别安全指标
A1验证设计
B3安全域
B2结构化保护
B1标记安全保护
C2受控的存取保护
C1自主安全保护
D最小保护
  • D级:最低级别。
  • C1级:提供了非常初级的安全保护,能实现对用户和数据的分离,进行自主控制,保护或限制用户权限的传播。
  • C2级:安全产品的最低档,提供受控的存取保护,将C1级的DAC进一步细化,以个人身份注册负责,实施审计和资源隔离。
  • B1级:标记安全保护,对系统数据加以标记,并对标记的主体和客体实施强制存取控制和安全审计等安全机制。B1级别的产品才能被认为是真正意义上的安全产品
  • B2级:结构化保护。
  • B3级:安全域。
  • A1级:验证设计。

授权与收回数据的操作权限

  1. grant语句(授权)
1
GRANT<权限> [权限] ON <对象类型><对象名> TO <用户> [WITH GRANT OPTION];

具体例子

赋予U2, U3用户查询Student, Course表的权限,并且允许他们授权他人。

1
GRANT SELECT ON TABLE Student, Course TO U2, U3 WITH GRANT OPTION;
  1. revoke语句(收回权限)
1
2
3
REVOKE<权限>[,<权限>]...
ON <对象类型><对象名>[,<对象类型><对象名>]...
FROM <用户>[,<用户>]...[CASCADE|RESTRICT];
  • CASCADE:表示级联收回,收回一个用户发放出去的权限。
  • RESTRICT:表示转授权限后不能收回。

具体例子

收回U4用户修改Student表中Sno列的权限。

1
REVOKE UPDATE(Sno) ON TABLE Student FROM U4;

收回所有用户对表SC的查询权限。

1
REVOKE SELECT ON TABLE SC FROM PUBLIC;

收回U5SC表的INSERT权限。

1
REVOKE INSERT ON TABLE SC FROM U5;

审计

审计功能把用户对数据库的所有操作自动记录下来放入审计日志。审计员可以利用审计日志监控数据库中的各种行为,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等;还可以对审计日志进行分析,对潜在的威胁提前采取措施加以防范。

数据加密

依布拉音说这题是多选题。

数据加密分为:

  • 存储加密
  • 传输加密

实体完整性(代码)

创建表时将属性定义为主码即为实体完整性约束:

实例:创建“学生”表Student,将Sno属性定义为主码。

1
2
3
4
5
6
7
CREATE TABLE Student
( Sno CHAR(8) PRIMARY KEY,
Sname CHAR(20) UNIQUE,
Ssex CHAR(6),
Sbirthdate DATE,
Smajor VARCHAR(40)
);

参照完整性(代码)

一个键参照了别的表,成为了外码,叫做参照完整性。

实例:定义SC中的参照完整性。

1
2
3
4
5
6
7
8
9
10
11
12
CREATE TABLE SC
( Sno CHAR(8),
Cno CHAR(5),
Grade SMALLINT,
Semester CHAR(5),
Teachingclass CHAR(8),
PRIMARY KEY(Sno, Cno), /*在表级定义实体完整性*/
FOREIGN KEY(Sno) REFERENCES Student(Sno),
/*在表级定义参照完整性,Sno是外码,被参照表是Student*/
FOREIGN KEY(Cno) REFERENCES Courses(Cno)
/*在表级定义参照完整性,Cno时外码,被参照表是Course*/
);

用户定义的完整性(代码)

使用CHECK()使用判断条件进行检查。

例子Student表的Ssex只允许取“男”或“女”。

1
2
3
4
5
6
7
CREATE TABLE Student
( Sno CHAR(8) PRIMARY KEY,
Sname CHAR(20) NOT NULL,
Ssex CHAR(6) CHECK(Ssex IN('男', '女')),
Sbirthday Date,
Smajor VARCHAR(40)
);

例子🌰 - 2SC表的Grade的值应该在0 ~ 100

1
2
3
4
5
6
7
8
9
CREATE TABLE SC
( Sno CHAR(8),
Cno CHAR(5),
Grade SMALLINT CHECK(Grade>=0 AND Grade <= 100),
Semester CHAR(5),
Teachingclass CHAR(8),
PRIMARY KEY(Sno) REFERENCES Student(Sno),
FOREIGN KEY(Cno) REFERENCES Course(Cno)
);

三个范式

  • 第一范式/1NF:一个二维表,每个分量是不可分的数据项。
  • 第二范式/2NF:每一个非主属性完全函数依赖于任何一个候选码。
  • 第三范式/3NF:每一个非主属性既不传递依赖于码,也不部分依赖于码。

数据库设计的特点

  1. 重视基础数据:“三分技术,七分管理,十二分基础数据”是数据库设计的第一个特点。
  2. 数据库设计和数据处理设计相结合:这是数据库设计的第二个特点。

数据库设计的基本步骤

这个强调过至少两次,大概率考。

分为以下六个阶段,其中需求分析阶段最难、最耗时间

  1. 需求分析阶段
  2. 概念结构设计阶段
  3. 逻辑结构设计阶段
  4. 物理结构设计阶段
  5. 数据库实施阶段
  6. 数据库运行和维护阶段

数据字典

数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实和完善

数据字典常包括:

  1. 数据项
  2. 数据结构
  3. 数据流
  4. 数据存储
  5. 处理过程

概念模型

概念模型的主要特点是:

  1. 能真实、充分地反映现实世界
  2. 易于理解
  3. 易于更改
  4. 易于向关系模型、网状模型、层次模型等各种数据模型进行转换

E-R 模型⭐️

实体之间的联系

实体之间的联系:

  1. 一对一联系(1:1)
  2. 一对多联系(1:n)
  3. 多对多联系(m:n)
截屏2025-01-01 14.53.00

E-R 图

  1. 实体型用矩形表示,矩形框内写明实体名。
  2. 属性用椭圆形表示,并用五向边将其与相应的实体型连接起来。
  3. 联系用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标注联系的类型(如1:1、1:n或m:n等)。

具体步骤见书本P226

查询处理四个阶段

关系数据库管理系统的查询处理可以分为4个阶段:

  1. 查询分析
  2. 查询检查
  3. 查询优化
  4. 查询执行

查询优化概述

优化器为什么做得更好的四个原因:

  1. 优化器可以从数据字典中获取更多统计信息
  2. 如果数据库的物理统计信息改变了,系统可以自动对查询进行重新优化以选择相适应的执行计划
  3. 优化器可以考虑数百种甚至数千种不同的执行计划
  4. 优化器中包含很多复杂的优化技术

事务的ACID特性

事务具有四个特性,原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持续性(durability)。这四个特性可以简称为ACID特性

  1. 原子性:事务是数据库的逻辑工作单位,事务的原子性指事务中包括的诸操作要么都做,要么都不做。
  2. 一致性:事务执行的结果必须是使数据库从一个一致性状态转为另一个一致性状态。
  3. 隔离性:事务的隔离性指一个事务的执行不能被其他事务干扰,即一个事务的内部操作及使用的数据对。
  4. 持续性:事务的持续性也成永久性,指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的,接下来的其他操作或故障不应该对其执行结果有任何影响。

故障的种类

数据库系统中可能发生各种各种各样的故障,大致可以分为以下几类:

  1. 事务内部的故障:事务的故障意意味着事务没有达到预期的终点。
  2. 系统故障:系统故障是指造成系统停止运转的任何事件,使得系统要重新启动。
  3. 介质故障:把系统故障称为软故障、介质故障称为硬故障

介质故障就是物理层面的故障,如磁盘损坏、磁头碰撞。

  • 标题: 数据库系统概论期末整理
  • 作者: Shen Ying
  • 创建于 : 2024-12-31 13:10:31
  • 更新于 : 2025-01-02 17:02:32
  • 链接: https://shenying.online/2024/12/31/数据库系统概论期末整理/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论