|
Client/Server
This term is sometimes used to loosely refer to any system in which computers on a network ("clients") share the resources of one or more central computers ("servers"). But the most common use of the term, and the one which we prefer, refers to a specific way of developing database applications.
In the most common type of network, the server is a "file server;" its primary function is to store computer files so that they are accessible by multiple users. When a user copies a file from the server, or uses an application such as Word or Excel to open a file that resides on the server, the entire contents of the file typically travel over the network from the file server to the user's computer.
In a client/server database system, on the other hand, the server computer runs specialized database software such as Oracle or Microsoft SQL Server. Whereas a file server simply transfers files to other computers, a database server performs detailed processing on the data, such as sorting, querying, and updating.
Consider an example. A company has a database containing information on one million customers; this database is stored on a server and is accessible via PCs on users' desks throughout the company. A user wants an alphabetized list of all customers in a particular geographic area who have purchased at least $1000 worth of goods in the past year.
In a file-server-based application, the application software would be running entirely on the user's computer. In order to fulfill the user's request, the software would need to examine each customer's records to determine whether it met the criteria. Thus, the file server would need to transmit information over the network for all one million customers.
In a client/server application, as we are defining it here, part of the application would be running on the user's computer and part would be running on the server. The software on the user's computer would send a request (probably in the SQL language) to the software on the server. The server would then scan the information on its hard drive (a relatively fast operation), identify the right customer records, sort them, and send them back to the user's computer, which would then display or print them. Instead of sending one million customers' worth of information over the network, it would send only those that matched the user's requirements; perhaps a few dozen.
In addition to the obvious advantages in improving performance and decreasing network congestion, client/server architecture also brings some of the benefits of centralizing data processing, such as improved security and more reliable backups.
|