域:
具有相同数据类型的值的集合
笛卡儿积:
给定一组域D1,D2,...Dn( 可相同),它们的笛卡儿积为:
D1×D2×... × Dn={(d1,d2,...,dn)|di ∈ Di ,i=1,2,..,n}
其中每一个元素(d1,d2,...,dn)叫做一个n元组。元素中的每个值di叫做一个分量。(所有域的所有取值的一个组合,不能重复)
笛卡尔积举例:
D1={张清玫,刘逸}
D2={计算机专业,信息专业}
D3={李勇,刘晨,王敏}
则:D1×D2 × D3=
{(张清玫,计算机专业,李勇),
(张清玫,计算机专业,刘晨),
(张清玫,计算机专业,王敏),
(张清玫,信息专业,李勇),
(张清玫,信息专业,刘晨),
(张清玫,信息专业,王敏),
(刘逸,计算机专业,李勇),
(刘逸,计算机专业,刘晨),
(刘逸,计算机专业,王敏),
(刘逸,信息专业,李勇),
(刘逸,信息专业,刘晨),
(刘逸,信息专业,王敏)}
关系的性质
根据对关系的扩充与限定,基本关系具有下列性质:
1,列是同质的,即每列的属性值是同一类型的数据,来自同一个域。
2,不同的列可出自同一个域,每一列称为一个属性,每个属性必须有不同的属性名。属性名可以标识不同的属性。
3,列的顺序可以任意交换。
4,任意两个元组不能完全相同,由主键标识。
5,元组的顺序可以任意交换。
6,分量必须取原子值,即每一个分量必须是不可分的数据项(1NF)。不允许表中表的情况。
关系包含关系模式(relationschema)和关系实例(relationinstance)。关系实例是个表,关系模式描述表的列头信息。
关系模式:
对关系的描述称为关系模式。可以形式化的表示为:R(U,D,dom,F)
其中:
R:关系名
U:组成关系的属性名集合
D:属性来自的域
dom:属性到域的映射
F:属性间数据的依赖关系
简记:
R(U),或者R(A1,A2,…An)
关系完整性:(三个)
实体完整性(EntityIntegrity)
规则: 若属性A是基本关系R的主属性,则属性A 不能为NULL。
如:student(name,sex,addr)中name不能为空。
说明:实体完整性是对基本关系而言的。通常对应现实 世界的一个实体。如学生关系。现实中,实体是 可以区分的,他们具有唯一的标识。
关系模型中用主键区分不同的元组。主码中的属性不能为“空”。“空”表示不知道或不确定。
参照完整性
规则:
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks 相对应,则对于R中的每个元组在F上的值必须是:
或者取空值(F的每个属性均为空);
或者等于S中某个元组的主码值。
用户定义的完整性(User-definedIntegrity)
实体完整性和参照完整性是任何关系数据库系统都必须支持的。称为关系的两个不变性。
另外,不同的关系数据库根据应用的具体情况,往往需要一些特殊的约束条件。用户定义完整性即是指的这种约束条件。
比如某些属性间必须满足函数关系,某个属性的取值范围限定等。
关系代数:
选择
投影
连接