数据库原理及应用相关整理

基础

按抽象程度划分的三大世界如下

  1. 现实世界
  2. 信息世界(第一层抽象)
  3. 数据世界(第二层抽象又称计算机世界)

三大世界的术语对应如下表

其中数据项是最小操作单位

现实世界 信息世界 数据世界
个体 实体 记录
特征 属性 数据项
全体 实体集 文件
关系 概念模型 逻辑模型

管理技术的三个阶段如下

  1. 人工管理

  2. 文件系统

    文件系统存在的缺陷如下

    • 冗余(Redundancy)

      冗余存在于文件系统也存在于数据库系统

    • 不一致(Inconsistency)

    • 弱联系(Poor Relationship)

  3. 数据库系统

    数据独立性最高与文件系统的主要区别体现于数据集成化

数据库(Database)

长期存储于计算机内有组织且统一管理的相关数据的集合

在数据库中存储的是数据及数据间的联系

数据模型(一般指逻辑模型)可分为如下两类

  • 概念模型面向客观世界独立于计算机系统
  • 逻辑模型面向数据库主要用于DBMS的实现

数据模型的基本组成如下

  • 数据结构
  • 数据操作
  • 约束条件

三大基本数据模型及其优缺点如下表

其中关系模型是主流的数据模型

数据模型 优点 缺点 备注
层次 1. 简单清晰
2. 效率高
3. 良好的完整性支持
1. 现实联系是复杂的
2. 对插入删除操作限制较多
3. 查询子女比经由双亲
层次序列即树的先序遍历
网状 1. 更为直接地描述现实世界
2. 性能良好且存取效率高
1. 结构复杂
2. DDLDML复杂
3. 数据独立性差
首记录即树根
属记录即树叶
关系 1. 坚实的数学理论基础
2. 实体联系皆能二维表表示
3. 数据独立性高
查询效率低 元组即行属性即列
元数即模型中属性的个数

此外还有以对象为基本结构的面向对象数据模型

数据定义语言(DDL; Data Definition Language)

定义结构SQL中的CREATEDROP等语句

数据操控语言(DML; Data Manipulation Language)

操控记录SQL中的INSERTDELETE等语句

数据控制语言(DCL; Data Control Language)

权限控制SQL中的GRANTREVOKE等语句

数据库系统(DBS; Database System)

包括数据库管理系统数据库管理员相关的硬件与应用程序和用户等

数据库管理系统(DBMS; Database Management System)

应用和操作系统间的一层管理软件是应用与数据库的接口

数据库管理员(DBA; Database Administrator)

负责三级模式结构的定义和修改控制数据整体结构

三级模式

即视图

  • 外部模式(External Schema)又称用户模式或子模式是从用户和应用的角度来观察的数据库其设计是通过设计应用程序所必要的数据来实现的
  • 概念模式(Conceptual Schema)又称模式或逻辑模式是确定数据库理论结构的阶段在关系模型中其设计是通过E-R模型把握现实世界进而规范化表格来实现的
  • 内部模式(Internal Schema)又称存储模式是从计算机内部看到的数据库是确定数据库物理构造的阶段其设计通过设计数据库高速检索方法来实现

两级映像

即对应规则指出模式的双方是如何进行转换的

  • 外部—概念模式映像体现逻辑数据独立性
  • 概念—内部模式映像体现物理数据独立性

关系模型

E-R(Entity-Relationship)模型

  • 实体可被人们识别客观存在且可用作区别的事物用矩形表示

  • 关系实体间的关系抽象用菱形表示

  • 属性实体或关系所具有的特征用椭圆表示

    属性的值称为分量其可取的范围称为

完整性规则

  • 实体完整性主键值不可空
  • 参照完整性外键须有效或空
  • 用户自定义完整性

实体完整性和参照完整性合称关系完整性规则是必须满足的

关系代数

其特点为集合操作五个基本操作为并集差集笛卡尔积选择和投影又称完备操作集即

选择(Selection)

调取表中某行的运算

投影(Projection)

调取表中某列的运算常用于去重

假定有三个属性下例检索至少含两个属性2的元组的属性1 由基本操作衍生的组合操作如下表

组合操作 语法 替换 说明
交运算
Intersection

-
条件连接
-Join

(其中的元数)

挑选第分量和第分量
满足运算的元组
等值连接的连接
自然连接
Nature Join
须有值域相同的公共属性
经由操作使得连接后
每个公共属性只保留一列
半连接
Semi Join
-
除法
Division
- 由在中不出现于的属性
中所有元组在中对应相同的元组构成

表格规范化(Normalization)

即对关系模式不断分解直到达到如下的某一范式(Normal Form)的过程其中分解必须遵循规范化原则即保持原有依赖关系和无损连接

  • 非范式没有去除重复数据的表格

    关系型数据库不能使用非范式

  • 第一范式分割去重使一栏只有一个项目

  • 第二范式通过主键而非其部分的值确定其他列的数值即消除主键部分函数依赖

    完全函数依赖(Functionally Dependent)

    通过某(些)列的值才能确定其他列的数值

    部分函数依赖即通过主键的部分就足以确定其他列的数值

  • 第三范式只能通过主键确定其他列的数值即消除主键传递依赖

    传递依赖(Transitively Dependent)

    通过某(些)列的值能间接地确定其他列的数值

  • BC(Boyce Codd)范式消除候选键的部分和传递函数依赖

结构化查询语言(SQL; Structured Query Language)

SQL语句对大小写不敏感

定义表

创建新表如下例

1
2
3
4
5
CREATE TABLE Tbl(
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
PRIMARY KEY(id)
);

There can be only one auto column and it must be a key.

删除表如下例

1
DROP TABLE Tbl;

定义主键

补充定义主键如下例

其中name为键的标识符

1
ALTER TABLE Tbl ADD [CONSTRAINT name] PRIMARY KEY(Attr1, ...);

SQL Server主键默认标识符为PK__Tbl外键默认标识符为FK__Tbl__Attr通过右击菜单的索引/键查看主键关系可查看外键

撤销主键定义如下例

1
ALTER TABLE Tbl DROP CONSTRAINT name;
1
ALTER TABLE Tbl DROP PRIMARY KEY;

定义外键

补充定义外键如下例

1
2
3
ALTER TABLE Tbl ADD [CONSTRAINT name] FOREIGN KEY(Attr1, ...)
REFERENCES RefTbl(Attr1, ...)
[ON DELETE Rule] [ON UPDATE Rule];

其中更新/删除的规则如下表

更新/删除规则 说明
CASCADE 级联即子表同步更新/删除
SET NULL 置空即设置为空值
RESTRICT/NO ACTION 不操作若子表有匹配记录则不允许操作
SET DEFAULT 设置为默认值

撤销外键定义如下例

1
ALTER TABLE Tbl DROP CONSTRAINT name;
1
ALTER TABLE Tbl DROP FOREIGN KEY name;

查询

查询的嵌套称子查询其分类如下

  • 单行子查询即子查询返回的记录有且仅有一条时可使用=进行筛选
  • 多行子查询即返回记录不只有一条时必须用IN操作符进行筛选