3、什么是关系的实体完整性规则?举例说明。
关系模型的完整性约束是指关系或关系之间应该满足的约束条件,以保证数据库中数据的完整性。关系模型的完整性约束有三种:实体完整性、参照完整性和用户定义完整性。实体完整性和参照完整性是关系模型必须满足的实体性约束条件,由数据库管理系统自动完成。实体完整性规则是指主码的值必须唯一,且任何组成部分都不能取空值。
例如,学生选课的关系选课(学号,课程号,成绩)中,学号和课程号共同组成为主关键字,则学号和课程号两个属性都不能为空。因为没有学号的成绩或没有课程号的成绩都是不存在的。
4、什么是关系的参照完整性规则?举例说明什么情况下外码可以取空值,什么时候不可以?
如果属性组F是关系R的外码,且与关系S的主码相对应(R和S可以相同),则关系R中每个元组在F上的值要么为空值,要么等于S中某个元组的主码值。
例如,在购买记录关系中,顾客编号是外码,对应顾客关系中的主码,其取值必须为顾客关系中的某个顾客编号,且顾客编号不能取空值,否则违背实体完整性约束。
假设有如下两个关系:
员工(员工编号,姓名,年龄,性别,部门编号)
部门(部门编号,部门名称,责任人姓名)
各关系主码用下划线标注,外码用删除线标注。在员工关系中,部门编号是外码,对应部门关系的主码。此时,员工关系中的部门编号可以取值为部门关系中某个元组的主码值,也可以取空值,表示该员工目前暂时还未分配到部门。
5、设有一个简单的教学管理数据库,其关系模式为:
学生(学号,姓名,专业,年龄)
课程(课程号,课程名,学分,先行课课程号)
选修(学号,课程号,成绩)
用关系代数完成如下查询:
(1)查询“通信工程”专业的所有学生信息。
(2)查询所有课程的课程号和学分。
(3)查询学生张珊所选课程的课程号及成绩。
(4)查询选了所有课程的学生的学号。
答:(1)π学号,姓名,专业,年龄(σ专业="通信工程"(学生))
(2)π课程号,学分(课程)
(3)π课程号,成绩(σ姓名=“张珊”(选修))<>学生<>课程
(4)π学号(选修)÷(课程)<>学生