用二维表表示实体集,用关键码表示实体间联系的数据模型称为关系模型。
域D1,D2,D3.....Dn上的笛卡尔积的子集称为在域D1,D2,D3.....Dn上的关系。关系的成员为元组。
关系具有以下特点:
- 关系可以看成是由行和列交叉组成的二维表格,它表示一个实体集
- 表中的一行称为一个元组,可用来表示实体集中的一个实体
- 表中的列称为属性,列名即为属性名,表中的属性名不能相同
- 列的取值范围称为域,同列具有相同的域,不同的列可以有相同的域。如性别的域是{男,女},职工年龄和工龄都为数据值域
- 表中任中两行(元组)不能相同
关系具有以下性质:
- 属性值是原子的,不可分解
- 没有重复元组
- 没有行序
- 理论上没有列序,为方便,在使用时有列序(如将一个或多个能唯一标识实体的列放在前面)
一个属性集能唯一标识元组,且不含多余属性,则这个属性集为关系的候选键。
若一个关系中有多个候选健,则选其中一个为关系的主键。
若一个关系R中含有另一个关系S的主键所对应的属性组F,则称F为外键。并称关系S为参照关系,关系R为依赖关系。
关系模型提供了三类完整性规则:实体完整性规则、参照完整性规则和用户定义的完整性规则。
- 实体完整性规则:关系中的元组的主键值不能为空(NULL)
- 参照完整性规则:如果属性集K是关系模型R1的主键,K也是关系模型R2的外键,那么在R2的关系中,K的取值能许两种可能,或者为空值,或者等于R1关系中的某个主键值。
- 用户定义完整性规则:这是针对具体数据的约束条件,由应用环境而定。