Introduction
A database-management system (DBMS) is a collection
of interrelated data and a set of programs to access those
data. The collection of data, usually referred to as the
database, contains information relevant to an enterprise.
The primary goal of a DBMS is to provide a way to store and
retrieve database information that is both convenient and
efficient.
Database systems are designed to manage large bodies of
information. Management of data involves both defining
structures for storage of information and providing
mechanisms for the manipulation of information. In addition,
the database system must ensure the safety of the
information stored, despite system crashes or attempts at
unauthorized access. If data are to be shared among several
users, the system must avoid possible anomalous results.
Because information is so important in most organizations,
computer scientists have developed a large body of
concepts and techniques for managing data. These
concepts and techniques form the focus of this book. This
chapter briefly introduces the principles of database
systems.
1.1 Database-System Applications
The earliest database systems arose in the 1960s in
response to the computerized management of commercial
data. Those earlier applications were relatively simple
compared to modern database applications. Modern
applications include highly sophisticated, worldwide
enterprises.
All database applications, old and new, share important
common elements. The central aspect of the application is
not a program performing some calculation, but rather the
data themselves. Today, some of the most valuable
corporations are valuable not because of their physical
assets, but rather because of the information they own.
Imagine a bank without its data on accounts and customers
or a social-network site that loses the connections among its
users. Such companies' value would be almost totally lost
under such circumstances.
Database systems are used to manage collections of
data that:
are highly valuable,
are relatively large, and
are accessed by multiple users and applications, often
at the same time.
Page 2
The first database applications had only simple, precisely
formatted, structured data. Today, database applications
may include data with complex relationships and a more
variable structure. As an example of an application with
structured data, consider a university's records regarding
courses, students, and course registration. The university
keeps the same type of information about each course:
course-identifier, title, department, course number, etc.,
and similarly for students: student-identifier, name, address,
phone, etc. Course registration is a collection of pairs: one
course identifier and one student identifier. Information of
this sort has a standard, repeating structure and is
representative of the type of database applications that go
back to the 1960s. Contrast this simple university database
application with a social-networking site. Users of the site
post varying types of information about themselves ranging
from simple items such as name or date of birth, to complex
posts consisting of text, images, videos, and links to other
users. There is only a limited amount of common structure
among these data. Both of these applications, however,
share the basic features of a database.
Modern database systems exploit commonalities in the
structure of data to gain efficiency but also allow for weakly
structured data and for data whose formats are highly
variable. As a result, a database system is a large, complex
software system whose task is to manage a large, complex
collection of data.
Managing complexity is challenging, not only in the
management of data but in any domain. Key to the
management of complexity is the concept of abstraction.
Abstraction allows a person to use a complex device or
system without having to know the details of how that
device or system is constructed. A person is able, for
example, to drive a car by knowing how to operate its
controls. However, the driver does not need to know how
the motor was built nor how it operates. All the driver needs
to know is an abstraction of what the motor does. Similarly,
for a large, complex collection of data, a database system
provides a simpler, abstract view of the information so that
users and application programmers do not need to be aware
of the underlying details of how data are stored and
organized. By providing a high level of abstraction, a
database system makes it possible for an enterprise to
combine data of various types into a unified repository of
the information needed to run the enterprise.
Here are some representative applications:
Enterprise Information
Sales: For customer, product, and purchase
information.
Accounting: For payments, receipts, account
balances, assets, and other accounting information.
Human resources: For information about
employees, salaries, payroll taxes, and benefits, and
for generation of paychecks.
Manufacturing: For management of the supply chain
and for tracking production of items in factories,
inventories of items in warehouses and stores, and
orders for items.
Banking and Finance
Banking: For customer information, accounts,
loans, and banking transactions.
Credit card transactions: For purchases on credit
cards and generation of monthly statements.
Finance: For storing information about holdings,
sales, and purchases of financial instruments such
as stocks and bonds; also for storing real-time
market data to enable online trading by customers
and automated trading by the firm.
Universities: For student information, course
registrations, and grades (in addition to standard
Page 3
enterprise information such as human resources and
accounting).
Airlines: For reservations and schedule information.
Airlines were among the first to use databases in a
geographically distributed manner.
Telecommunication: For keeping records of calls,
texts, and data usage, generating monthly bills,
maintaining balances on prepaid calling cards, and
storing information about the communication networks.
Web-based services
Social-media: For keeping records of users,
connections between users (such as friend/follows
information), posts made by users, rating/like
information about posts, etc.
Online retailers: For keeping records of sales data
and orders as for any retailer, but also for tracking a
user's product views, search terms, etc., for the
purpose of identifying the best items to recommend
to that user.
Online advertisements: For keeping records of
click history to enable targeted advertisements,
product suggestions, news articles, etc. People
access such databases every time they do a web
search, make an online purchase, or access a social
networking site.
Document databases: For maintaining collections of
new articles, patents, published research papers, etc.
Navigation systems: For maintaining the locations of
varies places of interest along with the exact routes of
roads, train systems, buses, etc.
As this list illustrates, databases form an essential
part not only of every enterprise but also of a large
part of a person's daily activities.
Page 4
The ways in which people interact with databases has
changed over time. Early databases were maintained as
back-office systems with which users interacted via printed
reports and paper forms for input. As database systems
became more sophisticated, better languages were
developed for programmers to use in interacting with the
data, along with user interfaces that allowed end users
within the enterprise to query and update data.