关系模型=关系数据结构+关系操作集合+关系完整性约束
关系数据结构:关系、关系模式、关系数据库
关系
关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域,每一列称为一个属性,不同的属性要给予不同的属性名
关系分三类:基本表(基本关系)、查询表、视图表
其中基本表有如下性质:
① 列是同质的 ② 不同的列可出自同一个域
③ 列的顺序无所谓,列的次序可以任意交换
⑤ 行的顺序无所谓,行的次序可以任意交换
④ 任意两个元组的候选码不能相同
⑥ 分量必须取原子值(属性的每条记录不能再分割)
码:候选码、全码、主码、主属性、非主属性
关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码;
候选码里包含一个或多个属性,这些属性叫作主属性,其他属性叫非主属性;
一个关系中可能有一个或多个候选码,选定一个作为主码。
有时候会出现最极端的情况:关系模式的所有属性组是这个关系模式的候选码,称为全码
比如R(A,B,C),F={A→B, BC→A},
AC和BC都是它的候选码,原因:AC+ =ABC, BC+ =ABC,
但我们只能选一个,AC或BC为主码,
而ABC都是主属性,所以非主属性可以无
这个关系明显满足3NF(主属性都没有),但是不可能满足BCNF。
原因:BCNF在3NF的基础上,额外要求主属性没有部分依赖和传递依赖。明显,在以AC作为主码时,主属性B依赖A,即B部分依赖AC,所以不满足BCNF。
推广:关系模式R中全是主属性,R的最低范式是 3NF,最高满足 BCNF
解析:没有主属性,肯定满足3NF,而但R=(A,B)二目主属性,没有传递依赖,是BCNF
关系模式
关系模式是对关系的描述;关系模式是型,关系是值
关系模式和关系的区别:
关系模式:对关系的描述、静态的、稳定的
关系:关系模式在某一时刻的状态或内容、动态的、随时间不断变化的
关系数据库
在一个给定的应用领域中,所有关系的集合构成一个关系数据库
关系数据库的型: 关系数据库模式——对关系数据库的描述。
关系数据库的值: 关系数据库——关系模式在某一时刻对应的关系的集合
关系操作集合
关系数据库中五种基本关系代数运算:∪,-,×,π,σ
关系的完整性约束=实体+参照+用户定义
关系模型必须满足的完整性约束条件,称为关系的两个不变性,应该由关系系统自动支持
实体完整性:主属性不为空/主码不为空
参照完整性:F是表S的主码、表R的外码,要求表R上的F要么为空,要么为S的某个主码值
用户定义的完整性
应用领域需要遵循的约束条件,体现了具体领域中的语义约束