For now let’s forget about Database Architecture and understand a basic term “Client Server Architecture“. Later on I will tell you how it relates to DBMS ? Client and server are basically two separate terminologies.
Client–server model is a distributed application structure that partitions tasks or workloads between the providers of a resource or service, called servers, and service requesters, called clients. Often clients and servers communicate over a computer network on separate hardware, but both client and server may reside in the same system.
- Client : When someone always requests for information we call that as client.
- Server : When someone always listen to the client’s request and provide the desired information to the clients over the network, we call that as server.
However don’t be racist. Client can be you, server can be your friend. Client can be a browser and server can be a website. You wrote two simple programs who interact with each other, you can name one as client and other as server.
Let’s say you installed a DBMS application E.g MYSQL on your system you will see there are two separate main programs one is mysql_client who always request for data and another is mysqld_server who process data and gives the result back to client. If you want to access that mysqld database server from another computer you just have to install a mysql client and create a connection to mysqld server over the network.
Types of DBMS Architecture
The two-tier is based on Client Server architecture. The direct communication takes place between client and server. Because of tight coupling a 2 tiered application will run faster.
The above figure shows the architecture of two-tier. Here the direct communication between client and server, there is no intermediate between client and server.
Three-tier architecture typically comprise a presentation tier, a business or data access tier, and a data tier. Three layers in the three tier architecture are as follows:
1) Client layer
2) Business layer
3) Data layer
1) Client layer:
It is also called as Presentation layer which contains UI part of our application. This layer is used for the design purpose where data is presented to the user or input is taken from the user. For example designing registration form which contains text box, label, button etc.
2) Business layer:
In this layer all business logic written like validation of data, calculations, data insertion etc. This acts as a interface between Client layer and Data Access Layer. This layer is also called the intermediary layer helps to make communication faster between client and data layer.
3) Data layer:
In this layer actual database is comes in the picture. Data Access Layer contains methods to connect with database and to perform insert, update, delete, get data from database based on our input data.
Note : You may see in some books or websites, there are 3 types of DBMS architecture which I am missing here is one-tier. Well in modern era 99% of the DBMS applications follow client-server architecture, it means one tier hardly exists. In real life we always use a 3-tier architecture, GUI application -> DBMS application -> Database server
Why should we worry about the architecture of DBMS?
The main reason for which we read this is due to Data Abstraction or Isolation of applications. Sometimes we relate it to view in DBMS. We will see it in details on the next article.