The Software Components of a Client/Server System

Figure 1-2 presents the software components of a typical client/server system. In addition to a network operating system that manages the functions of the network, the server requires a database management system (DBMS) like Microsoft SQL Server or Oracle. This DBMS manages the databases that are stored on the server.

In contrast to a server, each client requires application software to perform useful work. This can be a purchased software package like a financial accounting package, or it can be custom software that’s developed for a specific application.

Although the application software is run on the client, it uses data that’s stored on the server. To do that, it uses a data access API (application programming interface) such as ADO.NET. Since the technique you use to work with an API depends on the programming language and API you’re using, you won’t learn those techniques in this tutorial. Instead, you’ll learn about a standard language called SQL, or Structured Query Language, that lets any application communicate with any DBMS. (In conversation, SQL is pronounced as either S-Q-L or sequel.)

Once the software for both client and server is installed, the client communicates with the server via SQL queries (or just queries) that are passed to the DBMS through the API. After the client sends a query to the DBMS, the DBMS interprets the query and sends the results back to the client.

As you can see in this figure, the processing done by a client/server system is divided between the clients and the server. In this case, the DBMS on the server is processing requests made by the application running on the client. Theoretically, at least, this balances the workload between the clients and the server so the system works more efficiently. In contrast, in a file-handling system, the clients do all of the work because the server is used only to store the files that are used by the clients.

Client software, server software, and the SQL interface

The Software Components of a Client/Server System

Figure 1-2 –┬áThe Software Components of a Client/Server System

Server software

  • To store and manage the databases of the client/server system, each server requires a database management system (DBMS) like Microsoft SQL Server.
  • The processing that’s done by the DBMS is typically referred to as back-end processing, and the database server is referred to as the back end.

Client software

  • The application software does the work that the user wants to do. This type of software can be purchased or developed.
  • The data access API (application programming interface) provides the interface between the application program and the DBMS. The newest Microsoft API is ADO.NET, which can communicate directly with SQL Server. Older APIs required a data access model, such as ADO or DAO, plus a driver, such as OLE DB or ODBC.
  • The processing that’s done by the client software is typically referred to as front-end processing, and the client is typically referred to as the front end.

The SQL interface

  • The application software communicates with the DBMS by sending SQL queries through the data access API. When the DBMS receives a query, it provides a service like returning the requested data (the query results) to the client.
  • SQL stands for Structured Query Language, which is the standard language for working with a relational database.

Client/server versus file-handling systems

  • In a client/server system, the processing done by an application is typically divided between the client and the server.
  • In a file-handling system, all of the processing is done on the clients. Although the clients may access data that’s stored in files on the server, none of the processing is done by the server. As a result, a file-handling system isn’t a client/server system.

Chapter: Introduction to Relational Databases & SQL