我们强烈建议你参考以下帖子, 以此作为前提。
DBMS |关系模型介绍和Codd规则
DBMS |关系模型中的键(候选, 超级, 主要, 替代和外部)
异常现象
在引用和引用关系中可能会发生不同类型的异常, 可以将其讨论为:
文章图片
插入异常:如果在引用关系中插入了一个元组, 但是在引用的属性中不存在引用属性的值, 则不允许在引用关系中插入。例如, 如果我们尝试在STUDENT_COURSE中插入STUD_NO = 7的记录, 则不允许这样做。
删除和更新异常:如果从引用关系中删除或更新元组, 并且引用属性在引用关系中被引用属性使用, 则不允许从引用关系中删除元组。例如, 如果我们尝试从STUDENT中删除STUD_NO = 1的记录, 将不允许这样做。为了避免这种情况, 可以在查询中使用以下内容:
- ON DELETE / UPDATE SET NULL:如果从引用关系中删除或更新元组, 并且引用关系中的引用属性使用了引用属性值, 则将从引用关系中删除/更新元组, 并将引用属性的值设置为NULL。
- 在删除/更新级联上:如果从引用关系中删除或更新元组, 并且引用属性在引用关系中被引用属性值使用, 它将从引用关系和引用关系中删除/更新元组。