Databases are collections of organized information. The data is normally organized to help model the aspects of the information in a manner that support processing requests for information in a useful manner. A DBMS (database management system) is an application that is designed specifically to interact with the end-user, the database of information, and other software programs in order to store, manipulate, and analyze information. Some of the better-known DBMSs in use today include Microsoft SQL Server, MySQL, Oracle, IBD DB2, LibreOffice Base, FoxPro, and FileMaker Pro. Most DBMSs are able to interoperate with each other through the use of Web standards such as ODBC, SQL, and JDBC to let single applications work with more than one DBMS at a time.
Every DBMS has four essential components that include: a modeling language, data structure, database query language, and a transaction mechanism. Depending on the goals of the database management system, these components may be designed to focus on different productivity aspects, but will all work in a similar fashion when compared across implementations.
DBMS Modeling Language
A DBMS modeling language provides the definition of the language of the database being hosted by the DBMS. There are a number of different methods taken through implementation of modeling languages which include using a network, relational, object, or hierarchical structure. No matter what scheme is chosen, the primary goal of the modeling language is to establish the framework for the database to communicate with the DBMS and to allow operations to be conducted within the data system.
Database Data Structures
Every DBMS makes use of one or more data structures to help organize the data being stored by the system. The data structure allows the DBMS to use the information stored in the database without damaging the integrity of the data. Some of the common examples of information that are stored using this functionality within a DBMS include visual media objects, individual records or profiles, field and definitions, and files.
Database Data Query Language
The third common element of a DBMS is a data query language. This element of the management system ensures the security of the database is maintained through enforcing a rule set that defines when information can be added to the system, the assignment of privileges and access rights to the system, and monitors the use of login information. The data query language is designed to work with the data structure to ensure that it is able to input only relevant information into the database.
The fourth element of a DBMS is a scheme or mechanism for conducting transactions across the system. This is critical for permitting concurrent access to the database by more than one user at a time. The transactional system also prevents the manipulation of a single record at the same time by two or more users as well as precluding the creation of two or more records with the same information.
History of Database Management Systems (DBMSs) Summary
Database technology and database management systems have continued to exponentially grow in complexity and capability over the past several decades. When taking a look at the history of DBMS development over the past several decades, the three types of data model that database technology has progressed through include: navigational, relational (SQL), and post-relational. The early navigational database models were based on a hierarchical structure and were implemented in a number of IBM products to include the IDMS. The relational model was first proposed by Edgar F. Codd in 1970 and changed the concept by forcing the database system to search for information based on the content vice following a link to the information. This model was the first to use tables that were subdivided by type of entity. It would take until the mid-1980s for computer hardware to catch-up to relational theory to allow relational DBMSs to be deployed alongside a processing application. This model also gave rise to the development of standard SQL as the primary database language and has helped influenced developments in newer database models.
Although object databases were first invented in the 1980s to help overcome some of the short-comings of the relational model, they have not yet supplanted the relational model on the market place. In the 2000s, the NoSQL database started to emerge which features document orientated databases that use fast key-value stores. Not to throw away the past, there are also NewSQL databases under development which are attempting newer implementations which retain the relational model while significantly improving the overall performance of the DBMS.
How Did the Early Navigational DBMSs Work?
The database term was first used when disks and drums in the 1960s were first used for direct-access storage of data. This change represented a significant change in the way that information was conceptually accessed and shared vice the traditional batch processing methods use with tape-based computer storage systems. As the computers of this time continued to grow in capability, there were a number of database systems that started to emerge to include several that were used in industry. By 1971, the COBOL standard was developed which relied on the manual navigation of linked data sets that were coupled into a large network. If a user or computer was looking for a data record, the information could be located through the use of a CALC (primary) key that was implemented through hashing, or by navigating from one record to another in sequential order. Subsequent database systems would implement alternate data navigation paths to reach information. The subsequently developed Codasyl databases added a query language that added to the complexity of the DBMS implementation.
In this same timeframe, IBM also created their own DMBS system that was called IMS. The system resulted as a development of software originally created for the Apollo space program on the System/360. The DBMS operated similarly in concept to Codasyl, but made use of a strict data hierarchy for the navigation of information within the system vice the network model. Each of these competing concepts would become known as navigational databases due to the nature of the way that the data was architected for access.
Relational Database Management Systems of the 1970s
In 1970, Edgar Codd was responsible for coming up with the concepts that would eventually result in the development of the relational database model. He conducted his research while working for IBM and his groundbreaking work was published in, A Relational Model of Data for Large Shared Data Banks. In his paper, Codd would go on to describe a new database that used a table of fixed length records to store information. Each of these tables would be used for different types of information and would avoid the inefficiencies found with the linked-list system used in navigational database. In the relational model, information could be inserted, edited, and deleted in tables within the DBMS freely. The system would be responsible for taking care of the required maintenance to show a useable view of the information to the end user or applications. The related records in the relational model are linked together by using a database key.
Another significant advantage of the relational database model was that the content of the database could continually evolve without having to rewrite the underlying data structure pointers and links. Due to the “one-to-many” relationship inherent in the design of the relational model, both navigational and hierarchical models are able to be represented along with the native tabular model of the database. The information in the model relies upon the key to provide the context that the information pertains to other records stored within the database.
The concepts put forth by Codd would ultimately be picked up by the INGRES project that delivered the first test database products in the 1973 and started seeing significant use in 1979. The INGRES database started to use the QUEL query language and ultimately transitioned to the then emerging SQL standard.
Database Machines of the 1970s and 1980s
In this same timeframe, there were a number of attempts made by academia and industry to build a DBMS that had integrated hardware and software. The underlying idea was that if you could pull off this type of highly specialized integration, there would be a much higher performance result with a significantly lower cost. Some of the examples of this experimentation were the Britton Lee, Teradata, and the IBM System/38 database machines. An alternative approach in this same timeframe was the ICL CAFS accelerator which used a hardware disk controller that had programmable search capabilities. At the end of the day; however, all of the work on creating specialized hardware for database systems were unable to stay ahead of the increases in capability of the general computers of the era. As a result, the majority of DBMSs in use today are primarily software systems that are built upon general purpose computers or servers. Highly specialized database companies who specialize in extremely large datasets or very specific niche industries have been able to realize cost savings with creating specialized hardware for their DBMS(s); however, this is generally the exception rather than the rule in the computing world at the time of this writing.
Desktop Databases of the 1980s
As the 1980s progressed, desktop computing started to spread throughout industry. The new capability allowed user to use desktop productivity software to include spreadsheets and word processing programs as well as database software. One of the popular software packages of the era was dBase which was a lightweight database product that was considered to be easy to use out of the box. The designer of the desktop database program ensured the data manipulation was handled by the software application instead of the end-user. The dBase product remained one of the most popular database titles sold throughout the 1980s and early 1990s.
NoSQL and NewSQL Datbases of the 2000s
In the 2000s, a post-relational database methodology emerged. This type of database is known as a NoSQL database. The database type features document orientated databases and features fast key-value stores. The documents are predominately based on the XML data markup language and allow queries to be made on the information based on the document attributes. This type of database is much faster than relational databases and is made to scale horizontally. Some of the more popular NoSQL DMBSs include Oracle NoSQL Database, Riak, Couchbase, Apache Cassandra, CouchDB, and HBase which are all open source-based products. The newer relational databases emerging on the market which have similar performance benchmarks to NoSQL types are referred to as NewSQL.
What are the Differences between a DBMS and a RDBMS?
As discussed, a database is a software program that allows the storage of related information or data. A question that commonly arises when looking a various databases on the market is what is the difference between a DBMS and a RDMS? First, each is a model for storing information in a physical database. A RDMS (relational database management system) is one that stores this data in tables that have relationships defined with other tables. In comparison, a DBMS (database management system) does not require any relationships to be defined between these tables.
When an organization is making a decision on what type of database system to employ, they will typically select an RDMS if there is a large or complicated data set that requires management. A smaller data set can normally be managed with a DBMS at a lower development and maintenance cost.