关系数据库中的数据独立性

6 database relational-database

任何人都可以解释在关系数据库中如何确保数据独立性?什么说如果数据库结构发生变化,用户什么都不会改变?

例如,我有关系R(并创建了一个使用此关系的应用程序),数据库管理员决定将R分解为R1和R2.如何确保最终用户的应用程序不可变性?

Car*_*ron 5

我在数据库课上问了自己完全相同的问题。

根据Codd 的 12 条规则,数据独立有两种:

  • 物理数据独立性要求物理级别的更改(如数据结构)对使用数据库的应用程序没有影响。例如,假设您决定停止在您的表中使用哈希索引并决定使用 B 树索引:您对这个表执行查询的应用程序根本不需要更改。
  • 逻辑数据独立性指出逻辑级别(表、列、行)的更改不会对访问数据库的应用程序产生影响。正如您已经注意到的,此功能更难实现物理数据独立性,但仍有一些情况下此功能有效。例如,如果您将表、列或行添加到当前方案中,则已经在工作的查询根本不会受到影响。