Two tier architecture:
Two tier architecture is similar to a basic client-server model. The application at the client end directly communicates with the database at the server side. API’s like ODBC,JDBC are used for this interaction. The server side is responsible for providing query processing and transaction management functionalities. On the client side, the user interfaces and application programs are run. The application on the client side establishes a connection with the server side in order to communicate with the DBMS.
An advantage of this type is that maintenance and understanding is easier, compatible with existing systems. However this model gives poor performance when there are a large number of users.
Three Tier architecture:
In this type, there is another layer between the client and the server. The client does not directly communicate with the server. Instead, it interacts with an application server which further communicates with the database system and then the query processing and transaction management takes place. This intermediate layer acts as a medium for exchange of partially processed data between server and client. This type of architecture is used in case of large web applications.
- Enhanced scalability due to distributed deployment of application servers. Now,individual connections need not be made between client and server.
- Data Integrity is maintained. Since there is a middle layer between client and server, data corruption can be avoided/removed.
- Security is improved. This type of model prevents direct interaction of the client with the server thereby reducing access to unauthorized data.
Increased complexity of implementation and communication. It becomes difficult for this sort of interaction to take place due to presence of middle layers.