我是做开发的,所以我更关心数据库系统的外模式。
众所周知,数据库系统的三级模式为:外模式,模式(概念模式),内模式。
应用程序依赖于外模式,独立于模式和内模式。这样划分的目的,想必大家都明白,是为了提升数据库系统在设计和维护过程中的稳定性,减小或者消除数据库系统局部调整所带来的大范围冲击。
多年以前,那时候我还在做C/S模式的应用系统开发,客户端的数据大都是通过拼接SQL的方式直接从数据库中的表上读取数据。一旦表的结构有一点变化,客户端的程序的相应部分就得改,有时还不一定改得全。
限于我个人有限的经验,我在项目实践中,将数据库的外模式直接落地为数据库中的视图,即应用程序读取数据时,直接依赖数据库的视图,而不是表(概念模式)。当表的结构发生变化时,可以通过视图来减小或者消除表结构变化带来的冲击,即我们可以修改视图的实现来应对表结构的调整,但视图的字段输出是不变的。因此,这个变化对应用程序客户端来说是透明的。也就实现了应用程序依赖于外模式,独立于模式和内模式。
要写就写真实,我的视界总是那么有限,欢迎大家的评论,我是“reduce & reduce”。