Microsoft Office 2000/Visual Basic Programmer's Guide |
What is a client/server solution? A useful way to understand it is to describe the differences between the underlying system architectures of file-server and client/server solutions. In a file-server solution, when your solution needs data, Access and the Jet database engine (which are running locally on a user's workstation) determine how to directly access the network drive, which files should be read, and what data to retrieve. Because retrieving data from the database file may require a series of requests and responses that must be sent between the server and the workstation, network traffic is increased. For example, to edit a record on a file-server database, the Jet database engine must read an index, retrieve the data, read and write to the locking file (a file that is used to coordinate requests to edit records between multiple users), and then update the index and the database itself. Figure 16.2 illustrates the file-server system.
Figure 16.2 A Typical File-Server System
A multiuser database system within a file-server environment is made up of:
In a client/server system, the network database server processes all requests for data on the server itself. The solution running on a user's workstation doesn't request data at the file level, but sends a high-level request to the server to execute a specific query and return its results. The primary advantage of this technique is that network traffic is reduced because only the result set of the query is returned to the workstation, as shown in Figure 16.3.
Figure 16.3 A Typical Client/Server System
A client/server system is typified by:
The performance and simplicity of a file-server architecture make it ideal for small- to moderate-sized solutions. The primary deciding factor when choosing whether to use a file-server or client/server architecture is the number of users who will be working with your solution. As an absolute limit, an Access database can handle up to 255 simultaneous users, but if users of your solution will be frequently adding and updating data, an Access file-server is generally best for a maximum of about 25 to 50 users.
A file-server database also has inherent limitations because it is maintained as a file in the file system. By isolating all database files under the control of a database server, the client/server architecture can provide advanced features that can't be furnished by a file-server architecture. For example:
Another factor you need to consider when choosing whether to use a file-server solution or a client/server solution is the amount of data your solution will be required to work with. In Access 2000, an Access database can handle up to 2 gigabytes of data per .mdb file. If you really need to, you can effectively create even larger databases by using linked tables to several different .mdb files. However, SQL Server has a much higher limit, and is much less prone to data corruption.
If your solution needs to handle more users or requires the reliability of a database server, consider creating a client/server solution that employs an Access project as the client application and a server back-end database such as Microsoft SQL Server. For more information about building Access client/server solutions, see "Client/Server Solutions" earlier in this chapter.
Note Access project files also support creating databases by using Microsoft Data Engine (MSDE). For more information about using MSDE to develop databases, see "Using Microsoft Data Engine" later in this chapter.