我们已经讨论了数据库的内部架构(或称为体系结构),下面,我们将介绍Web数据库系统的外部架构,以及Web数据库系统的开发方法。
Web服务器的基本操作如图8-8所示。这个系统由两个对象组成:一个Web浏览器和一个Web服务器。它们之间需要通信连接。Web浏览器向服务器发出请求、服务器返回一个响应。这种架构非常适合服务器发布静态页面。而分发一个基于数据库的网站架构则要复杂一些。
图 8-8 Web浏览器和Web服务器的客户/服务器关系需要通信连接在本书中,我们要创建的Web数据库应用程序将遵循常规的Web数据库结构,该结构如图8-9所示,我们应该已经比较熟悉大部分的这种结构了。
图 8-9 Web数据库的基本结构包括Web浏览器、Web服务器、脚本引擎和数据库服务器一个典型的Web数据库事务包含下列步骤,这些步骤在图8-9已经标出。以Book-O-Rama书店为例,我们逐个解释这些步骤。
1)用户的Web浏览器发出HTTP请求,请求特定Web页面。例如,该用户可能以HTML表单的形式,要求搜索Book-O-Rama书店里所有由Laura Thomson编写的图书。搜索结果网页称为results.php。
2)Web服务器收到results.php的请求,获取该文件,并将它传到PHP引擎,要求它处理。
3)PHP引擎开始解析脚本。脚本中有一条连接数据库的命令,还有执行一个查询(执行搜索图书)的命令。PHP打开通向MySQL数据库的连接,发送适当的查询。
4)MySQL服务器接受数据库查询并处理。将结果(一个图书的列表)返回到PHP引擎。
5)PHP引擎完成脚本运行,通常,这包括将查询结果格式化成HTML格式。然后再将输出的HTML返到Web服务器。
6)Web服务器将HTML发送到浏览器。这样用户就可看到她所搜索的图书。
这个过程基本上与脚本引擎和数据库服务器无关。通常,Web服务器软件,PHP引擎和数据库服务器都在同一台机器上运行。但是,数据库服务器在另外一台机器上运行也是非常常见的。这样做是出于保密、提高性能以及负载平衡的原因而考虑的。从开发的角度来看,要做的事情基本上是一样的,但是它能够明显提高性能。
随着应用程序在大小和复杂度上的不断增加,我们可能会将PHP应用程序分成不同的层——通常,包括与MySQL交互的数据库层、包含了应用程序核心的业务逻辑层和管理HTML输出的表示层。但是,图8-9所示的基本架构还是实用的;我们可以在PHP部分添加更多的结构。