数据库复习
1.1 数据库基础
数据
数据是描述事物的符号记录。
数据库
数据库是长期存储在计算机内有组织,可共享的大量数据的集合。
数据库管理系统
数据库管理系统是数据管理软件;也是基础软件。
主要功能:数据的定义、组织、存储、管理、操纵,数据库的事务管理、运行管理、建立和维护,其他。
数据库系统
数据库系统由
- 数据库及其管理系统,管理员
- 应用系统
组成。
数据库系统的基础与核心:数据模型。
数据库系统中数据的特点
- 结构化
- 共享性强
- 独立性强
- 统一由数据库管理系统管理
数据库系统带来的影响
从以软件为中心,到以数据为中心的迁移。
1.2 数据模型
数据模型
数据模型是对现实世界数据特征的抽象;是数据库系统的基础与核心。
数据建模是“把现实世界具体事物抽象组织为数据模型”的过程。
数据模型三要素:
- 数据结构
- 数据操纵
- 完整性约束
关系模型
关系模型是一种数据模型。从用户观点看,就是一张规范化的二维表。
关系模型要求关系必须规范化(即不能表中套表)。
优点
- 建立在严格的数学概念基础上
- 概念单一
- 存取路径对用户隐藏
缺点
- 效率低,需要优化,而这给开发数据库管理系统又带来难度
1.3 三级模式,两级映像
三级模式
- 内模式
- 模式
- 外模式
模式是数据库的结构。模式是全局的,逻辑的。实例是模式的一个具体的值。
外模式也称子模式,是数据库用户能看见的局部数据的逻辑结构。外模式提高了逻辑独立性。
内模式也称物理模式,是数据在数据库内部的组织方式。内模式是全局的,物理的。
两级映像
两级映像是“外模式/模式映像”与“模式/内模式映像”。其使数据和程序具有逻辑独立性和物理独立性。
2 关系模型
2.1 结构
关系
关系的三种类别:
- 基本关系
- 查询结果
- 视图
基本关系的性质:
- 列是同质的,即同一列的值来自同一个域。
- 不同的列可以用同一个域。
- 行和列是无序的。
- 码是唯一的。
- 表不能嵌套。
关系模式
要定义一个关系模式,可用:
\[R(U, D, \text{DOM}, F)\]为了方便,也可以使用
\[R(U)\]或
\[R(A_1, A_2, \dots, A_n)\]其中,\(R\) 为关系名,\(U\) 为属性名的集合,\(A_1, A_2, \dots, A_n\) 为属性名。
候选码是能唯一标识一个元组的最小属性集。
可从候选码中挑选一个作为主码,此时需要在其下面加下划线。如 \(\text{STUDENT}(\underline{\text{ID}}, \text{AGE}, \text{NAME})\)。
在极端情况下,候选码包含所有属性,此候选码称为全码,
所有候选码的所有属性均为主属性,其他称为非主属性或非码属性。
关系数据库
关系数据库模式是关系模式的集合。关系数据库是关系的集合。
2.2 操纵
关系的基本操作
关系的 5 个基本操作:
- 选择
- 投影
- 并
- 差
- 笛卡尔积
关系还有其他操作:
- 连接
- 除
- 交
关系完备性是指关系数据语言能够表示关系代数可以表示的查询。
2.3 完整性约束
See Integrity Constrains on Databases.
2.4 关系代数
参考关系的基本操作。
此外,还需补充一些符号:
- 且/与:\(\wedge\)
- 或:\(\vee\)
选择
选择会筛选所有满足条件的行。
语法:\(\sigma_\text{predicate}(R)\)
投影
投影会选出某些列。
语法:\(\Pi_{A_p, A_q, \dots, A_r}(R)\)
并/差/交
求并集/差集/交集。
语法:
- 并:\(R \cup S\)
- 差:\(R - S\)
- 交:\(R \cap S\)
笛卡尔积
得到所有两两配对的元组。
语法:\(R \times S\)
连接
若有相同的列名,则尝试合并。在合并中,若两值相等则保留并去除重复列,否则舍弃。
语法:\(R \Join S\)
SQL的 5 个特点
- 功能综合
- 数据操纵非过程化
- 操作方式面向集合
- 语法结构统一
- 语言简洁
视图
视图是从一个或多个基本表导出的表。
视图的作用
- 保护机密数据
- 提高数据的逻辑独立性
- 简化用户操作
见 视图。
数据库的安全性
数据库的安全性是指保护数据库,以防不合法使用所造成的数据泄露、篡改或破坏。
数据库的不安全因素
- 非授权用户对数据库的恶意存取和破坏
- 数据库中重要或敏感的数据被泄露
- 安全环境的脆弱性
用户身份鉴别
- 静态口令识别
- 动态口令识别
- 生物特征识别
- 智能卡识别
- 入侵检测
自主存取控制和强制存取控制
强制存取控制是对数据本身进行密级标记,无论数据如何复制,标记和数据是一个不可分的整体。只有符合密级标记要求的用户才可以操纵数据,从而提供了更高级别的安全性。
见 Privileges。
触发器
触发器是用户定义在关系表上的一类由事件驱动的特殊过程。
用途:触发器类似于约束,但是比约束更加灵活,可以实施更为复杂的检查和违约操作。
见 Trigger。
范式
各个范式的定义
- 1NF: 属性是原子的
- 2NF: 消除非主属性对码的部分依赖
- 3NF: 消除非主属性对码的传递依赖
- BCNF: 消除主属性对码的部分依赖和传递依赖
- 4NF 消除非平凡且非函数依赖的多值依赖
数据库设计
数据库设计是指:给定应用环境,设计优化的数据库模式、外模式和内模式,并据此建立数据库及其应用系统。
数据库设计的六个阶段
- 需求分析
- 概念结构设计
- 逻辑结构设计
- 物理结构设计
- 数据库实施
- 数据库运行和维护
数据字典
数据字典是对数据库中数据的描述。
数据字典的五个部分
- 数据项
- 数据结构
- 数据流
- 数据存储
- 处理过程
数据库维护的四个方面
- 转储和恢复
- 安全性、完整性控制
- 性能的监督、分析和改造
- 重组和重构