A database management system (DBMS) is an important type of programming system, used
today on the biggest and the smallest computers. As for other major forms of system software,
such as compilers and operating systems, a well-understood set of principles for database
management systems has developed over the years, and these concepts are useful both for
understanding how to use these systems effectively and for designing and implementing DBMS's.
DBMS is a collection of programs that enables you to store, modify, and extract information
from a database. There are many different types of DBMS's, ranging from small systems that run
on personal computers to huge systems that run on mainframes. The following are the location of
database between application programs and end-users.
There are two qualities that distinguish database management systems from other sorts of
1) The ability to manage persistent data, and
2) The ability to access large amounts of data efficiently.
Point 1) merely states that there is a database which exists permanently; the contents of this
database is the data that a DBMS accesses and manages.
Point 2) distinguishes a DBMS from a
file system, which also manages persistent data. A DBMS's capabilities are needed most when
the amount of data is very large, because for small amounts of data, simple access techniques,
such as linear scans of the data, are usually adequate.
While we regard the above two properties of a DBMS as fundamental, there are a number
of other capabilities that are almost universally found in commercial DBMS's. These are:
Support for at least one data model, or mathematical abstraction through which the user can
view the data.
Support for certain high-level languages that allow the user to define the structure of data,
access data, and manipulate data.
Transaction management, the capability to provide correct, concurrent access to the database
by many users at once.
Access control, the ability to limit access to data by unauthorized users, and the ability to
check the validity of data.
Resiliency, the ability to recover from system failures without losing data.
Data Models Each DBMS provides at least one abstract model of data that allows the user
to see information not as raw bits, but in more understandable terms. In fact, it is usually possible
to see data at several levels of abstraction. At a relatively low level, a DBMS commonly allows
us to visualize data as composed of files.
Efficient File Access The ability to store a file is not remarkable: the file system associated
with any operating system does that. The capability of a DBMS is seen when we access the data of
a file. For example, suppose we wish to find the manager of employee "Clark Kent". If the
company has thousands of employees, It is very expensive to search the entire file to find the one
with NAME="Clark Kent". A DBMS helps us to set up "index files," or "indices," that allow us to
access the record for "Clark Kent" in essentially one stroke no matter how large the file is. Likewise,
insertion of new records or deletion of old ones can be accomplished in time that is small and
essentially constant, independent of the file’s length. Another thing a DBMS helps us do is navigate
among files, that is, to combine values in two or more files to obtain the information we want.
Query Languages To make access to files easier, a DBMS provides a query language, or
data manipulation language, to express operations on files. Query languages differ in the level of
detail they require of the user, with systems based on the relational data model generally
requiring less detail than languages based on other models.
Another important capability of a DBMS is the ability to
manage simultaneously large numbers of transactions, which are procedures operating on the
database. Some databases are so large that they can only be useful if they are operated upon
simultaneously by many computers: often these computers are dispersed around the country or
the world. The database systems used by banks, accessed almost instantaneously by hundreds or
thousands of automated teller machines (ATM), as well as by an equal or greater number of
employees in the bank branches, is typical of this sort of database. An airline reservation system
is another good example.
Sometimes, two accesses do not interfere with each other. For example, any number of
transactions can be reading your bank balance at the same time, without any inconsistency. But
if you are in the bank depositing your salary check at the exact instant your spouse is extracting
money from an automatic teller, the result of the two transactions occurring simultaneously and
without coordination is unpredictable. Thus, transactions that modify a data item must “lock out”
other transactions trying to read or write that item at the same time. A DBMS must therefore
provide some form of concurrency control to prevent uncoordinated access to the same data item
by more than one transaction.
Even more complex problems occur when the database is distributed over many different
computer systems, perhaps with duplication of data to allow both faster local access and to
protect against the destruction of data if one computer crashes.
Security of Data A DBMS must not only protect against loss of data when crashes occur,
as we just mentioned, but it must prevent unauthorized access. For example, only users with a
certain clearance should have access to the salary field of an employee file, and the DBMS must
be able associate with the various users their privileges to see files, fields within files, or other
subsets of the data in the database. Thus a DBMS must maintain a table telling for each user
known to it, what access privileges the user has for each object. For example, one user may be
allowed to read a file, but not to insert or delete data; another may not be allowed to see the file at
all, while a third may be allowed to read or modify the file at will.
Designers developed three different types of database structures: hierarchical, network, and
relational. Hierarchical and network were first developed but relational has become dominant.
While the relational design is dominant, the older databases have not been dropped. Companies
that installed a hierarchical system such as IMS in the 1970s will be using and maintaining these
databases for years to come even though new development is being done on relational systems.
These older systems are often referred to as legacy systems.
1, teller ['telə]
2, reservation [,rezə'veiʃən]
3, at will