任何人都知道关系数据库系统中的级联事件?它是如何工作的,它如何帮助以及是否有缺点。谢谢。RDBMS数据完整性问题
0
A
回答
1
级联事件真的很简单。例如,假设您的User
表具有属性和主键username
,而0123'表的属性为username
和email address
。现在很有可能我们可能会将的Email
作为User
的参考(外键)到username
,因为我们希望每个有电子邮件的用户也都在我们的User
表中。现在想想如果你在User
中删除了一个用户会发生什么。是否应删除Email
中的所有匹配行?如果不是,你会怎么做?一些DBMS会抛出一个错误,说“你不能这么做!引用存在,我们不知道该怎么处理它们!”。这是级联事件的来源。如果DMBS支持级联事件,则可以选择指定DMBS是否实际引发该错误,或者可能删除所有匹配(在Email
中的username
)行,因此没有“悬挂“引用。这被称为级联删除。
还有其他级联选项!如果我们尝试将User
中的username
更新为其他内容,则会发生另一个问题。没有级联选项,如果在Email
中有匹配的行,我们可能会引发错误。但是通过级联选项,我们可以选择使用新的username
自动更新Email
中的username
。这就是所谓的级联更新。
这些是两个主要的,但绝不是现有的一些DBMS中存在的“级联”选项。
如果有帮助,可以将“级联”修改看作“递归”修改,因为它们是同义词,是“级联”的含义。修改“级联”到使用相同属性的其他表。
想想这个功能的优缺点。我们现在可以指定我们希望在不同表格中将“级联”更改为属性时想要发生的事情。允许这些功能的一个可能的缺点是,我们现在有机会引起比我们想象的更大规模的修改(取决于设计)。在User
中更改username
可能会导致不同表中的更改Email
,即使我们不打算!
希望这会有所帮助。
相关问题
- 1. 数据完整性问题
- 2. 数据完整性问题C#
- 3. 缓存完整性问题
- 4. ASP.net web应用程序数据完整性问题
- 5. 排序页面时的数据库完整性问题
- 6. 如何使用domdocument处理数据完整性问题?
- 7. 我的RDBMS或我的应用程序句柄数据库参照完整性?
- 8. 修复数据完整性
- 9. 数据完整性攻击
- 10. MySQL数据的完整性?
- 11. 参考数据完整性
- 12. Rails和数据完整性
- 13. HTTPS和数据完整性
- 14. 完整的数据库完整性(5倍多表)vs模拟rdbms中的oo概念
- 15. db2参照完整性问题
- 16. 列检查约束完整性问题
- 17. 在RDBMS中存储完整的图形
- 18. 用数字检查数据完整性
- 19. 数据完整性和限制
- 20. Spring JPA - 数据完整性关系
- 21. MongoDB - 自动维护数据完整性
- 22. 数据库设计完整性检查
- 23. 猫鼬和数据完整性
- 24. 最佳数据库完整性?
- 25. 请求验证/数据完整性
- 26. #SQL服务器数据完整性表?
- 27. Filemaker Web发布和数据完整性
- 28. 在Drupal中保留数据完整性:
- 29. Google表格后端数据完整性
- 30. 需要数据库完整性帮助