Introduction
A
database management system (DBMS), or simply a database system
(DBS), consists of
- A collection of interrelated and persistent data (usually referred to as the database (DB)).
- A set of application programs used to access, update and manage that data (which form the data management system (MS)).
The
goal of a DBMS is to provide an environment that is both convenient and efficient
to use in
- Retrieving information from the database.
- Storing information into the database.
Databases
are usually designed to manage large bodies of information. This
involves
- Definition of structures for information storage (data modeling).
- Provision of mechanisms for the manipulation of information (file and systems structure, query processing).
- Providing for the safety of information in the database (crash recovery and security).
- Concurrency control if the system is shared by users.
To see why database
management systems are necessary, let's look at a typical ``file-processing
system'' supported by a conventional operating system.
The application is a
savings bank:
- Savings account and customer records are kept in permanent system files.
- Application programs are written to manipulate files to perform the following tasks:
- Debit or credit an account.
- Add a new account.
- Find an account balance.
- Generate monthly statements.
Development
of the system proceeds as follows:
- New application programs must be written as the need arises.
- New permanent files are created as required.
- but over a long period of time files may be in different formats, and
- Application programs may be in different languages.
So
we can see there are problems with the straight file-processing approach:
- Data redundancy and inconsistency
- Same information may be duplicated in several places.
- All copies may not be updated properly.
- Difficulty in accessing data
- May have to write a new application program to satisfy an unusual request.
- E.g. find all customers with the same postal code.
- Could generate this data manually, but a long job...
- Data isolation
- Data in different files.
- Data in different formats.
- Difficult to write new application programs.
- Multiple users
- Want concurrency for faster response time.
- Need protection for concurrent updates.
- E.g. two customers withdrawing funds from the same account at the same time - account has $500 in it, and they withdraw $100 and $50. The result could be $350, $400 or $450 if no protection.
- Security problems
- Every user of the system should be able to access only the data they are permitted to see.
- E.g. payroll people only handle employee records, and cannot see customer accounts; tellers only access account data and cannot see payroll data.
- Difficult to enforce this with application programs.
- Integrity problems
- Data may be required to satisfy constraints.
- E.g. no account balance below $25.00.
- Again, difficult to enforce or to change constraints with the file-processing approach.
These problems and
others led to the development of database management systems.