STORAGE MANEGE in DBMS

StorageManager:

 A storage manager is a program module that provides the interface between the low level data stored in the database and the application programs and queries submitted to the system. The storage manager is responsible for the interaction with the file manager. The storage manager translates the various DML statements into low-level file-system commands. Thus, the storage manager is responsible for storing, retrieving, and updating data in the database.


 Storage Manager Components:

 Authorization and integrity manager which tests for the satisfaction of integrity constraints and checks the authority of users to access data
.
Transaction manager which ensures that the database itself remains in a consistent state despite system failures, and that concurrent transaction executions proceed without conflicting.

File manager: which manages the allocation of space on disk storage and the data structures used to represent information stored on disk.

 Buffer manager which is responsible for fetching data from disk storage into main memory. Storage manager implements several data structures as part of the physical system implementation. Data files are used to store the database itself. Data dictionary is used to stores metadata about the structure of the database, in particular the schema of the database.


 Query Processor Components:


DDL interpreter: It interprets DDL statements and records the definitions in the data dictionary.

 DML compiler: It translates DML statements in a query language into an evaluation plan consisting of low-level instructions that the query evaluation engine understands.

 Query evaluation engine: It executes low-level instructions generated by the DML compiler.

 Application Architectures:
 Most users of a database system today are not present at the site of the database system, but connect to it through a network. We can therefore differentiate between client machines,  on which the database system runs. Database applications are usually partitioned into two or three parts. They are:


  • Two – Tier Architecture
  •  Three – Tier Architecture. 

Two-Tier Architecture:

 The application is partitioned into a component that resides at the client machine, which invokes database system functionality at the server machine through query language statements. Application program interface standards like ODBC and JDBC are used for interaction between the client and the server
.

Three-Tier Architecture:

 The client machine acts as merely a front end and does not contain any direct database calls. Instead, the client end communicates with an application server, usually through forms interface. The application server in turn communicates with a database system to access data. The business logic of the application, which says what actions to carry out under what conditions, is embedded in the application server, instead of being distributed across multiple clients. Three-tier applications are more appropriate for large applications, and for applications that run on the World Wide Web.


No comments:

Post a Comment

Featured Post

Core and Advance Python

                      Language Fundamentals