- We should be able to store all kinds of data that exist in this real world. Since we need to work with all kinds of data and requirements, the database should be strong enough to store all kinds of data that are present around us.
- We should be able to relate the entities/tables in the database by means of relation. i.e.; any two tables should be related. Let us say, an employee works for a department. This implies that an Employee is related to a particular department. We should be able to define such a relationship between any two entities in the database. There should not be any table lying without any mapping.
- Data and applications should be isolated. Because the database is a system that gives the platform to store the data, and the data is the one that allows the database to work. Hence there should be a clear differentiation between them.
- There should not be any duplication of data in the database. Data should be stored in such a way that it should not be repeated in multiple tables. If repeated, it would be an unnecessary waste of DB space, and maintaining such data becomes chaos.
- DBMS has a strong query language. Once the database is designed, this helps the user to retrieve and manipulate the data. If a particular user wants to see any specific data, he can apply as many filtering conditions that he wants and pull the data that he needs.
- Multiple users should be able to access the same database, without affecting the other user. i.e.; if teachers want to update a student’s marks in the Results table at the same time, then they should be allowed to update the marks for their subjects, without modifying other subject marks. A good database should support this feature.
- It supports multiple views to the user, depending on his role. In a school database, Students will able to see only their reports and their access would be read-only. At the same time, teachers will have access to all the students with modification rights. But the database is the same. Hence a single database provides different views to different users.
- The database should also provide security, i.e.; when there are multiple users are accessing the database, each user will have their own levels of rights to see the database. Some of them will be allowed to see the whole database, and some will have only partial rights. For example, an instructor who is teaching Physics will have access to see and update marks of his subject. He will not have access to other subjects. But the HOD will have full access to all the subjects.
- The database should also support the ACID property. i.e.; while performing any transactions like insert, update and delete, the database makes sure that the real purpose of the data is not lost. For example, if a student’s address is updated, then it should make sure that there is no duplicate data is created nor there is any data mismatch for that student.
As we now know what is a database, who would be the users of the database? Of course, the developers will be using this database to design and develop. Who else? There would be an administrator, who keeps watching the database for its usages, who is accessing it, giving access to other users, limiting the security for the users, and any other maintenance work of the database. And there are one more end users. These end users are the real group of people who really uses the database and takes advantage of the database. In-School database, teachers, students are the end-users, who really uses the database in their daily needs.
We discussed the Characteristics of a Database in this article. Where all are these databases used? Everywhere!! Now a day, a database is used in each and every place. We can see the use of databases in supermarkets, stock exchange, college, library, ATMs, offices, banks, hospitals, etc.