Fundamentals of Databases
1. Discuss three tier Client-Server DBMS architecture in relation with the
functionality of each layer. How does it improve the security of a database?
A three-tier client-server DBMS architecture separates the database system into three distinct layers:
- Presentation Layer:
- This is the user interface layer, where users interact with the database system.
- It handles tasks such as data entry, query formulation, and result display.
- The presentation layer can be a web-based interface, a desktop application, or a mobile app.
- Application Layer:
- This layer acts as a middleman between the presentation layer and the data layer.
- It processes user requests, performs business logic, and interacts with the database.
- The application layer can be implemented using various programming languages and frameworks.
- Data Layer:
- This layer houses the actual database and its data.
- It is responsible for data storage, retrieval, and management.
- The data layer typically uses a database management system (DBMS) to handle these tasks.
- Separation of Concerns: By separating the presentation, application, and data layers, the three-tier architecture promotes modularity and security. Changes to one layer have a minimal impact on the others, reducing the risk of vulnerabilities.
- Centralized Data Management: The data layer is centralized, providing better control over data access and security. This makes it easier to implement security measures like encryption, access controls, and auditing.
- Reduced Attack Surface: The presentation layer acts as a barrier between external users and the underlying database. This reduces the attack surface, making it more difficult for unauthorized users to gain access to sensitive data.
- Improved Scalability: The three-tier architecture allows for easier scalability. If the database system experiences increased load, additional resources can be added to the data layer or application layer without affecting the presentation layer.
- Abstraction: The application layer provides an abstraction between the presentation layer and the data layer. This makes it easier to modify the database schema or switch to a different DBMS without affecting the user interface.