A client-server network application is one in which a client, thin client or fat client, which instantiates the user interface of the application, connects with an application server or database system. When a client connects directly to a database system, or to a monolithic application server, the architecture of the application is a 2-tier architecture. In recent years, it is more common for a thin client which does not incorporate business logic, but only user interface elements to connect to an application server that implements the business logic, and which transitively (i.e. in turn) communicates with a database server, which stores the raw data used by the application. Such an architecture is called a 3-tier architecture, which is a special case of n-tier architecture.
In general, n-tier architectures may employ a number of distinct services, including transitive relations between application servers implementing different functions of business logic, each of which may or may not employ a distinct or shared database system.