俗话说:万丈高楼平地起。接下来几篇文章,将会花多点篇幅在数据库管理系统(DBMS)的一些理论和相关概念上的整理。
本文先简要讲讲数据库的三级模式结构。请看下图
三级模式的划分是依据数据库系统人员以不同的角度来看待数据库中的数据。
①模式 :也称为逻辑模式,是从全局的角度对数据库中全部数据的逻辑结构和特征的总体描述。不涉及数据的物理存储细节,软硬件环境,和开发工具。
举个例子:如果一家酒店要设计一个营业收入支出管理的系统,那么在这一层中数据库设计者只需要关注,这个系统需要包含什么样的数据,以满足使用需求。很明显要记录收入,支出的金额,还有日期。但具体最终怎么实现,用人工在账本上记录,还是用电脑记录都不是这一层关心的内容。
②内模式:也称为存储模式或物理模式,是数据物理结构和存储方式的底层描述对,包括存储方式,索引组织方式,数据是否压缩和加密。
还是上面那个饭店的例子,这一层关心的是我记账要用人工账本记录,还是用电脑记帐,同时我这些信息要怎么整理,用什么样的表格去存储信息。
如果这家店是全国连锁店且连锁店非常多,个分店都有一本账本,我们又要考虑怎么组织各省各市的分店的账本信息,同时为了节省成本,记录的信息需不需要压缩,为了保证商业信息安全,需不需要用特别的加密手段来保护信息安全。
③外模式:也称为子模式或用户模式,是程序员和用户最终能看见和使用的对局部数据的逻辑结构和特征的描述,和某一特定应用有关。
还是那个饭店的例子比如,某个分店的店长要查看的是自己该分店的本年度的收入,那么就不会用到全国饭店整体收入的数据,只会用到该分店的数据。
如果全国总部的老总要查看从某个时间断的支出情况,那么这个应用只会用到支出的数据和时间的数据,而收入的数据没有用到。
从图可以看到,一个应用只能使用一个外模式。由于外模式,程序员和用书不需要关心,数据背后的组织方式和存储方式,只要能使用就好了。这样使得对数据库的使用非常方便。