一、关系数据结构及形式化定义 1、关系模式的数据结构 关系模式的数据结构非常简单,只包含单一的数据结构:关系 2、形式化定义 域:一组具有相同数据类型的值的集合 笛卡尔积 关系 候选码:若关系中的某一属性组能唯一地标识一个元组,则称该属性组为候选码
关系模式的数据结构非常简单,只包含单一的数据结构:关系
域:一组具有相同数据类型的值的集合
笛卡尔积
关系
候选码:若关系中的某一属性组能唯一地标识一个元组,则称该属性组为候选码
主码:若一个关系有多个候选码,则选定其中一个为主码
候选码的诸属性成为主属性,不包含在任何候选码中的属性称为非主属性或非码属性
全码:关系模式的所有属性是这个关系模式的候选码,称为全码
关系类型:基本关系(基本表/基表)、查询表、视图表
连接:
等值连接:在笛卡尔积中选取两属性值相等的那些元组。
自然连接:等值连接的基础上,去掉重复的属性列
外连接:把舍弃的元组也保存在结果中,而在其他属性上填空值。如果只把左(右)边关系中要舍弃的元组保留就叫做左(右)外连接。
具体实例:
实体完整性规则:若属性(指一个或一组属性)A 是基本关系 R 的主属性,则 A 不能取空值
外码:设 F 是基本关系 R 的一个或一组属性,但不是关系 R 的码。 Ks 是基本关系 S 的主码。 如果 F 与 Ks 相对应,则称 F 是 R 的外码。如下图:
实例:学生(学号,姓名,性别,专业号)
专业(专业号,学分,授课老师)
上面的学生关系的”专业号“属性与专业关系的主码”专业号“相对应,因此”专业号“属性是学生关系的外码
参照完整性规则:若属性(或属性组)F 是基本关系 R 的外码,它与基本关系 S 的主码 K 相对应(基本关系 R 和 S 不一定是不同的关系),
则对于 R 中每个元组在 F 上的值必须为:
或者取空值(F 的每个属性值均为空值);
或者等于 S 中某个元组的主码值。
实例:如上面的例子中,学生关系中每个元组的”专业号“属性只能取下面两类值:
空值:表示尚未给该学生分配专业
非空值:这时该值必须是专业关系中元组”专业号“的值,表示该学生不可能分配到一个不存在的专业中。
即被参照关系”专业“中一定存在一个元组,它的主码值等于该参照关系”学生“中的外码值。
用户定义完整性就是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。
例如某个属性必须取唯一值、某个非主属性也不能取空值等等。