1. 关系数据结构及形式化定义
1.1. 关系
关系模型是建立在集合代数的基础上的。
1.1.1. 域(domain)
域是一组具有相同数据类型的值的集合
e.g.自然数、整数等
1.1.2. 笛卡尔积(cartesian product)
给定一组域,允许期中某些域是相同的
笛卡尔积是:
每一个称为一个n元组,或者简称元组。
每一个称为一个分量
一个域允许的不同取值的个数称为这个域的基数(也就是集合中有多少个元素)
笛卡尔积的基数M是Di的基数的乘积
=……={A,B}
=……={1,2}
=……={a,b,c}
={
(A,1,a),(A,1,b), (A,1,c),(A,2,a),(A,2,b), (A,2,c)
(B,1,a),(B,1,b), (B,1,c),(B,2,a),(B,2,b), (B,2,c)
}
改笛卡尔积的基数是,也就是说,一共有个元组
1.1.3. 关系(relation)
定义在上的笛卡尔空间的一个(有限)子集称其为是一个关系,用表示。
字母 | 含义 |
---|---|
R() | 关系的名字 |
n | 关系的目或者度(degree) |
t | 关系中的每个元素是关系中的元组 |
n=1 | 单元关系/一元关系 |
n=2 | 二元关系 |
关系和笛卡尔积类似,都是一张二维的表,每一列代表一个域(可以相同),每一列去一个名字(称为属性)加以区分。n目代表n个属性。
若某一属性组可以唯一的标识一个元祖,称为候选码
若有多个候选码,选一个作为主码;
若所有属性都是候选码,叫做全码。
候选码的属性:主属性
不包含在任何候选码中的属性:非主属性/非码属性
1.1.4. 基本关系的性质
列是同质的(Homogeneous)
不同的列可出自同一个域;其中的每一列称为一个属性;不同的属性要给予不同的属性名
列的顺序无所谓,,列的次序可以任意交换
任意两个元组的候选码不能相同
行的顺序无所谓,行的次序可以任意交换
分量必须去原子值,即关系的每一个分量必须是一个不可分的数据项
1.2. 关系模式
关系的描述称为关系模式
R(U,D,DOM,F)
字母 | 表示含义 |
---|---|
R | 关系名 |
U | 组成该关系的属性名集合 |
D | U中属性所来自的域 |
DOM | 属性向域的映象集合 |
F | 属性间数据的依赖关系的集合 |
1.3. 关系数据库
关系数据库的型也称为关系数据库模式,是对关系数据库的描述。
关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就成为关系数据库。