我们强烈建议参考以下帖子作为先决条件。
数据库管理系统 |关系模型介绍和 Codd 规则
数据库管理系统 |关系模型中的键(候选键、超级键、主要键、备用键和外键)
异常
在引用和被引用关系中可能发生不同类型的异常,可以讨论为:
插入异常:如果一个元组被插入到引用关系中并且引用属性值不存在于被引用属性中,它将不允许在引用关系中插入。例如,如果我们尝试在 STUDENT_COURSE 中插入一条 STUD_NO =7 的记录,则不允许。
删除和更新异常:如果从引用关系中删除或更新元组,并且引用属性值被引用关系中的引用属性使用,则不允许从引用关系中删除元组。例如,如果我们尝试从 STUDENT 中删除 STUD_NO =1 的记录,则不允许。为了避免这种情况,可以在查询中使用以下内容:
- ON DELETE/UPDATE SET NULL:如果从引用关系中删除或更新元组并且引用属性值被引用关系中的引用属性使用,它将从引用关系中删除/更新元组并将引用属性的值设置为NULL。
- ON DELETE/UPDATE CASCADE:如果从引用关系中删除或更新元组,并且引用属性值被引用关系中的引用属性使用,则它也会从引用关系和引用关系中删除/更新元组。