数据独立性

2025年6月3日 | 阅读 6 分钟
  • 数据独立性可以使用三层模式体系结构来解释。
  • 数据独立性是指能够在不改变数据库系统下一更高层模式的情况下修改某一层模式的特性。

数据独立性有两种类型

  • 逻辑数据独立性
  • 物理数据独立性
DBMS Data Independence

1. 逻辑数据独立性

  • 逻辑数据独立性是指能够在不改变外部模式的情况下改变概念模式的特性。
  • 逻辑数据独立性用于将外部层与概念视图分离。
  • 如果我们在数据的概念视图中进行任何更改,则数据的用户视图将不受影响。
  • 逻辑数据独立性发生在用户界面层。
  • 您可能需要修改概念模式以扩展数据库(通过添加更多实体、属性等)或缩小数据库(通过删除实体、属性等),但现有的模式不会改变。
  • 通过外部层和概念层之间的映射来吸收更改。 例如:考虑下表
DBMS Data Independence

在上面的例子中,很明显,如果在概念视图中将 SALARY 等新字段插入到 EMPLOYEE 表中,它不会影响用户从表中选择 Ename 和 ID 字段的外部视图。更改将通过外部视图和概念视图之间的映射以及视图定义来吸收。即使概念模式发生变化,引用外部视图的应用程序也必须继续工作。在支持逻辑独立性的 DBMS 中,只需要更改视图定义和映射。如果我们在概念级别对约束进行更改,那么这些更改也不会影响外部视图或应用程序。但是,并非概念视图中的所有更改都可以通过调整映射来吸收。某些更改,例如删除概念视图字段 (Ename),可能需要更改外部视图和使用外部视图的应用程序。

2. 物理数据独立性

  • 物理数据独立性可以定义为在不改变概念模式的情况下改变内部模式的能力。
  • 如果我们在数据库系统服务器的存储大小中进行任何更改,则数据库的概念结构将不受影响。
  • 物理数据独立性用于将概念层与内部层分离。
  • 物理数据独立性发生在逻辑接口层。
    例如
    • 为提高性能而向表中添加新索引。
    • 当不再需要现有索引时将其删除。

上述更改将影响现有的概念模式。更改将通过概念层和内部层之间的映射来吸收。

DBMS Data Independence

图:数据独立性

上图显示了三层数据架构中各层之间的数据独立性。

为什么需要数据独立性?

传统系统的数据独立性水平非常低,这意味着数据结构的一个小改动(例如,在记录结构中添加或删除一个字段)通常需要对多个程序进行更改。这些更改将影响

  • 数据在特定存储介质上的位置。
  • 数据是否具有特定的存储格式(二进制、压缩)
  • 字段按照某些规则进行编码。
  • 以特定方式存储文件记录。

因此,通过引入多层架构,每层代表一个抽象层,使数据独立,否则,如果数据被大型数据库系统中数百个应用程序使用,数据库结构中的一个小改动可能导致重写所有应用程序,这可能非常耗时且昂贵。

数据独立性的优点

数据独立性有几个优点,有助于数据库基础设施的有效管理和维护。数据独立性的各种优点如下:

  • 应用程序兼容性: 对逻辑模式的更改不影响依赖于数据库的应用程序。
  • 灵活性: 数据独立性允许更改数据库模式而不影响数据访问方式。
  • 安全性: 数据独立性允许在逻辑级别实现安全措施和访问控制方法。它保护敏感数据免受非法访问和修改。
  • 可伸缩性: 无论数据库何时增长,数据独立性都能在不影响现有查询或应用程序的情况下添加新的数据元素或表。
  • 缩短开发时间: 开发人员可以专注于设计和构建应用程序,而无需担心底层数据库结构的更改。
  • 易于集成: 数据独立性使得将来自多个来源的数据集成到单个数据库存储系统中的过程变得非常容易。
  • 降低风险: 数据独立性降低了在修改数据库结构时可能发生的错误和数据损坏的风险。

数据独立性的缺点

数据独立性在数据库管理系统中提供了许多优点。它也有以下缺点。

  • 兼容性挑战: 逻辑模式的更改可能并非总是与现有应用程序兼容。这可能需要额外的努力来确保向后兼容性,并可能涉及重写或更新应用程序。
  • 复杂性: 维护多个模式级别以实现数据独立性会给数据库系统带来复杂性。
  • 性能开销: 实施数据独立性有时会产生性能开销。
  • 迁移复杂性: 在不同版本的数据库组织之间或不同 DBMS 平台之间迁移数据仍然可能复杂且耗时。
  • 培训和专业知识: 数据库管理员和开发人员可能需要特定的培训和专业知识才能有效地管理 DBMS 中的数据完整性。

关于数据独立性的选择题

1. 以下哪个不是 DBMS 中数据独立性的类型?

  1. 物理
  2. 内存
  3. 结构型
  4. 逻辑
 

答案:b

说明

数据独立性有两种类型,即逻辑独立性和物理独立性


2. DBMS 中三层架构的主要目标是什么?

  1. 数据安全
  2. 数据独立性
  3. 数据修改
  4. 数据抽象
 

答案:b

说明

数据独立性是三层架构最常见的目标。


3. 关于数据独立性的哪句话是正确的?

  1. 这是数据库的一项功能,旨在确保如果我们对数据库模式的任何级别进行任何更改,紧随其上的模式将需要最小化或更改。
  2. 它表示能够在不改变数据库系统下一更高层模式的情况下修改某一层模式的特性。
  3. 以上都不是
  4. 以上两者
 

答案:d

说明

在数据独立性中,我们改变一个模式级别,对另一个模式级别没有映射就没有影响。


4. 关于逻辑数据独立性的哪句话是正确的?

  1. 逻辑数据独立性可以描述为外部模式对逻辑变化具有抵抗力。
  2. 它具有在不修改外部模式的情况下更改逻辑模式的能力。
  3. 以上都不是
  4. 以上两者
 

答案:d

说明

它指的是能够在不改变外部模式的情况下改变逻辑模式的属性。


5. 关于物理数据独立性的哪句话是正确的?

  1. 物理数据独立性可以描述为逻辑模式对内部模式变化具有抵抗力。
  2. 物理数据独立性意味着我们可以在不修改逻辑模式的情况下修改内部模式。
  3. 以上两者
  4. 以上都不是
 

答案:c

说明

物理数据独立性可以定义为在不改变逻辑模式的情况下改变内部模式的能力。


6. 三层架构中有多少种映射?

  1. 5
  2. 3
  3. 1
  4. 2
 

答案:d

说明

三层架构中有两种映射。

  • 外部/概念映射
  • 概念/内部映射

下一主题DBMS 语言