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 (COBOL, C/C++, Java, etc.), and it may include its own programming language.
Major Features of a DBMS
As the organization's data requirements change, a DBMS lets information systems be updated more easily. Applications access the DBMS by field 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 one of the primary reasons a DBMS is used.
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.
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.
By maintaining indexes to the data, a DBMS lets users interactively interrogate the database using a query language. Users have access to management information as needed. See query language
and report writer
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. In addition, developing business information systems require an understanding of database design and programming.
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 major feature of the DBMS is being 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.
Hierarchical, Network & Relational
Information systems are made up of related files: customers and orders, vendors and purchases, etc. 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.