March 07, 2016
This is the second post in a series that celebrates important ideas in the development of business systems and the applications that support them. The subject of this post is database technology and the software that supports it. Database technology typically means a database management system (DBMS), which is system software for creating and managing databases. The DBMS software provides programmers and others with an orderly way to create, retrieve, update and manage data.
In the Beginning
When many mainframe programmers started programming, access methods were the only way to store and retrieve the data that was used by programs. Prior to access methods channel programming was used to access data on external devices. Depending on retrievals needs and one’s knowledge of the options available, programmers created sequential, direct access and indexed files. Direct was considered something of a challenge because mapping a key to a record location wasn’t always straightforward. If you were lucky, there was an easy one-to-one pairing of key to record location. The access methods had names like SAM, BDAM, ISAM and VSAM. Many are still used today not just because the applications are still around but also because they still do the job well when matched to certain needs.
Things Have Changed
Today, many applications use database technology in place of access methods. There is good reason for this. Consider this straightforward list
from technologist Robert Harvey:
* You can query data in a database, basically ask it questions.
* You can look up data from a database relatively quickly.
* You can relate data from two different tables together using JOINs
* You can create useful reports from data in a database.
* Your data has a built-in structure to it and it is easy to see the order.
* Information of a given type is always stored only once so redundancy is eliminated.
* Databases are ACID, which means they have the properties of atomicity, consistency, isolation and durability. This is a set of characteristics that guarantee reliable handling of database transactions.
* Databases are fault-tolerant
* Databases can handle very large amounts of data.
* Databases are concurrent handling multiple users at the same time without corrupting the data.
* Databases scale well
In short, developers who use databases benefit from a wide range of well known, proven technologies developed over many years by a wide variety of very smart people.
When Does It Make Sense?
Today, it is hard to imagine developing a new application without using a DBMS. Uche Ogbuji, Enterprise Data Architect, Engineer and Entrepreneur writes
“Anyone looking for a good flame war can always drop into any software development forum and casually ask what database software should be used for the next project, or even ask whether he or she needs to bother with a relational database. Because databases technologies are such an important part of programmer philosophy, it is hard to find objective discussion for the hapless developer looking for a good, general-purpose database management system (DBMS) to use in a project.” Ogbuji’s IBM developerWorks article “Choosing a Database Management System” is 15 years old but the ideas still ring true today.
Posted March 07, 2016 | Permalink