You have many options for defining a database and storing your application's data. Among the most popular are indexed, hierarchical, and relational data storage technologies. These types of data storage differ not only in the way they physically manage the storage and retrieval of data, but also in the conceptual models they present to the user and programmer.
Indexed databases (such as VSAM) provide extremely fast data retrieval, suitable for sequential lists, random retrieval, and complex file relationships. You can easily read a VSAM file from beginning to end, or simply retrieve specific records using the index key. Indexed databases typically provide just data storage and retrieval. Your application's code must handle referential integrity and data validation processes.
A hierarchical database is especially useful for implementing "inverted tree" structures such as a bill of materials or organizational rankings. Hierarchical data access is very fast because the data structures are directly linked. One interesting feature of a hierarchical database is that referential integrity is built-in. Any deletion of a parent record will automatically delete all linked child records as well. However, a hierarchical database does not model complex relationships very well, and implementation requires an experienced systems programmer.
In recent years, the relational database has generally become the de facto standard for database storage. This is due both to the usability of the relational model itself, and because it provides a standard interface called Structured Query Language (SQL) that allows many different database tools and products to work together in a consistent and understandable way. Additionally, a relational database typically provides mechanisms for handling referential integrity, data validation, and a host of administrative processes to set up and maintain your application's data.
If you are designing an enterprise application, you might be using existing mainframe databases, including relational, VSAM, and AS/400 files. With Microsoft® SNA Server you can seamlessly use mainframe databases and distributed databases located on the network. This integration of mainframe and distributed data with Windows-based applications means that you have many excellent choices for a data storage technology.
For More Information For more information on using SNA Server to access mainframe data, see Implementing Mainframe Data Access in Chapter 6 of this book.
There are no strict guidelines for choosing a data storage technology. It's worth noting that with all of the data storage technologies discussed in this section (and many others not mentioned), you can use OLE DB with ActiveX® Data Objects (ADO) as a common data access technology.
For More Information For more information on using OLE DB and ADO to provide data access for any data storage mechanism, see Choosing the Right Data Access Technology in Chapter 5 of this book.
After you choose a data storage technology, you create your application's final data structures by translating your data definitions into the Data Definition Language (DDL) of the database engine. The actual implementation language varies depending on which database engine you choose.