知识卡片

数据库重组与重构的边界区别

普通读书笔记卡

内容

数据库长期运行后性能会自然衰退(记录不断增删改导致物理存储变得零散), 应对这种衰退有两种不同深度的维护操作,容易被混为一谈但边界完全不同。 重组织解决的是”存储变乱了,但设计本身没错”这类问题:数据库管理员按 系统原本的设计要求,对存储空间做全面调整(如重新安排磁盘分区、重新 排列数据存储位置),这个过程不修改数据库原有设计的逻辑结构和物理 结构——本质是把物理层面跑偏的状态”复位”回原本设计好的样子,纯粹是 维护性操作。重构解决的是”当初的设计已经不适应现在的需求”这类问题: 需要部分修改数据库的模式(逻辑结构)和内模式(物理结构)本身,是对 设计的实质性调整,而不只是把物理状态复位。两者的判断边界在于:如果 调整之后数据库的逻辑结构和物理结构定义完全没变,那是重组织;只要 动了模式或内模式的定义,就已经是重构了。而且重构本身也有能力边界—— 如果应用需求变动太大,重构(部分修改)已经无法满足要求,就应该考虑 重新做一次完整的数据库设计,而不是继续在重构上叠加修补。

参考来源

- 位置:《数据库原理(微课版)》第6章《数据库设计》6.6.3节"数据库的运行 与维护"(源文件:_epub-src/index_split_004.html) - 结论依据:原文明确"数据库管理员应该定期对数据库进行重组,即按照 系统设计要求对数据库存储空间进行全面调整……这种重新组织并不修改 数据库原有设计的逻辑结构和物理结构。数据库的重构是部分修改数据库 的模式和内模式……如果应用需求变动太大,重构也不能达到系统要求, 则应该考虑重新设计数据库",因此可以推出两者在是否修改逻辑/物理 结构定义上的边界区别。 - 原始内容:数据库管理员应该定期对数据库进行重组……这种重新组织并 不修改数据库原有设计的逻辑结构和物理结构。数据库的重构是部分修改 数据库的模式和内模式。数据库的重构只能做部分修改,如果应用需求变动 太大,重构也不能达到系统要求,则应该考虑重新设计数据库及相应的 应用程序。