知识卡片

应用软件与 DBMS 分离带来的数据独立性

专业/工作 · 1293.b

内容

应用软件从不直接操纵数据库,所有的增删改查都要经过数据库管理系统(DBMS)这一层抽象工具——应用软件只需按数据库的概念模型(比如关系模型的”表”)来描述自己想要什么,至于这份数据实际是存在单台机器上,还是分散在网络中的多台机器上(分布式数据库),完全由 DBMS 内部处理,应用软件无须关心。这层分离带来的核心好处叫数据独立性:当数据库的内部组织需要变化时(比如给员工记录新增一个字段),只需要修改总体模式和受影响用户的子模式,其余所有基于未变化子模式编写的应用软件完全不用改动。发散:这是[[数据结构本质是对线性存储器的抽象模拟]]这一思想在系统架构尺度上的又一次呈现——凡是把”概念上想要什么”和”物理上怎么存”这两件事彻底解耦的地方,都能换来同一种好处:底层实现可以自由演化,只要它对外暴露的概念接口保持不变,上层调用方就不必跟着一起改动。

参考来源

《计算机科学概论》第9章《数据库系统》