使用DBMS存储和管理数据,应用程序从数据库中存取数据,需要应用程序、数据库管理系统、操作系统和计算机硬件同时协同工作才能完成。数据库管理系统在进行工作时,要综合使用外模式、概念模式和物理存储模式等几个层次的数据描述,以及模式之间的映射关系,才能从数据库中存取数据。因此,从数据库中存取数据的过程是一个较为复杂的过程。下面我们以从数据库中读取数据记录为例,说明应用程序访问数据库数据的过程。 图2-4 从数据库中读取数据记录的过程 应用程序从数据库中读取数据记录的过程可以划分为如下10步: (1) 应用程序A向DBMS发出读取记录的命令,应用程序在命令中给出所读记录的条件; (2) DBMS分析用户命令,对于合法的用户和正确的命令,调用应用程序A对应的外模式,从子模式中找到对应记录的数据描述,把对应的数据记录描述先读到系统缓冲区中; (3) DBMS调用概念模式,根据所读记录的外模式/概念模式的映射关系,决定读入数据模式中的哪些记录; (4) DBMS调用物理存储模式,依据概念模式/物理模式映射关系,决定从哪台设备、用何种存取方式读取哪些记录; (5) DBMS首先检查系统缓冲区,若系统缓冲区存在所要的数据记录,转向(9),否则,转到(6). (6)DBMS向操作系统发出读取所需物理记录的命令; (7)操作系统向有关的物理设备发出调出物理记录(物理存储页)的命令; (8)相关的物理记录从数据库(硬盘)读到系统缓冲区。 (9)DBMS根据子模式/模式映射关系,导出应用程序A要读取的逻辑记录; (10)DBMS把数据从系统缓冲区填写到应用程序A的用户工作区; (11)DBMS向应用程序A返回操作命令执行正确与否的信息。 |