数据库期末复习笔记第一弹!

# 关系模型与关系代数

# 基本概念

关系数据库 (relational database) 是一些表的集合。我们称一个为一个关系 (relation), 表中的每一称为一个元组 (tuple), 表中的每一称为一个属性 (attribute).

在数据库中,我们需要区分数据库模式 (database schema) 和数据库实例 (database instance). 前者是一个组织逻辑,而后者是前者实现的一个快照。类似地,我们称关系实例 (relation instance) 是一个关系 (表) 的快照。

数据库三要素:数据结构数据操作数据完整性约束

# 数据库与映射

数据库的实质是多重集上的映射。对于一个关系上的任一属性,我们称其的所有取值组成的集合为一个 (domain). 如果域中的元素是不可再分的,则称该域是原子的 (atomic).

建立一个数据库,一个重要要求是采用关系中的不同属性区分各个元组。这事实上是建立了数个属性值到单一元组的映射。

#

超码 (super key) 是一个或多个属性的集合,这些属性的组合可以使我们在一个关系中唯一地标识一个元组。若集合 KK 是一个超码,且 KK 的任一真子集都不是超码,那么称这样的最小超码为候选码 (candidate key).

我们用主码 (primary key) 这个术语来代表被数据库设计者选中的、主要用来在一个关系中区分不同元组的候选码。

若关系模式 r1r_1 的属性中包含关系模式 r2r_2 的主码,那么该属性称为参照 r2r_2外码 (foreign key).

# 模式图

下图是一个典型的模式图。

模式图中的视觉元素及含义如下:

视觉元素含义
矩形关系
下划线主码
箭头外码依赖

# 关系查询语言

# 关系代数