(DataBase Management System) 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, DB2, SQL Server and ASE). MySQL and SQLite are very popular open source products (see MySQL and SQLite).
A DBMS interfaces with applications written in traditional programming languages (COBOL, C/C++, Java, etc.), and it may include its own programming language.
A DBMS lets information systems be changed more easily as the organization's requirements change. New categories of data can be added to the database without disruption to the existing system. Adding a field to a record does not require changing any of the programs that do not use the data in that new field.
Major Features of a DBMS
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.
A DBMS provides a query language and report writer that lets users interactively interrogate the database. These essential components give users access to all management information as needed. See query language
and report writer
Interactive Data Entry and Updating
A DBMS typically provides a way to interactively enter and edit data, allowing you to manage your own files and databases. However, interactive operation does not leave an audit trail and does not provide the controls necessary in a large organization. These controls must be programmed into the data entry and update programs of the application.
This is a common misconception about using a desktop computer DBMS. Creating lists of data for a user's own record keeping is one thing. However, although complete information systems can be developed with such software, it cannot be done without understanding how transactions and files relate to each other in a business system (see Database Design below). In addition, some type of programming is required, whether at a graphical drag and drop level or by using traditional languages.
When a DBMS is used, the details of the data structure are not stated in each application program. The program asks the DBMS for data 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, the programmer must reserve space for the full structure of the record in the program. Any change in data structure requires changing all application programs.
A business information system is made up of subjects (customers, employees, vendors, etc.) and activities (orders, payments, purchases, etc.). Database design is the process of organizing this data into related record types. The DBMS that is chosen is the one that can support the organization's data structure while efficiently processing the transaction volume.
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.