ystem) Software that controls the organization, storage, retrieval, security and integrity of data in a database. It accepts requests from the application and instructs the operating system to transfer the appropriate data. The major DBMS vendors are Oracle, IBM, Microsoft and Sybase (see Oracle Database
, SQL Server
). MySQL and SQLite are very popular open source products (see MySQL
A DBMS interfaces with applications written in traditional programming languages (C/C++, Java, etc.), and it may include its own programming language. Following are the major features of a DBMS.
Data Independence Flexibility
As an organization's data requirements change, a DBMS lets information systems be updated more easily. Applications access the DBMS by field name (column name); for example, a coded equivalent of "give me customer name and balance due" would be sent to the DBMS. Without a DBMS, programmers must reserve space within their programs for the full record structure in the file. Any change in structure such as adding a new field requires changing all the application programs that access any of the data. This flexibility is a major reason why a DBMS is used for storing data.
Indexes and Interactive Query
Another important feature of a DBMS is its indexing capability. One or more fields within the record (columns within the row) are defined as key fields, and the DBMS creates and maintains the indexes for those fields. The application requests a record from a database, and the index enables immediate access to the record. Indexes also let users interactively interrogate the database using a query language. See query language
and report writer
The DBMS can prevent unauthorized users from viewing or updating the database. Using passwords, users are allowed access to the entire database or a subset of it known as a "subschema." For example, in an employee database, some users may be able to view salaries while others may view only work history and medical data. See database security
The DBMS can ensure that no more than one user can update the same record at the same time. It can keep duplicate records out of the database; for example, no two customers with the same customer number can be entered.
Interactive Data Entry and Updating
A DBMS typically provides a way to interactively create a database and enter data, allowing users to do their own record keeping. However, interactive operation does not leave an audit trail and does not provide the controls necessary in a large organization. These controls must be written into the applications that enter and update the data.
A business information system is made up of subjects (customers, employees, vendors, etc.) and transactions (orders, payments, purchases, etc.). Database design is the process of organizing this data into related record types. A DBMS is able to maintain the linkage between these relationships (customers and orders, vendors and purchases, etc.) and process them as a single entity.
Organizations may use one kind of DBMS for daily transaction processing and then move the detail to another DBMS better suited for random inquiries and analysis.
Overall systems design decisions are performed by data administrators and systems analysts. Detailed database design is performed by database administrators. Developing business information systems require an understanding of database design and programming.
Hierarchical, Network & Relational
As mentioned above, information systems are made up of related files, and a key DBMS feature is its ability to manage these relationships.
Hierarchical databases link records like an organization chart. A record type can be owned by only one owner. In the following example, orders are owned by only one customer. Hierarchical structures were widely used with early mainframe systems; however, they are often restrictive in linking real-world structures.
In network databases, a record type can have multiple owners. In the example below, orders are owned by both customers and products, reflecting their natural relationship in business.
Relational databases do not link records together physically, but the design of the records must provide a common field, such as account number, to allow for matching. Often, the fields used for matching are indexed in order to speed up the process.
In the following example, customers, orders and products are linked by comparing data fields and/or indexes when information from more than one record type is needed. This method is more flexible for ad hoc inquiries. Many hierarchical and network DBMSs also provide this capability.
Certain information systems may have complex data structures not easily modeled by traditional data structures. An "object database" can be employed when hierarchical, network and relational structures are too restrictive. Object databases can easily handle many-to-many relationships.
All DBMSs provide some data validation; for example, they can reject invalid dates or alphabetic data entered into money fields. But most validation is left up to the application programs.
Intelligent databases provide more validation; for example, table lookups can reject bad spelling or coding of items. Common algorithms can also be used such as one that computes sales tax for an order based on zip code.
When validation is left up to each application program, one program could allow an item to be entered while another program rejects it. Data integrity is better served when data validation is done in only one place. Mainframe DBMSs were the first to become intelligent, and all the others followed suit.
DBMS and OS Interaction
This diagram shows the interaction between the DBMS with other system and application software running in memory.