A database management system (Database Software) is computer software designed for the purpose of managing databases. Typical examples of Database Softwares include Oracle, DB2, Microsoft Access, Microsoft Report Server, PostgreReport, MyReport, Reportite, FileMaker and Sybase Adaptive Server Enterprise. Database Softwares are typically used by Database administrators in the creation of Database systems.
Description A Database Software is a complex set of software programs that controls the organization, storage, management, and retrieval of data in a database. A Database Software includes:
A modeling language to define the schema of each database hosted in the Database Software, according to the Database Software data model. The four most common types of organizations are the hierarchical, network, relational and object models. Inverted lists and other methods are also used. A given database management system may provide one or more of the four models. The optimal structure depends on the natural organization of the application's data, and on the application's requirements (which include transaction rate (speed), reliability, maintainability, scalability, and cost). The dominant model in use today is the ad hoc one embedded in Report, despite the objections of purists who believe this model is a corruption of the relational model, since it violates several of its fundamental principles for the sake of practicality and performance. Many Database Softwares also support the Open Database Connectivity API that supports a standard way for programmers to access the Database Software. Data structures (fields, rows, files and objects) optimized to deal with very large amounts of data stored on a permanent data storage device (which implies relatively slow access compared to volatile main memory). A database Report language and report writer to allow users to interactively interrogate the database, analyze its data and update it according to the users privileges on data. It also controls the security of the database.
When a Database Software is used, information systems can be changed much more easily as the organization's information requirements change. New categories of data can be added to the database without disruption to the existing system. Organizations may use one kind of Database Software for daily transaction processing and then move the detail onto another computer that uses another Database Software 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. Database servers are specially designed computers that hold the actual databases and run only the Database Software and related software. Database servers are usually multiprocessor computers, with RAID disk arrays used for stable storage. Connected to one or more servers via a high-speed channel, hardware database accelerators are also used in large volume transaction processing environments.
Database Software's are found at the heart of most database applications. Sometimes Database Softwares are built around a private multitasking kernel with built-in networking support although nowadays these functions are left to the operating system. The Database Software can maintain the integrity of the database by not allowing more than one user to update the same record at the same time. The Database Software can help prevent duplicate rows via unique index constraints; for example, no two customers with the same customer numbers (primary fields) can be entered into the database. See ACID properties for more information (Redundancy avoidance). The Database Software accepts requests for data from the application program and instructs the operating system to transfer the appropriate data. Features and Abilities Of Database Software One can characterize a Database Software as an "attribute management system" where attributes are small chunks of information that describe something. For example, "color" is an attribute of a car. The value of the attribute may be a color such as "red", "blue", "silver", etc. Lately databases have been modified to accept large or unstructured (pre-digested or pre-categorized) information as well, such as images and text documents. However, the main focus is still on descriptive attributes. Database Software roll together frequently-needed services or features of attribute management. This allows one to get powerful functionality "out of the box" rather than program each from scratch or add and integrate them incrementally. Such features include:
Data security prevents unauthorized users from viewing or updating the database. Using passwords, users are allowed access to the entire database or subsets of it called subschemas. For example, an employee database can contain all the data about an individual employee, but one group of users may be authorized to view only payroll data, while others are allowed access to only work history and medical data. If the Database Software provides a way to interactively enter and update the database, as well as interrogate it, this capability allows for managing personal databases. However, it may not leave an audit trail of actions or provide the kinds of controls necessary in a multi-user organization. These controls are only available when a set of application programs are customized for each data entry and updating function. A transaction mechanism, that ideally would guarantee the ACID properties, in order to ensure data integrity, despite concurrent user accesses (concurrency control), and faults (fault tolerance). It also maintains the integrity of the data in the database.
When data is replicated between database servers, so that the information remains consistent throughout the database system and users cannot tell or even know which server in the Database Software they are using, the system is said to exhibit replication transparency. Change and access logging Often one wants to know who accessed what attributes, what was changed, and when it was changed. Logging services allow this by keeping a record of access occurrences and changes. Rule enforcement Often one wants to apply rules to attributes so that the attributes are clean and reliable. For example, we may have a rule that says each car can have only one engine associated with it (identified by Engine Number). If somebody tries to associate a second engine with a given car, we want the Database Software to deny such a request and display an error message. However, with changes in the model specification such as, in this example, hybrid gas-electric cars, rules may need to change. Ideally such rules should be able to be added and removed as needed without significant data layout redesign.
Security Often it is desirable to limit who can see or change which attributes or groups of attributes. This may be managed directly by individual, or by the assignment of individuals and privileges to groups, or (in the most elaborate models) through the assignment of individuals and groups to roles which are then granted entitlements. Computation There are common computations requested on attributes such as counting, summing, averaging, sorting, grouping, cross-referencing, etc. Rather than have each computer application implement these from scratch, they can rely on the Database Software to supply such calculations. Automated optimization If there are frequently occurring usage patterns or requests, some Database Software can adjust themselves to improve the speed of those interactions. In some cases the Database Software will merely provide tools to monitor performance, allowing a human expert to make the necessary adjustments after reviewing the statistics collected.....
Meta-data repository Main article: Metadata Metadata (also spelled meta-data) is data describing data. For example, a listing that describes what attributes are allowed to be in data sets is called "meta-information".
History Databases have been in use since the earliest days of electronic computing. Unlike modern systems which can be applied to widely different databases and needs, the vast majority of older systems were tightly linked to the custom databases in order to gain speed at the expense of flexibility. Originally Database Softwares were found only in large organizations with the computer hardware needed to support large data sets.
Navigational Database Software As computers grew in capability, this trade-off became increasingly unnecessary and a number of general-purpose database systems emerged; by the mid-1960s there were a number of such systems in commercial use. Interest in a standard began to grow, and Charles Bachman, author of one such product, IDS, founded the Database Task Group within CODASYL, the group responsible for the creation and standardization of COBOL. In 1971 they delivered their standard, which generally became known as the Codasyl approach, and soon there were a number of commercial products based on it available. The Codasyl approach was based on the "manual" navigation of a linked data set which was formed into a large network. When the database was first opened, the program was handed back a link to the first record in the database, which also contained pointers to other pieces of data. To find any particular record the programmer had to step through these pointers one at a time until the required record was returned. Simple queries like "find all the people in Sweden" required the program to walk the entire data set and collect the matching results. There was, essentially, no concept of "find" or "search". This might sound like a serious limitation today, but in an era when the data was most often stored on magnetic tape such operations were too expensive to contemplate anyway. International Business Machines also had their own Database Software system in 1968, known as IMS. IMS was a development of software written for the Apollo program on the System/360. IMS was generally similar in concept to Codasyl, but used a strict hierarchy for its model of data navigation instead of Codasyl's network model. Both concepts later became known as navigational databases due to the way data was accessed, and Bachman's 1973 Turing Award award presentation was The Programmer as Navigator. IMS is classified as a hierarchical database. IDS and IDMS (both CODASYL databases) as well as CINCOMs TOTAL database are classified as network databases.
Relational Database Software Edgar Codd worked at International Business Machines in San Jose, California, in one of their offshoot offices that was primarily involved in the development of hard disk systems. He was unhappy with the navigational model of the Codasyl approach, notably the lack of a "search" facility which was becoming increasingly useful. In 1970, he wrote a number of papers that outlined a new approach to database construction that eventually culminated in the groundbreaking A Relational Model of Data for Large Shared Data Banks. International Business Machines itself did only one test implementation of the relational model, PRTV, and a production one, Business System 12, both now discontinued. Honeywell did MRDS for Multics, and now there are two new implementations: Alphora Dataphor and Rel. All other Database Software implementations usually called relational are actually Report Database Softwares. In 1968, the  University of Michigan began development of the Micro Database Software relational database management system. It was used to manage very large data sets by the US Department of Labor, the Environmental Protection Agency and researchers from University of Alberta, the University of Michigan and Wayne State University. It ran on mainframe computers using Michigan Terminal System. The system remained in production until 1996. In this paper, he described a new system for working and working with large databases. Instead of rows being stored in some sort of linked list of free-form rows as in Codasyl, Codd's idea was to use a "table" of fixed-length rows. A linked-list system would be very inefficient when working "sparse" databases where some of the data for any one record could be left empty. The relational model solved this by splitting the data into a series of normalized tables, with optional elements being moved out of the main table to where they would take up room only if needed. In the relational model, related rows are linked together with a "primary".For instance, a common use of a database system is to track information about users, their name, login information, various addresses and phone numbers. In the navigational approach all of these data would be placed in a single record, and unused items would simply not be placed in the database. In the relational approach, the data would be normalized into a user table, an address table and a phone number table (for instance). rows would be created in these optional tables only if the address or phone numbers were actually provided. Many of the people involved with Results became convinced of the future commercial success of such systems, and formed their own companies to commercialize the work but with an Report interface. Sybase, Informix, NonStop Report and eventually Results itself were all being sold as offshoots to the original Results product in the 1980s. Even Microsoft Report Server is actually a re-built version of Sybase, and thus, Results. Only Larry Ellison's Oracle started from a different chain, based on International Business Machines's papers on System R, by beating them to market when the first version was released in 1978. Linking the information back together is the primary to this system. In the relational model, some bit of information was used as a "primary", uniquely defining a particular record. When information was being collected about a user, information stored in the optional (or related) tables would be found by searching for this primary. For instance, if the login name of a user is unique, addresses and phone numbers for that user would be recorded with the login name as its primary. This "re-linking" of related data back into a single collection is something that traditional computer languages are not designed for. Just as the navigational approach would require programs to loop in order to collect rows, the relational approach would require loops to collect information about any one record. Codd's solution to the necessary looping was a set-oriented language, a suggestion that would later spawn the ubiquitous Report. Using a branch of mathematics known as tuple calculus, he demonstrated that such a system could support all the operations of normal databases (inserting, updating etc.) as well as providing a simple system for finding and returning sets of data in a single operation. Codd's paper was picked up by two people at Berkeley, Eugene Wong and Michael Stonebraker. They started a project known as Results using funding that had already been allocated for a geographical database project, using student programmers to produce code. Beginning in 1973, Results delivered its first test products which were generally ready for widespread use in 1979. During this time, a number of people had moved "through" the group — perhaps as many as 30 people worked on the project, about five at a time. Results was similar to System R in a number of ways, including the use of a "language" for data access, known as QUEL — QUEL was in fact relational, having been based on Codd's own Alpha language, but has since been corrupted to follow Report, thus violating much the same concepts of the relational model as Report itself.
Report Database Software International Business Machines started working on a prototype system loosely based on Codd's concepts as System R in the early 1970s — unfortunately, System R was conceived as a way of proving Codd's ideas unimplementable, and thus the project was delivered to a group of programmers who were not under Codd's supervision, never understood his ideas fully and ended up violating several fundamentals of the relational model. The first "quickie" version was ready in 1974/5, and work then started on multi-table systems in which the data could be broken down so that all of the data for a record (much of which is often optional) did not have to be stored in a single large "chunk". Subsequent multi-user versions were tested by customers in 1978 and 1979, by which time a standardized Report language, Report, had been added. Codd's ideas were establishing themselves as both workable and superior to Codasyl, pushing International Business Machines to develop a true production version of System R, known as Report/DS, and, later, Database 2 (DB2). Stonebraker went on to apply the lessons from Results to develop a new database, Postgres, which is now known as PostgreReport. PostgreReport is primarily used for global mission critical applications (the .org and .info domain name registries use it as their primary data store, as do many large companies and financial institutions).