可以安全地假设,对于数据量庞大或关系结构复杂的数据库(例如,用于鲜活语言的词汇数据库),必须允许多个用户和操作员同时访问。理想情况下,应该可以使用现有的不同硬件和软件平台,并将它们组合成实际的系统。为了降低实施成本,只需要一个系统,即数据库服务器,具有强大的功能;用户工作站通常只显示数据并接受用户命令,但处理仅在一台机器上完成,这导致了客户端-服务器数据库的名称。此外,用户界面应该易于维护,并且应该尽可能减少客户端的需求。
满足这些标准的系统可以围绕以下协议、概念和软件项目构建
提供操作系统。它是一个稳定的 Unix 实现,提供真正的多用户多任务服务,并完全支持网络(TCP/IP 等)。除了实际的介质和传输成本外,它是免费提供的,并以所谓的发行版形式出现,这些发行版通常包括从基本操作系统到文本处理、脚本、软件开发、界面构建器等所需的一切。
是超文本标记语言,用于构建网络系统(如 Intranet 和 WWW,万维网)的接口。HTML 非常简单,可以使用任何支持 ASCII 的文本编辑器生成。
是基于文本的(例如 Lynx)或图形化的(例如 Mosaic、Netscape、Arena 等)应用程序,它们接受、评估和显示 HTML 文档。它们是数据库用户直接操作的唯一软件。使用浏览器,可以在几乎所有流行的计算机型号上显示各种类型的数据(文本,可能还有图像),并与 http 服务器(见下文)进行通信,这些计算机型号都有可用的浏览器。
提供对主机计算机区域的访问,该区域存储了用于在网络中公开使用的数据。它们理解 http 协议并获取用户请求的信息。
结构化查询语言是一种用于操作关系数据库中数据的语言。它具有非常简单的语法,并且是一个具有广泛行业支持的标准。基于 SQL 的数据库已成为经典客户端/服务器数据库概念的核心。有许多著名的 SQL 系统可用,例如 Oracle、Informix 等,还有 msql,如果在学术和教育环境中使用,它的价格非常低甚至为零。
通用网关接口是保存数据的系统(在我们的例子中是基于 SQL 的系统)和网络协议(当然是 HTML)之间的编程接口。CGI 可以围绕多种编程语言构建,但一种特别流行的语言是 perl。
是一种极其强大的脚本语言,它结合了 C、各种 shell 语言以及流操作语言(如 awk 和 sed)的所有优点。Perl 有许多模块化接口,例如,可以用于控制 SQL 数据库。