用户访问数据库的过程
现以用户通过应用程序读取一个记录为例,说明用户访问数据库过程中的主要步骤
(1)用户在应用程序中,首先要给出他使用的子模式名称,而后在需要读取记录处嵌入一个用数据操作语言书写的读记录语句(其中给出要读记录的关键字值或其它数据项值)。当应用程序执行到该语句时,即转入DBMS的特定程序或向DBMS发出读记录的命令。
(2)DBMS按照应用程序的子模式名,查找子模式表,确定对应的模式名称。可能还要检验操作的合法性,核对用户的访问权限,如果通不过,则拒绝执行该操作,并向应用程序状态字回送出错误状态信息。
(3)DBMS按模式名查阅模式表,找到对应的目标模式,从中确定该操作所涉及的记录类型,并通过模式到存储映射(往往也在模式中)找到这些记录类型的存储模式。这里还有可能进一步检查操作的有效性、保密性。如不通过,则拒绝执行该操作并回送出错误状态信息。
(4)DBMS查阅存储模式,确定应从哪个物理文件、区域、设备、存储地址、调用哪个访问程序去读取所需纪录。
(5)DBMS的访问程序找到有关的物理数据块(或页面)地址,向操作系统发出读块(页)操作命令。
(6)操作系统收到该命令后,启动联机I/O程序,完成读块(页)操作,把要读取的数据块或页面送到内存的系统缓冲区。
(7)DBMS收到操作系统I/O结束回答后,按模式、子模式定义。将读入系统缓冲区的内容映射为应用程序所需要的逻辑纪录,送到应用程序工作区。
(8)DBMS向应用程序状态字回送反映操作执行结果的状态信息,如“执行成功”、“数据未找到”等。
(9)记载系统工作日志
(10)应用程序检查状态字信息。如果执行成功,则可对程序工作区中的数据作正常处理;如果数据未找到或有其他错误,则决定程序下一步如何执行。