关系操作集合(续) 4)关系数据语言的特点 关系语言是一种高度非过程化的语言 能够嵌入高级语言中使用
关系操作集合(续) ◼ 4) 关系数据语言的特点 ◼ 关系语言是一种高度非过程化的语言 ◼ 能够嵌入高级语言中使用
3.关系的三类完整性约束 关系的完整性是指关系中数据值与其描述的应用对象 实际状态保证一致的约束条件 ■实体完整性 ■通常由关系系统自动支持 确保表中所有行的数据不重复(主属性不能取空值。) 例:选修(学号,课程号,成绩) “学号、课程号”为主码,则两个属性都不能取空值
3. 关系的三类完整性约束 ◼ 实体完整性 ◼ 通常由关系系统自动支持 确保表中所有行的数据不重复(主属性不能取空值。) 例: 选修(学号,课程号,成绩) “学号、课程号”为主码,则两个属性都不能取空值。 关系的完整性是指关系中数据值与其描述的应用对象 实际状态保证一致的约束条件
3.关系的三类完整性约束 引用完整性 确保关联之间数据的一致性,即确保进入一个表的数据 与相关的表之间数据同步 例:学生实体、专业实体以及专业与学生间的一对多联系 学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名) 外键(或叫外部关键字)是指一个表中的某个属性是另 个表的主关键字
3. 关系的三类完整性约束 引用完整性: 确保关联之间数据的一致性,即确保进入一个表的数据 与相关的表之间数据同步。 例: 学生实体、专业实体以及专业与学生间的一对多联系 学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名) 外键(或叫外部关键字)是指一个表中的某个属性是另 一个表的主关键字
3.关系的三类完整性约束 应用语义完整性: 确保数据库中的数据是有意义的。 般用数据类型和约束来保证。 用户定义后由系统支持 例:性别(男/女)
3. 关系的三类完整性约束 应用语义完整性: 确保数据库中的数据是有意义的。 ◼ 一般用数据类型和约束来保证。 ◼ 用户定义后由系统支持 ◼ 例:性别(男/女)
关系的完整性-实例 主关键字 学号姓名|年龄 课程号课程名… 学号课程号成绩…… 鲁。音 非。 学生情况表 课程表 学生修课表 修课表中不允许出现“学生”表中没有的学号,同时也不允许出现“课程” 表中没有的课程号,修课表中“学号”的值是在学生表的“学号”的值的子 集。修课表中的“课程号”的值也必须是课程表中“课程号”的子集。可 以通过定义外键来实现,定义修课表中的学号是学生表的外键,修课表中的 课程号是课程表的外键。注意是先有主关键字值,后有外键值
关系的完整性-实例 ◼ 修课表中不允许出现“学生”表中没有的学号,同时也不允许出现“课程” 表中没有的课程号,修课表中“学号”的值是在学生表的“学号”的值的子 集。修课表中的“课程号” 的值也必须是课程表中“课程号”的子集。可 以通过定义外键来实现,定义修课表中的学号是学生表的外键,修课表中的 课程号是课程表的外键。注意是先有主关键字值,后有外键值 学号 姓名 年龄 …… …… …… …… …… 课程号 课程名 …… …… …… …… 学号 课程号 成绩 …… …… …… …… 学生情况表 课程表 学生修课表 主关键字 ➔