通过一个表,抽象出表的关系模式:
列是同质:即每一列中的分量来自同一域,是同一类型的数据
列位置互换性:区分一列是靠列名
行位置互换性:区分哪一行是靠某一或某几列的值(关键字/键字/码字 )
关系是以内容(名字或值)来区分的而不是属性在关系的位置来区分
关系的特性:
关系的任意两个元组不能完全相同。现实应用中,表(Table)可能并不完全遵守此特性
元组相同是指两个元组的每个分量都相同。
属性不可再分特性:又被称为关系第一范式。
候选码/候选键 :
关系中的一个属性组,其值能唯一标识一个元组,若从该属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选码。
主码/主键:
当有多个候选码时,可以选定一个作为主码。
DBMS以主码为主要线索管理关系中的名个元组。
主属性与非主属性:
包含在任何一个候选码中的属性被称作主属性,而其他属性被称作非主属性
最简单的,候选码只包含一个属性
最极端的,所有属性构成这个关系的候选码,称为全码。
外码/外键:
关系R中的一个属性组,它不是R的候选码,但它与另一个关系S的候选码相对应,则称这个属性组为R的外码或外键
两个关系通常是靠外码连接起来的。
实体完整性:
关系的主码中的属性值不能为空值。
空值:不知道或无意义的值。
意义:关系中的元组对应到现实世界相互之间可区分的一个个个体,这些个体是通过主码来唯一标识的;若主码为空,则出现不可标识的个体,这是不允许的。
参照完整性;
如果关系R1的外码Fk与关系R2的主码Pk相对应,则R1中的每一个元组的Fk值或者等于R2中某个元组的Pk值,或者为空值
意义:如果关系R1的某个元组t1参照了关系R2的某个元组t2,则t2必须存在.
用户自定义完整性:
用户针对具体的应用环境定义的完整性约束条件.
DBMS对关系完整性的支持:
实体完整性和参照完整性由DBMS系统白动支持
DBMS系统通常提供了如下机制:
(1)它使用户可以自行定义有关的完整性约束条件
(2)当有更新操作发生时,DBMS将自动按照完整性约束条件检验更新操作的正确性,即是否符合用户自定义的完整性。