A Database Management System or DBMS is a software program that can manage a database and perform operations on the data contained within it. A DBMS is essentially an ‘attribute management system’ that stores information in the form of attributes or qualities.
Thus, DBMS brings together services that are used on a frequent basis along with features that help in managing the attributes. This adds up to a complete software package that can perform various functions at a time. These features are explained briefly in what follows:
- Persistence
A DBMS stores the attributes or information in a permanent manner on a hard-disk or other such fast media and does not delete it until it is removed or changed explicitly by the user.
- Query Ability
The process of asking for information based on a perspective that combines a number of factors together in order to see information stored in a database is called querying. This is one of the most important and essential features of any DBMS. An example would include a search for all items that have a certain price and belong to a certain category from a given table.
- Concurrency
Since a database maybe viewed and changed at the same time by two different people, it is possible that such changes are not seen when they done. For example, if in the above example, the price of an item is set to a value X by a person and at the same time it is set to a value Y by another person, the change to X would not come to the front leading to misleading and inconsistent data. DBMSes usually have special tools to deal with such situations. Two common methods of handling these situations are locking and transactions.
- Backup and Replication
It is important to maintain copies of data stored by the DBMS in order to be ready for a situation where the primary or default storage disks fail to deliver. For this purposes DBMSes may take backups of the data on a periodic basis.
- Rule Enforcement
Sometimes, it maybe necessary to apply certain format rules to keep the various attributes dependable and clean. For example, in a database that stores the names of people who are eligible to vote may have a rule that ensures that the value of the age attribute is at least 18 years. Any attempt to set this value anywhere below 18 years should be denied by the DBMS with or without an error message. However, an important thing that maybe noted here is that such rules must be alterable so as to adapt to newer conditions and developments (for example, the state may increase the minimum voting age to 19 years).
- Security
DBMSes may provide for a certain degree of security that determines who can see and/or change the contents of the database in question. This is very important and may also be called as ‘access control’.
- Computation
There are some basic calculations that a DBMS may need to perform such as addition of values or sorting or merging or counting etc. DBMSes have built-in functions to do these tasks.
- Change and Access Logging
Sometimes, it may be important to know who accessed and modified the contents of a database or attributes. Such logging facilities maybe provided by a DBMS.
- Modeling Tool
A DBMS maybe used as a modeling tool to relate attributes to nouns in an environment and hence describing the attributes related to the nouns. Also, a DBMS may describe how attributes are related with each other.
These features are typically found in many DBMSes. However, it should be noted that all these features need not be present for a DBMS to be called so. A DBMS may have certain features and lack some others depending on its overall and type of usage. However, it is advisable to have a majority of the features above in a DBMS.