DBMS(Database Management Systems):
- Was created to solve the following problems
- data redundancy
- data inconsistency~ storing the same information over and over
- program-data dependence~ Program and data are very depended on in each other structurally.
- lack of flexibility~you need to code everything, you have to make everything from scratch, there is no flexibility
- data not shareable~you cant access the data at the same time as someone else because of they change the data you will have problems.
- unproductive maintenance~if you change the database structure you need to change the program as well.
- lack of security~should everyone be able to see the data and change it? probably not.
What is the DBMS design to do:
- Improve security & eliminating unproductive maintenance
- we communicating with DBMS and not with database itself and the structure of the Database is hidden from us. So each time the structure of the data is changed we don’t have to change the program all together.
- They control access to data(DBMS)~ programs will communicate with the DBMS and DBMS deals with the database itself, each program has different users with different users with different user level how only see what they need to see
Has 3 level architecture or also known as different schema:
- External or user Schema~how the person use the database see
- Conceptual or logical Schema~is what we design and make as a developer~ over view of the whole database like relationships,etc.
- Internal or storage Schema~which is handled by DBMS, how the files are stored how we access them and how they kept organised
Roles of Database Management System:
- Storage,update,retrieval~ it will allow us to store data, change it and retrieve the data
- creation and maintenance of data dictionary~relations,attributes and stuff like that it will be handled by DBMS and not by us
- managing the sharing of the database~ making sure there isn’t any problem with multiple users accessing the same data at the same time
- Backup and recovery~ has a facility for you to do it(Backup or restore the data)
- Security~ password allocation and checking, different users see different views of the database as they needed
It is an interface between users or application and the database itself.