Databases - Organizing your data

Database technologies provide abtractions for representing and manipulating data in computer systems. These abstractions ease the task of the developer writing applications allowing one to store and retrieve such data using functions that are more closely tied to the data representation of choice.For small applications on centralized systems, almost any database might do, with the choice based primarily on the abstraction that best models that kind of data used by the application.

When one begins to develop applications that manipulate significant amounts of data, especially in a distributed manner, then one is in a realm where different database technologies rapidly distinguishe themselves from one another. There are many optimizations applied for performance, for reliability, and availability. If concurrent access is needed to the database by multiple processes, then one enters the realm of transactional databases with their requirements and support for atomicity and seralizability, and the accompanying need to avoid deadlock.

Today, distributed applications are all about databases and networking. Perhaps that is why many years ago Sun Microsystem began to use the catch phrase "the network is the computer". With Oracle's recent acquisition of Sun Microsystems, I guess we might soon be hearing that "the network is the database".