DBMS - 数据独立性
如果数据库系统不是多层的,那么对数据库系统进行任何更改就变得很困难。 正如我们之前所了解的,数据库系统是在多层中设计的。
数据独立
除了用户数据之外,数据库系统通常还包含大量数据。 例如,它存储有关数据的数据(称为元数据),以便轻松定位和检索数据。 一组元数据一旦存储在数据库中,就很难修改或更新。 但是随着 DBMS 的扩展,它需要随着时间的推移而改变以满足用户的需求。 如果整个数据都是依赖的,这将成为一项繁琐且高度复杂的工作。
![Data independence](https://www.w3ccoo.com/dbms/images/data_independence.png)
元数据本身遵循分层架构,这样当我们改变一层的数据时,不会影响到另一层的数据。 这些数据是独立的,但相互映射。
逻辑数据独立
逻辑数据是关于数据库的数据,也就是说,它存储了有关数据在内部如何管理的信息。 例如,存储在数据库中的表(关系)及其应用于该关系的所有约束。
逻辑数据独立性是一种机制,它从存储在磁盘上的实际数据中解放出来。 如果我们对表格式进行一些更改,它不应该更改驻留在磁盘上的数据。
物理数据独立性
所有模式都是逻辑的,实际数据以位格式存储在磁盘上。 物理数据独立性是在不影响架构或逻辑数据的情况下更改物理数据的能力。
例如,如果我们想更改或升级存储系统本身 − 假设我们想用 SSD 替换硬盘 − 它不应该对逻辑数据或架构产生任何影响。