Post

数据库复习

数据库复习

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 消除非平凡且非函数依赖的多值依赖

数据库设计

数据库设计是指:给定应用环境,设计优化的数据库模式、外模式和内模式,并据此建立数据库及其应用系统。

数据库设计的六个阶段

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

数据字典

数据字典是对数据库中数据的描述。

数据字典的五个部分

  • 数据项
  • 数据结构
  • 数据流
  • 数据存储
  • 处理过程

数据库维护的四个方面

  • 转储和恢复
  • 安全性、完整性控制
  • 性能的监督、分析和改造
  • 重组和重构
This post is licensed under CC BY 4.0 by the author.