1. Introduction
In this tutorial, we’ll discuss the application architecture layers. Additionally, we’ll explore the Data Access Layer’s (DAL) role in the communication process.
2. Application Model
Firstly, an application has various layers of architecture responsible for properly functioning the software. Moreover, each layer holds a set of responsibilities contributing to an organized data flow.
In Database Management Systems (DBMS), data from the storage is accessed and processed as per the needs of the application. Let’s see the layers of the application model:
Moreover, this architecture of DBMS allows secure access to stored data. Further, a storage layer holds the data collected and provides structured access for the application. The storage layer acts as a repository of data accessible as per the command initiated by the user.
2.1. Data Access Layer
Generally, we can perceive the Data Access Layer (DAL) as a gateway for the database. An application receives input from the Presentation Layer (PL) and processes it in the Business Logic Layer (BLL). The job of the DAL is to thoroughly validate the semantics and authorization and retrieve data from storage.
2.2. Business Logic Layer
Importantly, the Business Logic Layer (BLL) holds the implementation part of an application. Furthermore, it’s responsible for processing the operations in the application. Moreover, it acts as the main body of the software with the presentation layer for interaction with the user. Notably, BLL does the required computations involved in an application. Moreover, this layer is responsible for enforcing the rules and validating commands as per the database. It also ensures the authentication of commands, thereby assuring security.
2.3. Presentation Layer
The PL acts as an interface between the user and the software. This layer is responsible for the interactions with the user, most often via some form of a graphical user interface (GUI). It can receive input from the user and display the result using this layer. HTML, CSS, and Javascript are some of the popularly used languages for implementing user interfacing.
3. Data Access Layer
Let’s explore the key operations of DAL:
- DAL performs the queries, allowing access to data and applying other operations on the data
- It helps set up and manage the database connection between application and data
- Further, the DAL helps in mapping the data and its corresponding object providing data abstraction
3.1. Architecture of Data Access Layer
Let’s explore the components of the DAL:
The components helping in performing the tasks of DAL are service agents, data helpers/ utilities, and data access logic components. Notably, each application differs in its format and semantics. Moreover, service aids in the communication of the storage with the application adapting to the model.
Generally, utility and data helpers allow data access, data transformation, and manipulation within the layer. Further, it comprises dedicated procedures and libraries created to increase data access efficiency while minimizing the need for service agent and logic component layer development.
Data access logic components comprise the functionalities required to access the data in the storage. Furthermore, this allows us to centralize the functions. As a result, this simplifies the setup and maintenance of the application.
3.2. Advantages
The DAL is independent of the BLL, making it adaptable to application modifications. Additionally, it allows a common point from which calls can be made to the databases. A DAL can maintain numerous databases, allowing the application to utilize any database as needed. Moreover, the user or the BLL doesn’t know about the entire storage, thereby not revealing the whole database to a third-party application.
Separating the data access code makes the database portable and better to manage. Any changes in the storage structure will not affect the clients. As a result, this gives freedom in managing the database.
3.3. Disadvantages
Some applications have a common DAL for storage where various applications access it. However, this may give way for hackers to exploit the data. Thereby risking the security of the data.
Sharing the same data layer causes a heavy impact on the performance of storage and applications. The storage might be prone to a risk of overflowing. Moreover, it faces access issues for different locations simultaneously, causing delays and incorrect updation of data.
Additionally, this may cause allocation issues and scheduling of processes issues.
4. Applications of Data Access Layer
Database applications commonly have their data in tables as Excel sheets or database access. However, these are connected to the application using a connection setup. Some of the popular packages used for the connection are ADO.NET, ODBC, and JDBC. Let’s see an example of an ODBC connection window:
Let’s see some of the database languages are:
- Structured Query Language (SQL)
- Pipelined Relational Query Language (PRQL)
- GraphQuery Language (GraphQL)
- Amazon Relational Database Service
- WebAssembly
- Gremlin
- Non-First Normal Form Query Language (N1QL)
- Basis
- International Business Machines DataBase 2 (IBM DB2)
5. Summary
Let’s see the key difference between the layers:
Presentation Layer(PL)
Business Logic Layer (BLL)
Data Access Layer(DAL)
Acts as an interface between application and user
Further, it acts as an interface between PL and DAL
However, it acts as an interface between application and storage
No knowledge about storage structure
No knowledge about storage structure
However, DAL knows the location of data in the storage
Example: Gets command from users using GUI
Example: Interprets the command from PL and communicates with DAL
Example: Access the data from storage as per the command received from BLL
Moreover, we use tools like AdobeXD and Sketch to help in designing. Additionally, languages like Hyper Text Markup Language(HTML), and C for implementing PL
Notably, we can use languages like Java and Python for BLL
Especially, we use tools such as ADO.NET, Java Database Connectivity(JDBC)
6. Conclusion
In this article, we have explored the general architecture of an application as well as the functionality of the layers. Additionally, we have briefly discussed the DAL’s functionalities and the components responsible for it. Moreover, we have seen its applications and examples of how the layers work together.