Existing one. What is memory DBMS? Why it is on trend? Whenever can use? The places not to use. The application where it is implemented.
Database available in disk storage. And the data stored in buffer as temporary while accessing database. The insertion and update any, done on the buffer. After committing the transaction the modification done in buffer are all restored to the disk. The database accessing speed is dependent on the disk accessing.
The retrieval of database consists of high cost operations such as ▪ Buffer maintenance. ▪ Disk head movement. ▪ Maintain separate memory address mapping for buffer. ▪ Maintain separate address generation for disk location. Because of these , the accessing of DB is slower. To locate the data in a database, disk page and line reference.
The database is stored in centralized area, i.e., server.. Many number of clients needed in situation to share the database at a same time, Then the disk based database storage gets unused. And if a database is used for huge number of selection rather than the insertion and update. Then how many number of disk read, head movement, buffer update. These are all overhead for the system.
The database is stored in system main memory. The main thing for this MDB is to increase the performance of the DBMS more and more faster than existing. According to the statistics this is 10 times faster than the Disk-DB. Using just an offset and segment address we can address the location in main memory. There is no need of hard disk address generation and separate buffer management.
But only thing is the data stored in main memory is not a persistence. i.e., the data stored in memory is just a transient. The frequently accessed database can be stored in memory. The image of the original database is created in memory, after all transactions the changes overridden on the original image in the disk. If any intrusion like sudden failure of system, or crash the database changes on memory is definitely lost. The SQL query used in DBMS is also can be executed in MDBMS.
Copies the database as an image to memory, and made changes on memory. The changes written back to the original database on disk. The database is going to be presented in memory. So need of some larger size of memory and quite speed processor. The database occupies some space in main memory. And then the system should allocate the memory to execute the SQL queries by the user.
While consuming memory for DB storage. If any process need to interact with the I/O devices, it is critical operations because the memory needed is more. The operation on DB may be interrupted. So, all other interrupt lines must be disabled while using MDB. The database stored in main memory wherever the free memory available. The DB is scattered. To point the particular value from the DB, the single pointer is implemented.
Retrieving data from disk is time consuming process. As on today the system processors are so faster and the memory size is also larger. The implementation of MDB will increase the usage of main memory as well the performance of the retrieval. While sharing among the multiple clients the database must be duplicated as an image. This will done by a MDB. The local changes on that image will reflect on the main DB on disk and the images on other client sides also.
The same action(read) is going to be done on a particular DB, then that DB can be duplicated into the memory and that read out from the memory instead read from the disk each and every time.
Whenever the transient(temporary) data is needed to be maintained and manipulated in a faster manner. If among multiple users the single database is going to be shared. If the selection is more than the insertion and manipulation. If the system needs a better performance. If the system is maintaining log file means, it can be stored in a memory and updated for every moment. After some changes the log file store back to the disk.
Whenever the data persistency is needed to be maintained, the MDB will not be perfectly suite this case. Where the system is using for multi purpose, memory is too low and the processor speed is also lower to manage the MDB.
Sybase implemented the MDB on the memory based virtual disk volume. Still user view is as a normal DBMS., because the usage of SQL is allowed here. No any difference while using this., the feel as the data in disk. While the user executing the query, the database device created as a separate logical disk on a special cache, and then allocates the memory for the DB in that device. The disk is high volume of storage. We can’t store the DB as it is in disk. It will be compressed and then only be stored in memory.
While retaining ACID property the recovery provision is not possible always. A – Atomicity ▪ The failure in one part of the transaction, the whole transaction gets failed., the changes are kept unchanged. C – Consistency ▪ The database stored is needed to satisfy the basic constraint in DBMS. Ensure this is the consistency. I – Isolated ▪ The one transaction will not affect the another transaction unless both has dependency. D – Durability ▪ Ensure that the transaction changes permanently made on the disk or original DB.
Sybase provide a new T-SQL(Transact SQL) provision command to maintain transfer table. Transfer table is an memory design which stores the transactions done on DB by executing query. This transfer table is maintained by the MDBMS. After committing the transactions, this transfer table transaction changes made on the original DB on disk. This architecture supports IMDB to act as a staging are transfer to the permanent disk-based DB at the end of transaction. Staging area is a temporary area where we store the DB. The design of DB in disk and staging area need not be same. According to the size and architecture of stag area we convert the design.
In this architecture the transient data and the durable data are segregated and according to that it will organized in memory. Because of this the durability may be secured. If the DB is more in size, then the fit portion of the DB stored in memory, and remaining portion stored in an extended memory avail in disk. If the user want to made the DB to store in memory, is also provided in Sybase.
In Embedded applications the MDB will be more suitable. Assume the sensor sense the volcano’s status., and send the data to the server for each and every half an hour. Likewise 100’s of sensors in that particular surroundings, all will send the data at a time. The data sensed must be stored in local memory and until the server receive perfect data, that must retain in it’s memory. But here, there is no need of modifying data with the external resourse.