Take spreadsheets as an example. Spreadsheet worksheets are typically
designed for a specific application. If two users store names and
addresses, they are likely to organize data in a different
way—depending on their needs—and develop custom methods
to move around and summarize the data. In this scheme, the program
and the data aren't independent: moving a column
might mean rewriting a macro or formula, while exchanging data
between the two users' applications might be
complex. In contrast, a DBMS and a database provide data-program
independence, where the method for storing the data, the order of the
stored information, and how the data is managed on disk are
independent of the software that accesses it.
Managing complex relationships is difficult in a spreadsheet or text
file. For example, consider our online winestore: if we want to store
information about customers, we might allocate a few spreadsheet
columns to store each customer's residential
address. If we were to add business addresses and postal addresses,
we'd need more columns and complex processing to,
for example, process a mail-out to customers. If we want to store
information about the purchases by our customers, the spreadsheet
becomes wider still, and problems start to emerge. For example, it is
difficult to determine the maximum number of columns needed to store
orders and to design a method to process these for reporting.
Spreadsheets or text files don't work well when
there are associations or relationships between stored data items. In
contrast, DBMSs are designed to manage complex
relational data. DBMSs are also a complete
solution: if you use a DBMS, you don't need to
design a custom spreadsheet or file solution. The methods that access
the data—most often the query language SQL—are
independent of how the data is physically stored and actually
processed.
A DBMS usually permits multiuser transactions. Medium- and
large-scale DBMSs include features that control the writing of data
by multiple users in a methodical way. In contrast, a spreadsheet
should be opened and written only by one user; if another user opens
the spreadsheet, she won't see any updates being
made at the same time by the first user. At best, a shared
spreadsheet or text file permits very limited concurrent access.
An additional benefit of a DBMS is its speed. It
isn't totally true to say that a database provides
faster searching of data than a spreadsheet or a custom filesystem.
In many cases, searching a spreadsheet or a special-purpose file
might be perfectly acceptable, or even faster if it is designed
carefully and the volume of data is small. However, for managing
large amounts of related information, the underlying search
structures in a DBMS can permit fast searching, and if information
needs are complex, a DBMS should optimize the method of retrieving
the data.
There are also other advantages of DBMSs, including data-oriented and
user-oriented security, administration software, and data recovery
support. A practical benefit is reduced application development time:
the system is already built, it needs only data and queries to access
the data.