一、关系的形式化定义和概念
1. 关系上域的定义
-
域(Domain):一组具有相同类型的值的集合,又称为值域。用D表示。
整数、实数和字符串的集合都是域。
-
域中包含的值的个数称为域的基数,用m表示。
在关系中用域表示属性的取值范围。
2. 笛卡尔积的定义
给定一组域D1、D2…Dn,它们可以包含相同的元素,即可以完全不同,也可以部分或全部相同。
D1、D2…Dn的笛卡尔积为
D1 × D2 × Dn = {(d1,d2,…,dn)|di∈Di,i=1,2,…,n}
- 每一个元素(d1,d2,…,dn)中的每一个值di叫做一个分量(Component),di∈Di
- 每一个元素(d1,d2,…,dn)叫做一个n元组(n-Tuple),简称元组(Tuple)
- 笛卡尔积D1 × D2 × Dn的基数M(即元组(d1,d2,…,dn)的个数)为所有域的基数的累乘之积,即M=m1+m2+…+mi。
表现形式:二维表
二、关系的概念
**关系(Relation):**笛卡尔积D1 × D2 × Dn的任一子集称为定义在域D1、D2…Dn上的n元关系。记作R(D1,D2…Dn)。n是关系的目或度。
相关概念
- 在关系R中,当n=1时,称为单元关系。当n=2时,称为二元关系。以此类推。
- 关系中的每个元素是关系中的元组,通常用t表示,关系中的元组个数是关系的基数。
- 由于关系是笛卡尔积的子集,因此也可以把关系看成一个二维表。
- 具有相同关系框架的关系称为同类关系。
使用关系头和体定义关系
- 关系的头是由属性名的集合组成,不可变
- 关系的体由关系结构中的内容或数据组成,可变
三、关系的性质
一种规范化了的二维表中行的集合
- 每一列中的分量必须来自同一个域,必须是同一类型的数据。
- 不同的列可来自同一个域,每一列称为属性,不同的属性必须有不同的名字。
- 列的顺序可以任意交换,名字同时换。
- 关系中元组的顺序,即行的顺序可以任意交换。
- 关系中每一分量必须是不可分的数据项。
四、关系模式
- 关系是笛卡尔积的子集,子集由元组组成,关系模式需要指出元组的结构,即由哪些属性构成,属性取自哪一个域,属性与域之间的映射关系。
- 现实世界不断变化,关系模式的关系也不断变化,但是关系模式限定了关系的变化可能性,即关系的变化必须满足约束条件。
关系的描述称为关系模式(Relation Schema)。R(U,D,DOM,F),简记为R(U),
R(A1,A2,…, An),A为属性名。
- R 关系名
- U 属性名集合
- D 属性所来自的域
- DOM 属性向域的映像集合
- F 属性间数据的依赖关系集合
关系和关系模式的比较
关系模式 | 关系 |
---|---|
型 | 值 |
关系的框架 | 关系的值 |
关系表框架 | 关系表数据 |
对关系结构的描述 | 关系模式在某一时刻的状态或内容 |
静态的,稳定的 | 动态的 |
五、关系数据库和关系数据库模式
在给定领域中,所有实体以及实体之间的联系所对应的关系集合构成一个关系数据库。
关系数据库
- 型:关系数据库模式
- 值:关系数据库值
关系数据库模式
- 对关系数据库的描述,由若干域的定义以及在这些域上定义的若干关系模式构成。
- 描述了关系数据库的结构和框架。
关系数据库:在某一状态下对应的关系集合。描述了关系模式的内容,也称关系数据库实例。