Download Databases

Document related concepts

Open Database Connectivity wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Database wikipedia , lookup

Relational model wikipedia , lookup

Navitaire Inc v Easyjet Airline Co. and BulletProof Technologies, Inc. wikipedia , lookup

Clusterpoint wikipedia , lookup

Database model wikipedia , lookup

Chapter Contents
Database Basics
Database Models
Data Management Software
Database Management Systems
Databases and the Web
Defining Fields
Organizing Records
Designing the Interface
Designing Report Templates
Loading Data
After reading this chapter, you will be able to answer the following questions by completing the outcomes-based Learning
Objectives Checkpoints on page 669.
1 What makes databases such an essential component of
modern life?
SQL Basics
Adding Records
Searching for Information
Updating Fields
Joining Tables
2 Can databases be used to predict customer behavior and find
5 What’s the difference between flat files and other database
Database Vulnerabilities
Database Security Measures
Database Security Regulations
What Individuals Can Do
Learning Objectives
3 What are the basic components of a database?
4 Why are relationships a significant aspect of databases?
6 What is the best software for creating and managing
7 Is it possible to access databases using the Web?
8 What is the significance of field types in a database?
9 Why do errors creep into databases?
10 How do database designers use normalization to reduce data
11 What role do sorting and indexing play in making databases
more versatile?
12 Is it difficult to create reports from a database?
13 What is SQL?
14 How safe is the data in a database?
15 Have lawmakers kept up with technology by enacting laws and
regulations pertaining to databases?
16 Can individuals take steps to protect their privacy when so
much personal data is stored in corporate and government
Web Site
Multimedia and Interactive Elements
Visit the NP2011 Web site to
access additional resources w that
accompany this chapter.
When using the BookOnCD, or other BookOn products, the
are clickable to access multimedia resources.
Pre-Assessment Quiz
Take the pre-assessment quiz to find out how much you know about the topics in this chapter.
Apply Your Knowledge The information in this chapter will give you the background to:
• Decide if you can use a simple tool, such as a spreadsheet, for your own databases
• Take whatever steps you can to protect personal data
that is stored on corporate and government databases
• Create an efficient and effective database and then
use it to organize, find, and report information
• Evaluate the pros and cons of proposals for using
database technology in controversial applications such
as profiling terrorists, exploring genetics, and predicting shopping habits
• Post database reports on the Web
• Formulate basic SQL queries
Try It
Databases are everywhere and information about you is in many of them. You might wonder if that information is
accurate. Data entry mistakes are easy to make, but a well designed database can prevent some common data
entry errors. To start exploring databases, you can check the design of a database that’s on most computers—the
e-mail address book.
1. Start your e-mail program and access its address
book function.
8. Try entering invalid data in other fields. What happens if you enter an invalid state abbreviation, like OP?
2. Use the menu bar or toolbar option to add an address
or contact.
9. It is not necessary to save the address you’ve
entered. Close the address book. As you read Chapter
11, you’ll discover the significance of field normalization, case sensitivity, and validity checks.
3. A typical address book stores data for each person in
a record. The record is divided into fields, such as name
and e-mail address. Many address books also store
additional data such as phone numbers and physical
addresses. How many fields does your address book
4. Begin to fill in fields with data for one of your friends.
Are the field names clearly labeled so you know what
you’re supposed to enter into them?
5. Does your address book divide the first name and
last name into two fields or does it combine that data
into one field?
6. Try entering the data for the Name field in all uppercase letters. When you move to the next field, does the
database maintain the uppercase format? Go back and
modify the field using an initial capital letter.
7. Try entering an e-mail address that does not contain
an @ sign. Does the database accept e-mail addresses
that are not valid?
File and Database Concepts
DATABASES ARE AN ESSENTIAL aspect of modern life. Most
businesses could not function without them and they are the backbone of
popular Internet services such as iTunes, MySpace, Facebook, and eBay.
Section A begins the chapter with an overview of databases and the many
ways they are used today. Throughout the chapter, many of the examples
focus on Vintage Music Shop, a fictitious Web-based music store that specializes in LP vinyl record albums. Vintage Music Shop’s information system stores data about album prices, monitors inventory levels, maintains
customer data, and reports which albums are top sellers. It also keeps track
of customer orders, prints shipping labels, and produces quarterly sales
reports. The characteristics of Vintage Music Shop’s database are typical of
many databases you encounter on and off the Web.
What is a database? In the broadest definition, a database is a collection of information. Today, databases are typically stored as computer
files. A database can be a simple personal list, such as your address book,
or it can be a massive list, such as New York City telephone numbers.
Databases can even incorporate several lists. For example, the database
for an e-commerce site, such as, includes inventory lists and
customer lists.
How is database information used? The tasks associated with creating, maintaining, and accessing the information in databases are referred
to as data management, file management, or database management.
Databases can be used in a variety of ways, from a simple tool for collecting and tracking data, to a comprehensive source for making decisions and
predicting future trends.
Collect and store data. A database is a collection of data, but that collection typically grows as additional data is obtained. Data can be collected
and entered manually or electronically. For example, you manually add
names to your address book. The Red Cross manually adds new names
to its donor list as donations arrive. Wal-Mart updates its inventory by electronically scanning RFID tags affixed to pallets of new merchandise. FedEx
clerks use bar code readers to enter package information into the shipping
Information can also be removed from a database when it is no longer
needed. Keeping a database lean can speed up searches and conserve
storage space. However, historical data can be valuable, so rather than
delete it, old data is often removed from an active database and moved to
an archive. As a consumer, you should be aware that records can remain
in databases and archives years after transactions have been completed,
your name has been “removed,” or your records are designated as “inactive.” (See Figure 11-1.)
Update data. One of the primary database management activities is
keeping data up to date. As with collecting data, updates can be made
manually or electronically. For example, your friend moves to a different
Database data that is no longer
current is typically moved to an
archive, which can be stored on
a hard drive, secondary server,
or tape. High-volume archives
can be stored in a tape silo containing thousands of data tapes
and a tape robot that pulls tapes
off the shelves and loads them
into a tape drive.
apartment, so you have to change her address in your address book. If
an employee claims an additional deduction for a new baby, her employer
has to update the payroll database. When a Best Buy customer purchases
a digital camera, the store’s point-of-sale system automatically decreases
the quantity of that item in the inventory database.
Database updates are sometimes problematic. Data entry errors can result
in database inaccuracies. When meter readers issue tickets for improperly
parked vehicles, they write the tickets by hand. License plate numbers of
ticketed vehicles are later entered into a database. If the data entry operator misreads or miskeys a license plate number, the database will contain
inaccurate data and the wrong person could receive a Failure to Pay notice.
Data entry errors are not always easy to correct (Figure 11-2). Horror
stories about data entry errors abound, including individuals—very much
alive—whose records were mistakenly marked “deceased” and victims of
identity theft who had trouble restoring their credit ratings. Organizations
that maintain databases should be held accountable for data accuracy,
especially when the data relates to individuals. Most countries, however,
have only rudimentary regulations that offer consumers minimal recourse
for mopping up after database snafus.
Data entry errors that pertain
to confidential information are
sometimes difficult to rectify
until the correct data is validated and approved.
Organize and output data. The data in a typical database is stored in
no particular order. New data is appended to the end of the file because it
is too cumbersome to insert it in, say, alphabetical order, then rearrange all
the records that come after it. Reports created with this jumble of raw data
would not be particularly useful. To make data into a more suitable report,
it can be organized in a variety of ways. It can be alphabetized, placed in
numeric order, grouped, and subtotaled.
Database output is easy to organize and reorganize without actually rearranging the physical data on the disk. A database can be configured so
that a librarian can extract a list of patrons with overdue books organized
by date, while at the same time a student can look for a list of books written by Elizabeth Peters. The same database can be configured to print
envelopes for a library fund-raiser in order by ZIP code to take advantage
of cost-saving bulk mail rates.
Distribute data. Databases, combined with mail merge and other computerized technologies, offer efficient ways to distribute information to customers, employees, the press, government agencies, and other companies.
Your monthly electric bill is generated from the power company’s database.
That recall notice you received about the braking system in your 6-monthold car, your monthly bank statement, your class schedule for next semester all are generated from databases.
Unfortunately, databases also generate mountains of Publishers Clearing
House mailings and an irritating amount of v1agr*a spam that lands in your
e-mail Inbox. Today’s digital databases are much more portable than oldfashioned paper-based databases, but the convenience of digital formats
makes computer databases easier to misuse. Spammers, junk mailers,
and telemarketers pay only a fraction of a penny for each name on a mailing list or call list. Millions of records can be easily copied, sent over the
Internet, and stored on a single data DVD. The legal system has yet to iron
out details regarding database ownership and under what conditions it is
allowable to share database data.
Find data. Databases make it easy to locate information. You can
use an online library card catalog to find books. A pharmacist can check
a pharmaceutical database for drug interactions before filling a prescrip-
tion. A computer tech can check a manufacturer’s database to find the part
number for replacing your computer’s fried hard drive.
In the software chapter, you learned about several ways to locate data in
a database. A query language, such as SQL, offers a set of commands to
help you formulate a search such as Select from MusicCollection where
Artist = ‘Elvis’ that finds all the songs performed by Elvis Presley in your
MP3 music collection. Natural query languages allow you to search by asking questions such as Show me a list of Elvis songs. You can also query by
example using a fill-in form, like the one in Figure 11-3.
A query-by-example interface
displays a form and formulates
a query based on what the user
Analyze data. A database includes certain facts as raw data, such
as names, addresses, bank balances, prices, and merchandise counts.
Analyzing this data using statistics and other interpretive tools can produce
information that is not readily apparent from simply looking at raw data.
For example, a nationwide chain of bookstores issues discount cards and
tracks books purchased using each card. An analysis of sales data shows
that customers who purchase self-help books typically purchase other
similar books within six months. Nowhere in the database does it explicitly state “self-help book purchasers tend to buy additional self-help books.”
This conclusion is new information that can be gleaned from the raw data.
Techniques for data analysis include data mining and OLAP.
What is data mining? Data mining refers to the process of analyzing
existing database information to discover previously unknown and potentially useful information, including relationships and patterns. The data
accessed by data mining and other analysis techniques is often stored
in a data warehouse, which is a repository for data from more than one
database. Data from operational databases—those used for daily transactions—is transferred to a data warehouse where it can be combined
with data from other databases to enhance the data set.
Data mining can reveal relationships. For example, an analysis of over 10
million policies and accident claims in the Farmers Insurance Group database revealed a relationship between age, marital status, second car ownership, sportscar ownership, and accident claims. Married baby boomers
who owned a full size car or minivan in addition to a sportscar tended to
make far fewer claims than younger, single sportscar owners. As a result of
the data analysis, lower insurance rates were offered to sportscar owners
who fit the low-risk profile.
A more complex type of data analysis can reveal sequences of events that
predict future trends and patterns. Predictive analytics refers to a branch
of data mining that focuses on predicting future probabilities and trends.
It makes use of statistical algorithms, neural networks, and optimization
research to discover patterns in data. For example, researchers might use
predictive analytics to predict customer behavior, unmask terrorists, forecast storm paths, or determine genetic susceptibility to certain diseases.
Data mining and predictive analytics are sometimes criticized for finding
relationships, patterns, and trends when none actually exist. You could, for
example, use data mining to look for trends in lottery numbers and locations. Suppose that data mining reveals that October’s winning numbers
always include more even numbers than odd ones, and were purchased
at convenience stores. Unhappily, probability theory would tell you that the
pattern is an anomaly and won’t help you predict next week’s winning numbers. The misuse of data mining is sometimes called data dredging or data
What is OLAP? One of today’s most advanced data analysis methods,
OLAP (online analytical processing), allows decision makers to look for
relationships between multiple data dimensions. It is a technology used
in the context of business intelligence and decision support systems that
helps decision makers by providing timely, accurate, and relevant information for business decisions.
To understand how OLAP works, imagine a sales history database for a
nationwide chain of bookstores. A manager might use OLAP to look for
trends in fiction, nonfiction, and reference book sales across three states
and over a three-month time span. The analysis includes three dimensions—book type, store location, and month. OLAP might show that trends
seem to originate in State A and spread to State C, then to State B. Based
on this analysis, a decision maker could assume that book-buying trends in
State A can be used to stock bookstores in the other states.
To analyze and mine complex data sets, decision makers sometimes use
executive dashboard software, which provides tools for formulating
OLAP queries and displaying results visually (Figure 11-4).
Executive dashboard software
helps decision makers visualize
data from complex data sets.
What is the underlying structure of a database? Computer databases evolved from manual filing systems. A filing cabinet full of folders
and papers would be classified as an unstructured file because every
document has a unique structure and contains different kinds of data. For
example, some documents might be old receipts, others could be photos or
product brochures, whereas other documents might be handwritten letters.
The electronic equivalent to this jumble of information might be the collection of documents and graphics stored at a Web site. In contrast, library
card catalogs and Rolodexes would be classified as structured files.
A structured file uses a uniform format to store data for each person or
thing in the file. The focus of this chapter is on databases that are constructed with structured files because they comprise the majority of databases used in business, e-commerce, and government activities. Structured
files can be used in different ways to build databases. The underlying structure of a database is referred to as a database model. Figure 11-5 lists
basic database models.
Some of these models are becoming obsolete, whereas other models are
just beginning to develop a track record. Understanding the characteristics
of each model will help you determine which type of database is right for
your needs, and understand why certain types of databases are popularly
deployed for various business and organizational applications.
What’s the simplest way to store data? The simplest model for
storing data is a flat file that consists of a single, two-dimensional table of
data elements. Each row in the table is a record, and each column of the
table is a field. Computer databases typically display records as rows in a
table or as forms as shown in Figure 11-6.
Database Models
Flat file
Networked database
Hierarchical database
Relational database
Dimensional database
Object database
Object-relational database
Records can be displayed as
rows in a table or as forms.
X Use your digital textbook
to review basic database terminology and take a tour of
Microsoft Access.
Each column of the
table represents a field.
In a table, a
row contains
the data for
one record in
the database.
A database
record can also
be displayed
as a form.
A field contains the smallest unit of meaningful information, so you might
call it the basic building block for a structured file or database. Each field
has a unique field name that describes its contents. For example, in an
iTunes playlist, the field called Name would hold the name of a song, the
Time field holds the song length, the Artist field holds the name of the performer, the Album field holds the name of the album that the song came
from, and the Genre field holds the type of song.
A field can be variable length or fixed length. A variable-length field is like
an accordion—it expands to fit the data you enter, up to some maximum
number of characters. A fixed-length field contains a predetermined number of characters (bytes). The data you enter in a fixed-length field cannot
exceed the allocated field length. Moreover, if the data you enter is shorter
than the allocated length, blank spaces are automatically added to fill the
field. The fields in Figure 11-7 are fixed length. The underscores indicate
the number of characters allocated for each field.
Can’t Buy Me Love_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2:11 _
The Beatles _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
A Hard Day’s Night _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Rock _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Field name
Underscores indicate
length of fixed-length fields
Field data
When setting up a database,
the length of text fields should
be adequate to store the longest names or titles. The Time
field can be short because
the longest tracks are 60
minutes or less, which can
be expressed in the format
MM:SS, where MM is minutes
and SS is seconds.
In the world of databases, a record refers to a collection of data fields.
You’re already familiar with several types of records, such as student
records, medical records, and dental records. Each record stores data
about one entity—a person, place, thing, or event. For example, a record
in an iTunes playlist stores fields of data about a digital music track.
The template for a record is referred to as a record type. It contains field
names, but no data. Creating record types is part of the design process
that lets database designers specify the information needed to complete
each record. A record type, similar to a blank form, is usually shown without
any data in the fields. A record that contains data is referred to as a record
occurrence, or simply a record (Figure 11-8).
Record Type
R e c o rd O ccurrence
Can’t Buy Me Love
The Beatles
A Hard Day’s Night
A record type (left) is simply a
list of fields, whereas a record
occurrence (right) contains data
for a particular entity. In this
case, the entity is a track called
“Can’t Buy Me Love” on The
Beatles’ album A Hard Day’s
The flat file model is the foundation for simple databases, such as an e-mail
address book, an iTunes playlist, or the addresses for a mail merge. It is
also the model used for spreadsheets. With a flat file, you can search for,
update, group, and organize records. Each record in a flat file, however,
is an independent entity and no relationships can be established between
records. For example, you can’t set up links between all of The Beatles’
songs in your iTunes playlist. If you are listening to “A Hard Day’s Night,”
you can’t automatically link to The Beatles’ next most popular top ten song.
Why would a database need to keep track of relationships?
In database jargon, a relationship is an association between data that’s
stored in different record types. Relationships are important because there
are important associations among the real-life things that database data
represents. There are, for example, relationships between customers and
the goods they purchase and between an album and the song tracks it
contains. Although you can work with an iTunes playlist without establishing relationships, other databases, such as the one used at Vintage Music
Shop, are more efficient if relationships can be defined.
An entity-relationship diagram
depicts each record type as a
rectangle. Relationships and
cardinality are shown by connecting lines.
An important aspect of the relationship between record types is cardinality.
Cardinality refers to the number of associations that can exist between
two record types. For example, a Vintage Music Shop customer can
place more than one order. The reverse is not true, however. A particular
order cannot be placed jointly by two customers. When one record is
related to many records, the relationship is referred to as a one-to-many
In contrast, a many-to-many relationship means that one record in a
particular record type can be related to many records in another record
type, and vice versa. For example, an album contains many songs. At the
same time, a song could be included on several different albums. George
Harrison’s song “Something” was included in The Beatles’ Abbey Road
album and the best hits release, The Beatles 1.
A one-to-one relationship means that a record in one record type is
related to only one record in another record type. This kind of relationship
is rare in the world of databases. It is sometimes used to conserve disk
space when an item of information will not be stored for every record in the
For example, the marketing director at Vintage Music Shop sometimes
wants to include a description of an album in the database, but only for
historically notable albums. If a Description field is included in the Albums
record type, it will be empty for most records. Empty fields take up space
on the disk, so it’s not desirable to have fields that will most likely be blank.
Creating another record type, called Album Description, allows this data to
be stored efficiently. Only historically significant albums would have a corresponding Album Description record. The Album record and its description
record would have a one-to-one relationship.
The relationship between record types can be depicted graphically with an
entity-relationship diagram (sometimes called an ER diagram or ERD).
Figure 11-9 shows ERDs for one-to-many, many-to-many, and one-to-one
One-to-many relationship
One customer can order
many albums.
Many-to-many relationship
One album contains many songs,
and a song can be included on
several different albums.
One-to-one relationship
An album has only one
The crossbar indicates exactly one
The crossbar and
crow’s foot indicate one or more
What kind of databases track relationships? Except for flat files,
other database models allow you to track relationships. The way database
models work with relationships is a key to their differences. A hierarchical
database allows one-to-one and one-to-many relationships, linked in a hierarchical structure. A network database uses a mesh-like structure to offer
the additional capacity to define many-to-many relationships. Compare the
structures of these two database models in Figure 11-10 and Figure 11-11.
FIGURE 11-10
In this hierarchical database,
Customer, Album, Track, and
Order are record types. All of
the relationships are one-tomany.
FIGURE 11-11
A network database allows
many-to-many relationships as
well as one-to-many relationships between record types.
Although hierarchical and network databases offer lightning quick searches
and utilize a minimum amount of disk space for storage, they are rarely
used today for business, consumer, and other mainstream database applications. Instead, they remain in use only for specialized applications. For
example, Windows uses a hierarchical database to store Registry data that
keeps track of the software and hardware configuration of your PC. The
DNS system that keeps track of Internet addresses uses a network database structure. Outside of such specialized applications, databases built on
hierarchical and network models have been replaced by relational or object
What’s a relational database? A relational database stores data in
a collection of related tables. Each table is a sequence of records, similar
to a flat file. All the records in a table are of the same record type. Each
row of a table is equivalent to a record. Each column of the table is equivalent to a field. A relational database typically contains several tables.
For example, the Vintage Music Shop’s database uses six tables to store
data, as shown in Figure 11-12.
Vintage Music Shop stores data
in six tables.
FIGURE 11-12
G.I. Blues
Elvis Presley
Between the Buttons Rolling Stones
Blue Hawaii
Elvis Presley
Surfin’ Safari
Beach Boys
In a relational database, relationships are specified by joining common data
stored in the fields of records in different tables. For example, most albums
contain many tracks, an example of a one-to-many relationship. The
Vintage Music database stores general information about an album in one
table and information about individual tracks in another table. Both tables
have a Cat# field containing album numbers and that field can be used to
establish a relationship between the two tables, as shown in Figure 11-13.
FIGURE 11-13
A relationship in this database shows that “Blue Suede
Shoes,” “Frankfort Special,” and
“Wooden Heart” are all tracks
from the G.I. Blues album.
G.I. Blues
Elvis Presley
Between the Buttons
Rolling Stones
10/1/1961 Track5
Surfin’ Safari LPM-2256
Dave Matthews
Blue Suede Shoes
104 8
Blue Hawaii
The Cat# LPM-2256
links records in both
tables that refer
to Elvis Presley’s
album G.I. Blues.
Elvis Presley
Frankfort Special
Wooden Heart
Ruby Tuesday
The way a relational database establishes relationships allows the tables to
be essentially independent, but the tables can be joined for a particular task
as required. Relationships can be added, changed, or deleted on demand,
making this database model very flexible. The relational database model’s
flexibility is a major factor in its use for the majority of databases that handle
the everyday query and reporting needs of businesses, government agencies, and organizations. It is also the database model supported by many
consumer-level database products, such as Microsoft Access.
What’s a dimensional database? A dimensional database,
sometimes referred to as a multidimensional database, organizes relationships over three or more dimensions. Each field is contained within
a cell that can be accessed directly from a query or from following a
relationship. Dimensional databases are an extension of the relational
database model in which tables are stacked in addition to being linked
side by side. One way to visualize the dimensional database model is
as a three-dimensional cube (Figure 11-14).
FIGURE 11-14
March 2011
February 2011
January 2011
A data cube represents data in
multiple dimensions. This data
cube has three dimensions—
months, states, and book
The orange cube represents
data for nonfiction books sold
in Indiana in January 2011.
Compared to a relational database with complex queries based on
relationships and joins, a dimensional database offers a simpler way
to visualize data and formulate queries. Dimensional databases are
easy to maintain and efficient to use because data is stored in the same
way as it is viewed. However, formulating and populating a dimensional database requires more expertise than a relational database.
Consequently, dimensional databases are most often deployed for data
analysis and decision support systems in which data from operational
databases is moved into a dimensional data warehouse before being
queried by managers.
What’s an object database? An object database, also referred
to as an object-oriented database, stores data as objects, which can
be grouped into classes and defined by attributes and methods. The
Programming chapter covers object-oriented terminology in detail; but
in the context of object databases, a class defines a group of objects by
specifying the attributes and methods these objects share.
The attributes for an object are equivalent to fields in a relational database. A method is any behavior that an object is capable of performing.
For example, Vintage Music Shop has to keep track of objects that represent customer orders. To set up an object database for this task, the first
step would be to define a class called Orders that can hold data such as
the order number, order date, customer number, and albums ordered. A
method called Check Inventory can be defined for this class. Its job is to
make sure the album is in stock.
Object databases excel in representing objects that have slightly different
attributes, which is the case in many real-world business applications.
Suppose that Vintage Music Shop accepts phone orders and Web orders.
These two types of orders differ slightly because an e-mail address is
used to communicate with Web customers, whereas a telephone number and order clerk name need to be recorded for customers who order
by phone. A relational database would require two record types, but an
object database can be set up so that the Orders class has two derivative
classes, one for Web customers and one for phone customers. Figure
11-15 illustrates classes, derivative classes, and methods in an object
Class: Phone
Check inventory
FIGURE 11-15
An object database can easily
store data about different types
of orders. A class called Orders
holds data and methods common to all types of orders. A
derivative class called Phone
Orders inherits all the characteristics of Orders, but it has
attributes and methods unique
to orders placed by telephone.
Web Orders is a derivative
class that has attributes and
methods unique to orders
placed over the Web.
Class: Orders
Class: Web
Enter order information
Cancel/Modify order
Process Web order form
Cancel/Modify order
E-mail confirmation
The object database model is newer than the relational model and has
not yet gained a substantial foothold in mainstream database applications. Its advocates, however, cite advantages over rival database
models, including the idea that object databases best reflect real-world
entities and relationships.
What’s an object-relational database? The term object-relational
FIGURE 11-16
database is used to describe a variety of technologies that combine
object-oriented and relational concepts. The object-relational database
model has been described as an attempt to add object-oriented characteristics to tables. Basically, an object-relational database is organized
as one or more tables, just as in a traditional relational database. Objectrelational databases, however, have the flexibility to store unique types
of data and program code necessary to access that data.
A relational database sends a
file name to an external player
(top), but an object-relational
database can store the song
data and the routine to play it.
To understand the distinction between relational databases and objectrelational databases, suppose you restructure your iTunes playlist as a
table in a relational database containing fields for the song title, artist,
time, and so on. The database does not actually contain the .m4p data
for the song, but it probably contains the name of the computer file that
holds the song. When you select a song to play, the database doesn’t
play it. Instead, the file name is passed to your iTunes jukebox, which
plays the song.
In contrast, you could use an object-relational database to store the
actual digital data for songs in a field called SongFile. Your database
could also hold a routine called PlaySong. If you select the database
record for “Blue Suede Shoes,” for example, the database uses its
PlaySong routine to play the data stored in the SongFile field, so there is
no need to use external music player software (Figure 11-16).
Most of today’s relational database tools offer object-oriented features.
For example the popular database query language SQL, which you’ll
learn about later in the chapter, can be used to define custom functions
to process the data in a database. However, object-relational hybrids do
not typically support a full set of object-oriented characteristics. The distinction is somewhat technical. Suffice it to say that database models are
still evolving as the best elements are blended and optimized to meet the
needs of today’s complex database applications.
Relational Database
Yesterday Yesterday.m4p
iTunes Jukebox
Object-relational Database
SongFile PlaySong
Do while SongFile
refers to the process
of analyzing existing information in databases
to discover previously unknown and potentially
file is a structured file
In an ERD, relationships and
are shown by connecting lines.
allows decision makers to look for relationships
between multiple data dimensions.
containing only one record type.
useful information.
A database consists of one or more record
that contain data.
database is one that
can link tables through shared fields on demand.
database model uses
classes, derivative classes, and methods to
reflect real-world relationships.
Data Management Tools
ONE OF THE FIRST decisions to make when creating a database
is what type of data management tools to use. Different tools are designed
for different uses. Simple tools that easily store address book information
might not be suited for managing a worldwide airline reservation system.
On the other hand, database software designed for huge corporations
might be overkill for keeping track of your social calendar or storing customer data for a small business. Some tools provide ways to display information on the Web from a database, and some are designed only to print
basic reports. How do you know which data management tools to use for
a project? Section B describes the different types of tools available and
explains how to decide which one best suits your needs.
Are simple data management tools available? Yes. The simplest
tools for managing data are software packages dedicated to a specific data
management task, such as keeping track of appointments or managing
your checking account. You can purchase these tools or download them
from various Web sites. Some are available as shareware or open source
software. Although these tools are easy to use, they don’t generally allow
you to create new record types because the record types are predefined. To
use one of these tools, you simply enter your data. The software includes
menus that allow you to manipulate your data after entering it.
How about a simple, generic tool that allows me to define a
file structure? Most spreadsheet and word processing software packages feature simple tools that allow you to specify fields, enter data, and
manipulate it. For example, your word processing software probably allows
you to maintain data as a set of records, as shown in Figure 11-17.
FIGURE 11-17
Microsoft Word allows
you to create a table of
information, such as a
mailing list, which you
can edit, sort, search,
and print. In addition, you
can merge data from the
table with a template letter to create form letters,
mailing labels, and envelopes. X Access your
digital textbook to learn
how to use Microsoft
Word to create mailing
lists and mail merges.
Most spreadsheet software also includes basic data management features.
It’s quite easy to create simple flat files using a spreadsheet. Depending
on the spreadsheet software, it may be possible to sort records, validate
data, search for records, perform simple statistical functions, and generate graphs based on the data. Figure 11-18 illustrates Microsoft Excel data
management functions applied to a list of merchandise.
Excel stores data in
a table, where each
row can be treated
as a record and each
column as a field.
FIGURE 11-18
Spreadsheet software
usually provides tools
for working with flat files.
X Learn how to use
the data features within
Microsoft Excel.
The ribbon provides access
to data manipulation commands, such as Sort & Filter.
In addition to displaying
records in a table, Excel
can display one record at
a time in form view.
Simple file management tools provided by word processing and spreadsheet software are popular for individuals who want to maintain flat files that
contain hundreds, not thousands, of records. These tools work well for a
simple address book, an inventory of household goods, a record of health
insurance costs, and a variety of other simple lists. They do not, however,
offer database capabilities for establishing relationships between different
record types, and they are not powerful enough to maintain the large volume of records required for business information systems.
Can I create my own data management software? It is possible
to simply enter data as an ASCII text file, and then use a programming
language to write routines to access that data. Custom software can be
created to accommodate flat files and other database models.
Custom data management software has the advantage of being tailored
to the exact needs of a business or an individual. This advantage is offset, however, by several disadvantages. Custom software requires skilled
programmers. The development time for each module can be lengthy and
costly. In addition, programmer efforts are sometimes redundant because
similar modules are often required for different data files. For example, programmers who write a report routine for one data file might have to repeat
their efforts a few weeks later for a different data file.
Poorly designed custom software can result in data dependence—a term
that refers to data and program modules being so tightly interrelated that
they become difficult to modify. Imagine a database in which programs and
data all exist in one large file! It would be impossible to access the data
while editing any of the programs. Furthermore, changing the file structure
in any way might make the programs unusable.
Modern database software supports data independence, which means
separating data from the programs that manipulate data. As a result, a single data management tool can be used to maintain many different files and
databases. In addition, standard search, sort, and print routines continue to
function, regardless of changes to field names or record structure. Figure
11-19 further explains data dependence and independence.
FIGURE 11-19
Program Data
Print Program
Data dependence is typically found in
poorly written custom software when
programmers tie the program code too
tightly to specific field names, record
structures, report formats, and calculations. If these aspects of the database
change, programs cannot adapt and
must be rewritten.
Data independence is a design
concept based on the idea that
databases are most flexible
when programs that manipulate
a database are not too tightly
tied to the structure of fields,
records, calculations, and
Commercial database software promotes data independence because a
generic set of programs for searching
and printing can be used on any set
of data.
What’s the best data management tool? The best tool depends on
several factors. When selecting a data management tool, consider its cost,
versatility, and ease of use (Figure 11-20).
FIGURE 11-20
Data Management Tools
Ease of Use
Dedicated software,
such as an address
Inexpensive shareware available
for simple applications; dedicated software for business
applications can be costly
Typically dedicated to a
single type of database
Easy; minimal setup
required because fields
are predefined
Word processing
Most consumers have word processing software
Best for simple flat files, such
as mailing lists
Easy; uses an interface familiar to most users
Most consumers have
spreadsheet software
Best for simple flat files that
involve calculations
Easy; uses an interface familiar to most users
Custom software
Expensive development and
programming time
Very versatile because
programs can be tailored to
any data
The programming can be
difficult, but the final result
may be easy to use
Database software
Basic shareware database
software is inexpensive;
high-end database software
can be expensive
High-end packages provide
excellent versatility
High-end database software
often has a steep learning
What kinds of tools are specifically designed for creating
and manipulating databases? The term DBMS (database management system) refers to software that is designed to manage data stored in
a database. Each DBMS typically specializes in one database model, but
some DBMS software offers versatility by dealing with a variety of models
and data.
An XML DBMS, for example, is optimized for handling data that exists in
XML format. (You’ll learn more about XML later in the chapter.) An ODBMS
(object database management system) is optimized for the object database
model, allowing you to store and manipulate data classes, attributes, and
methods. An RDBMS (relational database management system) allows
you to create, update, and administer a relational database. Most of today’s
popular RDBMS software also provides the capability to handle object
classes and XML data, making it unnecessary to purchase a separate
An ODBMS is also
referred to as an OODBMS
(object-oriented database
management system).
Which DBMS should I use for my projects? Today most database
projects are implemented with a relational database management system.
The particular RDBMS package you choose, however, depends on the
scope of your project, the number of people who will simultaneously access
the database, and the expected volume of records, queries, and updates.
Entry-level RDBMS software, such as Microsoft Access, is a good fit for
small businesses and individuals whose data can’t be efficiently handled as
a flat file spreadsheet. An entry-level DBMS typically includes all the tools
you need to manipulate data in a database, specify relationships, create
data entry forms, query the database, and generate reports, as shown in
Figure 11-21.
Get the latest scoop on relational,
object, and XML database software at the DBMS InfoWeb.
FIGURE 11-21
An entry-level DBMS
usually includes all the
tools you need to manipulate data in a database.
Microsoft Access provides
tools for working with tables
and for creating queries, forms,
reports, and Web pages.
Database table
If an entry-level DBMS is located on a network, it is possible for multiple
users to access the database at the same time. As shown in Figure 11-22,
each workstation typically uses database client software to communicate
with the DBMS. Database client software allows any remote computer or
network workstation to access data in a database.
FIGURE 11-22
Client software
Multiple users can access a
database using client software.
Client software
Client software
An entry-level DBMS that resides on a network server might be able to
handle many simultaneous searches. However, these DBMSs are limited in
their ability to deal with problems that arise when multiple users attempt to
update the same record at the same time. This limited multiuser capability
might be able to handle, for example, a civic center ticketing system operated by a box office clerk. It would not be sufficient, however, to handle the
volume of simultaneous transactions for Ticketmaster’s 6,700 retail ticket
center outlets, 21 telephone call centers worldwide, and online Web site.
In situations with many users who make simultaneous updates, it is usually
necessary to move to database server software, such as Oracle Database,
IBM DB2 Universal Database, Microsoft SQL Server, Sun Microsystem’s
open source favorite MySQL, or public domain SQLite. Database server
software is designed to manage billions of records and several hundred
transactions every second. It provides optimum performance in client/
server environments, such as LANs and the Internet. It can also handle a
distributed database, in which a database is stored on several computers,
on multiple networks, or in different geographical locations. As shown in
Figure 11-23, database server software passes query requests from client
software to the database and sends query results back to the client.
FIGURE 11-23
Database server software is optimized to provide fast access to
multiple simultaneous users.
Client software
Client software
Client software
Is it possible to access a database over the Web? The Web
allows access to many databases. When you shop at an online store, for
example, the photos, descriptions, and prices you see are pulled from
the merchant’s database and displayed as Web pages. More direct database access is offered by online card catalogs, such as the U.S. Library
of Congress. A database also provides the foundation for online access
to course registration systems, yellow pages, real estate listings, movie
reviews, flight schedules, and a host of other information.
The Web Databases InfoWeb
offers links to lots of useful tips
about database access via the
The Web provides both opportunities and challenges for accessing the
information in a database. Obviously, with its global reach, the Web provides an opportunity for many people to gain access to data from multiple
locations. Web access is constrained, however, by the stateless nature of
HTTP and the necessity to provide access by using a browser as client software. Providing access to databases over the Web requires some tricks. It
does not, however, require special databases or special DBMSs.
What’s the simplest way to provide Web access to a database?
A technique called static Web publishing is a simple way to display
the data in a database by converting a database report into an HTML
document, which can be displayed as a Web page by a browser. Static
publishing provides extremely limited access to a database because it
creates a Web page that essentially displays a snapshot of your data
at the time the report was generated. Data on the Web page cannot be
manipulated, except to be searched in a rudimentary way by the Find
feature of your Web browser.
The advantages of static publishing include security and simplicity. Your
data remains secure because you have not provided direct access to your
database, so unauthorized users cannot change your data. Static publishing is simple because most entry-level DBMS software includes a menu
option that allows you to easily produce an HTML page from a database
report, as shown in Figure 11-24.
FIGURE 11-24
Many entry-level
DBMSs include an easy
way to turn a report into
an HTML document that
you can post as a Web
page. X Learn how
to generate an HTML
report from a Microsoft
Access database.
Microsoft Access has an
Export option that creates
an HTML document from
a database report.
What if I want to provide access to current data? Each time regular customers at Vintage Music Shop connect to the site, they see Web
pages tailored to their music preferences. Country music fans, for example,
see descriptions of Nashville classics and a list of discount albums by their
favorite artists. Obviously, these pages cannot be the result of static publishing. They are created by a dynamic Web publishing process that generates customized Web pages as needed, or “on the fly.”
Dynamic Web publishing relies on a program or script, referred to as a
server-side program, that resides on a Web server and acts as an intermediary between your browser and a DBMS. In the Vintage Music Shop
example, a server-side program reads a cookie from the customer’s computer to find the unique number assigned to the customer. The server-side
program then uses the customer number to generate a query, which is sent
to the database server software. This software accesses the database to
locate the customer’s music preferences and favorite artists. The serverside program then asks the database server software to locate all the specials that apply to this customer’s preferences. A list of applicable albums,
descriptions, and prices is sent back to the Web server, where it is formulated as an HTML document and sent to the browser. The architecture for
dynamic publishing requires a Web server in addition to database server
software, a database, and a browser, as shown in Figure 11-25.
FIGURE 11-25
Dynamic Web publishing
requires several components,
including a browser, a Web
server, database server software,
and a database.
program running
on a Web server
Is it possible to add and update database records over the
Web? In several situations, such as e-commerce, it is important for people
to use a browser to add or update records in a database. For example,
the process of ordering merchandise at Vintage Music Shop creates a new
order record, changes the InStock field in the Albums table, and creates a
customer record for first-time customers. These dynamic database updates
require an architecture similar to that used for dynamic Web publishing,
plus the use of forms.
A form can collect data, such as customer name and address, or it can
collect the specifications for a query, such as a search for Frank Sinatra
albums. A completed form is sent from your browser to the Web server,
which strips the data or query out of the document and sends it to the
DBMS. Results are sent to the Web server, formatted into an HTML document, and sent back to your browser.
A form usually exists on a Web server, which sends the form to your
browser. Most forms are created using the HTML <form> tag and <input>
tag. Figure 11-26 illustrates an HTML document with <input> tags and
shows the Web page form it produces.
The <form> tag
specifies how to
treat the form—
in this case by
posting the form
data to a serverside program.
FIGURE 11-26
An HTML document (top) produces a form (lower-right) when
displayed by a browser.
The <input> tags define
each field of the form.
A technology called XForms provides an alternative to HTML forms.
XForms offer more flexibility than HTML forms, and they interface with XML
documents. XForms were designed as the successor to HTML forms for
interactive exchange of data over the Web, such as e-commerce payment
information. Use of XForms requires an XForms-enabled browser or a plugin that adds XForms capability.
How do I create server-side programs? Several tools, including
ASP, CGI, PHP, and ColdFusion, help you create server-side programs.
ASP (Active Server Pages) technology can be used to generate an HTML
document that contains scripts, which are run before the document is displayed as a Web page. These scripts are small embedded programs that
can be designed to get user input, run queries, and display query results.
ASP technology, developed by Microsoft, originally worked only on
Windows-based Web servers. A plug-in is now available for UNIX servers.
Figure 11-27 illustrates how an ASP script displays database information
that has been requested by a remote user.
Enter query
FIGURE 11-27
An ASP script can collect user
input, run queries, and display
query results.
Run queries
Display query
Query results
CGI (Common Gateway Interface) offers a non-proprietary way to create
HTML pages based on data in a database. A CGI script can be written in a
variety of programming languages, such as C, C++, Java, and Perl.
PHP (PHP: Hypertext Preprocessor) is a cross-platform scripting language
that can accomplish the same tasks as CGI.
Specialized Web database development tools, such as Adobe ColdFusion,
also provide tools for scripting and linking HTML pages to a database.
How does XML relate to the Web and databases? XML is a
markup language that allows field tags, data, and tables to be incorporated
into a Web document. It was developed in response to several deficiencies that became apparent as HTML gained widespread use. For example, suppose you are interested in speeches given by Martin Luther King,
Jr. Entering his name in a search engine produces thousands of entries,
including MLK biographies, streets and schools named after the famous
civil rights leader, historic locations relating to the civil rights movement,
and so on.
Wouldn’t it be nice if King’s speeches were stored in HTML documents that
identified their content as speeches and their author as Martin Luther King,
Jr.? XML provides tags that can be embedded in an XML document to put
data in context, as shown in Figure 11-28.
FIGURE 11-28
A document with XML tags
allows you to make a targeted
search for author = Martin Luther
King, Jr. and document_type =
How is XML typically used today? One of XML’s most positive contributions to data management is the potential to add context to the information contained in a widely diverse pool of documents on the Web. Although
it is easy to see how XML tags might make the free-form documents currently on the Web much easier to manage, today XML is more often used
for structured data.
XML can be used to specify a standard structure of fields and records, such
as SportsML and Chemical Markup Language, for storing data that can be
accessed from a browser. Using this standard structure, data entered into
an XML document can be identified by field names. Figure 11-29 provides
an example of an XML document that contains data similar to that in Vintage
Music Shop’s Albums table.
FIGURE 11-29
This XML document contains
data that looks similar to the
fields and records from a table
of a relational database.
Can I search the data in an XML document? Yes. Access to XML
data is provided by XML query engines, such as XPath and XQuery. Direct
access to structured data like that shown in Figure 11-29 above, however,
requires knowledge of its location, access rights, and a list of field names.
Therefore, like many relational databases, access to structured data in XML
documents is typically provided by some type of client software designed
specifically to accept queries, access the data, and return results. XML clients can be offered as browser plug-ins.
What are the pros and cons of XML for storing data? Storing
data in an XML document offers several advantages. It exists as a document in human-readable format. It is also portable so that it can be easily accessed from virtually any computer platform—PCs, Macs, Linux
computers, mainframes, and even handhelds. All that’s required on the
platform is an XML-enabled browser, such as Internet Explorer or Firefox.
XML documents are not, however, optimized for many operations you
would customarily associate with databases, such as fast sorts, searches,
and updates.
To get the best out of XML and relational databases, some experts recommend storing data in a relational database, managing it with RDBMS
software, and using server-side software to generate XML documents for
exchanging data over the Web. Some RDBMSs include features that allow
a database server to receive queries in the form of XML commands. After
receiving a query, the database compiles the results and uses XML to format the data into a Web page, as shown in Figure 11-30.
FIGURE 11-30
Manipulating XML Data with an
XML query
Database server
accepts XML query
and uses it to query
relational database
XML results
As you can see, many techniques exist for storing, accessing, and displaying the data from databases. Individuals can use simple tools to create personal databases, such as address books. Corporate database managers,
however, need to be familiar with more complex tools used to distribute
data over networks and the Web. Sometimes more than one tool has the
potential to work for a specific application. Now that you’ve had an introduction to the options, you should be able to evaluate when and how to use
A custom database can be stored as a simple
data separated from the program modules that
file and can be accessed
by routines written in a standard programming
manipulate the data.
Web publishing uses the
language. (Hint: Use the acronym.)
data in a database to generate customized Web
Spreadsheet software typically includes some
pages as needed.
data management features suitable for working with relational databases. True or false?
ASP, CGI, and PHP are used to create XML documents that are processed on a server before
being sent to your browser. True or false?
Modern database software supports data
, which means keeping
Database Design
THE KEY to an effective database is its initial design. In a well-designed
database, data can be flexibly manipulated to produce timely, meaningful,
and accurate information for decision making. Bad database design can
lead to messy databases, lost records, and inaccurate data. The goal of
good database design is to store information so that it is easy to access
and maintain, but concise enough to take up as little disk space as possible. Section C looks at databases from the perspective of the database
designer and describes how to create an efficient structure for a relational
database. You can apply many of these design principles when you create
your own databases.
How does a database designer know what data to store? The
term database structure refers to the arrangement of fields, tables, and
relationships in a database. The first step in structuring a relational database is to determine what data should be collected and stored. To do so,
a database designer might begin by consulting users and studying the current filing system to compile a list of available data as well as any additional
data necessary to produce on-screen output or printed reports.
If you are designing the database structure for Vintage Music Shop, for
example, you would probably recognize that data such as the album title,
artist name, release date, catalog number, record label, quantity in stock,
value, discount price, and album cover photo should be collected and
After the database designer determines what data to store, the next step is
to organize that data into fields. It is usually easy to break data into fields
just by using common sense and considering how people might want to
access the data. Any data that people would want to search for, sort on, or
use in a calculation should be in its own field.
Why are last names stored in a different field than first
names? The treatment of first and last names illustrates the concept of
breaking data into fields. A database designer could define a field called
CustomerName to hold an entire customer’s name, such as Gilbert B.
Grape. With the entire name in one field, however, the database would not
be able to easily access individual parts of the name, making it difficult to
alphabetize customers by last name or to produce a report in which names
appear in a format such as Grape, Gilbert B. (Figure 11-31).
First Name
Last Name
Gilbert B. Grape
Grape, Gilbert B.
FIGURE 11-31
When a field contains an entire
name, it is difficult to individually
manipulate the first name, last
name, and middle initial. A more
flexible design provides separate
fields for each part of the name.
What makes each record unique? Although two people might
have the same name or two paychecks might contain the same amount,
a computer must have some way to differentiate between records. A primary key is a field that contains data unique to a record. Designers commonly designate fields such as CheckNumber, SocialSecurityNumber,
TelephoneNumber, and PartNumber as primary keys.
How does a database designer know what data types to use?
The data that can be entered into a field depends on the field’s data type.
From a technical perspective, a data type specifies the way data is represented on the disk and in RAM. From a user perspective, the data type
determines the way data can be manipulated. When designing a database,
each field is assigned a data type.
Data can be broadly classified as numeric or character. As you learned in
earlier chapters, character data contains letters, numerals, and symbols not
used for calculations. Numeric data contains numbers that can be manipulated mathematically by adding, averaging, multiplying, and so forth. As an
example, the Price field in Figure 11-32 contains numeric data, which can
be added to the prices for other albums to calculate a total price when a
customer buys more than one album.
FIGURE 11-32
Numeric data can be used for
Qty Album Title
That’s All
Surfin’ Safari $10.00
Blue Hawaii
There are several numeric data types, including real, integer, and date.
Database designers assign the real data type to fields that contain numbers with decimal places—prices, percentages, and so on. The integer
data type is used for fields that contain whole numbers—quantities, repetitions, rankings, and so on. Database designers typically use the integer
data type unless the data requires decimal places because real numbers
require more storage space. As you might expect, the date data type is
used to store dates in a format that allows them to be manipulated, such as
when you want to calculate the number of days between two dates.
The text data type is typically assigned to fixed-length fields that hold character data—people’s names, album titles, and so on. Text fields sometimes
hold data that looks like numbers, but doesn’t need to be mathematically
manipulated. Telephone numbers and ZIP codes are examples of data that
looks numeric, but is stored in text fields because database users would
never want to add two telephone numbers together or find the average of
a group of ZIP codes. As a general rule, information such as telephone
numbers, ZIP codes, Social Security numbers, and item numbers should be
stored in text fields.
A memo data type usually provides a variable-length field into which users
can enter comments. For example, the Vintage Music Shop database might
contain a memo field for storing comments about a particular album, such
as “Where Did Our Love Go was The Supremes’ first hit album.”
The logical data type (sometimes called a Boolean or yes/no data type) is
used for true/false or yes/no data using minimal storage space. For example, a database designer might define a logical field called OrigCov, which
would contain a Y if an album includes the original dust cover.
Some file and database management systems also include additional data
types, such as BLOBs and hyperlinks. A BLOB (binary large object) is a
collection of binary data stored in a single field of a database. BLOBs can
be just about any kind of data you would typically store as a file, such as an
MP3 music track. For example, the Vintage Music Shop database stores
a short music sample of each song on an album in a BLOB field called
BLOBs are a relatively new
data type. Learn more about
them at the BLOB InfoWeb.
The hyperlink data type stores URLs used to link directly from a database to a Web page. For example, data stored in a hyperlink field of the
Vintage Music Shop database could provide a link to a musician’s Web
site. Figure 11-33 summarizes the most commonly used data types in
today’s databases.
FIGURE 11-33
Commonly Used Data Types
Data Type
Sample Field
Sample Data
Numbers that include decimal places
Whole numbers
Month, day, and year
Letters or numerals not used for calculations
Data that can have one of two values
Variable length comment field
Some wear on album cover
Binary data
[An MP3 file]
How does a database handle computations? When a customer
looks for an album at Vintage Music Shop’s Web site, three pieces of
pricing information are provided. The first is the value. The second is the
discounted price that Vintage Music Shop offers. The third is the amount
of money a customer will save by purchasing the album through Vintage
Music Shop. The Albums record type, however, contains only two pieces
of pricing information—Value and DiscountPrice. The third piece of information—the amount of money a customer saves by purchasing through
Vintage Music Shop—is a computed field.
A computed field is a calculation that a DBMS performs during processing, and then temporarily stores in a memory location. An efficiently
designed database uses computed fields whenever possible because they
do not require disk storage space. Figure 11-34 illustrates how a computed
field produces the amount saved with purchases at Vintage Music Shop’s
discount price.
A computed field works
somewhat like a function in
a spreadsheet; you set up a
formula for the calculation,
which is applied to compute
the data.
FIGURE 11-34
Creating a Computed Field
The database includes a field containing the
value and another field containing the discount
The amount in one field can be
subtracted from the amount in the
other field. The result is temporarily stored in a field in RAM and can
appear on a screen or report.
Can a database designer prevent people from entering inaccurate data? There’s an old saying in the computer industry: “garbage
in, garbage out.” This adage is especially true when dealing with databases. The information produced by reports and processing routines is
only as accurate as the information in the database. Unfortunately, data
entry errors can compromise the accuracy and validity of a database. When
designing a database, it is important to think ahead and envision potential
data entry errors. Most DBMSs provide tools that database designers can
use to prevent some, but not all, data entry errors.
People who enter data into a database sometimes have difficulty deciding
whether to use uppercase or lowercase characters. In a case sensitive
database, uppercase letters are not equivalent to their lowercase counterparts. For example, in a case sensitive database, the artist name Elvis is not
equivalent to elvis. Inconsistent use of case can lead to several problems.
A search for elvis will not produce records for Elvis or ELVIS. Furthermore,
in a sorted or indexed list, elvis and ELVIS might not be grouped together.
Most, but not all, DBMSs give database designers an option to turn case
sensitivity on or off. They might also have the option to force data to all
uppercase or all lowercase as it is entered. Neither technique is an infallible
solution to case sensitivity; but as you gain experience designing databases, you’ll become familiar with the advantages and disadvantages of
each technique.
People who enter data might not be consistent about the way they enter
numbers. For example, a data entry operator might enter a telephone number as 555-555-7777, (555) 555-7777, or 1-555-555-7777. If multiple data
entry operators enter telephone numbers in different formats, it becomes
difficult to produce nicely formatted reports or locate a particular telephone
number. To prevent this sort of inconsistent formatting, a database designer
can specify a field format. A field format is a template that adds the correct formatting as data is entered. If someone attempts to enter data in the
wrong format, the database rejects that entry. A telephone number field
might use a field format such as the one shown in Figure 11-35.
FIGURE 11-35
A field format helps maintain
consistent data by providing a
structure for entering data into
a field.
With this telephone number field
format, you simply enter the
number without any punctuation.
Telephone Number:
For example, typing
9035552378 produces
this result.
Telephone Number:
Sometimes people who enter data simply make a mistake and press the
wrong keys. Preventing every typographical error is not possible. However,
it is possible to catch some of these errors by using field validation rules, list
boxes, or lookups.
A field validation rule is a specification that the database designer sets up
to filter data entered into a particular field. For example, the price of albums
in the Vintage Music Shop database ranges from $0 (for promotions) to
$800. No albums have a value greater than $1000. When intending to enter
$19.98 in the value field, however, the omission of a decimal point could
set the price of an album to $1998.00! When designing the Vintage Music
Shop database, a database designer can use a field validation rule to limit
entries in the Value field to less than $1000. If the DBMS receives a number such as 1998 in the value field, it displays a message requesting the
correct price.
Another technique that prevents typographical and case sensitivity errors
is to limit data entry to the items on a specified list. For example, the state
abbreviation for Michigan might be entered as MI, Mi, Mich, or NI if your fingers slipped. However, most database software allows database designers
to specify a list of acceptable entries for each field. You are probably familiar with clickable lists of states, such as the one in Figure 11-36.
FIGURE 11-36
Clickable lists are an easy way
for users to enter data in a standard format.
Database designers can also prevent entry errors by using lookup routines.
A lookup routine validates an entry by checking data in a file or database
table. For example, suppose that a Vintage Music Shop employee is entering new albums. It is important that each album has a unique catalog number. When data is entered in the Cat# field, the database can use a lookup
routine to search every existing record to make sure the new catalog number does not duplicate an existing catalog number.
How does a database designer group fields into tables? A process called normalization helps database designers create a database
structure that can save storage space and increase processing efficiency.
The goal of normalization is to minimize data redundancy—the amount of
data that is repeated or duplicated in a database. To normalize a database,
one of the designer’s main tasks is to decide how best to group fields into
The first step to grouping fields is to get an idea of the big picture of the
data. Often, groupings correspond to the physical items, or entities, that are
tracked in the database. For example, Vintage Music Shop data is grouped
into several tables: Albums, Tracks, Customers, Orders, and Order Details.
Some of these groupings seem obvious, but other groupings might seem
a bit puzzling. You might wonder why it is necessary to use three tables—
Customers, Orders, and Order Details—to store data about an order. Why
won’t one table suffice? To answer this question, first take a look at the data
relevant to each order in Figure 11-37.
Explore normalization and
work with several examples at
the Database Normalization
FIGURE 11-37
A typical Vintage Music
Shop order contains
customer data and data
about the merchandise
being ordered.
If customer information and order information are grouped in the same
table, each time Jorge Rodriguez places an order, his name, shipping
address, billing address, telephone number, and e-mail address must be
entered and stored. This data redundancy not only requires extra storage
space, but also could lead to storing inconsistent or inaccurate data. The
solution is to create separate tables for Orders and Customers, which can
be related by including a CustomerNumber field in both tables, as shown in
Figure 11-38.
C u s t o me rNu m b e r
F i r s t N a me
Z i p C o de
E m a i l A d d re ss
P h o n e Nu mb e r
FIGURE 11-38
Or d e r N umber
C u st o mer Number
T o t a lP r ice
Or d e r D ate
Qt y
D isco u n tPr i c e
Fields for each order are
separated into two tables—
one for customer information
and one for order information. Information in these two
tables can be linked using the
CustomerNumber field. This
field makes it easy to find all
the orders for for a specific
Even after separating customer data from order data, the structure of the
Vintage Music Shop database can be further improved. The Orders table in
the previous figure allows customers to purchase only one album per order
because the fields Cat# and DiscountPrice occur only once. Obviously, the
Vintage Music Shop database should be able to handle orders for more
than one album.
It might seem reasonable to provide several fields for the albums on an
order. Perhaps they could be named AlbumNumber1, AlbumNumber2,
AlbumNumber3, and so on. But how many fields should the database
designer provide? If the designer provides fields for ordering ten albums,
the database still cannot handle large orders for more than ten albums.
Furthermore, if a customer orders fewer than ten albums, space is wasted
by having empty fields in each record.
You might recognize that a one-to-many relationship exists between an
order and the ordered items. That clue indicates that the database designer
should separate the data into two tables, such as Orders and Order Details.
These two tables are related by the OrderNumber field. Figure 11-39 illustrates how the Orders table is further normalized into two tables to store
data more efficiently.
FIGURE 11-39
O r d e r N u mb e r
The fields pertaining to the
ordered merchandise are further divided into two record
types and related by the
OrderNumber field.
C u s t o m e rN u m b e r
Fields pertaining
to each order
O r d e r D a te
D i s c o u n t P rice
Fields pertaining to
each album ordered
How are database records organized? Records can be organized
in different ways depending on how people want to use them. For example,
a customer visiting Vintage Music Shop’s Web site will most often view the
information in the Albums table by AlbumTitle or ArtistName. The inventory
manager usually wants the data sorted by quantity in stock so that it is easy
to see which albums are overstocked. In contrast, the marketing manager
is more interested in the Value field, so that rare and expensive albums can
be aggressively marketed. No single way of organizing the data accommodates everyone’s needs, but tables can be sorted or indexed in multiple
What happens when the data in a table is sorted? A table’s
sort order is the order in which records are stored on disk. Sorted tables
typically produce faster queries and updates because they take advantage
of clever algorithms that quickly pinpoint records. In a sorted table, new
records are inserted to maintain the order. If no sort order is specified, new
records are appended to the end of the file, resulting in a file that is not in
any particular order. Queries and updates within an unsorted database are
slow because the only algorithm for searching an unsorted table requires a
sequential look at each record.
Most DBMSs use a sort key to determine the order in which records are
stored. A table’s sort key is one or more fields used to specify where new
records are inserted in a table. A table can have only one sort key at a time,
but the sort key can be changed. Changing a sort key can take a long time,
however, because the process physically rearranges records on the disk.
The database designer usually specifies the sort key for a database table at
the time the database structure is created.
How is indexing different from sorting? A database index can be
used to organize data in alphabetical or numeric order. It is very similar to
an index in a book that contains a list of keywords and pointers to the pages
where they can be found. A database index contains a list of keys, and
each key provides a pointer to the record that contains the rest of the fields
related to that key. Figure 11-40 illustrates how an index works.
FIGURE 11-40
When arranged by date, Blue
Hawaii is the second record in
the index. The index file contains
a list of keys and the record
number (R#) that contains more
information about the album
released on that date. X To see
how indexing works, click this
figure in your digital textbook.
Elvis Presley
LPM-2256 G.I. Blues
Between the Buttons Rolling Stones
Blue Hawaii
Elvis Presley
Surfin’ Safari
Beach Boys
Unlike a sort order, an index has no bearing on the physical sequence of
records on disk. An index simply points to the record where the data can
be found. The advantage of an index over a sort is that a table can have
multiple indexes, but only one sort order. For example, the Albums table
could be indexed by AlbumTitle to facilitate searches for specific albums.
The same table could also be indexed by ArtistName to facilitate searches
using artist names.
Database tables should be indexed by any field or fields that are commonly
used as search fields. The database designer typically creates indexes at
the time the database structure is designed. Indexes can also be created at
a later date, as needed.
Does a database designer have control over the user interface? The way that database queries, records, and reports appear on the
screen depends on the user interface. An operating system typically provides some conventions for the user interface, such as dialog and button
styles, but additional design decisions must be made for the database user
Designing a database user interface can be a challenging task. If a company’s database includes multiple tables used by many different people,
a professional user interface designer usually creates and maintains the
user interface. Large databases might even require a group of user interface designers.
The interface for smaller databases, such as those used by small businesses or individuals, is most likely created by the database designer.
Some DBMSs include tools to create database interfaces. Others require
separate tools for this task.
What makes a good database interface? A well-defined user interface for a database should be clear, intuitive, and efficient. Take a moment
to look at the data entry screen in Figure 11-41, and imagine that you are
using the screen to finalize the purchase of several albums.
FIGURE 11-41
Imagine entering your own
name and address using
this on-screen form. Does
it seem easy to use?
Do you enter data next to
the labels or under them?
Why are there two
boxes here?
What are you supposed to
enter in the DOFO field?
Using the data entry screen pictured on the previous page might be awkward because it does not follow good user interface design principles. The
data entry fields seem out of order, and users might have difficulty discerning which entry box corresponds to each label. In addition, several fields
have cryptic labels that don’t provide good clues about the data you’re supposed to enter.
To improve this database interface, a designer might consider the following
Arrange fields in a logical order beginning at the top-left of the screen.
The first fields should be those used most often or those that come first in
the data entry sequence.
Provide visual clues to the entry areas. An edit box, line, or shaded area
can delineate data entry areas.
Entry areas should appear in a consistent position relative to their labels.
By convention, labels are placed to the left of the entry areas or above
Provide a quick way to move through the fields in order. By convention,
the Tab key performs this function.
If all fields do not fit on a single screen, use scrolling or create a second
Provide buttons or other easy-to-use controls for moving from one record
to another.
Supply on-screen instructions to help ensure that data is entered correctly. Web databases can benefit from links to help pages.
Compare the good, the bad,
and the ugly at the Database
Interface InfoWeb.
Figure 11-42 contains an improved interface for the database in the previous figure.
FIGURE 11-42
Fields are arranged
in logical order.
Data entry areas are clearly
delineated as white spaces.
A well-designed data
input screen should be
easy to use.
On-screen instructions help
users enter data correctly.
Buttons make it easy
to get to the second
page of this record.
How can I display or print data as a formatted report? A report
is a printed or on-screen list of some or all of the data in a database. To create reports, most DBMSs include a report generator, which is a software
tool for specifying the content and format for a database report. End users
might use report generators, but more typically they are used by database
A report template contains the outline or general specifications for a
report, including such elements as the report title, fields to include, fields to
subtotal or total, and report format specifications. The template does not,
however, contain data from the database. Data is merged into the template
when you actually run a report.
As an example, suppose that a manager at Vintage Music Shop wants to
create a report that lists albums arranged by price. The manager can create
a report template called AlbumPriceGroup, which specifies the following:
The title of the report is Vintage Music Shop Albums by Price.
The headings for the columns are Discount Price, Album Name, Artist
Name, and Qty in Stock.
The report is grouped by price.
The report contains data from the Albums table, arranged in four columns, with data from the DiscountPrice, AlbumTitle, ArtistName, and
InStock fields.
These specifications would be used to produce a report similar to the one
shown in Figure 11-43.
FIGURE 11-43
A report template contains the
specifications to produce this
Report Date: 8/21/2011
Vintage Music Shop Albums by Price
Discount Price
Album Name
Artist Name
Qty in Stock
Magical Mystery Tour
Surfin’ Safari
Beach Boys
Cheap Thrills
Janis Joplin
Surrealistic Pillow
Jefferson Airplane
One Day at a Time
Joan Baez
Between the Buttons
Rolling Stones
Let It Be
Abbey Road
Joan Baez
Joan Baez
Chuck Berry’s Golden Hits
Chuck Berry
Strange Days
When a report is actually produced, it is based on the data currently contained in the database table. For example, the report on the previous page
was produced on August 21st and includes albums that were stored in the
database as of that date. Now suppose that at the beginning of October,
Vintage Music Shop receives a new shipment of vintage albums. The
AlbumPriceGroup report template is used again to print a report on October
12th. This report, shown in Figure 11-44, follows the same format as the
previous report, but includes the new albums.
FIGURE 11-44
Using the Same Report
Specifications as the 8/21/2011
Report, but Different Data
Report Date: 10/12/2011
Vintage Music Shop Albums by Price
Discount Price
Album Name
Artist Name
Qty in Stock
Magical Mystery Tour
In Person
Cheap Thrills
Janis Joplin
About This Thing Called Love
One Day at a Time
Joan Baez
Between the Buttons
Rolling Stones
How does the database designer create effective report templates? The reports created by a report generator can be displayed,
printed, saved as files, or output as Web pages. Some data management
software also provides tools to output data as graphs, sounds, or graphics. The database designer can create templates for reports that effectively
present information by observing the following guidelines:
Supply only the information required. Too much information can make it
difficult to identify what is essential.
Present information in a usable format. For example, if subtotals are necessary for making a decision, include them. The people who use reports
should not have to make additional manual calculations.
Information should be timely. Reports must arrive in time to be used for
effective decision making. Some decisions require periodic information—
for example, monthly sales reports. Other decisions require ongoing
information, such as current stock prices, that will be best satisfied by a
continuous display.
Information should be presented in a clear, unambiguous format and
include necessary titles, page numbers, dates, labels, and column
Present information in the format most appropriate for the audience. In
many cases, a traditional report organized in rows and columns is most
appropriate. In other cases, graphs might be more effective.
How is data loaded into database tables? After the design for the
database structure is complete, it is time to load the database with an initial
set of data. For example, before the Vintage Music Shop database went
online, it was populated with data for all the albums in the inventory.
Data can be loaded into a database manually by using generic data entry
tools supplied with the DBMS or by using a customized data entry module
created by the database designer. Entering data manually can take a long
time, however, and mistakes such as misspellings are common.
If the data exists electronically in another type of database or in flat files, it
is usually possible to transfer the data using a custom-written conversion
routine or import and export routines. A conversion routine converts the
data from its current format into a format that can be automatically incorporated into the new database. It takes some time and requires knowledge about database formats to write conversion routines; but for large
databases, it’s much quicker to convert data than to re-enter it manually.
Converting data also results in fewer errors.
Some DBMSs provide built-in import and export routines that automatically
convert data from one file format to another. An import routine brings data
into a database. For example, if data was previously stored as a spreadsheet file, an import routine in Microsoft Access can be used to transfer data
from the spreadsheet to an Access database. In contrast, an export routine
copies data out of a software package, such as spreadsheet software, and
into the database. Typically, you would use either an import routine or an
export routine to move data from one location to another, but not both.
A primary
contains data
To filter data entered into a field, the database
unique to a record, such as a Social Security
designer can set up a field
number or ISBN.
Real, integer, text, logical, BLOB, and date are
examples of data
A computed field is calculated during process-
One of the goals of the normalization process is
to minimize data
A report
contains the out-
ing and stored temporarily in memory. True or
line or general specifications for a report, but
does not contain data from the database.
In a case
database, a data
entry such as MI is not the same as Mi.
ADDING RECORDS, finding information, and making updates are
all important aspects of database use. Most people who access a database
on a casual basis—to shop online or withdraw cash from an ATM, for example—interact with very simple user interfaces. These user interfaces shield
users from the intricacies of sophisticated query languages. Nevertheless,
a little background in query languages can help you understand the power
and capabilities of databases. In Section D, you’ll explore SQL, a database
query language, by working with examples that illustrate major database
functions, such as deleting records, adding records, searching for information, updating records, and joining tables.
How does a query language like SQL work? Query languages like
SQL (Structured Query Language) typically work behind the scenes as an
intermediary between the database client software provided to users and
the database itself. Database client software provides an easy-to-use interface for entering search specifications, new records, data updates, and so
on. The client software collects your input, and then converts it into an SQL
query, which can operate directly on the database to carry out your instructions, as shown in Figure 11-45.
SQL commands interact directly with the
database to locate
data, update records,
and perform other
functions the user
software converts the
entries in a
form into
SQL commands
The American National
Standards Institute’s official pronunciation of SQL
is “ESS que el,” but you
also hear it called “SEE
FIGURE 11-45
SELECT AlbumTitle FROM Albums
WHERE ArtistName = ‘Beatles’
Database client software provides database users with
simple forms that can be used
to enter search specifications or
update data. Here a customer
uses an online form to search
for Beatles albums in LP (longplaying 331/3 rpm) format.
and Format = ‘LP’
Form-based user interface
What does a simple SQL query look like? An SQL query is a
sequence of words, much like a sentence. For example, an SQL query that
searches for a song called “Ruby Tuesday” in Vintage Music Shop’s database might look like this:
SELECT TrackTitle FROM Tracks WHERE TrackTitle = ‘Ruby Tuesday’
The SQL query language provides a collection of special command words
called SQL keywords, such as SELECT, FROM, INSERT, and WHERE,
which issue instructions to the database. Although the SQL examples in
this section of the chapter use uppercase letters for keywords, most implementations of SQL accept either uppercase or lowercase keywords.
Most SQL queries can be divided into three simple elements that specify an
action, the name of a database table, and a set of parameters. Let’s look at
each of these elements.
How does SQL specify the action that I want carried out in
the database? An SQL query typically begins with an action keyword, or
command, which specifies the operation you want carried out. For example,
the command word DELETE removes a record from a table. Figure 11-46
lists some of the most commonly used SQL command words.
FIGURE 11-46
SQL Command Words
Create a database
or table
Remove a record
from a table
DELETE FROM Tracks WHERE TrackTitle = ‘Blue Suede Shoes’
Add a record
INSERT INTO AlbumDescription (Cat#, Condition) VALUES (‘LPM2256’, ‘Mint condition; no visible scratches; original album cover’)
Use the data from
two tables
Albums.Cat# = Tracks.Cat#
Search for records
SELECT FROM Albums WHERE ArtistName = ‘Beatles’
Change data in a field
UPDATE Albums SET DiscountPrice = 15.95 WHERE Cat# = ‘LPM2256’
How does SQL specify which table to use? SQL keywords such
as USE, FROM, or INTO can be used to construct a clause specifying the
table you want to access. The clause consists of a keyword followed by the
name of the table. For example, the clause FROM Tracks indicates that
you want to use the Tracks table from Vintage Music Shop’s database.
An SQL query that begins with DELETE FROM Tracks means that you
want to delete something from the Tracks table. To complete the query, you
provide parameters that specify which record you want to delete.
How does SQL specify parameters? Parameters are detailed
specifications for a command. Keywords such as WHERE usually begin
an SQL clause containing the parameters for a command. Suppose that
Vintage Music Shop’s inventory manager wants to delete all the albums in
the Vintage Music Shop database recorded by Bobby Darin. The SQL looks
like this:
DELETE FROM Albums WHERE ArtistName = ‘Bobby Darin’
SQL command word
FROM clause
specifies the table
to use
WHERE clause specifies the field name
and its contents
Now that you’ve learned the basic structure of an SQL query, take a closer
look at the SQL for specific database tasks, such as adding records, searching for information, updating fields, organizing records, and joining tables.
How are records added to a database? Suppose you want to purchase an album from Vintage Music Shop’s Web site. As a first-time customer, you fill out a form with your name, address, and so on. The client
software that you use collects the data you enter in the form and generates an SQL statement using the INSERT command, which adds your data
to the Customers table of the Vintage Music Shop database. Figure 11-47
shows the Customer form, the SQL statement that adds the customer data
to the database, and the data that is added to the Customers table.
Customer form
FIGURE 11-47
Data from the Customer form is
added to the database.
SQL statement
(LastName, FirstName, Street, City,
State, ZipCode, PhoneNumber)
VALUES (‘Rodriguez’, ‘Jorge’, ‘101
Las Vegas Court’, ‘Taos’, ‘NM’,
‘87571’, ‘5055553412’)
Customers table
How do SQL queries carry out searches? One of the most common
database operations is to query for a particular record or group of records
by using the SELECT command. Suppose you’re looking for Jefferson
Airplane albums. You fill in the Search box at the Vintage Music Shop site,
as shown in Figure 11-48.
FIGURE 11-48
This search form is used by
customers to query the database. Here the search is for
Jefferson Airplane albums.
The database client software uses your search specification to create the
SQL query:
SELECT AlbumTitle, AlbumCover FROM Albums
WHERE ArtistName = ‘Jefferson Airplane’
As a result of this query, the Vintage Music Shop Web page displays a
list beginning with Jefferson Airplane Takes Off—the band’s first album—
and a photo of the album cover. Take a closer look at the parts of this
The phrase SELECT AlbumTitle, AlbumCover specifies that the database
should show you only the album title and cover. Until you confirm that this
is the album you’re interested in, it will not show you additional information,
such as the price or list of tracks. FROM Albums tells the DBMS to search
for the album in the Albums table. WHERE ArtistName = ‘Jefferson
Airplane’ specifies that the record you want contains the data Jefferson
Airplane in the ArtistName field.
Can SQL perform complex searches? Yes. SQL uses search
operators such as AND, OR, and NOT to form complex queries. Because
search operators were originally the idea of mathematician George Boole,
they are also referred to as Boolean operators. Let’s see how they work in
the context of SQL queries.
How does AND work in an SQL query? AND (sometimes indicated
by a + sign) is used when you want to retrieve records that meet more than
one criterion. For example, suppose a customer wants to find all the albums
by Jefferson Airplane, but wants to display only albums that are on sale
for less than $10.00. You might enter something like Jefferson Airplane
<$10.00 in the Vintage Music Shop search box. The database client creates an SQL query:
SELECT AlbumTitle FROM Albums
WHERE ArtistName = ‘Jefferson Airplane’ AND
DiscountPrice < 10.00
In this example, a record is selected only if the ArtistName field contains
Jefferson Airplane and the value in the DiscountPrice field is less than
$10.00. If the discount price is $10.00 or more, the record is not selected.
The AND operator specifies that both of the search criteria must be true for
the record to be selected.
At the Boolean InfoWeb, you
can learn how a guy born in 1815
had such an immense effect on a
modern technology like the Web.
How does OR differ from AND? Two variations of the OR operator
exist. One variation, the inclusive OR, designates records that meet one
criterion or both. The other variation, called the exclusive OR, designates
records that meet one criterion or the other, but not both.
SQL uses the inclusive OR. A query such as
SELECT AlbumTitle FROM Albums
WHERE ArtistName = ‘Jefferson Airplane’ OR
DiscountPrice < 10.00
produces all the Jefferson Airplane albums, regardless of price. It also produces any albums that are less than $10.00, regardless of the artist.
You can combine AND and OR clauses to formulate complex queries. For
example, Jefferson Airplane became Jefferson Starship in 1974. If you’d
like a list of Jefferson Airplane or Jefferson Starship albums for less than
$10.00, you can use a query like the following:
SELECT AlbumTitle FROM Albums
WHERE (ArtistName = ‘Jefferson Airplane’ OR ArtistName =
‘Jefferson Starship’) AND DiscountPrice < 10.00
Note the use of parentheses around the OR clause. Parentheses tell the
DBMS to process this part of the query first. The placement of parentheses
can change the results of a query, sometimes drastically. Compare the previous query to the following query:
SELECT AlbumTitle FROM Albums
WHERE ArtistName = ‘Jefferson Airplane’ OR (ArtistName =
‘Jefferson Starship’ AND DiscountPrice < 10.00)
The first query (in blue) returns albums by Jefferson Airplane or Jefferson
Starship that are less than $10.00. The second query (in green) returns
all albums by Jefferson Airplane, regardless of price, and any albums by
Jefferson Starship that cost less than $10.00.
How does NOT work in an SQL query? The NOT operator can be
used to omit records from a search by specifying a not-equal relationship.
For example, the following query returns all records in the Albums table
where the ArtistName is not equal to Jefferson Airplane:
Select AlbumTitle from Albums
WHERE NOT(ArtistName = ‘Jefferson Airplane’)
Sometimes NOT relationships are specified with a not-equal operator, such
as <> or !=, depending on the specifications of the query language. For
example, the following query returns the same records as one that uses the
NOT operator:
Select AlbumTitle from Albums
WHERE ArtistName <> ‘Jefferson Airplane’
Can I change the contents of a record? You can change records
in a database only if you have authorization to do so. At Vintage Music
Shop’s site, for example, customers do not have authorization to change
album prices or alter the name of the songs on an album. The process of
purchasing an album, however, does cause an update in the Vintage Music
Shop database. Suppose you purchase Elvis Presley’s G.I. Blues album.
Your purchase reduces the number of G.I. Blues albums in Vintage Music
Shop’s inventory. To accomplish this update, one of the software modules
in Vintage Music Shop’s inventory system issues an SQL UPDATE command to reduce the number in the InStock field of the G.I. Blues record:
From all these examples, you
can tell that SQL is a key factor
in database manipulation. At
the SQL InfoWeb, you’ll find
additional examples and links
to tutorials.
SET InStock = InStock - 1
WHERE AlbumTitle = ‘G.I. Blues’
Is it possible to update a group of records? In addition to changing
the data in a single record, SQL can perform a global update that changes
the data in more than one record at a time. Suppose you’re Vintage Music
Shop’s marketing manager, and you want to put all Rolling Stones albums
on sale by reducing the DiscountPrice to $9.95. You could do it the hard way
by searching for an ArtistName field that contains Rolling Stones, adjusting
the DiscountPrice field for that record, and then looking for the next Rolling
Stones album. However, it would be easier to change all the records with
a single command. The following SQL statement accomplishes this global
SET DiscountPrice = 9.95
WHERE ArtistName = ‘Rolling Stones’
Let’s see how this command performs a global update. The UPDATE command means you want to change the data in some or all of the records.
Albums is the name of the record type containing the data you want to
change. SET DiscountPrice = 9.95 tells the DBMS to change the data in
the DiscountPrice field to $9.95. WHERE ArtistName = ‘Rolling Stones’
tells the DBMS to change only those records where the artist name is
Rolling Stones.
What are the limitations of the global UPDATE command?
Although the global UPDATE function is powerful, it works only for records
that have similar characteristics—for example, all albums by the Rolling
Stones or all albums produced in 1955. Custom programming is required
to perform global operations on information that does not have any similar
characteristics. Figure 11-49 provides an example.
Vintage Music Shop’s marketing manager picks ten
albums each week to place on a special promotional
sale. These albums have no common data that can be
used to formulate a global UPDATE command.
FIGURE 11-49
Database designers can write
modules that provide custom
update capabilities.
Blue Day’s Ni
Stran awaii
Chea ge Days
Yello Thrills
Surfi Subma
Blon ’ Safari ine
de o
Rubb n Fly
er So
em o ul
f the
Custom programming would allow the marketing manager to simply submit a list of ten albums as a document.
The module would “read” the document and issue an
UPDATE command for each of the chosen albums.
How is data retrieved from more than one table at a time?
Recall that the process of normalization creates tables that can be related
by fields that exist in both tables. In SQL terminology, creating a relationship between tables is referred to as joining tables.
Suppose you want some information on Elvis Presley’s G.I. Blues album. It
would be nice to see not only the album name and cover, but also a list of
the songs included on the album. The songs, however, are not stored in the
same table as the rest of the album data. The Albums table holds the album
name, the artist’s name, the release date, and other data about the album.
The Tracks table holds the name of each song track, the track length, and
an MP3 sample of the track. Both tables also contain a Cat# field.
FIGURE 11-50
Records in the Albums table and
Tracks table both include a Cat#
field. When the data in these
fields is the same, the records
refer to the same entity—in this
case, an Elvis Presley album
called G.I. Blues.
Earlier in the chapter you learned that a relationship can exist between
Vintage Music Shop’s Albums table and Tracks table, based on the data in
the Cat# field, as shown in Figure 11-50.
LPM-2256 G.I. Blues
Elvis Presley
Between the Buttons Rolling Stones
Blue Hawaii
Surfin’ Safari
Elvis Presley
Beach Boys
Blue Suede Shoes
Frankfort Special
Wooden Heart
Ruby Tuesday
To take advantage of the relationship between these two tables, you first
have to join the tables. Why? Remember that in a relational database, the
tables are essentially independent unless you join them together. The SQL
JOIN command allows you to temporarily join and simultaneously access
the data in more than one table.
How does the JOIN command work? A single SQL query can
retrieve data from the Albums table and the Tracks table for Elvis Presley
albums. To do so, however, requires some way to distinguish the data contained in each table. In the example, both tables contain a field called Cat#.
How can you differentiate the Cat# field that belongs to the Albums table
from the Cat# field in the Tracks table?
SQL uses dot notation to make this distinction. Albums.Cat# is the full
specification for the Cat# field in the Albums table. Tracks.Cat# specifies its
counterpart in the Tracks table.
When joining two tables, the convention is to use the full specification for
table and field name. Figure 11-51 dissects an SQL query that joins two
Vintage Music Shop tables.
SELECT Albums.AlbumTitle,
FIGURE 11-51
The JOIN command links the
Albums and Tracks tables
to produce the album name,
cover, price, and tracks for item
number LPM-2256.
The SELECT clause specifies the fields that
should appear. Albums.AlbumTitle refers to
the AlbumTitle field of the Albums table.
The JOIN command links the
Albums and Tracks tables.
FROM Albums JOIN Tracks on
The tables are joined when the same data appears
in the Cat# fields of records from the two tables.
Albums.Cat# = Tracks.Cat#
WHERE Album.Cat# = ‘LPM-2256’
The WHERE clause specifies
that you want to see the album
with item number LPM-2256.
How extensive is SQL? In this section, you were introduced to some
of the most commonly used SQL commands, and you explored how they
might be used in the context of an e-commerce music business. SQL is a
very extensive and powerful language that can be used not only to manipulate data, but also to create databases, tables, and reports. Because SQL
is one of the most popular database tools, many computer professionals
consider SQL fluency an essential career skill.
include SELECT,
To search for data in a specific field, you can use
the SQL command
The term parameter refers to detailed specifica-
command can
tions for a command. True or false?
change the data in a specified field in one or
In search specifications, AND, OR, and NOT are
more records.
examples of
operators and
are used to specify relationships between search
In SQL, the JOIN command allows you to add
fields to a database. True or false?
In SQL, the DATA command adds fields to a
database. True or false?
Database Security
IN THE PAST FEW YEARS, data for millions of people has been
stolen, hacked, or simply gone missing. No one is quite sure what happened to a Bank of America backup tape containing personal information
for 1.2 million federal employees, senators, and representatives. A U.S.
Air Force spokesperson confirmed that personal data for 33,000 soldiers
was hacked from an online system. A hacker gained access to a research
database of 600,000 people registered with the California Department of
Social Services. ChoicePoint, a consumer data firm, was duped into distributing personal information for more than 145,000 people. Consumers
are alarmed that databases are so vulnerable. In Section E you’ll learn why.
How vulnerable are databases? Databases are vulnerable to theft,
hacking, and unauthorized access. A disk or tape containing a backup or
archive could be stolen. A notebook computer containing a database used
by a field representative or teleworker can go missing. Hackers can gain
unauthorized access to a database over the Internet or an unsecured wireless connection. Legitimate database entry personnel could make unauthorized copies, changes, and deletions.
The qualities that make databases efficient also make them vulnerable.
Data stored in digital format is easy to copy, back up, store, and transmit.
Although it would be impractical to steal millions of paper records from filing
cabinets, to steal a digital database a criminal simply has to pocket a small
backup drive or make a copy of the original database (Figure 11-52).
FIGURE 11-52
Database theft is all too
Electronic databases can typically be accessed over local area networks
and the Internet, offering convenience to customers, clients, and employees. Security holes can allow intruders to infiltrate computer systems housing databases, copy data, delete it, or change it.
When a database is illicitly copied, it is stolen but not missing, as it would
be if a crook made off with the folders in a filing cabinet. The theft might
not be discovered for days or weeks, if ever, preventing organizations and
individuals from taking steps to prevent pilfered data from being misused.
Easy access to information is an essential characteristic of a database.
Many databases, however, contain confidential information, such as
medical records, corporate memos, military plans, or financial data.
Confidentiality breaches can occur when intruders gain access to a
database, as well as when curious insiders make unauthorized queries.
How do database security breaches affect individuals? There
is hardly a person in America who is not in at least one computer database.
Every time you fill out a survey, register to use a Web site, visit your doctor, use your credit card, or make a phone call, that information is stored
somewhere in a database. According to the Electronic Frontier Foundation,
the average American is in at least 50 commercial databases and the average Web user could be profiled in hundreds more. With personal data
stored in so many databases and those databases at risk for being stolen
or misused, citizens have valid concerns about their privacy, the validity of
recorded data, and the security of their identities.
Privacy is typically viewed as an inherent right. You expect personal information to remain confidential. When your data is in a computer database,
there is a risk that it can be viewed by unauthorized individuals or distributed without your permission. Many people are concerned about misuse of
medical records. Pregnant women are not always happy to get stacks of
unsolicited mail with baby food, crib, and car seat ads. More insidious is the
use of medical information by prospective employers, who might not hire atrisk employees who would become a burden on the corporate health insurance plan. But what about seemingly innocuous databases? Your local
Blockbuster probably has a list of the movies you’ve rented. A preferred
customer card at your favorite supermarket could be used to collect data
about the groceries you purchase.
Accepting the fact that personal data is stored in countless databases, it
would be comforting to know that the data is accurate. However, data entry
errors, update errors, and hacking all add to doubt about the veracity of
database data. A mistake in your credit rating could prevent you from purchasing a car or home. A mixup in your student records could keep you out
of graduate school.
Criminals have become sophisticated in the use of cybertools, using bots,
keyloggers, and redirection to access data stored on personal computers
and corporate databases. The data stored in a single database is often sufficient to provide a criminal with enough information to access your bank
account or use your credit card. New trends in data aggregation and analysis make it possible to assemble a detailed picture of an individual’s life with
enough critical ID numbers and PINs to steal an entire identity and then run
up debt, acquire a criminal record, and put a real person’s life in shambles.
How do database security breaches affect organizations?
When a database security breach occurs in a legitimate organization, its
customers lose confidence and might take their business elsewhere.
Conscientious businesses will try to assist victims of a data break-in by
notifying them and offering guidance for changing PINs and watching for
unauthorized account activity. The customer notification process is usually
costly and can affect profitability. It also reduces productivity while the business devotes time and computer system resources to the notification effort.
Most legitimate businesses are serious about database security and take
steps—sometimes costly steps—to protect personal and corporate data.
Can databases be secured? Today’s computers are under assault
from hackers and natural disasters. Although no computer system can be
100% secure, system administrators can take steps to secure computer
systems and the databases they contain. Security measures include encryption, access controls, data security policies, and intrusion monitoring.
How does encryption secure a database? Although encryption
cannot prevent a database from being lost or stolen, it can make the data
it contains unintelligible to a hacker. It might seem that a prudent approach
to database security would be encrypting the entire database and leaving it
that way, but encrypted databases are not always practical.
Encrypted databases are less efficient than unencrypted databases.
Typically all or part of the database has to be decrypted for the query to
locate information. The process of decrypting database information in
response to a query typically increases the amount of time necessary to
process each query.
For links to more information
about database break-ins and
security measures, connect to the
Database Security InfoWeb.
Most active, operational databases are not encrypted while being used,
but the data they contain can be encrypted before it is archived. Thieves
who gain access to a database archive cannot make sense of the data if
it is encrypted. Also, database data that’s transmitted over the Web can
be encrypted using encryption technologies such as SSL or SHTTP.
Encryption is a useful tool in the security arsenal, but database administrators must take additional steps to secure database data.
What are access controls? An access control limits access to
systems, such as computer databases. Access controls can block unauthorized users and limit activities of authorized users. IT professionals
sometimes classify access controls as identification and authentication,
authorization, and accountability. Identification and authentication determine who can log on to a system, authorization defines what an authenticated user can do, and accountability tracks what a user did. A simpler way
to understand access controls is that they restrict the who and how of data
access. Access controls do the following:
Control who accesses the database by restricting network and physical access to the computer that hosts the database. Physical access can
be limited to authorized personnel by housing the computer in a locked
data center. Online access can be limited by firewalls and passwords.
System administrators should be sure to change all default administrator
passwords before opening the database to internal and external users.
Most DBMSs ship with a standard administrator password. Hackers know
it. Surveys show that as many as 25% of businesses never remember
to change it, leaving their systems wide open to unauthorized access.
Security experts also recommend separating the server that hosts the database from the server that hosts publicly accessible services, such as Web
pages. Database servers that supply information to Web servers should be
configured to allow connections only from that Web server to prevent portjumping exploits from unauthorized intruders.
FIGURE 11-53
A database administrator can
limit the way individuals or
groups access data. In this
example, library patrons are
given permission to read data
in the Books table, but they
cannot update, insert, or delete
data from it.
Control how users interact with the database
by defining user privileges and views. Customers,
clients, and even most employees who use a database have no need to change its structure by adding
fields, changing field names, and setting keys. User
privileges (also referred to as user rights or permissions) delineate what activities a user can perform
within a database. The lowest level privilege is read
access, which allows a user to see the data, but not
change it. Adding the write privilege allows a user
to also change data in the database. Privileges can
also be granted for deleting, adding, indexing, printing, and copying (Figure 11-53). A data view establishes which fields and records a particular user is
allowed to access. In a medical insurance database,
for example, a customer service representative might
be allowed to view an insured person’s account,
including the customer name and address; however
the treatment summary might display only dates and
charges, not the nature of the treatment.
How can policies help to secure databases? A notebook computer is an easy target. Most thieves are after the hardware, but they might
hit the jackpot if a computer contains a corporate or government database.
To minimize vulnerabilities caused by employee inattention, organizations
can formulate database use policies, such as requiring employees to log off
the system before going to lunch and prohibiting employees from removing
sensitive data from the workplace. A good set of policies decreases the risk
of unauthorized access within the workplace, minimizes the chance of confidential data escaping from the workplace, and helps improve data entry
What can monitoring accomplish? A database audit is a procedure that monitors and records user activity within a database. In some
instances, auditing can identify potential intruders before they can compromise a system. If an intruder breaches database security, an audit can help
to identify the damage and correct it. Database auditing tools can be configured to keep a record of who is accountable for changes to the database,
gather general usage statistics, or investigate suspicious activity (Figure
Tracking who makes changes in a database
helps an organization maintain accountability,
trace the source of errors, and make comprehensive corrections. If a database has been
compromised by a hacker, for example, an audit
report can be used to check recent changes to
the database to make sure they are legitimate.
General usage statistics help database administrators maintain optimal performance, so that
query response is quick even at peak usage
times. General statistics gathered by LAN management software, for example, can also reveal
abnormal usage patterns and alert system
administrators to possible intrusion attempts.
If abnormal usage patterns become evident, database auditing tools can
be configured to check specific types of database activity. For example, if a
system administrator suspects that data is being surreptitiously deleted or
changed, an audit can be set up to record any successful or unsuccessful
deletions from tables in the database.
Is my government protecting me from database security
breaches? International e-commerce has made database security a
global concern and many countries have enacted laws to protect personal
data stored on databases. For example, the European Union’s Privacy
Directive 95/46/EC and Canada’s Personal Information Protection and
Electronics Documents Act (PIPEDA) mandate that database breaches
from accidental loss or electronic attack are disclosed, rather than swept
under the carpet. Despite progress, governments around the world still
have much work to do in designing and enforcing effective privacy laws.
Canada, the European Union, and Japan have more stringent privacy regulations than the U.S. Although it leads the world in technology development,
the United States has some of the weakest privacy regulations in the developed world. Its patchwork of laws regulates some types of databases, but
not others.
FIGURE 11-54
Database auditing software
such as SoftTree Technologies
DB Audit can be used to track
intrusion attempts.
Surprisingly, government databases have some of the most stringent regulations. The U.S. Privacy Act of 1974 requires government agencies to
disclose to an individual the contents of his or her records. It places restrictions on how agencies can share an individual’s data with other people and
agencies. The Act also requires agencies to follow “fair information practices” when gathering and handling personal data, and allows individuals
to sue the government for violating its provisions. There are exceptions
to the restrictions, such as when information is needed in the course of a
criminal investigation. In addition, subsequent legislation, such as the USA
PATRIOT Act, further delineates the rules governing the collection and use
of data about U.S. citizens and visitors.
Regulations in the private sector are, in many cases, less stringent than
those imposed on the government. Most consumers probably have more
to fear from private sector criminals than from government misuse of
databases. One worrisome development has been criminal database
aggregation. Here’s how it works. A hacker obtains a database containing moderately sensitive data, such as e-mail addresses and frequent flier
account numbers. The list is sold to the highest bidder who devises a datarich phishing attack, like the one in Figure 11-55, to gain even more data.
FIGURE 11-55
A bland but irritating spam
that appears to originate from
a legitimate air carrier might
contain an opt-out clause that
contains accurate data, such
as your frequent flyer number.
An average person reads this
message and reasons, “If they
have my frequent flyer number,
it must be a legitimate site,” and
proceeds to enter his or her
PIN, which gets sent directly to
a hacker.
The hacker’s database, which now
contains e-mail addresses, frequent
flyer numbers and PINs, can be sold
at a profit to another hacker who can
devise other phishing schemes to
gather even more data. Eventually,
the database will contain a fairly complete dossier on its subjects, and it will
be worth big bucks when sold to identity theft criminals.
Laws governing private sector databases offer only spot coverage of
specific types of data, such as telephone records. Laws dating back to
the 1950s cover disclosure of telephone and cable records. A U.S. law
also prohibits video rental stores from
disclosing the titles of videos rented
by customers. The Video Privacy Protection Act, passed in 1988, requires
video stores to provide consumers with the opportunity to opt out from mailing lists that might be sold to other businesses.
The Health Insurance Portability and Accountability Act (HIPAA) of 1996
addresses the security and privacy of medical records. Its privacy provisions protect all individually identifiable health information. Medical records
that include an individual’s name, Social Security number, or other personal
identification cannot be disclosed without consent. HIPAA’s security provisions prescribe policies, procedures, and reporting mechanisms that must
be in place for all information systems that process medical records.
The Gramm-Leach-Bliley Act of 1999 requires financial institutions to establish security standards that protect customer data from internal and external
threats, including unauthorized access that occurs through networks and
online systems. The law also contains an opt-out clause designed to protect consumer data from being sold or disclosed to third parties. Laws are
complex, however, and the Gramm-Leach-Bliley Act includes a number of
cases in which data can be shared.
Seemingly reasonable steps to protect U.S. consumers have not yet been
incorporated into comprehensive national database legislation. For example, in 2003 California passed CA SB1386, usually referred to as California’s
Security Breach Information Act, which requires businesses to make timely
disclosure of database security breaches to any California residents whose
personal information might have been compromised. Unfortunately, an
attempt to pass a similar law on the national level failed.
The patchwork of U.S. law that applies to database security offers no guidelines that apply to all databases, leaving irritating loopholes that allow some
types of personal data to be gathered, aggregated, and shared with third
parties. Rules for financial databases are slightly different than for medical, telephone, cable, or video rental databases. Even if businesses adhere
to the applicable database laws, consumers cannot be expected to understand the nuances for different types of databases and are therefore in the
dark about their rights and responsibilities. Many consumer advocates are
calling for comprehensive one-stop security-privacy legislation that applies
to all databases.
Can industry self-regulation be effective? Some business sectors have instituted their own regulatory standards, which can enhance the
security blanket surrounding databases. For example, major credit card
companies formulated the PCI (Payment Card Industry) Data Security
Standards that specify security standards for merchants that handle credit
card information. Participating merchants are responsible for the security
of cardholder data and must not store certain types of data on their computer systems or the systems of third-party service providers. The PCI Data
Security Standards are based on ISO 17799, an internationally recognized
standard for information security practices.
What can I do to minimize my vulnerability to database
security breaches? You can’t protect your personal data once you’ve
released it, so the key to minimizing your risk is to be vigilant about the
information you divulge.
Be aware of any activities that can possibly collect information about you
for a database, such as registering to use a Web site, participating in a survey, submitting your resume to an online data bank, sending for a product
rebate, participating in online discussion groups, clicking pop-up ads, and
so on. Sometimes the gains aren’t worth the risk or the potential nuisance
of dealing with a deluge of junk mail.
When asked for information, supply only what’s required. Never divulge
your Social Security number and be cautious about other personal information, such as your telephone number or address. When in doubt, you might
consider using phony data.
Make sure you look for the opt-out button if you don’t want your data distributed to third parties. Some Web sites have the opt-in button selected as the
default and if you don’t want your data distributed, you will need to change
to the opt-out status.
Consider using a USB flash drive containing a portable password manager
that stores strongly encrypted passwords and enters them when you want
to access a password protected database or site, but can be removed from
your computer when it is not in use to foil intrusion attempts (Figure 11-56).
Be wary of offers for free services in exchange for personal information or
permission to track your online footprints.
FIGURE 11-56
Portable password managers that
you can use from a USB flash
drive include:
• Siber Systems RoboForm2go
• DobySoft KeyPass
• Bruce Schneier’s Password
• Dominik Reichl’s KeePass
Make sure your antivirus software is running and up-to-date. Use a personal firewall and pop-up blocker to protect your computer from unauthorized intrusions.
Never send personal information in response to an e-mail request that
could be a phishing attack from an illegitimate source.
When a privacy policy exists, check it out—especially the part that explains
whether your data might be shared with a third party (Figure 11-57). Even if
the policy indicates that data will not be shared, don’t assume the data will
never be released. You’ll have to weigh the sensitivity of the data and the
dependability of the source to decide whether to supply the requested data.
FIGURE 11-57
Investigate a site’s
privacy policy before
you provide personal
information. X Learn
more about protecting
your privacy online.
cannot prevent a database
The Gramm-Leach-Bliley Act of 1999 requires
institutions in the U.S.
from being lost or stolen, but it can make the data
it contains unusable.
to establish security standards that protect cus-
The lowest level of permission allows users
tomer data from internal and external threats.
access to a database.
password manager
is a procedure
stores strongly encrypted passwords and enters
that monitors and records user activity within a
them when you want to access a password pro-
tected database or site, but can be removed from
A database
your computer when it is not in use to foil intrusion attempts.
Issue: Do You Want a National ID Card?
wake-up call for America to shore up its defenses.
Terrorists who boarded planes that September morning were ready to show legitimate driver licenses if
questioned about their identity. The ensuing national
security investigation reported the obvious: U.S.
borders were porous and there was really no way
to differentiate between legal and illegal residents.
The 9/11 Commission recommended ID cards as an
important step in combating terrorist threats. Shortly
after the 9/11 attacks, 70% of Americans surveyed
liked the idea of a national ID card. Recent polls
show continued support for a national ID card among
the majority of Americans.
Most states have developed security enhancements
for driver licenses that comply with the requirements
for federally approved ID cards. For example, Florida
now issues a driver license with 17 layers of security. Each license contains three photos, including
one that can be seen only under ultraviolet light. The
card’s security features make it difficult for a terrorist,
illegal immigrant, or identity thief to alter or forge the
National ID cards are used all over the world to
enhance national security, unmask potential terrorists, and guard against illegal immigrants. More than
100 European, Asian, and South American countries
require their citizens to carry government-issued ID
cards at all times.
In 2005, the U.S. Congress passed the Real ID Act,
a cleverly crafted piece of legislation that doesn’t
directly establish a national ID, but forces individual
states to issue an approved ID card and link together
the databases that contain card holder data.
People born on or after December 1, 1964 will be
required to have a Federal ID card by 2014. People
born before that date will have until 2017 to obtain
their ID cards. Without an approved ID card, it will
be much more difficult to open a bank account, travel
on an airplane, collect Social Security payments, or
obtain other government services.
ID cards can be issued by states, but the card format must be approved by the federal Department
of Homeland Security. The cards must include anticounterfeiting technology and contain a version of
the data in a standardized machine-readable format,
such as on a magnetic strip or an embedded RFID
chip. Civil liberties watchdogs are suspicious of RFID
chips, which can be read from a distance without
notifying the card holder. Unauthorized access and
abuse of data contained on the card could lead to
security breaches. Magnetic strip technology, however, is less threatening because it is used for credit
cards that many people currently carry.
So now that a national ID card is about to become
reality, why did states such as New Hampshire, with
its “live free or die” motto, oppose the Real ID Act?
Why was the Act opposed by more than 600 organizations, including the American Library Association,
the American Association of Motor Vehicle
Administrators, the Association for Computing
Machinery, the American Immigration Lawyers
Association, the National Conference of State
Legislatures, the National Association of Evangelicals, and the National Governors Association?
The card in and of itself is harmless. People carry all
kinds of identification cards. The controversy stems
from a clause in the Real ID Act that requires states
to link their ID databases in order to discover duplicate applications, monitor potential terrorists, and
uncover illegal immigrants. Opponents to the Real ID
Act fear that a massive centralized ID database could
be abused by government agencies, businesses,
and criminals. Although most Americans are willing to accept national ID cards, far fewer support a
national ID database.
The Real ID Act contains provisions that require
states to store and share ID data, including name,
birth date, gender, ID number, address, digitized
photo, and biometric data such as a digitized fingerprint or retinal scan. Barry Steinhardt, director of the
American Civil Liberties Union’s technology and liberty program, explains, “It’s going to result in everyone, from the 7-Eleven store to the bank and airlines,
demanding to see the ID card. They’re going to scan
it in. They’re going to have all the data on it from the
front of the card...It’s going to be not just a national ID
card but a national database.”
Presumably, the database and electronic scanning
technology will work together so that the card can be
swiped, data transmitted to the central database, and
verified. That scheme has privacy advocates worried.
Will a simple ID card scan to verify your identity at
your neighborhood supermarket add data about the
transaction to the national database? How much
other data might be collected? Will the government
ID database eventually contain detailed dossiers on
every citizen?
editorial in Scientific American points out, “Suppose
that there are 1,000 terrorists in the U.S. and that
the data-mining process has an amazing 99 percent
success rate. Then 10 of the terrorists will probably
still slip through—and 2.8 million innocent people will
also be fingered.”
The government is only one potential source of abuse
for a national ID database; businesses are another.
If a business can scan an ID card to validate it, the
reader might also be able to copy the data into the
business’s own database to use for mass mailings
and other marketing activities. Some stores would
want to collect and store ID data “just until the check
clears,” but who is to say that the data would not be
stored longer and sold to a credit union, for example,
or mailing list broker?
A national ID database would also draw the attention
of every hacker in the world. The database would be,
as one analyst colorfully put it, the “big red target,
the bullseye, the holy grail of black hats.” Optimists
hope that encryption will protect the data. However,
the encryption technology used for a prototype RFID
passport planned for use by the Netherlands was
hacked in just two hours by a security firm partnering
with a local television show.
Laws to limit additional data collection and restrict
access could help prevent abuse of a national
ID database, just as the Fourth Amendment protects citizens against illegal searches and seizures.
However, many citizens in this country founded on
liberty do not find that idea reassuring.
Privacy watchdogs continue to monitor a National
Security Agency data mining project designed to
pre-emptively identify terrorists by looking for suspicious patterns in library book borrowing, car rentals,
e-mail, banking, and other transactions. A similar
system applied to a dossier-like national ID database
has ramifications even for law abiding citizens. As an
What Do You Think?
You’ll find lots more information about this issue at the
Database Privacy InfoWeb.
1. Do you support the idea that a national ID card can help combat terrorism and help secure U.S. borders?
Yes  No  Not sure
2. Are you comfortable about the tradeoff between privacy and security
that accompanies a national ID database?
Yes  No  Not sure
3. Do you think most citizens are well informed about the privacy risks
associated with a national ID database?
4. Will you get a national ID card?
Yes  No  Not sure
Yes  No  Not sure
Computers in Context: Medicine
early adopter of computer technology for traditional
data processing applications, such as client billing
and employee payroll. A computer’s ability to process and store thousands of records helps reduce
hospital administrative costs. Linking hospital billing
to health insurance companies streamlines cumbersome manual procedures for submitting insurance
claims. These behind-the-scenes applications do
not, however, directly affect the quality of health care,
where computer technology has recently made a significant contribution.
Until recent years, paper charts dangled from the
foot of every hospital bed and additional information
was stored in thick file folders in nursing stations or
the hospital’s medical records department. Patient
records include doctors’ diagnoses, laboratory test
results, medication schedules, and charts depicting
a patient’s vital signs. The process of maintaining
these paper-based records is time consuming and
quite open to errors. Effective treatments might be
dangerously delayed while a slip of paper that holds
laboratory results wends its way through the hospital corridors. In a hospital where a patient’s condition
can change suddenly and unexpectedly, health care
providers need instant and ubiquitous access to the
information contained in the patient’s record.
Today, technology allows hospitals to store patient
records in computer databases that are instantly
accessible to doctors, nurses, and other health care
workers. A nurse can access a patient’s record from a
computer in the nursing station to check care instruc-
tions and enter vital statistics. Doctors can access
a patient’s record from an office or home computer
to check progress, order tests, and make decisions
when minutes count. Lab technicians can enter test
results immediately into a patient’s record. Patient
records tie into a comprehensive hospital information
system (HIS) that integrates just about every aspect
of hospital management. Even the hospital dietitian can access relevant parts of a patient’s record
to work out menus that fit a patient’s dietary needs,
while avoiding allergies.
According to technology pioneer Ray Kurzweil,
“medicine is among the most knowledge-intensive
professions.” Most doctors agree that medicine has
grown too complex to have all the answers “in their
heads.” Today, in just about every aspect of their
practices, doctors use computer applications and
Internet technologies.
At one time, doctors dictated the results of an examination or surgical procedure. The dictated notes were
later transcribed into computer records by staff members. Today’s technology allows doctors to enter this
information directly into computerized patient records
by typing or by dictating into a speech recognition
system that digitally converts the spoken word into
computer text.
The Internet supplies physicians with many informational and diagnostic resources. Health libraries provide online access to reference databases,
such as MEDLINE, and STAT!Ref. Doctors use drug
databases to choose appropriate medications, avoid
dangerous drug interactions, determine correct dosages, and print out prescriptions. One pediatrician
says, “I use the computer to make sure the medicine
will work with any other medicines the patient takes,
the patient won’t be allergic, and to check for warnings about certain foods or alcohol.”
Hospitals are ideal candidates for wireless technologies because just about everything and everyone
is on the move, including doctors, nurses, patients,
and equipment. Overlake Hospital in Bellevue,
Washington is a model of future wired, paperless
hospitals. Nurses tote portable computer stations,
physicians use voice recognition software to enter
prescriptions, and bar coded patient wrist bands
help caregivers administer and track medications.
The Internet’s ability to rapidly disseminate information worldwide makes it a crucial tool for tracking global health threats. During the H1N1 outbreak
in 2009, Web sites maintained by the World Health
Organization (WHO) and Centers for Disease Control
(CDC) provided statistics on the spread of infection.
They also kept doctors, researchers, and reporters
up to date on efforts to identify the virus, develop a
vaccine, and devise treatment options.
Many doctors use Internet technology to communicate with their colleagues by e-mail and send imaging data, such as X-rays, to specialists. Telemedicine
uses communications links to supply medical services at a distance. It can be used to provide specialty medical services to rural patients, and allow
medical personnel from several locations to collaborate on patient diagnosis and treatment.
Once limited to telephone consultations and fax
transmission of paper-based patient records, today
telemedicine takes full advantage of the Internet
to transfer electronic patient records, still images,
and even full motion video sequences. Images
from diverse sources, such as X-rays, MRIs, and
CT scans, stored in the standard DICOM (Digital
Imaging and Communications in Medicine) format,
can be easily transferred over the Internet and displayed using a single software package.
Computers have become an integral part of modern
medical equipment. The use of X-rays was a huge
medical breakthrough in the early 1900s, but X-rays
capture only a two-dimensional image. A technology called CT (computerized tomography) essentially assembles a series of X-ray images taken from
slightly different angles. A computer works with the
data to generate a three-dimensional image that can
be rotated and viewed from any angle.
Computers, data, and telecommunications technology team up in a number of mobile medical devices
that have revolutionized emergency medical ser-
vices. An EMS worker describes a device used to
monitor cardiac patients: “We can do a comprehensive 12-lead EKG at the scene and the computer
inside the LIFEPAK 12 tells us what kind of arrhythmia we may be dealing with and even gives us suggestions for treatments.”
Today, most patients want to be informed participants in their health care team. Patients use Web
sites such as MedlinePlus to find information on
diseases, drugs, and treatment options. Doctors
frequently recommend health-related Web sites
and support groups to patients. Patients can gather
information from these sites at their own pace and
refer back to it as necessary. The availability of information on the Web reduces the need for doctors to
make lengthy explanations that patients often cannot
absorb or remember during an office visit.
The computer’s use in medicine is not without potential pitfalls. Online patient records raise issues of
confidentiality. Many patients are concerned about
unauthorized access to their records by employers,
human resources staff, and hackers.
The Health Insurance Portability and Accountability
Act (HIPAA) requires insurance companies to protect
the privacy of their policy holders from inappropriate
use or disclosure. Insurance company employees
are allowed to look at clients’ personal health information only in the course of administering claims.
Insurance companies are not allowed to disclose personal health information to any other company or to a
client’s employer without permission. Insurance companies are, however, allowed to divulge information
to government agencies if a serious threat to public
health and safety exists. HIPAA also gives patients
the right to amend incorrect or missing information in
their records, and it allows clients to request a list of
the disclosures.
The next time you’re in a hospital or doctor’s office,
look around for computers. You’re sure to find these
essential tools used to improve the effectiveness of
health care.
You can find more information for
this Computers in Context topic
at the Computers and Medicine
New Perspectives Labs
On the BookOnCD
To access the New Perspectives Lab for Chapter 11, start the BookOnCD, or other NP2011 BookOn product,
and then click the icon next to the lab title below.
How relational database software depicts data as
tables, records, and fields
How to use tables and forms to view data
How to create a table
How to use primary keys
How to enter and edit data
Why relationships between tables are so important
How to sort data and create an index
How to search for data
How to set filters
How to create queries
How to view the SQL code for a query
How to create a report
How to modify a report in Design view
1. Start the interactive part of the lab. Make sure
you’ve enabled Tracking if you want to save
your QuickCheck results. Perform each lab step
as directed, and answer all the lab QuickCheck
questions. When you exit the lab, your answers
are automatically graded and your results are
2. A friend wants to create a table to store information about a collection of old books. List the fields
you might include in the table to store information about the books. For each field, specify the
field name, data type (text, numeric, date, etc.),
and field length. Indicate the primary key(s), and
describe how you would sort and/or index the
3. Use Microsoft Access or any available file or
database management software to create the
structure for the table you specified in Assignment
2. Enter at least ten records. Print a list of all your
4. Make a list of five queries that might be useful if
your database had hundreds of records. Try these
queries on your table. For each query, list the
records that were selected.
5. Sketch a report on paper that uses some of the
fields in your table. Make sure your report contains a title and headings for each field. Specify
whether you would like to align your data at the
right, center, or left of each column. Use your software to generate and print the report.
Key Terms
Make sure you understand all the boldfaced key terms presented in this chapter. If you’re using the
NP2011 BookOnCD, or other NP2011 BookOn product, you can use this list of terms as an interactive
study activity. First, try to define a term in your own words, and then click the term to compare your definition with the definition presented in the chapter.
Access control, 655
BLOB, 635
Cardinality, 616
Case sensitive database, 636
Computed field, 635
Data dependence, 624
Data independence, 624
Data mining, 612
Data redundancy, 637
Data type, 634
Data view, 655
Data warehouse, 612
Database, 610
Database audit, 656
Database client software, 626
Database index, 639
Database model, 614
Database server software, 626
Database structure, 633
Date data type, 634
DBMS, 625
Dimensional database, 619
Distributed database, 626
Dynamic Web publishing, 628
Entity-relationship diagram, 616
Executive dashboard software, 613
Field, 615
Field format, 636
Field name, 615
Field validation rule, 636
Fixed-length field, 615
Flat file, 614
Global update, 650
Hierarchical database, 617
Hyperlink data type, 635
Integer data type, 634
JOIN, 651
Joining tables, 651
Logical data type, 634
Lookup routine, 637
Many-to-many relationship, 616
Memo data type, 634
Network database, 617
Normalization, 637
Object database, 620
Object-relational database, 621
ODBMS, 625
OLAP, 613
One-to-many relationship, 616
One-to-one relationship, 616
Parameters, 647
Predictive analytics, 613
Primary key, 634
RDBMS, 625
Real data type, 634
Record, 615
Record occurrence, 615
Record type, 615
Relational database, 618
Relationship, 616
Report generator, 642
Report template, 642
Server-side program, 628
Sort key, 639
Sort order, 639
SQL, 645
SQL keywords, 646
SQL query, 645
Static Web publishing, 627
Structured file, 614
Table, 618
Text data type, 634
Unstructured file, 614
User privileges, 655
Variable-length field, 615
XForms, 629
XML, 630
CHAP T E R 1 1
Interactive Summary
To review important concepts from this chapter, fill in the blanks to best complete each sentence. When using the
NP2011 BookOnCD, or other BookOn product, click the Check Answers buttons to automatically score your answers.
is a collection of
relationships, one-to-many rela-
information, typically stored as computer files. The information
tionships, or many-to-many relationships. The number of asso-
it contains can be stored, updated, organized, output, distrib-
ciations that can exist between two record types is referred to
uted, searched, and analyzed. A filing cabinet full of folders
and papers would be classified as an
ically by using
file. A
file uses a uniform format to store
data for each person or thing in the file. The simplest model
file that consists
for storing data is a
. Relationships can be depicted graph-relationship diagrams.
databases allow only one-to-many rela-
databases allow one-to-many
and many-to-many relationships.
of a single, two-dimensional table of data elements. Each
bases exist as a series of tables that can be related by common
row in the table is a
, and each col-
fields. A
umn of the table is a
. Each kind of
over three or more dimensions. An
. A
record is referred to as a record
record that contains data is sometimes referred to as a record
database organizes relationships
base stores data in objects that can be grouped into classes
and defined by attributes and methods.
. In databases, records can be related by
SECTION B: Flat files can be created and manipulated by
The data in a database can be accessed over the Web. A simple
using a variety of tools, including word processing and spread-
process called
sheet software. For databases composed of more than one
a database report into an HTML document, which can be dis-
record type, however, it is best to use a database management
played by a browser. More sophisticated
system, which is abbreviated as
Web publishing produces data from a database on demand.
-level database management system
typically handles many simultaneous searches, but has limited
capability to deal with multiple simultaneous updates. Handling
billions of records and performing hundreds of transactions every
second requires database
Web publishing converts
HTML forms and XForms not only provide search capabilities,
but can also be used to add or modify data in a database with a
Web browser.
documents provide a Web-
based data management tool that uses special tags as field
names within a document.
SECTION C: The first step in designing a relational data-
field formats, field
base is to define its fields by specifying a field name and data
routines to reduce data entry errors.
type. Integer, date, and
data types are
used for fields containing data that might be mathematically
manipulated. The
data type is used
for fixed-length fields containing text that is not intended to
be mathematically manipulated. The
data type is used to store true/false
data type can be
used to store URLs. The
The number of tables in a database can be determined by a
process called
, which helps a data-
base designer group fields into record types and avoid data
redundancy. A database designer must also consider how
to sort or index records. The
data type is a variable-length field for entering text. The
or yes/no data. The
rules, and lookup
data type
is used to store binary data, such as MP3 files or graphics.
When designing fields, a database designer can also include
key for
a table specifies the order in which records are stored and
indicates where new records are inserted in a table. A database provides an alternative way to organize records, using
a series of keys and pointers to temporarily arrange data
without affecting the physical sequence of records specified
by the sort order.
SECTION D: SQL is a database query language that typi-
that specify the details of the com-
cally works behind the scenes as an intermediary between the
mand. Records can be removed from a database using the
software provided to users and
command. Records can be added
the database itself. Although the specifications for searches
to a table using the SQL
and other database tasks are collected by easy-to-use graphi-
search for data, you can use the SQL
cal user interfaces, those specifications are converted into SQL
command. To change or replace the data in a field requires
, which can communicate directly with the
the SQL
command. SQL also pro-
vides a
An SQL query contains SQL
such as SELECT, FROM, INSERT, JOIN, and WHERE, plus
command. To
command that can be used to
temporarily consolidate two tables so that data can be accessed
simultaneously from both of them.
SECTION E: Databases are vulnerable to theft, hacking,
and unauthorized access. Although
can help to identify the damage and cor-
rect it. A patchwork of database security laws in the U.S. leaves
not prevent a database from being lost or stolen, it can make
loopholes that allow some types of personal data to be gathered,
the data it contains unusable. This security technique, however,
aggregated, and shared with third parties. Individuals can take
is typically used for archived databases, rather than operational
steps to protect their personal data by vigilantly monitoring what
databases. Access controls can be used to restrict physical
information is released, using strong passwords, running security
access to a database, limit user privileges, and regulate data
software, and becoming familiar with the
that establish which fields a particular user
policy for sites that store personal data.
is allowed to access. Tracking database use is also an important security tool. If an intruder breaches database security, an
CHAP T E R 1 1
Interactive Situation Questions
Apply what you’ve learned to some typical computing situations. When using the NP2011 BookOnCD, or any other
NP2011 BookOn product, you can type your answers, and then use the Check Answers button to automatically score your
You’re working for a company that’s just getting started
with a database project. Your supervisor wants “the most
standard kind of database,” so you recommend using
database management software.
You are analyzing a company’s customer and order
information. Because each customer can place multiple
orders, you know this is a(n)
names of the wholesalers from which you buy each item.
Hot Rod Wholesalers just changed its name to Northern
You are designing a record type that holds customer
Rod and Reel, so you need to update your database. The
information. You should use a(n)
best way to accomplish this task would be to perform a(n)
data type for the fields that hold information such as
update that changes every instance
telephone numbers and Social Security numbers because
of “Hot Rod Wholesalers” to “Northern Rod and Reel.”
although this data looks like numbers, you’ll never need to
use it to perform mathematical calculations.
company. You recognize that a many-to-many relationship
You are creating a movie review database, and one field
exists between an order and the items listed on the order.
stores the “star rating” that a popular reviewer gave each
That clue indicates that you should separate the data into
movie. Movies are rated from one to four stars, so the Stars
field is valid only if the number is between 1 and 4. To
rule to filter the data
, one called Orders and the
other called Order Details.
ensure that nobody enters a value below 1 or above 4, you
can use a field
You are designing the structure for a mail-order catalog
Your friend is working on some Web pages, and you notice
as it’s entered into the table.
that they contain tags such as <editor>Ella Ellison</editor>
You want to print a professionally designed list of all the
records in your database. To organize and format the list,
you use a report generator to create a reusable report
You surmise that your friend is using
instead of HTML.
You own a fly-fishing shop and maintain an inventory
database that, along with inventory data, stores the
Interactive Practice Tests
Practice tests that consist of ten multiple-choice, true/false, and fill-in-the-blank questions are available on both the NP2011
BookOn products and the NP2011 Web site. The questions are selected at random from a large test bank, so each time you
take a test, you’ll receive a different set of questions. Your tests are scored immediately, and you can print study guides that
help you find the correct answers for any questions that you missed.
Learning Objectives Checkpoints
Learning Objectives Checkpoints are designed to help you assess whether you have achieved the major learning objectives for this chapter. You can use paper and pencil or word processing software to complete most of the activities.
1. List eight ways the information in a database can be used and
9. List the techniques that a database designer can use to reduce
data entry errors.
2. Create a descriptive example that would help explain the concepts of data mining, data warehouses, predictive analytics, and
OLAP to an average adult who has no technical expertise.
10. Using a real-world entity, like a comic book collection or a recipe
file that can be stored in a database, divide the information into
fields and record types. Explain the steps you need to take to
normalize the data.
3. Define basic database terminology, such as fields, records,
record types, record occurrences, and cardinality.
11. Using your own examples, explain the differences between sorting and indexing.
4. For each of the following pairs of record types, draw an ERD
showing whether the relationship is one-to-one, one-to-many, or
Person—Social Security number
12. Describe how a database report template works. List five principles for creating effective report templates.
13. Imagine that you must access a library card catalog using SQL.
Write an SQL query that you would use to search for any books
by J. K. Rowling in a table called Books, where authors’ names
are stored in a field called AuthorName and book titles are stored
in a field called Title.
5. Describe flat files and six other database models. Give examples
that illustrate each model.
14. Explain the extent to which encryption, user privileges, and audits
can secure a database.
6. Explain the capabilities of various data management tools, such
as commercial applications, word processing software, spreadsheet software, custom data management software, and database management software.
15. Describe the status of privacy legislation in your country, providing examples of relevant laws and regulations.
7. Use diagrams to explain different ways of providing Web access
to the data in a database.
16. List the steps you can take to protect your privacy and identity
when working with databases.
8. Provide five examples of data you would store in real, integer,
text, logical, date, memo, BLOB, and computed fields.
Study Tip: Make sure you can use your own words to correctly
answer each of the red focus questions that appear throughout the
Concept Map
Data File
Fill in the blanks to correctly represent the
hierarchy of relationships among the database
terms used in this chapter.
a. _______________
b. _______________
Data File
Data File
c. ____________ File
Objecte. _______________
f. _______________
d. _______________
Network Database
g. _______________
h. _______________
i. _______________
j. _______________
k. _______________
CHAP T E R 1 1
Type your name into the Google search engine. How much information can you currently find about yourself? How much privacy are you
willing to release? Create a table with rows for the following: name,
address, e-mail address, SS#, credit card#, phone#, height, weight,
gender, hobbies, medical history, employer, spouse name, children’s
names. Put the following columns across the top: applying for a job,
visiting the doctor, subscribing to a Web site, making an online purchase, opening a bank account, responding to an e-mail message,
registering for classes. Add two more situations to the list. Use a check
mark or OK to indicate if you would be willing to provide each type
of information. Put an R in a column if you believe the information is
legitimately required. Use a question mark when you’re not sure if the
information is required.
Form a group of four to five students. Suppose you must design the
record structure for a new information system that holds driver license
data. Using your own driver licenses, design an effective record structure, indicating record types, field names, field lengths, and data types.
Where appropriate, indicate ways that you could minimize data entry
errors. Submit your record structure to your instructor.
Look at the Internet Movie Database ( and search for
your favorite movie. Examine the field names and content (i.e., title,
genre, tagline) IMDb uses to organize data about movies. How would
you distribute these fields among tables in a relational database?
Create the structure for a database that you think duplicates the fields
for the Internet Movie Database. You can use Microsoft Access or
similar relational database management software. Send your structure to one other member of your team who will try to enter the data
for at least three movies (you can limit the number of actors to five
per movie). Your team partner should also send you comments for
changes or improvements. When you are satisfied with the structure of
your database, send it to your instructor.
Create a multimedia database. At least two of the field types should
be defined to hold media, such as photos, sounds, narration, or video.
Set up a prototype of your database using software, such as Microsoft
Access. You can create the media or download it from the Web, giving appropriate citations for its source. Populate your database with
at least five records. Follow your instructor’s guidelines for submitting
your database.
When you look for a job, you might send query letters and resumes out
to several employers. To track the status of each, you can use a database. Use database or spreadsheet software to create a job-hunting
database that includes company contact information plus fields to
indicate the status of your inquiry. Load the database with at least five
sample contacts. Make sure you can use the database to generate
mailing labels. You should also be able to make queries to determine
which job prospects are still “active” possibilities. Follow your instructor’s guidelines for submitting your database and mailing labels.
Computer databases often store personal information about the citizens of more than one country, yet privacy expectations and laws
differ. For this project, explore the differences in privacy laws around
the globe. Which countries have the strongest privacy laws and which
have the weakest? Which laws would govern the data stored by multinational companies? As a global consumer, which databases would
concern you most for potential privacy violations? Consolidate your
thoughts into a one- to two-page paper and submit it to your instructor.
The Issue section of this chapter focused on the controversy surrounding national ID cards. To begin this project, consult the Database
Privacy InfoWeb and link to the recommended Web pages to get
an in-depth overview of the issue. Next, script the dialog for a town
meeting between a group of typical small-town citizens and a panel
that includes the head of Homeland Security, a representative of the
American Civil Liberties Union (ACLU), and the head of your local
driver license office. Follow your professor’s instructions for submitting
your paper by e-mail or as a printed document.
The Computers in Context section of this chapter focused on several
ways computers are used to enhance health care. It pointed out that
many Web-based medical resources are available. For this project,
explore the Web to find five sites: 1) a site that attempts to make a
diagnosis based on a set of symptoms, 2) a site that provides information on various drugs used to treat diseases, 3) a site dedicated to providing information and patient support for a particular disease, 4) a site
that evaluates medical care given at hospitals or nursing homes, and
5) a government site dedicated to health or medicine. Record the URL
and name for each site, along with the organization that maintains it.
Write a paragraph that describes each site’s content and who would
find the site most useful.
On the Web
or open your browser and connect to
Lab results can be stored in the Universal Gradebook.
Work hands-on in structured simulations
practicing important skills and concepts
In the Advanced Databases Student Edition Lab, you will
learn about the following topics:
Using primary and foreign keys
Using normalization to design a collection of tables without
Identifying relationships between tables
Identifying determinants, partial dependencies, and
transitive dependencies
Use your computer or iPod to hear a five-minute
audio presentation of chapter highlights.
Review chapter material by taking these ten-question tests, then send your results to the Universal
Interact with audio flashcards to review key terms
from the chapter.
Have some fun while refreshing your memory about
key concepts that might appear on the next test.
You can even send your results to the Universal
Make sure that you’ve achieved all the objectives for
a chapter before it’s time for your test!
At the NP2011 Web site you’ll also find Extra Content
and InfoWebLinks.
Chapter Contents
Computer Programming and
Software Engineering
Programming Languages
and Paradigms
Program Planning
Program Coding
Program Testing and Documentation
Programming Tools
Expressing an Algorithm
Sequence, Selection, and
Repetition Controls
Procedural Languages and Applications
Objects and Classes
Methods and Messages
Object-oriented Program Structure
Object-oriented Languages and Applications
The Declarative Paradigm
Prolog Facts
Prolog Rules
Input Capabilities
Declarative Languages and Applications
Black Hat Exploits
Secure Software Development
Learning Objectives
After reading this chapter, you will be able to answer the following questions by completing the outcomes-based Learning
Objectives Checkpoints on page 739.
1 How many lines of code are in a typical computer program?
2 Do the activities performed by computer programmers differ from those performed by software engineers and systems
3 What’s the best computer programming language?
4 What is a programming paradigm?
5 How is a computer program created?
6 What kinds of errors are discovered when programs are tested?
7 In addition to programming languages, what other tools do programmers use?
8 What is an algorithm?
9 What’s the point of flowcharts, pseudocode, and structured
10 How do programmers make programs do things in the right
11 How does object-oriented programming work?
12 How does declarative programming work?
13 Is it easy to write Prolog rules?
14 What makes computer programs vulnerable to hackers?
15 How can programmers produce more secure code?
16 Can consumers take steps to avoid vulnerabilities that exist in
software with code defects?
Web Site
Multimedia and Interactive Elements
Visit the NP2011 Web site to
access additional resources w that
accompany this chapter.
When using the BookOnCD, or other BookOn products, the
are clickable to access multimedia resources.
Pre-Assessment Quiz
Take the pre-assessment quiz to find out how much you know about the topics in this chapter.
Apply Your Knowledge The information in this chapter will give you the background to:
• Read simple computer programs written in Pascal, Java,
and Prolog
• Select programming tools appropriate for basic programming projects
• Read program flowcharts, pseudocode, and structured
• Formulate algorithms
• Visualize objects and classes that might be used in
object-oriented computer programs
• Take steps to avoid security problems that stem from
software defects
Try It
Think about your favorite computer game. Chances are the program that makes it tick is huge and complex. Yet, all
computer programs are based on simple ideas that are easy to grasp. Do the following steps to try your hand at writing
a program that produces a message based on the time of day.
1. From the All Programs menu, select Accessories,
then click Notepad.
1. From Finder’s Applications menu, select the Utilities
folder, and then double-click Terminal.
2. When the Notepad window opens, type the following
2. When the Terminal window opens, type pico Greeting
and then press the Enter key.
REM Program to check time of day
@echo off
3. In the blank entry area type the following program
(make sure you put spaces where indicated):
set time = %time%
echo %time%
TIMEOFDAY=$[ $(date + %H )]
if %time% lss 12 echo Good Morning!
if %time% gtr 12 echo Good Day!
if [ $TIMEOFDAY -lt 12 ]; then echo Good Morning!
3. Save the program in your main user folder C sers
Your Name with the name Greeting.bat. Make sure you
use bat as the file extension! Write down the full path
(such as C sers Your Name).
4. Click the Start button, point to All Programs, point to
Accessories, and then select Command Prompt.
5. When the black Command Prompt window opens,
make sure the Command Prompt lists your main user
folder (i.e., C sers Your Name). If you need to change
it, type CD followed by the full path that you wrote down
in step 3.
6. Type Greeting and press the Enter key. Your program
should start, display the time and “Good Morning!” or
“Good Day!”, depending on the time.
7. Close the Command Prompt window.
else echo Good Day! ; fi
4. To save your program press Ctrl-O (hold down the
Ctrl key while pressing O), press the Enter key, and then
press Ctrl-X.
5. Back at the Terminal, type chmod 755 Greeting and
then press the Enter key.
6. To run your program, type . Greeting and then press
the Enter key.
7. Close the Terminal.
Programming Basics
EVEN IF you are not planning to become a computer programmer or
software engineer, you are likely to use many computer programs during
your career. When you realize that your word processing software contains
in excess of 750,000 lines of code, you can understand how a few bugs
might exist. You can also understand why you would not want to undertake the task of writing word processing software on your own—that project is best left to professional programming teams. Although you would not
typically write the productivity software you use, you might have an opportunity to participate in a software development project as a beta tester or
some similar capacity. Understanding the basics of computer programming
can help you constructively plan and productively participate in the development process.
What is program code? As you learned in earlier chapters, a computer program is a set of step-by-step instructions that tell a computer how
to solve a problem or carry out a task. The instructions that make up a
computer program are sometimes referred to as code, probably because
program instructions for first-generation computers were entered as binary
codes. Coding refers to entering a list of commands that become a computer program. Today, program code contains familiar English-like words.
Figure 12-1 illustrates the code for a short program that converts feet and
inches into centimeters.
1. The first section of
the program states
there are 12 inches
in 1 foot and 2.54
centimeters in 1 inch.
A typical computer program
consists of lines of code that
tell a computer how to solve
a problem or carry out a task.
This program is written in a
computer programming language called Pascal.
program Conversion(input,output);
inchesPerFoot = 12;
2. The var (variable)
section lists the
factors that might
change each time
you use the program.
centimetersPerInch = 2.54;
feet, inches, lengthInInches: integer;
centimeters: real;
3. When you use the
program, it asks you
to enter the length
you want to convert.
write('What is the length in feet and inches?');
readln(feet, inches);
4. The program converts the length you
entered into inches,
then converts inches
into centimeters.
lengthInInches :=inchesPerFoot * feet + inches;
centimeters :=centimetersPerInch * lengthInInches;
writeln('The length in centimeters is ', centimeters:1:2)
5. Finally, the program displays
the length in centimeters.
A computer program is typically stored as a file and transferred into RAM
when needed, but a computer program can also be embedded in computer
hardware—in a ROM chip, for example. A computer program can exist as
a single module that provides all the instructions necessary for a software
application, device driver, or operating system. Alternatively, a computer
program might consist of several modules that form a software application
or operating system.
How big is a typical computer program? Compared to commercial
application software, the programs that you’ll work with in this chapter are
relatively tiny. Windows 7 contains more than 50 million lines of code. Even
a typical cell phone contains over a million lines of code. Research has
shown that, on average, one person can write, test, and document only 20
lines of code per day. It is not surprising, then, that most commercial programs are written by programming teams and take many months or years
to complete.
Who creates computer programs? Computer programs are developed by computer programmers (programmers for short) or software
engineers. Computer programmers typically focus on coding computer programs, whereas software engineers tend to focus on designing and testing
activities (Figure 12-2).
What’s the difference between computer programming and
software engineering? Computer programming encompasses a
broad set of activities that include planning, coding, testing, and documenting. Most computer programmers participate to some extent in all of these
phases of program development, but focus on the coding process.
Software engineering is a development process that uses mathematical, engineering, and management techniques to reduce the cost and
complexity of a computer program while increasing its reliability and modifiability. It can be characterized as more formalized and rigorous than
computer programming. It is used on large software projects where cost
overruns and software errors might have disastrous consequences.
Some software engineering activities overlap with the systems analysis and
design activities presented in Chapter 10. To distinguish between the two,
remember that systems analysis and design encompass all aspects of an
information system, including hardware, software, people, and procedures.
In contrast, software engineering tends to focus on software development.
Although software engineers
have the skills to design, code,
test, and document software,
they tend to focus on designing
and testing activities.
Software engineers approach
these activities using formalized techniques based on
mathematical proofs, computer
science research, and engineering theory. For example,
a computer programmer might
code a search routine by simply instructing the computer to
step through a list looking for a
match. In contrast, a software
engineer might consider several
sophisticated methods for
implementing the search, and
select the one that provides the
greatest efficiency based on the
computer architecture and the
data being processed.
What is a programming language? A programming language, or
computer language, is a set of keywords and grammar rules designed for
creating instructions that a computer can ultimately process or carry out.
Most people are familiar with names of popular programming languages,
such as BASIC, C, Pascal, Fortran, Java, and COBOL. But many other programming languages, such as 8088 assembly, FORTH, LISP, APL, and
Scratch, remain relatively unknown to the general public.
The program you wrote at the beginning of the chapter to display a message based on the current time was written either in DOS scripting language (Windows) or Bash shell script (Mac).
Just as an English sentence is constructed from various words and punctuation marks that follow a set of grammar rules, each instruction for a
computer program consists of keywords and parameters that are held
together by a set of rules. A keyword, or command, is a word with a predefined meaning for the compiler or interpreter that translates each line of
program code into machine language. Keywords for the Pascal computer
language include WRITE, READ, IF THEN, and GOSUB. The Greeting
program you wrote used keywords such as ECHO, SET, IF, and PAUSE.
Keywords can be combined with specific parameters, which provide more
detailed instructions for the computer to carry out. Keywords and parameters are combined with punctuation according to a series of rules called
syntax, as shown in Figure 12-3.
write('The length is ', feet:1:2);
An instruction for a computer
program consists of keywords
and parameters, formed into
sentence-like statements according to a set of syntax rules.
How are programming languages categorized? Programming
languages are categorized in several ways. They can be divided into two
major categories: low-level languages and high-level languages. They are
also categorized by generation and by paradigm.
What is a low-level language? A low-level language typically
includes commands specific to a particular CPU or microprocessor family. Low-level languages require a programmer to write instructions for the
lowest level of the computer’s hardware—that is, for specific hardware elements, such as the processor, registers, and RAM locations. Low-level languages include machine languages and assembly languages.
A single high-level command
does the work of multiple lowlevel commands.
High-level Pascal command
What is a high-level language? A high-level language uses command words and grammar based on human languages to provide what
computer scientists call a level of abstraction that hides the underlying
low-level assembly or machine language. High-level languages, such as
BASIC, Java, Ada, and C, make the programming process easier by replacing unintelligible strings of 1s and 0s or cryptic assembly commands with
understandable commands, such as PRINT and WRITE. High-level language commands eliminate many lines of code by substituting a single
high-level command for multiple low-level commands (Figure 12-4).
Low-level assembly commands
How did programming evolve from low-level to high-level languages? The first computers were programmed without programming
languages. Technicians rewired a computer’s circuitry to prepare it for various processing tasks (Figure 12-5). The idea of storing programs in computer memory paved the way for computer programming languages, which
allowed a programmer to write commands and load them into the computer
for execution. Programming languages were very primitive at first, but they
evolved through many generations into the computer languages of today.
Technicians programmed the
first computers by changing the
What was the first generation of programming languages?
Machine languages were the first languages available for programming computers and, therefore, they are sometimes referred to as
first-generation languages. In Chapter 1, you learned that a machine
language consists of a set of commands, represented as a series of 1s
and 0s, corresponding to the instruction set that is hard-wired into the
circuitry of a microprocessor.
A machine language is specific to a particular CPU or microprocessor
family. For example, the machine language that is hardwired into an Intel
Core 2 processor includes many unique commands that are not wired into
older PCs with Intel 8088 microprocessors or Macintosh-based PowerPC
microprocessors. Although machine languages continue to work on today’s
computers, programmers rarely use machine languages to write programs.
What is a second-generation language? An assembly language
allows programmers to use abbreviated command words, called op codes,
such as LDA for load, rather than the 1s and 0s used in machine languages.
At the time assembly languages were first introduced, they were hailed as
a significant improvement over machine languages, and came to be known
as second-generation languages.
Like a machine language, an assembly language is classified as a low-level
language because it is machine specific—each assembly language command corresponds on a one-to-one basis to a machine language instruction. As you might expect, the assembly language instructions for an Intel
Core 2 microprocessor differ from those for an 8088 or a PowerPC microprocessor. An assembly language is useful when a programmer wants to
directly manipulate what happens at the hardware level. Today, programmers typically use assembly languages to write system software, such as
compilers, operating systems, and device drivers.
What is a third-generation language? When high-level languages
were originally conceived in the 1950s, they were dubbed third-generation
languages because they seemed a major improvement over machine and
assembly languages. Third-generation languages used easy-to-remember
command words, such as PRINT and INPUT, to take the place of several
lines of assembly language op codes or lengthy strings of machine language 0s and 1s. Third-generation languages, such as COBOL and Fortran,
were used extensively for business and scientific applications. Pascal and
BASIC were popular teaching languages. C and its derivative languages
remain popular today for system and application software development—
for example, to develop Microsoft Windows and Linux.
Many computer scientists believed that third-generation languages would
eliminate programming errors. Errors certainly became less frequent, and
program development time decreased significantly. Programmers using
third-generation languages still made a variety of errors, however, so computer language development continued to progress.
What is a fourth-generation language? In 1969, computer scientists began to develop high-level languages, called fourth-generation
languages, which more closely resemble human languages, or natural languages, than do third-generation languages. Fourth-generation languages,
such as SQL and RPG, eliminate many of the strict punctuation and grammar rules that complicate third-generation languages. Today, fourth-generation languages are typically used for database applications. A single SQL
command, such as SORT TABLE Kids on Lastname, can replace many
lines of third-generation code, as shown in Figure 12-6.
SORT TABLE Kids on Lastname
A single command written in
a fourth-generation language
can replace many lines of thirdgeneration code.
PUBLIC SUB Sort(Kids As Variant, inLow As Long, inHi As Long)
DIM pivot
As Variant
DIM tmpSwap As Variant
DIM tmpLow As Long
DIM tmpHi
As Long
tmpLow = inLow
tmpHi = inHi
pivot = Kids((inLow + inHi) \ 2)
WHILE (tmpLow <= tmpHi)
WHILE (Kids(tmpLow) < pivot And tmpLow < inHi)
tmpLow = tmpLow + 1
WHILE (pivot < Kids(tmpHi) And tmpHi > inLow)
tmpHi = tmpHi - 1
IF (tmpLow <= tmpHi) THEN
tmpSwap = Kids(tmpLow)
Kids(tmpLow) = Kids(tmpHi)
Kids(tmpHi) = tmpSwap
tmpLow = tmpLow + 1
tmpHi = tmpHi - 1
IF (inLow < tmpHi) THEN Sort Kids, inLow, tmpHi
IF (tmpLow < inHi) THEN Sort Kids, tmpLow, inHi
What about fifth-generation languages? In 1982, a group of
Japanese researchers began work on a fifth-generation computer project that used Prolog—a computer programming language based on a
declarative programming paradigm, which is described in detail later
in the chapter. Prolog and other declarative languages became closely
identified with the fifth-generation project and were classified by some
experts as fifth-generation languages. Other experts disagree with
this classification and instead define fifth-generation languages as
those that allow programmers to use graphical or visual tools to construct programs, instead of typing lines of code. You’ll learn more about
visual programming later in the chapter.
What is the best programming language? Hundreds of programming languages exist, and each has unique strengths and weaknesses.
Although it might be possible to select the best language for a particular
project, most computer scientists would find it difficult to agree on one allaround best language. The table in Figure 12-7 on the next page briefly
describes some of the programming languages discussed in this chapter.
Programmers can choose
from a wide array of programming languages. You
can learn more about the
most popular languages by
visiting the Programming
Languages InfoWeb.
FIGURE 12-7 Selected Programming Languages
Ada: A high-level programming language developed
under the direction of the U.S. Department of Defense
and originally intended for military applications.
LISP (LISt Processing): Developed in 1959 by famed
artificial intelligence researcher John McCarthy, LISP is
used for artificial intelligence applications.
APL (A Programming Language): A scientific language
used to manipulate tables of numbers.
Pascal: Named in honor of Blaise Pascal, who invented
one of the first mechanical adding machines, Pascal is a
third-generation language developed to teach students
programming concepts.
BASIC (Beginner’s All-purpose Symbolic Instruction
Code): Developed by John Kemeny and Thomas
Kurtz in the mid-1960s, BASIC is a simple, interactive
programming language.
C: Developed in the early 1970s by Dennis Ritchie at
Bell Laboratories, C is used today for a wide range of
commercial software.
and C#: Languages derived from C that provide
object-oriented (OO) capabilities.
COBOL (COmmon Business Oriented Language): A
procedural language developed in the early 1960s and
used extensively for mainframe business applications.
CPL (Combined Programming Language): A language
developed in the 1960s for scientific and commercial
PL 1 (Programming Language 1): A complex business
and scientific language developed in 1964 by IBM that
combines Fortran, COBOL, and ALGOL.
Prolog (PROgramming in LOGic): A declarative language developed in 1972 and used for artificial intelligence applications.
REALbasic (RB): A modern OO version of BASIC that
works cross platform on Windows, Macs, and Linux.
RPG (Report Program Generator): An IBM programming platform introduced in 1964 for easily generating
business reports.
Scheme: A dialect of LISP, used for computer research
and teaching.
Eiffel: An advanced OO language developed in 1988
with syntax similar to C.
Scratch: A simple, visual programming language based
on Smalltalk/Squeak and used for teaching.
Fortran (FORmula TRANslator): One of the original
third-generation languages; developed in the 1950s and
is still used today for scientific applications.
SIMULA (SIMUlation LAnguage): Believed to be the
first object-oriented programming language.
Haskell: A functional programming language named for
the mathematician Haskell Brooks Curry.
Java: A C++ derivative developed by Sun Microsystems
used extensively for Web-based programming.
Smalltalk: A classic object-oriented programming language developed by Xerox researchers in 1980.
Visual Basic: Windows-based software development
kit created by Microsoft in the early 1990s designed for
developing Windows-based applications.
What is a programming paradigm? In addition to being classified
by level and by generation, programming languages can also be classified
by paradigm. Programmers approach problems in different ways. Whereas
one programmer might focus on the steps required to complete a specific
computation, another programmer might focus on the data that forms the
basis for the computation. The phrase programming paradigm refers to
a way of conceptualizing and structuring the tasks a computer performs.
Quite a number of programming paradigms exist, and they are not mutually
exclusive. A programmer might use techniques from multiple paradigms
while planning and coding a program.
Some programming languages support a single paradigm. Other programming languages—referred to as multiparadigm languages—support more
than one paradigm. Figure 12-8 provides a brief description of today’s most
popular programming paradigms. Sections B, C, and D of this chapter give
you a detailed look at three classic paradigms—procedural, object-oriented, and declarative.
Programming Paradigms
Emphasizes linear steps that provide the
computer with instructions on how to solve a
problem or carry out a task
Formulates programs as a series of objects and
methods that interact to perform a specific task
Focuses on the use of facts and rules to
describe a problem
Fortran, Ada
Smalltalk, C++, Java, Scratch
LISP, Scheme, Haskell
Emphasizes the evaluation of expressions,
called functions
Visual Basic, C#
Focuses on selecting user interface elements
and defining event-handling routines that are
triggered by various mouse or keyboard activities
How does a programmer plan a computer program? Suppose
a group of market analysts—or even a group of hungry students—wants to
determine which pizza shop offers customers the best deal. Problems you
might try to solve using a computer often begin as questions—for example,
“Which pizza place has the best deal?” But such questions might not be
stated in a way that helps you devise a method for a computer to arrive at
an answer.
A question like “Which pizza place has the best deal?” is vague. It does not
specify what information is available or how to determine the best deal. Do
you know the price of several pizzas at different pizza places? Do you know
the sizes of the pizzas? Do you know how many toppings are included in
each price? What does “best deal” mean? Is it merely the cheapest pizza?
Is it the pizza that gives you the most toppings for the dollar? Is it the biggest pizza you can get for the $24.63 that you and your friends managed to
scrape together? The programming process begins with a problem statement that helps you clearly define the purpose of a computer program.
What is a problem statement? In the context of programming, a
problem statement defines certain elements that must be manipulated to
achieve a result or goal. A good problem statement for a computer program
has three characteristics:
It specifies any assumptions that define the scope of the problem.
It clearly specifies the known information.
It specifies when the problem has been solved.
Study Figure 12-9 and see if you can formulate a problem statement that
is better than the initial vague question, “Which pizza place has the best
What is an assumption? In a problem statement, an assumption is
something you accept as true in order to proceed with program planning.
For example, with the pizza problem, you can make the assumption that
you want to compare two pizzas. Furthermore, you can assume that some
pizzas are round and others are square. To simplify the problem, you might
also assume that none of the pizzas are rectangular—that is, none will
have one side longer than the other. This assumption simplifies the problem because you need to deal only with the size of a pizza, rather than
the length and width of a pizza. A fourth assumption for the pizza problem
is that the pizzas you compare have the same toppings. Finally, you can
assume that the pizza with the lowest cost per square inch is the best buy.
How does known information apply to a problem statement?
The known information in a problem statement is the information that you
supply to the computer to help it solve a problem. For the pizza problem,
the known information includes the prices, shapes, and sizes of pizzas
from two pizzerias. The known information is often included in the problem
statement as givens. For example, a problem statement might include the
phrase, “given the prices, shapes, and sizes of two pizzas... .”
Factors, such as price, shape, and size, are often treated as variables in
computer programs. A variable represents a value that can change. For
example, the price of a pizza can vary or change, depending on the pizza
shop from which it is purchased, so PizzaPrice could become a variable in
the pizza program. In contrast, a constant is a factor that remains the same
throughout a program. For example, the mathematical constant pi always
Two pizza shops advertise
special prices. Which one offers
the best deal? Can you formulate a problem statement that
describes the pizza problem?
has a value of 3.142. Computer programmers think of variables and constants as named memory locations, equivalent to empty boxes where data
can be temporarily stored while being manipulated by a computer program.
In the Greeting program, %time% was a variable. The command set time
= %time% put the value for the actual time into the %time% variable.
How can a problem statement specify when a problem is
solved? After identifying the known information, a programmer must
specify how to determine when the problem has been solved. Usually this
step means specifying the output you expect. Of course, you cannot specify the answer in the problem statement. You won’t know, for example,
whether VanGo’s Pizzeria or The Venice has the best deal before you run
the program, but you can specify that the computer should output which
pizza is the best deal.
Suppose we assume that the best deal is the pizza with the lowest price per
square inch. For example, a pizza that costs 5 per square inch is a better deal than a pizza that costs 7 per square inch. The problem is solved,
therefore, when the computer has calculated the price per square inch for
both pizzas, compared the prices, and printed a message indicating which
one has the lower price per square inch. You could write this part of the
problem statement as, “The computer will calculate the price per square
inch of each pizza, compare the prices, and then print a message indicating
which pizza has the lower price per square inch.”
What’s the problem statement for the pizza program? You can
incorporate your assumptions, known information, and expected output into
a problem statement, such as the one in Figure 12-10.
Does the problem statement provide sufficient planning to
begin coding? Formulating a problem statement provides a minimal
amount of planning, which is sufficient for only the simplest programs. A
typical commercial application requires far more extensive planning, which
includes detailed program outlines, job assignments, and schedules.
Several software development methodologies exist to help program designers
and coders plan, execute, and test software. Methodologies can be classified
as predictive or agile.
A predictive methodology requires extensive planning and documentation up front. It allows little room for adaptation and change once specifications for the software have been completed in the design phase. Predictive
methodologies are typically preferred for large software development projects involving more than ten developers, geographically dispersed development teams, and life-critical applications.
In the Mac program,
TIMEOFDAY was a variable. The command
TIMEOFDAY=$[ $(date
+ %H )] put the hour of the
day into the TIMEOFDAY
FIGURE 12-10
Pizza Problem Statement
Assuming that there are
two pizzas to compare,
that both pizzas contain
the same toppings, and
that the pizzas could be
round or square, and
given the prices, shapes,
and sizes of the two pizzas, the computer will
print a message indicating
which pizza has the lower
price per square inch.
In contrast to predictive methodologies, an agile methodology focuses on
flexible development and specifications that evolve as a project progresses.
In an agile-driven project, for example, programmers might produce a subset of the entire project, show it to users, and then plan the next phase of
development based on the feedback received. Agile methods seem best for
projects with a small core of developers working at a single location.
To some extent, program planning depends on the language and paradigm
used to code a computer program. Program planning tools, such as flowcharts, structured English, pseudocode, UML diagrams, and decision
tables, are discussed in Sections B, C, and D of this chapter.
Regardless of the tools used, when planning is complete, programmers can
begin coding, testing, and documenting.
How do I code a computer program? The process of coding a computer program depends on the programming language you use, the programming tools you select, and the programming paradigm that best fits
the problem you’re trying to solve. Programmers typically use a text editor,
program editor, or VDE to code computer programs.
What is a text editor? A text editor (sometimes referred to as a generic
text editor) is any word processor that can be used for basic text editing
tasks, such as writing e-mail, creating documents, or coding computer programs. Notepad, the accessory program supplied with Microsoft Windows,
is one of the most popular text editors used for programming PCs. Text
editors such as Pico and TextEdit are popular on Macs. When using a text
editor to code a computer program, you simply type in each instruction. The
lines of code are stored in a file, which can be opened and modified using
the usual editing keys.
Files produced with a
text editor are sometimes
referred to as ASCII files.
They don’t contain embedded codes for centering,
bold, and other formatting
attributes, which are not
allowed in program code.
What is a program editor? A program editor is a type of text editor
specially designed for entering code for computer programs. These editors
are available from several commercial, shareware, and freeware sources.
Features vary, but can include helpful programming aids, such as keyword
colorizing, word completion, keyboard macros, and search/replace. Figure
12-11 illustrates the difference between a text editor and a program editor.
FIGURE 12-11
A text editor such as
Notepad (top) allows
programmers to enter
lines of code using a
familiar word processing interface. A program
editor (bottom) offers
tools more targeted to
What is a VDE? A VDE (visual development environment) provides programmers with tools to build substantial sections of a program by pointing
and clicking rather than typing lines of code. A typical VDE is based on a
form design grid that a programmer manipulates to design the user interface for a program.
By using various tools provided by the VDE, a programmer can add objects,
such as controls and graphics, to the form design grid. In the context of a
VDE, a control is a screen-based object whose behavior can be defined
by a programmer. Frequently used controls include menus, toolbars, list
boxes, text boxes, option buttons, check boxes, and graphical boxes.
Figure 12-12 shows a form design grid and illustrates a variety of controls
that can be added.
FIGURE 12-12
A form design grid is an important part of a VDE. This form
was designed for the pizza program using Visual Basic.
A text box collects
users’ typed input.
A picture box
holds a graphic.
An option button can be
selected by clicking the circle.
A button waits for a
user’s mouse click.
A control can be customized by specifying values for a set of built-in
properties. For example, a button control can be customized for the
pizza program by selecting values for properties such as shape, color,
font, and label (Figure 12-13).
FIGURE 12-13
Controls, such as buttons, can be selected
by a programmer from
a properties list. Here a
programmer is changing the text property of
a button so that its label
will be “Cancel”. X Learn
how to work with properties in a VDE.
To change the label
for this button, the
programmer first
selects it.
Using the properties
list, the programmer
clicks the Text property, and types a new
label for the button.
In a visual development environment, each control comes with a predefined
set of events. Within the context of programming, an event is defined as an
action, such as a click, drag, or key press, associated with a form or control.
A programmer can select the events that apply to each control. For example, a programmer might decide that pizza program users will be allowed to
left-click either the Round or Square Pizza button in each Pizza Shape box.
Users will not be allowed to right-click, double-click, or drag these buttons,
An event usually requires the computer to make a response. Programmers
write event-handling code for the procedures that specify how the computer responds to each event. For example, if a user clicks an icon depicting
a round pizza, an event-handling procedure might set a variable called pizzashape equal to round. When a user clicks the Best Deal button, another
event-handling procedure must perform the calculations to determine which
pizza is the best deal. Event-handling code is usually entered using a program editor supplied by the visual development environment. Figure 12-14
illustrates how event-handling code works.
FIGURE 12-14
The “Best Deal” event-handling
code tells the computer what
to do when users click the Best
Deal button.
The event is
clicking a button.
The event-handling code
is a list of instructions for
calculating the price per
square inch of two pizzas.
Is a visual development environment better than an editor?
A programmer’s choice of development tools depends on what is available for a particular programming language and the nature of the programming project. Microsoft Visual Basic was one of the first programming
languages to feature a visual development environment. VDEs are not
available for all programming languages, but they can be found for most
of today’s popular programming languages, including C++, C#, Java,
REALbasic, and Prolog.
Text editors and program editors provide a fine toolset for programs with
minimal user interfaces. Many so-called back-end applications, such as
device drivers, middleware, and scripts embedded in HTML documents,
require little or no user interaction and, therefore, can be created just as
easily with an editor as with a visual development environment.
A visual development environment is a powerful tool for programming software applications for GUI environments, such as Windows, Linux desktops,
and Mac OS. Most GUI applications are event-driven, which means that
when launched, the program’s interface appears on the screen and waits
for the user to initiate an event by clicking a menu, dragging an object,
double-clicking an icon, typing text, or clicking a button. The fact that the
sequence of user actions cannot be predicted introduces a level of complexity that doesn’t fit well with traditional programming languages, which
tend to approach programs as a fixed sequence of procedures.
Visual development environments have spawned an approach to programming that is sometimes referred to as the event-driven paradigm, in which
a programmer develops a program by selecting user interface elements
and specifying event-handling routines. The programmer is never required
to deal with the overall program sequence because the VDE automatically
combines user interface elements and event-handling routines into a file
that becomes the final computer program. This event-driven paradigm can
significantly reduce development time and simplify the entire programming
How does a programmer know if a program works? A computer
program must be tested to ensure that it works correctly. Testing often consists of running the program and entering test data to see whether the program produces correct results. If testing does not produce the expected
results, the program contains an error, sometimes called a bug. This error
must be corrected, and then the program must be tested again and again
until it runs error-free.
FIGURE 12-15
Common Syntax Errors
What can cause program errors? When a program doesn’t work correctly, it is usually the result of an error made by the programmer. A syntax
error occurs when an instruction does not follow the syntax rules, or grammar, of the programming language. For example, the BASIC command If
AGE = 16 Then "You can drive." produces a syntax error because
the command word PRINT is missing. The correct version of the command
is If AGE = 16 Then Print "You can drive." Syntax errors are
easy to make, but they are usually also easy to detect and correct. Figure
12-15 lists some common syntax errors.
Another type of program bug is a runtime error, which, as its name indicates, shows up when you run a program. Some runtime errors result
from instructions that the computer can’t execute. The BASIC instruction
DiscountPrice = RegularPrice/0 produces a runtime error because
dividing by 0 is a mathematically impossible operation that the computer
cannot perform.
Some runtime errors are classified as logic errors. A logic error is an error
in the logic or design of a program, such as using the wrong formula to
calculate the area of a round pizza. Logic errors can be caused by an inadequate definition of the problem or an incorrect formula for a calculation,
and are usually more difficult to identify than syntax errors.
How do programmers find errors? Programmers can locate errors
in a program by reading through lines of code, much like a proofreader.
They can also use a tool called a debugger to step through a program and
monitor the status of variables, input, and output. A debugger is sometimes
packaged with a programming language or can be obtained as an add-on.
Omitting a keyword, such
Misspelling a keyword,
as when mistakenly typing PIRNT instead of
Omitting required punctuation, such as a period
Using incorrect punctuation, such as a colon
where a semicolon is
Forgetting to close
Do computer programs contain any special documentation?
Anyone who uses computers is familiar with program documentation in the
form of user manuals and help files. Programmers also insert documentation called remarks into the program code. Remarks are identified by language-specific symbols, such as // in Java, or keywords, such as Rem in
Remarks are sometimes
called comments and the
process of adding remarks
is sometimes referred to as
commenting the code.
Remarks are useful for programmers who want to understand how a program works before modifying it. For example, suppose you are assigned to
make some modifications to a 50,000-line program that calculates income
tax. Your task would be simplified if the original programmer included
remarks that identify the purpose of each section of the program and
explain the basis for any formulas used to perform tax calculations.
A well-documented program contains initial remarks that explain its purpose
and additional remarks in any sections of a program where the purpose of
the code is not immediately clear. For example, in the pizza program, the
purpose of the expression 3.142 * (size1 / 2) ^2 might not be immediately obvious. Therefore, it would be helpful to have a remark preceding
the expression, as shown in Figure 12-16.
FIGURE 12-16
A series of remarks in a BASIC
program can explain to programmers the method used to
calculate the square inches in a
round pizza.
Rem The program calculates the number of square inches
Rem in a round pizza using the formula pi r squared
Rem pi = 3.142, size/2 = radius,
Rem and (size/2)^2 = radius squared
Rem SquareInches = 3.142*(size/2)^2
Where can I get programming tools? Some programmers like to
obtain programming tools a la carte by picking up a compiler from one Web
site, selecting an interactive debugger from another Web site, and using
any handy editor, such as Notepad. More typically, programmers download
or purchase an SDK or IDE that contains a collection of programming tools.
An SDK (software development kit) is a collection of language-specific programming tools that enables a programmer to develop applications for a
specific computer platform, such as Windows PCs. A basic SDK includes
a compiler, documentation about the language and syntax, and installation instructions. More sophisticated SDKs might also include an editor, a
debugger, a visual user interface design module, and APIs. The components of an SDK are sometimes a hodgepodge of tools without consistent
user interfaces for the programmer. For a more polished development environment, programmers turn to IDEs.
An IDE (integrated development environment) is a type of SDK that packages a set of development tools into a sleek programming application. The
modules in the application—editor, compiler, debugger, and user interface development tool—have a uniform set of menus and controls, which
simplifies the programming process.
Programmers can select from
a wide variety of components.
To find out what’s available,
connect to the Programming
Tools InfoWeb.
SDKs and IDEs are available on the Web as shareware or commercial
products. Some of these development tools—especially IDEs—are so large
that they are not practical to download without a high-speed Internet connection. For programmers limited to dial-up speeds, SDKs and IDEs can be
ordered on the Web and shipped on CDs.
Do I need components for my programming projects? Every feature of a lengthy computer program is not necessarily created from scratch.
Components can be incorporated into a program, saving days, weeks, or
months of programming time. A component is a prewritten module, typically designed to accomplish a specific task. For example, one component
might provide spreadsheet capabilities, while another component might
provide encryption capabilities.
What’s an API? In the context of computer programming, API is an
abbreviation for application program interface or application programming
interface. An API is a set of application program or operating system functions that programmers can access from within the programs they create.
For example, the Windows API includes code for an assortment of dialog box controls familiar to anyone who uses a PC. The ability to browse
through file folders is one element of the Windows API that might be useful
in any application program that allows users to open or save files. APIs are
usually supplied as part of an SDK.
Do programmers use standard programming tools to develop
computer games? Creating a computer game is a multifaceted project
that includes creating a multiple-level virtual world, populating it with autonomous and user-controlled characters, providing characters with weapons
and food, determining how characters interact with objects, adding sound
effects, and keeping score (Figure 12-17).
At the core of every computer game is a program that ties together the
virtual game world, characters, weapons, and other objects. Most of these
programs are written using standard SDK and IDE programming tools.
What’s the most popular programming language for game
development? C, Java, and C++ are the most popular programming
languages for commercial games. Serious game programmers universally
learn those languages and Microsoft’s Visual C++ is their IDE of choice.
Microsoft’s XNA framework is a set of popular tools for creating Xbox 360
Although many independent game developers use C and C++, some indies
prefer languages such as BASIC and Java. Popular IDEs and SDKs for
these languages include GLBasic, REALbasic, Visual Basic, JCreator, Sun
Java Studio Creator, and Eclipse.
FIGURE 12-17
Game development is a hot
career field. Independent, or
indie, game developers work
on a freelance basis for game
publishers or create their own
games and market them as
shareware. Commercial game
developers collaborate with artists, animators, musicians, and
even Hollywood stars to create
arcade-style and adventure
games for companies such
as Electronic Arts, LucasArts,
Nintendo, and Sony.
What other tools are handy for game programmers? Computer
games take place in virtual 3-D worlds populated by animated characters
and objects that characters can pick up, move, open, and shoot. On commercial game projects, artists usually create, render, and animate game
objects using bitmap, vector, 3-D, and animation graphics software. For
indies without artistic talent, 3-D animated characters can be obtained from
freelance artists who peddle their creations on the Web at sites such as
A type of special effects software called a particle renderer helps developers create explosions, flares, fog, and fairy dust. Pathfinder algorithms
distributed as APIs map character routes, limiting them to valid paths and
preventing them from walking through walls (unless they are magic users).
Developers also use a variety of audio and sound software to record, edit,
and mix sound effects for gun shots, explosions, footsteps, and so on. Even
non-musicians can generate upbeat background music by using MIDI or
tracker software. Tracker sound effects, popular for PC-based computer
games, combine MIDI music and instrument sound patches in one file.
Commercially available artificial intelligence APIs and components can plug
into programs to control the actions of autonomous, non-player controlled
monsters and foes. Physics APIs can tie into objects to make them respond
with life-like realism to gravity, momentum, and collisions. Digital rights
management (DRM) tools are also available to help game developers protect their creations from piracy and illegal copying.
Developers on the Windows platform use Microsoft’s DirectX SDK, a
library of APIs designed specifically for game programming, to quickly and
efficiently communicate with video hardware, sound hardware, networks,
and input devices.
Figure 12-18 lists graphics, audio, API, and DRM tools that are popular with
game developers. You’ll find more information about game programming
tools at the Programming Tools InfoWeb.
How can I learn computer programming? You can learn the fundamentals of programming by taking a class or working with an online tutorial. When you’ve gained fluency in a programming language, you can hone
your skills by participating in an open source software development project.
When you join, you’ll be given a programming task by an online project
manager. Your work will be reviewed by experienced members of the team
who will help you meet the exacting standards of professional developers.
The instructions that make up a computer pro-
Special Effects
Adobe After Effects
wondertouch particleIllusion
Audio Recording and Mixing
Steinberg Cubase
Adobe Audition
MIDI Music Generators
Sony ACID Music Studio
Apple GarageBand
Arxan GuardIT
General Purpose API Libraries
Microsoft DirectX
Artificial Intelligence
TADS 3 Artificial Intelligence
Havok Physics
development environ-
ment provides programmers with tools to build
substantial sections of a program by pointing and
plan and develop
Programmers can use a software tool called a(n)
to step through a program
based on mathematical proofs, computer sciand find errors.
ence research, and engineering theory.
A programming language typically supports one
is a set of application
, such
program or operating system functions that pro-
as procedural, object-oriented, event-driven, or
grammers can access from within the programs
they create. (Hint: Use the acronym.)
or more programming
3-D Object Modeling
Autodesk Maya and 3ds Max
Khronos Group OpenGL
Caligari trueSpace
gram are sometimes referred to as code. True or
computer software using formalized techniques
Game Programming Tools
FIGURE 12-18
-generation programming
languages, such as COBOL and Fortran, use
easy-to-remember command words.
Procedural Programming
EARLY APPROACHES to computer programming were based on
writing step-by-step instructions for the computer to follow. This technique
is still in widespread use today and provides an easy starting point for learning what programming is all about. In this section, the examples are written
in BASIC because it is one of the easiest programming languages to grasp.
What is procedural programming? The traditional approach to pro-
gramming uses a procedural paradigm (sometimes called an imperative paradigm) to conceptualize the solution to a problem as a sequence
of steps. A program written in a procedural language typically consists of
self-contained instructions in a sequence that indicates how a task is to be
performed or a problem is to be solved.
This chapter presents some
fairly technical material. You
might want to consider taking
a break between sections.
A programming language that supports the procedural paradigm is called a
procedural language. Machine languages, assembly languages, COBOL,
Fortran, C, and many other third-generation languages are classified as
procedural languages. Procedural languages are well suited for problems
that can be easily solved with a linear, step-by-step algorithm. Programs
created with procedural languages have a starting point and an ending
point. The flow of execution from the beginning to the end of a program is
essentially linear—that is, the computer begins at the first instruction and
carries out the prescribed series of instructions until it reaches the end of
the program.
What is an algorithm? An algorithm is a set of steps for carrying
out a task that can be written down and implemented. For example, the
algorithm for making a batch of macaroni and cheese is a set of steps that
includes boiling water, cooking the macaroni in the water, and making a
cheese sauce (Figure 12-19). The algorithm is written down, or expressed,
as instructions in a recipe. You can implement the algorithm by following
the recipe instructions.
An important characteristic of a correctly formulated
algorithm is that carefully following the steps guarantees that you can accomplish the task for which the
algorithm was designed. If the recipe on a macaroni
package is a correctly formulated algorithm, by following the recipe, you should be guaranteed a successful batch of macaroni and cheese.
How do I write an algorithm? An algorithm for a
computer program is a set of steps that explains how
to begin with known information specified in a problem statement and how to manipulate that information
to arrive at a solution. Algorithms are usually written
in a format that is not specific to a particular programming language. This approach allows you to focus on
formulating a correct algorithm, without becoming distracted by the detailed syntax of a computer program-
FIGURE 12-19
The algorithm for making macaroni and cheese is expressed
as a recipe.
ming language. In a later phase of the software development process, the
algorithm is coded into instructions written in a programming language so
that a computer can implement it.
How do I figure out an algorithm? To design an algorithm, you might
begin by recording the steps required to solve the problem manually. If you
take this route with the pizza problem, you must obtain initial information
about the cost, size, and shape of each pizza. The computer also needs
this initial information, so part of your algorithm must specify how the computer gets it. When the pizza program runs, it should ask the user to enter
the initial information needed to solve the problem. Your algorithm might
begin like this:
Donald Knuth’s multivolume
collection of programming
algorithms, called The Art of
Computer rogramming, is considered one of the best scientific
monographs of the twentieth
century. You’ll find information
about this book and more at the
Algorithms InfoWeb.
Ask the user for the shape of the first pizza and hold it in
RAM as Shape1.
Ask the user for the price of the first pizza and hold it in
RAM as Price1.
Ask the user for the size of the first pizza and hold it in
RAM as Size1.
Next, your algorithm should specify how to manipulate this information. You
want the computer to calculate the price per square inch, but a statement
like “Calculate the price per square inch” neither specifies how to do the calculation, nor deals with the fact that you must perform different calculations
for square and round pizzas. A more appropriate set of statements for the
algorithm is shown in Figure 12-20.
1. To calculate the area of a square pizza, multiply
the length of one side by the length of the other
side. The sides are the same size in a square, so
you can use the formula Size1 * Size1.
FIGURE 12-20
The algorithm for calculating
the price per square inch must
work for square pizzas as well
as round ones.
2. To calculate the area of a round pizza, use the formula for the
area of a circle: r .
is approximately 3.142. r is the square
of the radius of the circle. The size of a pizza is its diameter,
so you need to divide the diameter by 2 to get the radius, using
Size1 / 2. Then you need to square the radius. 2 is the notation
that you use on a computer to indicate the exponent 2.
π π
3. After calculating the area of a
pizza, the computer can calculate
the price per square inch.
If Shape1 is square then
calculate square inches using the formula:
SquareInches1 = Size1 * Size1
If Shape1 is round then
calculate square inches using the formula:
SquareInches1 = 3.142 * (Size1 / 2) 2
SquareInchPrice1 = Price1 / SquareInches1
So far, the algorithm describes how to calculate the price per square inch
of one pizza. It should specify a similar process for calculating the price per
square inch of the second pizza.
Finally, the algorithm should specify how the computer decides what to display as the solution. You want the computer to display a message indicating which pizza has the lowest square-inch cost, so your algorithm should
include steps like the following:
If SquareInchPrice1 is less than SquareInchPrice2 then display
the message Pizza 1 is the best deal.
If SquareInchPrice2 is less than SquareInchPrice1 then display
the message Pizza 2 is the best deal.
But don’t forget to indicate what you want the computer to do if the price per
square inch is the same for both pizzas:
If SquareInchPrice1 equals SquareInchPrice2 then display the
message Both pizzas are the same deal.
The complete algorithm for the pizza problem is shown in Figure 12-21.
FIGURE 12-21
The algorithm for the pizza
problem, written in structured
English, has five main sections.
Ask the user for the shape of the first pizza and hold it in RAM as Shape1.
Ask the user for the price of the first pizza and hold it in RAM as Price1.
Ask the user for the size of the first pizza and hold it in RAM as Size1.
If Shape1 is square then
calculate the square inches using the formula:
SquareInches1 = Size1 * Size1
If Shape1 is round then
calculate the square inches using the formula:
SquareInches1 = 3.142 * (Size1 / 2) 2
SquareInchPrice1 = Price1 / SquareInches1
Ask the user for the shape of the second pizza and hold it in RAM as Shape2.
Ask the user for the price of the second pizza and hold it in RAM as Price2.
Ask the user for the size of the second pizza and hold it in RAM as Size2.
If Shape2 is square then
calculate the square inches using the formula:
SquareInches2 = Size2 * Size2
If Shape2 is round then
calculate the square inches using the formula:
SquareInches2 = 3.142 * (Size2 / 2) 2
SquareInchPrice2 = Price2 / SquareInches2
If SquareInchPrice1 < SquareInchPrice2 then
display the message Pizza 1 is the best deal.
If SquareInchPrice2 < SquareInchPrice1 then
display the message Pizza 2 is the best deal.
If SquareInchPrice1 = SquareInchPrice2 then
display the message Both pizzas are the same deal.
Get initial
information for
the first pizza.
the price per
square inch for
the first pizza.
Get initial
for the
second pizza.
the price
per square
inch for the
second pizza.
Compare the
prices per
square inch,
then output
the results.
What’s the best way to express an algorithm? You can express
an algorithm in several different ways, including structured English, pseudocode, and flowcharts. These tools are not programming languages, and
they cannot be processed by a computer. Their purpose is to give you a
way to document your ideas for program design.
Structured English is a subset of the English language with a limited
selection of sentence structures that reflect processing activities. Refer to
Figure 12-21 on the previous page to see how structured English can be
used to express the algorithm for the pizza problem.
Another way to express an algorithm is with pseudocode. Pseudocode is
a notational system for algorithms that has been described as a mixture
of English and your favorite programming language. Pseudocode is less
formalized than structured English, so the structure and wording are left up
to you. Also, when you write pseudocode, you are allowed to incorporate
command words and syntax from the computer language you intend to use
for the actual program. Compare Figure 12-22 with Figure 12-21 and see
if you can identify some of the differences between structured English and
FIGURE 12-22
display prompts for entering shape, price, and size
input Shape1, Price1, Size1
if Shape1 = square then
SquareInches1 Í Size1 * Size1
if Shape1 = round then
SquareInches1 Í 3.142 * (Size1 / 2) 2
SquareInchPrice1 Í Price1 / SquareInches1
display prompts for entering shape, price, and size
input Shape2, Price2, Size2
if Shape2 = square then
SquareInches2 Í Size2 * Size2
if Shape2 = round then
SquareInches2 Í 3.142 * (Size2 / 2) 2
SquareInchPrice2 Í Price2 / SquareInches2
if SquareInchPrice1 < SquareInchPrice2 then
output Pizza 1 is the best deal.
if SquareInchPrice2 < SquareInchPrice1 then
output Pizza 2 is the best deal.
if SquareInchPrice1 = SquareInchPrice2 then
output Both pizzas are the same deal.
A third way to express an algorithm is to use a flowchart. A flowchart is a
graphical representation of the way a computer should progress from one
instruction to the next when it performs a task. The flowchart for the pizza
program is shown in Figure 12-23 on the next page.
Pseudocode for the pizza program mixes some English-like
instructions, such as display
prompts, with programming
commands, such as INPUT.
FIGURE 12-23
The pizza program flowchart
illustrates how the computer
should proceed through the
instructions in the final program.
X Learn more about flowcharts
from this figure in your digital
Key to Flowchart Symbols
SquareInches1 =
3.142 * (Size1 / 2) 2
SquareInches1 =
Size1 * Size1
Start or end
SquareInchPrice1 =
Price1 / SquareInches1
Input or output
Flow line
SquareInches2 =
Size2 * Size2
SquareInches2 =
3.142 * (Size2 / 2) 2
SquareInches2 =
Price2 / SquareInches2
Pizza 1
is the best
Pizza 2
is the best
Both pizzas
are the same
How do I know if my algorithm is correct? Before finalizing the
algorithm for a computer program, you should perform a walkthrough to
verify that your algorithm works. To perform a walkthrough for a simple program, you can use a calculator, paper, and pencil to step through a sample
problem using realistic test data.
For more complex programs, a walkthrough might consist of a verbal
presentation to a group of programmers who can help identify logical
errors in the algorithm and suggest ways to make the algorithm more
efficient. Figure 12-24 illustrates how to check the pseudocode for the
pizza program.
display prompts for entering shape, price, and size
input Shape1, Price1, Size1
if Shape1 = square then
SquareInches1 Í Size1 * Size1
if Shape1 = round then
SquareInches1 Í 3.142 * (Size1 / 2) 2
SquareInchPrice1 Í Price1 / SquareInches1
display prompts for entering shape, price, and size
input Shape2, Price2, Size2
if Shape2 = square then
SquareInches2 Í Size2 * Size2
if Shape2 = round then
SquareInches2 Í 3.142 * (Size2 / 2) 2
SquareInchPrice2 Í Price2 / SquareInches2
if SquareInchPrice1 < SquareInchPrice2 then
output Pizza 1 is the best deal.
if SquareInchPrice2 < SquareInchPrice1 then
output Pizza 2 is the best deal.
if SquareInchPrice1 = SquareInchPrice2 then
output Both pizzas are the same deal.
FIGURE 12-24
Pseudocode Walkthrough
User asked to enter the first
pizza’s shape, price, and size
User enters square, $10.00, 12
The first pizza is square, so the
computer should calculate:
12 * 12 = 144 for SquareInches1
The computer also calculates:
$10.00/144 = .069 for
User asked to enter the second
pizza’s shape, price, and size
User enters round, $10.00, 12
The second pizza is round, so the
computer should calculate:
3.142*(12/2) 2 = 113.112 for
The computer should also calculate
$10.00/113.112 = .088 for
.069 < .088 so pizza 1 is the
best deal
How do I specify the order in which program instructions are
performed by the computer? Unless you specify otherwise, sequential
execution is the normal pattern of program execution. During sequential
execution, the first instruction in the program is executed first, then the
second instruction, and so on, to the last instruction in the program. Here is
a simple program written in the BASIC programming language that outputs
This is the first line., and then outputs This is the next
Print "This is the first line."
Print "This is the next line."
Is there an alternative to sequential execution? Some algorithms
specify that a program must execute instructions in an order different from
the sequence in which they are listed, skip some instructions under certain
circumstances, or repeat instructions. Control structures are instructions
that specify the sequence in which a program is executed. Most procedural
languages have three types of control structures: sequence controls, selection controls, and repetition controls.
A sequence control structure changes the order in which instructions are
carried out by directing the computer to execute an instruction elsewhere
in the program. In the following simple BASIC program, a GOTO command
tells the computer to jump directly to the instruction labeled “Widget.” By
performing the GOTO statement, the program never carries out the command Print "This is the next line."
Print "This is the first line."
Goto Widget
Print "This is the next line."
Widget: Print "All done!"
The flowchart in Figure 12-25 shows how the computer follows a series of
sequential commands, and then jumps past other commands as the result
of a GOTO command.
FIGURE 12-25
Print "This is the first line."
Goto Widget
Executing a GOTO command
directs the computer to a different part of the program.
X To see how a computer
executes the GOTO command,
start this animation in your
digital textbook.
Print "This is the next line."
Print "All done!"
Although it is the simplest control structure, the GOTO command is rarely
used by skilled programmers because it can lead to programs that are difficult to understand and maintain. In 1968, the journal Communications of
the ACM published a now-famous letter from Edsger Dijkstra, called “Go To
Statement Considered Harmful.” In his letter, Dijkstra explained that injudicious use of the GOTO statement in programs makes it difficult for other
programmers to understand the underlying algorithm, which in turn means
that such programs are difficult to correct, improve, or revise.
Experienced programmers prefer to use sequence controls other than
GOTO to transfer program execution to a subroutine, procedure, or function. A subroutine, procedure, or function is a section of code that is
part of a program, but is not included in the main sequential execution
path. A sequence control structure directs the computer to the statements
it contains, but when these statements have been executed, the computer
neatly returns to the main program. Figure 12-26 shows the execution path
of a program that uses the GOSUB command to transfer execution to a
Read Dijkstra’s letter and find
out why the GOTO command is
considered bad programming
at the GOTO InfoWeb.
FIGURE 12-26
Executing a GOSUB command
directs the computer to a different section of the program.
1. This is the main program. The computer
executes the main program instructions
until it reaches the GOSUB command.
Rem This program multiplies a number by 12,
Rem but the number entered must be between 1 and 10.
Input "Enter a number from 1 to 10: "; Number
Gosub checkinput
Result = Number * 12
2. The GOSUB command transfers
Print Result
the computer to the subroutine
called checkinput.
5. When the computer
returns to the main
program, it executes
the instructions that
follow the GOSUB
3. This is the subroutine checkinput. The computer
executes instructions in the subroutine until it
reaches the RETURN command.
This subroutine makes sure that the user
enters a number between 1 and 10.
While Number < 1 or Number > 10
Input "You must enter a number between 1
and 10: "; Number
4. The RETURN command transfers the
computer back to the main program.
Can the computer make decisions while it executes a program? A selection control structure tells a computer what to do, based
Selection control structures are also referred to
as decision structures or
on whether a condition is true or false. A simple example of a selection control structure is the IF...THEN...ELSE command.
The following program uses this command to decide whether a number
entered is greater than 10. If the number is greater than 10, the computer
prints That number is greater than 10. If the number is not greater
than 10, the program performs the ELSE instruction and prints That number is 10 or less.
Input "Enter a number from 1 to 10: "; Number
If Number > 10 Then Print "That number is greater than 10."
Else Print "That number is 10 or less."
FIGURE 12-27
Figure 12-27 uses a flowchart to illustrate how a computer follows commands in a decision structure.
The computer executes a decision indicated on the flowchart
by the question in the diamond
shape. X Step through a decision structure using your digital
Input a number between 1 and 10
number >
Print "That number is
10 or less."
Print "That number is
greater than 10."
Can a computer automatically repeat a series of instructions?
A repetition control structure directs the computer to repeat one or more
instructions until a certain condition is met. The section of code that repeats
is usually referred to as a loop or iteration. Some of the most frequently
used repetition commands are FOR...NEXT, DO...WHILE, DO...UNTIL,
The keyword FOR, DO, or WHILE marks the beginning of a loop. The keyword NEXT, UNTIL, or WEND (which means while ends) marks the end of
a loop. The following simple BASIC program uses a FOR...NEXT command
to print a message three times:
For N = 1 to 3
Print "There's no place like home."
Next N
Follow the path of program execution in Figure 12-28 to see how a computer executes a series of commands in a repetition structure.
Start loop
Print "There's no
place like home."
FIGURE 12-28
To execute a loop, the computer repeats one or more
commands until some condition indicates that the looping
should stop. X Remember
Dorothy in The Wi ard of O ?
Watch how a computer would
execute her “No place like
home” loop.
To get a better idea of how a FOR...NEXT loop works, pretend that you’re
the computer executing the FOR...NEXT instructions below. You can use
the box labeled N in the margin as a RAM location. As the computer, you
would also have a screen on which to display output—use the Screen
Output box. Now, walk through the loop.
For N = 1 to 3
Print "There's no place like home."
Next N
1. As the computer, the first time you see the instruction For N = 1 to 3,
you set N equal to 1. To do so, write the number 1 in the N box in the margin.
2. You would then execute the next instruction, Print "There's no
place like home." To do so, write the phrase “There’s no place like
home.” in the Screen Output box.
3. The instruction Next sends you back to the command For N = 1 to
3. Because this occasion is the second time you have executed this statement, put a 2 in the N box in the margin (you can erase the 1 that was there
4. You must check whether the value in box N is greater than 3. Why?
Because the command For N = 1 to 3 means you can continue to loop
only if N is 3 or less. N is only 2, so you can proceed.
5. Go to the next instruction, which is Print "There's no place like
home." Write this sentence again in the Screen Output box.
6. Moving on, you reach the Next statement again, which sends you back
to the For statement.
Screen Output
7. Continue by changing the value in the N box to 3. Check the N box to
make sure it does not contain a value greater than 3. It doesn’t, so continue.
8. The next line instructs you to Print "There's no place like
home." Write this sentence again in the Screen Output box. The Next
statement sends you back to the For statement. Increase the value in the
N box to 4.
9. This time when you check whether the value in N is greater than 3, it is.
That means the loop is complete, and you should jump to the statement
past the end of the loop.
10. The next statement is End, so you’ve completed the program.
11. When your program is complete, the variable N should contain the number 4, and the screen output box should contain three lines of “There’s no
place like home.”
How do I use control structures to write a program? To write
FIGURE 12-29
the code for the pizza program, you use control structures, keywords, and
syntax provided by your programming language. The completed pizza program, written in BASIC, is provided in Figure 12-29.
Each line of code for the pizza
program consists of keywords
and parameters.
Rem The Pizza Program
Rem This program tells you which of two pizzas is the best deal
by calculating the price per square inch of each pizza.
Rem Collect initial information for first pizza.
Input "Enter the shape of pizza 1:"; Shape1$
Input "Enter the price of pizza 1:"; Price1
Input "Enter the size of pizza 1:"; Size1
Lines that begin with
Rem contain remarks
that explain each
section of the program.
The computer does not
execute the remarks.
Rem Calculate price per square inch for first pizza.
Rem If the first pizza is square, calculate square inches by multiplying one side
by the other.
If Shape1$ = "square" Then SquareInches1 = Size1 * Size1
Rem If the first pizza is round, calculate the number of square inches where
pi = 3.142, size / 2 = radius, and (size / 2) ^2 = radius squared.
If Shape1$ = "round" Then SquareInches1 = 3.142 * (Size1 / 2)^2
SquareInchPrice1 = Price1 / SquareInches1
Data is stored in
Rem Collect initial information for second pizza.
Input "Enter the shape of pizza 2:"; Shape2$
Input "Enter the price of pizza 2:"; Price2
Input "Enter the size of pizza 2:"; Size2
Rem Calculate price per square inch for second pizza.
If Shape2$ = "square" Then SquareInches2 = Size2 * Size2
If Shape2$ = "round" Then SquareInches2 = 3.142 * (Size2 / 2)^2
SquareInchPrice2 = Price2 / SquareInches2
variables, or memory
locations, in RAM. The
variable Shape2$ stores
text, such as the word
round. The $ indicates a
text variable. Other variables, such as Price1
and Size1, store numbers; they do not include
$ as part of the variable
Rem Decide which pizza is the best deal and display results.
If SquareInchPrice1 < SquareInchPrice2 Then Message$ = "Pizza 1 is the best deal."
If SquareInchPrice2 < SquareInchPrice1 Then Message$ = "Pizza 2 is the best deal."
If SquareInchPrice1 = SquareInchPrice2 Then Message$ = "Both pizzas are the same deal."
Print Message$
What are the most popular procedural languages? The first programming languages were procedural. Fortran, developed in the United
States in 1954, was the first widely used, standardized computer language.
Its implementation of the procedural paradigm set the pattern for other popular procedural languages, such as COBOL, FORTH, APL, ALGOL, PL/1,
Pascal, C, Ada, and BASIC.
In 1958, a group of European researchers created a new programming language, dubbed ALGOL, an acronym for ALGOrithmic Language. ALGOL
was used for research applications and is the ancestor of several languages
in widespread use today. CPL, created by Ken Thompson of AT&T Bell
Laboratories, descended from ALGOL and evolved into the C language.
Pascal, the popular teaching language created by Niklaus Wirth, was an
important step in the development of Ada.
What kinds of problems are best suited to the procedural
approach? The procedural approach is best used for problems that can
be solved by following a step-by-step algorithm. One of the original problems tackled by computers was computing missile trajectories.
Missiles follow an arcing path called a trajectory. Aim too high or too low,
and the missile misses its target.
The factors that affect a missile’s trajectory include the angle of the gun,
weight of the missile, wind direction, wind speed, temperature, and distance
to target. However, after these factors are known for a particular target, the
calculation follows a simple mathematical algorithm. Therefore, the steps
for calculating trajectories remain the same, regardless of the data. That
concept is the key to understanding the kinds of problems that are best
suited for the procedural approach.
The procedural approach has been widely used for transaction processing, which is characterized by the use of a single algorithm applied to many
different sets of data. For example, in the banking industry, the algorithm
for calculating checking account balances is the same, regardless of the
amounts deposited and withdrawn. Many problems in math and science
also lend themselves to the procedural approach.
What are the advantages and disadvantages of the procedural
paradigm? The procedural approach and procedural languages tend to
produce programs that run quickly and use system resources efficiently.
It is a classic approach understood by many programmers, software engineers, and systems analysts. The procedural paradigm is quite flexible and
powerful, which allows programmers to apply it to many types of problems.
For example, although the programming example in this section worked
only for round and square pizzas, it could be modified to handle rectangular
pizzas, too.
The downside of the procedural paradigm is that it does not fit gracefully
with certain types of problems—those that are unstructured or those with
very complex algorithms. The procedural paradigm has also been criticized because it forces programmers to view problems as a series of steps,
whereas some problems might better be visualized as interacting objects or
as interrelated words, concepts, and ideas.
BASIC is an easy-to-understand programming
whereas a(n)
paradigm because it requires no algorithms.
change the order in which program instructions
True or false?
are executed.
COBOL, Fortran, and C are examples of
Structured English,
A subroutine is a section of code that is part of a
program, but is not included in the main execution path. True or false?
and pseudocode are used by programmers to
control can
The section of a program that contains a repeti-
express algorithms.
tion control is sometimes referred to as an itera-
A decision control tells a computer what to do,
tion or a(n)
based on whether a condition is true or false,
Object-Oriented Programming
THE OBJECT-ORIENTED PARADIGM offers an alternative
approach to step-by-step procedural programming. The abbreviation OO,
which stands for object oriented, is used to describe a programming paradigm as well as a variety of computer programming languages. In this section, you’ll find out what OOP (object-oriented programming) is all about.
Java is used for the examples in this section of the chapter because it is
today’s most popular language for implementing object-oriented programs.
What is the basic focus of the object-oriented paradigm? The
object-oriented paradigm is based on the idea that the solution for a problem can be visualized in terms of objects that interact with each other. In
the context of this paradigm, an object is a unit of data that represents an
abstract or a real-world entity, such as a person, place, or thing. For example, an object can represent a $10.99 small round pepperoni pizza. Another
object can represent a pizza delivery guy named Jack Flash. Yet another
object can represent a customer who lives at 22 W. Pointe Rd.
What’s the difference between an object and a class? The real
world contains lots of pizzas, customers, and delivery guys. These objects
can be defined in a general way by using classes. Whereas an object is a
single instance of an entity, a class is a template for a group of objects with
similar characteristics. For example, a Pizza class defines a group of gooey
Italian snacks that are made in a variety of sizes, crafted into rectangular or
round shapes, and sold for various prices. A class can produce any number
of unique objects, as shown in Figure 12-30.
CLASS: Pizza
Pizza objects
FIGURE 12-30
A class, such as the Pizza
class, is a general template for
a group of objects with similar
How do I define the classes I need to solve a problem? When
taking the object-oriented approach to a problem, one of the first steps is to
identify the objects that pertain to a solution. As you might expect, the solution to the pizza problem requires some pizza objects.
Certain characteristics of pizzas provide information necessary to solve the
problem. This information—the price, size, and shape of a pizza—provides
the structure for the Pizza class. A class is defined by attributes and methods. A class attribute defines the characteristics of a set of objects. You
will learn about methods, which define actions, later in this section.
Each class attribute typically has a name, scope, and data type. One class
attribute of the Pizza class might be named pizzaPrice. Its scope can be
defined as public or private. A public attribute is available for use by any
routine in the program. A private attribute can be accessed only from the
routine in which it is defined. The pizzaPrice attribute’s data type can be
defined as double, which means that it can be any decimal number, such as
12.99. Figure 12-31 describes the data types most often used to describe
class attributes.
The data types used to
define class attributes are
similar to the data types for
defining database fields,
but the terminology is
slightly different.
FIGURE 12-31
Class Attribute Data Types
Data Type
Integer whole numbers
Numbers with decimal places
Multiple characters, symbols, and numerals
Limited to two values
T or F
OO programmers often use UML (Unified Modeling Language) diagrams
to plan the classes for a program. The UML diagram in Figure 12-32 shows
one possible way to envision the Pizza class.
Class name
Class attributes
+ pizzaShape: string
+ pizzaPrice: double
The plus sign
indicates a public attribute.
FIGURE 12-32
The core of a UML diagram is
a box that contains information
about a class.
+ pizzaSize: double
How do I code a class when writing a program? Although a programmer typically completes the overall program plan before coding, jump
ahead to take a quick look at the Java code for the attributes in the Pizza
class. The first line of code defines the name of the class. Each subsequent line defines the scope, data type, and name of an attribute. The curly
brackets simply define the start and end of the class.
class Pizza
public string pizzaShape;
public double pizzaPrice;
public double pizzaSize;
How flexible are classes for defining different types of
objects? The object-oriented paradigm endows classes with quite a bit of
flexibility. For the pizza program, objects and classes make it easy to compare round pizzas to rectangular pizzas rather than just to square pizzas.
Suppose you want to compare a 10-inch round pizza to a rectangular pizza
that has a length of 11 inches and a width of 8 inches. The Pizza class in
Figure 12-32 on the previous page holds only one measurement for each
pizza—pizzaSize. This single attribute won’t work for rectangular pizzas,
which might have a different length and width. Should you modify the class
definition to add attributes for pizzaLength and pizzaWidth? No, because
these attributes are necessary only for rectangular pizzas, not for round
pizzas. An OO feature called inheritance provides flexibility to deal with
objects’ unique characteristics.
What is inheritance? In object-oriented jargon, inheritance refers
FIGURE 12-33
The subclass attributes shown
in blue text (pizzaShape and
pizzaPrice) are inherited from
the Pizza superclass. The
attributes in red are unique to
the subclasses. The plus sign
indicates that these attributes
are public.
to passing certain characteristics from one class to other classes. For
example, to solve the pizza problem, a programmer might decide to use
a RoundPizza class and a RectanglePizza class. These two
new classes can inherit attributes from the Pizza class, such
as pizzaShape and pizzaPrice. You can then add specialized
characteristics to the new classes. The
+ pizzaShape: string
RectanglePizza class can have attributes
+ pizzaPrice: double
for length and width, and the RoundPizza
class can have an attribute for diameter.
The process of producing new classes
with inherited attributes creates a superclass and subclasses. A superclass,
such as Pizza, is any class from which
attributes can be inherited. A subclass
(or derived class), such as RoundPizza
or RectanglePizza, is any class that
inherits attributes from a superclass. The
set of superclasses and subclasses that
are related to each other is referred to as
a class hierarchy. The UML diagram in
Figure 12-33 shows the Pizza class and
its subclasses.
+ pizzaShape: string
+ pizzaShape: string
+ pizzaPrice: double
+ pizzaPrice: double
+ pizzaDiameter: double
+ pizzaLength: double
+ pizzaWidth: double
How do I code a subclass? Java uses the extends command to
link a subclass to a superclass. The statement class RectanglePizza
extends Pizza means “create a class called RectanglePizza that’s
derived from the superclass called Pizza.” Figure 12-34 contains the Java
code that creates attributes for the RectanglePizza class.
FIGURE 12-34
Using the extends command,
the RectanglePizza class inherits the pizzaShape and pizzaPrice attributes from the Pizza
superclass. The pizzaLength
and pizzaWidth attributes are
unique to the RectanglePizza
class RectanglePizza extends Pizza
double pizzaLength;
double pizzaWidth;
How does an OO program use objects? An OO program can use
objects in a variety of ways. A basic way to use objects is to manipulate
them with methods. A method is a segment of code that defines an action.
The names of methods usually end in a set of parentheses, such as compare() or getArea().
What can a method do? A method can perform a variety of tasks, such
as collecting input, performing calculations, making comparisons, executing
decisions, and producing output. For example, the pizza program can use a
method named compare() to compare the square-inch prices of two pizzas
and display a message indicating which pizza is the best deal.
What does a method look like when it has been coded in
Java? A method begins with a line that names the method and can include
a description of its scope and data type. The scope—public or private—
specifies which parts of the program can access the method. The data type
specifies the kind of data, if any, that the method produces. The initial line of
code is followed by one or more lines that specify the calculation, comparison, or routine that the method performs. Figure 12-35 illustrates the code
for the compare() method.
FIGURE 12-35
Java Code for the compare()
The method manipulates
public compare( Pizza Pizza1, Pizza Pizza2 )
pizza objects.
if (Pizza1.SquareInchPrice < Pizza2.SquareInchPrice )
The method
System.out.println("Pizza 1 is the best deal!");
title includes
its scope
and name.
if (Pizza1.SquareInchPrice > Pizza2.SquareInchPrice )
System.out.println("Pizza 2 is the best deal!");
if (Pizza1.SquareInchPrice == Pizza2.SquareInchPrice
System.out.println("The pizzas are the same deal!");
The body of the method contains
statements that determine which
pizza is the best deal and print
the result.
What activates a method? A method is activated by a message,
which is included as a line of program code that is sometimes referred
to as a call. For example, in a Java program, a line of code such as
compare(Pizza1, Pizza2) produces a message used to activate or
call the compare() method.
In the object-oriented world, objects often interact to solve a problem by
sending and receiving messages. For example, a pizza object might receive
a message asking for the pizza’s area or price per square inch.
How do methods relate to classes? Methods can be defined along
with the class they affect. The getSquareInchPrice() method pertains to pizzas of any shape, so it can be defined as part of the Pizza class. To calculate the square-inch price, however, it is necessary to know the area of a
pizza. That calculation can be achieved by defining a getArea() method.
The area calculation for round pizzas is different from the calculation for
rectangular pizzas, so the getArea() method should become part of the
RoundPizza and RectanglePizza subclasses, as indicated by the UML diagram in Figure 12-36.
FIGURE 12-36
The getSquareInchPrice()
method is defined as part of
the Pizza class, whereas the
getArea() method is defined
within the RoundPizza and
RectanglePizza classes.
+ pizzaShape: string
+ pizzaPrice: double
+ getSquareInchPrice()
+ pizzaDiameter: double
+ pizzaLength: double
+ pizzaWidth: double
How does the getArea() method work? If you have been thinking
ahead a bit, you might wonder how a programmer can define the getArea()
method to perform two different calculations—one that calculates the area
of a rectangle by multiplying its length times its width, and another that calculates the area of a circle using the formula π r2. An object-oriented concept
called polymorphism makes it possible to assign more than one formula to
the getArea() method.
What is polymorphism? Polymorphism, sometimes called overloading, is the ability to redefine a method in a subclass. It allows programmers
to create a single, generic name for a procedure that behaves in unique
ways for different classes.
In the pizza program, for example, both the RectanglePizza and RoundPizza
classes can have a getArea() method. The calculation that getArea() performs is defined one way for the RectanglePizza class and another way for
the RoundPizza class. Figure 12-37 illustrates how polymorphism allows
subclasses to tailor methods to fit their unique requirements.
FIGURE 12-37
+ pizzaShape: string
+ pizzaPrice: double
+ getSquareInchPrice()
+ pizzaDiameter: double
+ pizzaLength: double
+ pizzaWidth: double
Polymorphism allows a programmer to define different
getArea() methods for each
subclass. When the completed
program runs, pizza shapes
are collected from the user and
the corresponding getArea()
method can be applied to calculate the area of a pizza.
For round pizzas, the
getArea() method uses
the formula:
3.142 * (radius * radius)
For rectangular pizzas,
the getArea() method
uses the formula:
pizzaLength * pizzaWidth
How does the code for the round getArea() method differ from
the code for the rectangle getArea() method? The code for the
getArea() method defined in the RoundPizza class asks users to key in,
or enter, the pizza’s diameter. The method then divides the diameter by 2
to arrive at the radius. The value for the radius is used in the π r2 calculation—3.142 * (radius * radius)—for the area of a circle.
The getArea() method defined in the RectanglePizza class asks users to
key in the length of the pizza and then its width. This data is used in the calculation that multiplies length times width to produce the area of a rectangular pizza. Figure 12-38 illustrates the Java code for the getArea() methods.
The lines that begin with // are remarks.
FIGURE 12-38
The getArea() Methods for
Round and Rectangular Pizzas
//Method to calculate the area of a round pizza
pizzaDiameter = Keyin.inDouble("Enter the diameter of the pizza: ");
radius = pizzaDiameter/2;
pizzaArea = 3.142 * (radius*radius);
//Method to calculate the area of a rectangular pizza
pizzaLength = Keyin.inDouble("Enter the length of the pizza: ");
pizzaWidth = Keyin.inDouble("Enter the width of the pizza: ");
pizzaArea = pizzaLength * pizzaWidth;
What are the advantages of polymorphism? Polymorphism
provides OO programs with easy extensibility and can help simplify program code. For example, it would be easy to extend the pizza program
to work with triangular pizzas, if one of the pizzerias decides to get creative with pizza shapes. To extend the program, you would simply define a
TrianglePizza class that includes attributes for pizzaWidth and pizzaHeight
and tailor its getArea() method for calculating the area of a triangle.
The ability to tailor the getArea() method for round and square pizzas
allows programmers to avoid complex logic and to simplify program
code. As you can imagine, creating separate methods with unique
names, such as getAreaRoundPizza(), getAreaRectanglePizza(), and
getAreaTrianglePizza(), would add to the program’s complexity and
make it more difficult to extend the program for other pizza shapes.
What does the completed pizza program look like in Java? So
far in this section of the chapter, you have learned how objects and methods
interact to solve the pizza problem. You know that the pizza program uses
a Pizza class and two subclasses: RectanglePizza and RoundPizza. You
also know that these classes include getSquareInchPrice() and getArea()
methods to perform calculations that supply data for solving the problem.
You should also remember that the compare() method is used to manipulate pizza objects to determine which is the best deal.
The classes and methods defined for the pizza program must be placed
within the structure of a Java program, which contains class definitions,
defines methods, initiates the comparison, and outputs results. Figure
12-39 provides an overview of the program structure.
FIGURE 12-39
Pizza Class Definition
Define Pizza as a class with attributes for shape and
price. Define the getSquareInchPrice() method that
collects input for the pizza price, then calculates a
pizza’s square-inch price.
Program Structure for the Pizza
RectanglePizza Class Definition
Define RectanglePizza as a subclass of Pizza with
attributes for length and width. Define the getArea()
method that collects input for the pizza length and
width to calculate area.
RoundPizza Class Definition
Define RoundPizza as a subclass of Pizza with an
attribute for diameter. Define a getArea() method that
collects input for the pizza diameter, then calculates
Compare() Method
Compare the square-inch price of two pizzas and output results.
Main Module
Set up variables, create objects for Pizza1 and Pizza2,
and activate the getArea(), getSquareInchPrice(), and
compare() methods.
How does a Java program work? The computer begins executing
a Java program by locating a standard method called main(), which contains code to send messages to objects by calling methods. For the pizza
program, the main() method includes code that defines a few variables and
then asks the user to enter the shape of the first pizza. If the shape entered
is Round, the program creates an object called Pizza1 that is a member of
the RoundPizza class. If the shape entered is Rectangle, the program creates an object called Pizza1 that is a member of the RectanglePizza class.
After the pizza object is created, the program uses the getArea() method to
calculate its area. The program then uses the getSquareInchPrice() method
to calculate the pizza’s square-inch price. When the calculations are complete for the first pizza, the program performs the same process for the second pizza. Finally, the program uses the compare() method to compare the
square-inch prices of the two pizzas and output a statement about which
one is the best deal.
Because it is not the goal of this section to teach you the particulars of
Java programming, don’t worry about the detailed syntax of the Java code.
Instead, refer to Figure 12-40 to get an overview of the activity that takes
place in the main() method for the pizza program.
public static void main(String[] args)
FIGURE 12-40
Java Code for the Main Module
of the Pizza Program
1. Main() method title
2. Define variables used
Pizza Pizza1;
in the main() method.
Pizza Pizza2;
String pizzaShape;
pizzaShape = Keyin.inString("Enter the shape of the first pizza: ");
if (pizzaShape.equals("Round"))
3. Collect input for the shape of the
first pizza, then create an object
called Pizza1 that belongs to the
Pizza1 = new RoundPizza();
RoundPizza or RectanglePizza class.
Pizza1 = new RectanglePizza();
4. Use the getArea() and getSquareInchPrice() methods to calculate area and
square-inch price for the first pizza.
pizzaShape = Keyin.inString("Enter the shape of the second pizza: ");
if (pizzaShape.equals("Round"))
5. Collect input for the shape of the second pizza,
then create an object called Pizza2 that belongs
Pizza2 = new RoundPizza();
to the RoundPizza or RectanglePizza class.
Pizza2 = new RectanglePizza();
compare(Pizza1, Pizza2);
6. Use the getArea() and getSquareInchPrice() methods to
calculate area and square-inch price for the second pizza.
7. Use the compare() method
to determine which pizza is the
best deal, then print results.
What happens when the completed pizza program runs? When
you run the pizza program, it looks for the main() method. This method displays an on-screen prompt that asks for the pizza’s shape. The getArea()
method displays a prompt for the pizza’s diameter (for a round pizza) or
the pizza’s length and width (for a rectangular pizza). A similar series of
prompts appears for the second pizza. The program concludes when the
compare() method displays a statement about which pizza is the best deal.
The software tour for Figure 12-41 lets you see what happens when the OO
pizza program runs.
FIGURE 12-41
When the pizza program
runs, on-screen prompts
ask for the shape, size,
and price of each pizza;
then the program displays
a message that indicates
which pizza is the best
deal. X Watch the program run in your digital
How did object-oriented languages originate? Computer historians believe that SIMULA (SIMUlation LAnguage) was the first computer
language to work with objects, classes, inheritance, and methods. SIMULA
was developed in 1962 by two Norwegian computer scientists for the purpose of programming simulations and models. SIMULA laid the foundation
for the object-oriented paradigm, which was later incorporated into other
programming languages, such as Eiffel, Smalltalk, C++, and Java.
The second major development in object-oriented languages came in 1972
when Alan Kay began work on the Dynabook project at the Xerox Palo Alto
Research Center (PARC). Dynabook was a prototype for a notebook-sized
personal computer, intended to handle all the information needs of adults
and children. Kay developed a programming language called Smalltalk
for the Dynabook that could be easily used to create programs based on
real-world objects. Dynabook never became a commercial product, but
Smalltalk survived and is still in use today. Smalltalk is regarded as a classic object-oriented language, which encourages programmers to take a
pure OO approach to the programming process.
Which object-oriented languages are popular today? As the
object-oriented paradigm gained popularity, several existing programming languages were modified to allow programmers to work with
objects, classes, inheritance, and polymorphism. The concept for the
Ada programming language originated in 1978 at the U.S. Department
of Defense. The first versions of Ada were procedural, but in 1995, the
language was modified to incorporate object-oriented features. A similar
transformation took place with the C language in 1983, except that the
object-oriented version earned a new name—C++. Hybrid languages,
such as Ada95, C++, Visual Basic, and C#, give programmers the option
of using procedural and object-oriented techniques.
Java was originally planned as a programming language for consumer
electronics, such as interactive cable television boxes, but evolved into an
object-oriented programming platform for developing Web applications.
Java was officially launched by Sun Microsystems in 1995 and has many
of the characteristics of C++, from which it derives much of its syntax. Like
C++, Java can also be used for procedural programming, so it is sometimes
classified as a hybrid language.
Introduced in 2007, Scratch is one of the newest OO languages. Like
Smalltalk, Scratch was designed as an easy-to-use starter language but
has a modern GUI and built-in support for audio, graphics, and animation.
What kinds of applications are suitable for object-oriented
languages? The object-oriented paradigm can be applied to a wide range
of programming problems. Basically, if you can envision a problem as a set
of objects that pass messages back and forth, the problem is suitable for
the OO approach.
What are the advantages and disadvantages of the OO paradigm? The object-oriented paradigm is cognitively similar to the way
human beings perceive the real world. Using the object-oriented approach,
programmers might be able to visualize the solutions to problems more
easily. Facets of the object-oriented paradigm can also increase a programmer’s efficiency because encapsulation allows objects to be adapted and
reused in a variety of different programs. Encapsulation refers to the process of hiding the internal details of objects and their methods. After an
object is coded, it becomes a black box, which essentially hides its details
from other objects and allows the data to be accessed using methods.
Encapsulated objects can be easily reused, modified, and repurposed.
A potential disadvantage of object-oriented programs is runtime efficiency.
Object-oriented programs tend to require more memory and processing
resources than procedural programs. Programmers, software engineers,
and systems analysts can work together to weigh the tradeoffs between the
OO approach and runtime efficiency.
paradigm is based on
the idea that computer programs can be visual-
from a superclass to a subclass is referred to as
ized in terms of objects that interact with each
The process of passing certain characteristics
In an OO program, objects send and receive
A class is a template for a group of objects
to initiate actions,
with similar characteristics. True or false?
which a programmer defines by creating a(n)
OO programmers often use
diagrams to plan the classes for a program.
(Hint: Use the abbreviation.)
Declarative Programming
AS THE 1950S drew to a close, computers were primarily used for
number-crunching tasks, such as calculating missile trajectories, tabulating census data, and processing payrolls. A few visionary computer scientists saw beyond these limited number-crunching applications and began
to explore ways in which computers could make decisions and solve problems by manipulating non-numeric data, including words and concepts.
Procedural programming languages, such as Fortran and COBOL, did not
have the flexibility to deal efficiently with non-numeric data, so non-procedural languages were developed. This section explains a type of non-procedural programming that follows the declarative paradigm and gives you a
little taste of the Prolog language.
What is the declarative paradigm? Non-procedural languages, such
as LISP, Scheme, Haskell, and Prolog, can be grouped into one of two paradigms: functional or declarative. The functional paradigm emphasizes
the evaluation of expressions, called functions, rather than the execution
of commands. The declarative paradigm attempts to describe a problem
without specifying exactly how to arrive at a solution.
What is unique about the declarative paradigm? In earlier sections of this chapter, you learned that procedural programming focuses
on a step-by-step algorithm that instructs the computer how to arrive at a
solution. You also learned that the object-oriented approach emphasizes
classes and methods that form objects. In contrast, the declarative paradigm describes aspects of a problem that lead to a solution. Although the
declarative paradigm might sound similar to the procedural paradigm, the
procedural paradigm focuses on an algorithm that describes the solution,
whereas the declarative paradigm focuses on describing the problem.
Figure 12-42 summarizes these differences.
What are the building blocks for the declarative paradigm?
Many declarative programming languages, such as Prolog, use a collection
of facts and rules to describe a problem. In the context of a Prolog program,
a fact is a statement that provides the computer with basic information for
solving a problem. In the pizza problem, for example, these facts might
A pizza has a price of $10.99, a size of 12 inches, and a round shape.
Another pizza has a price of $12.00, a size of 11 inches, and a square
In the context of a Prolog program, a rule is a general statement about the
relationship between facts. For example, the following rule is useful for solving the problem of which pizza is a better deal:
A pizza is a better deal if its square-inch price is less than the squareinch price of another pizza.
FIGURE 12-42
Paradigm Comparison
Procedural paradigm:
• Programs detail how to
solve a problem
• Very efficient for numbercrunching tasks
Object-oriented paradigm:
• Programs define objects,
classes, and methods
• Efficient for problems that
involve real-world objects
Declarative paradigm:
• Programs describe the
• Efficient for processing
words and language
To apply the betterdeal rule, additional rules are necessary to calculate the
square-inch price of each pizza. You’ll look at these rules in more detail
later in this section.
How does a programmer plan a declarative program? The core
of most declarative programs is a set of facts and rules that describe a
problem. The logic for the pizza program is very simple because the solution depends on a single factor: the lowest square-inch price. Declarative
programs with such simple logic don’t require much planning. In contrast,
programs that deal with multiple factors have more complex logic and often
require planning tools, such as decision tables.
A decision table is a tabular method for visualizing and specifying rules
based on multiple factors. As an example, suppose your decision to buy
a pizza depends not just on its price, but on whether you can get it delivered and how soon it is ready. These three factors produce eight possible
situations. In which of those eight situations would you purchase a pizza?
What if the best-priced pizza is ready in less than 30 minutes, but it can’t be
delivered? What if the best-priced pizza won’t be ready for an hour? Figure
12-43 illustrates how a programmer might construct a decision table that
describes all the rules pertaining to pizza prices, delivery, and time.
FIGURE 12-43
Decision Table
Lowest price?
Delivery available?
Ready in less than 30 minutes? Y
Buy it?
How does a programmer code facts? Return to the simple problem
of deciding which of two round or square pizzas is the best deal based on
price per square inch. The first step in coding the program using Prolog is
to enter facts that describe the prices, shapes, and sizes of two pizzas. The
fact “The shape of a pizza is round.” can be coded this way:
The words in parentheses are called arguments. An argument represents
one of the main subjects that a fact describes. The word outside the parentheses, called the predicate, describes the relationship between the arguments. In other words, the predicate shapeof describes the relationship
between pizza and round. Figure 12-44 points out some important syntax
details pertaining to capitalization and punctuation for Prolog facts.
A fact begins with
a lowercase letter.
Arguments are placed
in parentheses.
Each fact ends
with a period.
Use lowercase for
arguments unless
they are variables.
Use a comma
to separate
FIGURE 12-44
A Prolog fact follows specific
syntax rules.
Although it might seem obvious that round describes the shape of a pizza,
the predicate cannot be omitted. In many cases, the predicate can drastically change the meaning of a fact. For example, the facts in Figure 12-45
have the same arguments, (joe,fish), but the predicates give the facts very
different meanings.
Joe hates fish.
Joe is the name of a fish.
FIGURE 12-45
The predicate can drastically
change the meaning of a fact.
Joe plays a card game called fish.
For the pizza program, a series of facts can be used to describe a pizza:
Another set of similar facts can be used to describe a second pizza:
Facts can have more than two arguments. For example, a single fact can
be used to fully describe a pizza:
Using a series of facts to describe a pizza has some advantages and
some disadvantages over using a single fact. A single fact tends to make
a program more compact, whereas multiple facts might provide more
flexibility. The structure of a fact also affects the syntax for goals that
produce information.
What is a goal? The facts in a Prolog program are useful even without
any rules. Prolog can manipulate facts in several ways without explicit programming. Each fact in a Prolog program is similar to a record in a database, but you can query a Prolog program’s database by asking a question,
called a goal in Prolog jargon. Suppose you have entered the following
You can ask questions by entering goals from the ?- prompt. For example,
the goal ?- shapeof(pizza1,square) means “Is the shape of pizza1
square?” Prolog searches through the facts to see if it can satisfy the goal
by finding a match. If a match is found, Prolog responds with yes; otherwise, it responds with no. This exercise might seem trivial because you are
working with a small set of facts, which are all visible on the screen. Many
programs, however, contain hundreds of facts, which cannot be displayed
on a single screen or easily remembered by a programmer.
Prolog allows you to ask open-ended questions by replacing constants
with variables. A constant, such as pizza1, square, or 10, represents an
unchanging value or attribute. In contrast, a Prolog variable is like a placeholder or an empty box, into which Prolog can put information gleaned from
a fact. A Prolog variable begins with an uppercase letter to distinguish it
from a constant. The argument Pizza is a variable, whereas pizza1 is a constant. The argument Inches is a variable, whereas 14 is a constant.
Prolog variables are handy tools for formulating open-ended goals. As an
example, suppose you want to find the size of pizza2. You can obtain this
information by using the variable Inches in the goal:
?- sizeof(pizza2,Inches).
Prolog looks for any facts that have sizeof as a predicate and pizza2 as the
first argument. It responds with the actual value of the second argument:
Inches = 14
Much of the power and flexibility of the Prolog language stem from its ability to sift through facts trying to match predicates, compare constants, and
instantiate variables. The screentour for Figure 12-46 demonstrates various
Prolog goals.
FIGURE 12-46
The query asks for the
size of pizza2 in inches.
Prolog finds the fact
sizeof(pizza2,14) and
displays the value of the
second argument 14 as
the pizza’s size in inches.
The ?- prompt allows
you to work with a knowledge base by entering
facts, rules, and goals.
Suppose you have
opened a knowledge
base containing facts
about two pizzas. You
can enter goals to find
their prices, sizes, and
shapes. X Go step-bystep through some goals
for learning about the
pizzas in this knowledge
What is instantiation? Finding a value for a variable is referred to as
instantiation. To solve the goal ?- sizeof(pizza2,Inches)., Prolog
instantiates the value 14 to the variable Inches. Instantiation means to
make a temporary assignment. When a Prolog program discovers that the
size of pizza2 is 14 inches, it instantiates, or assigns, the value 14 to the
variable Inches.
Prolog can perform multiple instantiations. You can ask for the sizes of both
pizzas by using the query ?- sizeof(Pizza,Inches). Capitalizing the
words i a and Inches signifies that both are variables. Prolog can instantiate Pizza to pizza1 and then instantiate it to pizza2:
Pizza = pizza1
Inches = 12
Pizza = pizza2
Inches = 14
You can also formulate queries in which you tell Prolog not to instantiate a
variable. For example, suppose you want to know the prices of the pizzas,
but you don’t need to know which price corresponds to a particular pizza.
You can enter the query ?- priceof(_,Price)., which means, “What
are the prices?” Prolog would reply with:
Price = 10
Price = 12
Instantiation can be used to produce information that is not implicitly stored
in the database. Suppose you want to know the size of the round pizza. The
knowledge base does not contain a fact like sizeof(roundpizza,14).;
however, you can use a conjunction of two goals, as shown in Figure 12-47,
to obtain the size of the round pizza.
FIGURE 12-47
1. To solve this two-part goal, Prolog
first looks through the knowledge base
for a fact that fits the shapeof goal.
2. This fact fits the goal
shapeof(Pizza, round) and
tells us that pizza2 is round.
Prolog uses a process
called instantiation to
satisfy goals.
X Combining goals can
get tricky. Trace the process through the digital
textbook to see how it
3. Prolog instantiates pizza2 to the
variable Pizza and then it attempts
to solve the second part of the
goal to find the size of pizza2.
Instantiation is one of the keys to understanding how Prolog works. Unlike
a procedural programming language, which is designed to step through a
series of statements in a path prescribed by the programmer, Prolog can
autonomously run through every possible instantiation, backtracking if necessary to deal with multiple variables.
How does a programmer code Prolog rules? The pizza program
requires a rule that states, “A pizza is a better deal if its price per square
inch is less than the price per square inch of the other pizza.” Translated
into Prolog code, this rule becomes:
betterdeal(PizzaX,PizzaY) :squareinchprice(PizzaX,AmountX),
AmountX < AmountY.
Take a look at the logic behind this rule. A Prolog rule consists of a head,
body, and connecting symbol, as described in Figure 12-48.
FIGURE 12-48
The head of a rule defines an outcome
or fact. In this case, the rule is true if
PizzaX is a better deal than PizzaY.
The connecting
symbol :- means “if.”
betterdeal(PizzaX, PizzaY) :The body of
the rule consists of three
AmountX < AmountY.
The final clause
means “AmountX is
less than AmountY.”
A Prolog rule consists of a head
and one or more clauses that
form the body of the rule.
This clause means “The
square-inch price of PizzaX
is an amount designated as
This clause means “The
square-inch price of PizzaY
is an amount designated as
How do Prolog rules work? To understand how the betterdeal rule
works, you’ll need to perform a bit of magic to determine the price per
square inch of each pizza. In the completed pizza program, the computer
can calculate the square-inch price using a rule the programmer provides.
Because you don’t yet have such a rule, temporarily assume that the
square-inch price of the first pizza is .0694 (6.94 cents) and the square-inch
price of the second pizza is .0779 (7.79 cents). These facts would be stated
squareinchprice(pizza1,.0694). and
Now, suppose you enter the query ?- betterdeal(pizza1,pizza2).,
which translates to “Is pizza1 a better deal than pizza2?” Figure 12-49 illustrates how Prolog uses the betterdeal rule to answer your query.
Facts for the pizza program
FIGURE 12-49
Prolog executes the betterdeal
The betterdeal rule
betterdeal(PizzaX,PizzaY) :-
AmountX < AmountY.
The query
?- betterdeal(Pizza1,Pizza2).
1. Prolog instantiates pizza1 to PizzaX and pizza2 to PizzaY.
betterdeal(pizza1,pizza2) :squareinchprice(pizza1,AmountX),
AmountX < AmountY.
2. Prolog looks through the facts to find the squareinchprice for
pizza1 and pizza2. These prices are instantiated to AmountX
and AmountY, respectively.
betterdeal(pizza1,pizza2) :squareinchprice(pizza1,.0694),
3. The last line now contains a statement that
is true—.0694<.0779—which validates the
rule and produces “yes” as a response to your
query, “Is pizza1 a better deal than pizza2?”
.0694 < .0779.
Does the order of rules affect the way a Prolog program runs?
When coding programs in a procedural language, such as C, Pascal, or
BASIC, the order of program instructions is critically important. For example, if you place input statements for pizza size and price after the code
that calculates the price per square inch, the program produces an error
because it has no numbers to use for the calculation. In contrast, the order
or sequence of rules in a Prolog program is usually not critical.
What does the complete pizza program look like in Prolog?
The complete pizza program includes the facts that describe two pizzas
and rules that describe the better deal, square-inch price, and area. Figure
12-50 contains the Prolog code for the entire pizza program.
FIGURE 12-50
The Complete Prolog Program
betterdeal(PizzaX,PizzaY) :squareinchprice(PizzaX,Amount1),
Amount1 < Amount2.
area(Pizza,Squareinches) :sizeof(Pizza,Side),
Squareinches is Side * Side.
area(Pizza,Squareinches) :sizeof(Pizza,Diameter),
Radius is Diameter/2,
Squareinches is 3.142 * (Radius * Radius).
squareinchprice(Pizza,Amount) :area(Pizza,Squareinches),
Amount is Dollars / Squareinches.
Can I generalize the program for any pizzas? A version of the
pizza program that contains facts, such as priceof(pizza1,10). and
priceof(pizza2,12)., is limited to specific pizzas that cost $10.00
and $12.00. The program can be generalized by collecting input from the
user and storing it in variables or by asserting new facts at runtime.
How do I collect input from the user? If you think back to the procedural programming section of this chapter, you might recall that the BASIC
program collected the size, shape, and price of each pizza by using Input
statements such as:
Input "Enter the size of pizza1: ", Size1
That Input statement displayed the prompt “Enter the size of pizza1:” and
then stored the number entered in a variable called Size1. Prolog has similar capabilities. Examine the following program code to see how a Prolog
program collects user input, then take the screentour in Figure 12-51 to see
how the program interacts with users when it is run.
Prolog uses the write
predicate to display a
prompt for input.
The read predicate gathers
input entered by the user,
then the assertz predicate
creates a fact, such as
write(user,'enter price of pizza1: '),
read(user,Price1), assertz(priceof(pizza1,Price1)),
write(user,'enter size of pizza1: '),
read(user,Size1), assertz(sizeof(pizza1,Size1)),
write(user,'enter shape of pizza1: '),
read(user,Shape1), assertz(shapeof(pizza1,Shape1)),
write(user,'enter price of pizza2: '),
read(user,Price2), assertz(priceof(pizza2,Price2)),
write(user,'enter size of pizza2: '),
read(user,Size2), assertz(sizeof(pizza2,Size2)),
write(user,'enter shape of pizza2: '),
read(user,Shape2), assertz(shapeof(pizza2,Shape2)),
FIGURE 12-51
When the pizza program
runs, read() predicates
collect input for the
prices, the sizes, and the
shapes of two pizzas.
X See what happens
when this Prolog program runs.
When the program runs,
a series of prompts asks
users for input.
What kinds of problems are suitable for the declarative
approach? As you have seen from the pizza example, it is possible to
use a declarative language to solve a problem that involves calculations.
However, problems that require intensive computation are not usually best
suited for the declarative paradigm. As a general rule, declarative programming languages are most suitable for problems that pertain to words and
concepts rather than to numbers. These languages are a good choice for
applications such as those listed in Figure 12-52.
What are the advantages and disadvantages of declarative
languages? Declarative languages offer a highly effective programming
environment for problems that involve words, concepts, and complex logic.
As you learned in this chapter, declarative languages offer a great deal of
flexibility for querying a set of facts and rules. These languages also allow
you to describe problems using words rather than the abstract structures
procedural and object-oriented languages require.
Currently, declarative languages are not commonly used for production
applications. To some extent, today’s emphasis on the object-oriented
paradigm has pushed declarative languages out of the mainstream, both
in education and in the job market. Many aspiring programmers are never
introduced to declarative languages, so they are not included in the languages evaluated for a specific project.
Declarative languages have a reputation for providing minimal input and
output capabilities. Although many of today’s Prolog compilers provide
access to Windows and Mac user interface components, programmers are
often unaware of this capability.
A final disadvantage of declarative languages is their relatively poor performance on today’s personal computer architecture, which is optimized for
sequential processing. Declarative languages run much more efficiently on
parallel architectures, which have only recently emerged in the personal
computer market.
FIGURE 12-52
Examples of Applications That
Are Suitable for Declarative
• Databases that contain
complex relationships—for
example, a genealogy database used to trace ancestral
lineage or a street and highway database used for mapping routes
Decision support systems
that handle semi-structured
problems—for example, a
decision support system that
helps determine tactics for military campaigns or a system
that helps planners efficiently
allocate energy resources
• Expert systems that require
analysis of multiple, interrelated factors—for example,
an expert system that helps
troubleshoot appliance repairs
or a program that translates
documents from one language
to another
The declarative programming paradigm focuses
, such as pizza (with a low-
whereas the procedural paradigm focuses on
algorithms that describe a(n)
such as Pizza (with an uppercase ).
table is a tabular
on multiple factors.
In the Prolog fact partnumber(desk,12367),
Finding the value for a variable while solving a
Prolog goal is called
desk and 12367 are
ercase p), or it can be a(n)
method for visualizing and specifying rules based
A Prolog attribute can either be a(n)
on describing a(n)
In a Prolog rule, the :- connecting symbol means
whereas partnumber is referred to as the
Secure Programming
black hats—no matter what you call them, their goal is to gain unauthorized
access to information. The first line of defense in cyber security is the programmers who create the applications, operating systems, and utilities that
you use every day. Section E looks at program-level security vulnerabilities
and what programmers can do to shore up security defenses.
What makes my computer vulnerable to attack? Viruses, worms,
bots, malicious Web scripts, and other exploits plague computer users.
Many of these black-hat exploits creep into computer systems through
security holes. Computer users have a vague notion that such holes exist
and that antivirus software and firewalls are necessary to plug those holes,
prevent intrusions, foil identity thieves, evade botnets, and avoid all the
headaches associated with cleaning up after successful attacks.
Consumers are led to believe that their computers are vulnerable because
they don’t take rigorous steps to secure their computer by installing the latest antivirus software or firewall, keeping it up to date, and renewing their
costly security software subscriptions. Those steps are essential in today’s
computing environment, but consumers should also be asking significant
questions, such as: What makes my computer vulnerable to these attacks
in the first place? Exactly what are these security holes? Who is responsible
for allowing security holes to exist? The answers to these questions turn
the focus to program code because that is the source of the porous net that
allows malware to wiggle into your computer.
Today’s operating systems, utilities, and application software are full of
defects that create security holes, which are exploited by black hats.
Software security defects include buffer overflows and verbose error
What is a buffer overflow? According to many experts, the most prevalent cause of security holes is program code that allows buffer overflows.
A buffer overflow (also called a buffer overrun) is a condition in which data
in memory exceeds its expected boundaries and flows into memory areas
intended for use by other data. Figure 12-53 offers a simplified example of
the problem.
1. The programmer expects to collect
a 2-byte state abbreviation as input
for variable A. Variable B holds the
address of the next instruction.
2. An attacker enters MI999. The
5-byte string overflows the buffer for
variable A and spills over into variable
B. Now variable B holds 999, which
is not the correct address for the next
Variable B
Variable A
A buffer overflow allows attackers to surreptitiously change
the way a program works.
Variable B
Variable A
FIGURE 12-53
3. When the program checks
variable B to locate the next
instruction, it goes to 999,
where an attacker might have
stored code for a virus, worm,
or bot.
Buffer overflows can be triggered by input specifically designed to execute
malicious code. One of the first exploits to take advantage of buffer overflows was the Morris worm, which attacked the Internet in 1988. Since that
time, Microsoft alone has disclosed hundreds of buffer overflow vulnerabilities in commonly used Windows components, such as Internet Explorer,
Outlook, Outlook Express, Troubleshooter, Plug and Play, the file decompression routine, and the routine that renders Windows Metafiles.
Sloppy C and C++ programming sets the stage for buffer overflows. C and
C++, the two languages most commonly used for professional software
development, offer little protection against buffer overflows. Commonly
used routines, such as get() and strcpy(), from the standard C libraries perform no bounds checking and therefore allow buffer overflows.
Buffer overflows can be prevented. The techniques have been known for
over a decade. Programmers can prevent buffer overflows by controlling
pointers (or simply not using them), scrupulously checking input for suspicious characters, and placing strict boundaries on the values that can be
stored in variables. Programming languages such as D, Cyclone, Java, and
C# have some similarities to C and C++, but offer a more structured programming environment with fewer treacherous commands.
What is a verbose error message? Applications fail for many reasons including hardware malfunctions, program bugs, and incompatibility
with other software. Good programmers try to anticipate how a program
might fail and include code to handle the failure as gracefully as possible.
Typically, the result is an error message displayed to the user. When software is in developmental and testing phases, error messages can help programmers locate the source of errors if they contain information pertinent
to the location of defective code and the state of variables. If those information-rich and verbose error messages remain when the software ships,
hackers can use them to identify security vulnerabilities.
Verbose error messages can also present attackers with information about
the directory location of programs or files, the structure of a database, or
the layout of the program in memory. The solution to verbose error messages is simple: Identify verbose error messages and sanitize them before
shipping software.
Some of the most common examples of verbose error messages appear
during unsuccessful attempts to log in or access files. Those error messages, like the one in Figure 12-54, often give attackers information that
makes break-ins easier.
FIGURE 12-54
This verbose error message
provides attackers with information about restricted access
folder names and locations,
as well as account names
(Manager, Member, and Owner)
that can gain access to these
Is it possible to develop secure software? According to security
experts, most software security problems can be traced back to defects that
programmers unintentionally introduce in software during design and development. The general nature of the defects that open security holes is widely
known and most can be eliminated.
Software security begins when the program specifications are formulated. Techniques such as formal methods, threat modeling, attack trees,
and defensive programming help programmers remain aware of security
throughout the software development life cycle.
What are formal methods? Formal methods help programmers apply
rigorous logical and mathematical models to software design, coding, testing, and verification. Some software development methodologies incorporate formal methods and organizations that use them tend to produce more
secure software. Formal methods, however, add to the cost and time of
software development, so they tend to be used only for life-critical systems,
such as air traffic control and nuclear reactor control systems, where security and safety are crucial.
What is threat modeling? Threat modeling (also called risk analysis)
is a technique that can be used to identify potential vulnerabilities by listing
the key assets of an application, categorizing the threats to each asset,
ranking the threats, and developing threat mitigation strategies that can be
implemented during coding. Threats can be categorized using a model like
STRIDE as described in Figure 12-55.
S poofing: Pretending to be someone else
ampering: Changing, adding, or deleting data
R epudiation: Covering tracks to make attacks difficult to trace
I nformation disclosure: Gaining unauthorized access to information
FIGURE 12-55
STRIDE categories help software developers anticipate
threats from attackers.
enial of service: Making a system unavailable to legitimate users
E levation of privilege: Modifying user rights to gain access to data
Threats are ranked using DREAD categories based on how much
Damage they could cause, how easy they are to Reproduce, how
much effort and skill are needed to Exploit a vulnerability, how many
users would be Affected, and how likely it is that the vulnerability will be
Discovered by hackers. After potential threats have been identified and
ranked, software designers can work with programmers to devise appropriate security strategies.
What is an attack tree? Attack trees offer another way to get a handle
on potential threats. An attack tree is a hierarchical diagram of potential
attacks against a system. The root of the upside-down tree-shaped diagram
represents an attacker’s ultimate objective, such as stealing passwords.
The branches of the tree represent actions that attackers might take to
achieve the objective. By tracing paths through the diagram, developers
can discover which kinds of attacks are easiest, which are most difficult
to detect, and which have the potential to cause the most damage. Figure
12-56 shows an attack tree for opening a safe.
FIGURE 12-56
Attack trees are used by security analysts in many fields. This
diagram illustrates an attack
tree that might be devised by
a bank security officer examining the vulnerability of the bank
Opening a Safe
POpen Safe
I Pick Lock
PLearn Combo
I Find Written
I Cut Open Safe
I Install Improperly
PGet Combo
From Target
I Threaten
I Blackmail
P Eavesdrop
Listen to
I Get Target to
State Combo
What is defensive programming? Defensive programming (also
referred to as secure programming) is an approach to software development in which programmers anticipate what might go wrong as their
programs run, and take steps to smoothly handle those situations. It is analogous to defensive driving, which requires drivers to anticipate dangerous
situations arising from adverse conditions or the mistakes of other drivers.
Defensive programmers anticipate ways in which their programs could be
compromised by legitimate users, intruders, other applications, the operating system, or third-party security software. Avoiding code that allows buffer
overflow is an example of defensive programming. Trapping program failures without displaying verbose error messages is another example.
Techniques associated with defensive programming include:
Source code walkthroughs. Open source software goes through extensive public scrutiny that can identify security holes, but proprietary software
can also benefit from a walkthrough with other in-house programmers.
Simplification. Complex code is more difficult to debug than simpler
code. Sometimes sections of code should be rewritten to reduce their
Filtering input. It is dangerous to assume that users will enter valid
input. Attackers have become experts at concocting input that causes buffer overflows and runs rogue HTML scripts. Programmers should use a
tight set of filters on all input fields.
P = Possible
I = Impossible
How does signed code help? Signed code is a software program
that identifies its source and carries a digital certificate attesting to its
authenticity. Its main advantage is to help users avoid downloading and
running virus-infected or intrusive software. Signed code is wrapped in a
sort of security blanket that contains the name of the software developer
and ensures that the software will not run if even one bit of the source code
is changed by a virus or any other factor.
Programmers who want to deliver signed code have to provide proof of
their identity to a trusted third-party certification authority, such as VeriSign.
Upon verification, the programmer is issued a code-signing utility and a certificate that can be used to sign any number of software products. To sign a
product, the programmer uses the code-signing utility to encrypt the digital
signature and program length. That encrypted information is incorporated in
the product’s executable file.
When a signed product is downloaded and launched, the encrypted signature is opened first, and the browser uses a client-side certificate validation
routine to make sure the signature is valid and the program is the expected
length before the actual product is opened and installed.
Signed certificates have been deployed for downloaded software, using
a browser on the client end to verify the digital signature. Microsoft’s
Authenticode technology, for example, uses Internet Explorer as the verification client.
Signed certificates are not bulletproof. Fake certificates can be fashioned
to look like the real ones and are likely to fool consumers who don’t click
the link to the certificate authority. Also, a signed certificate does not assure
users that the original code was free of viruses or bugs. There is no thirdparty verification of the program’s content, but programmers are unlikely to
knowingly distribute infected code that could be traced back to its source
through a signed certificate like the one in Figure 12-57.
FIGURE 12-57
A signed digital certificate identifies the source of a software
What happens when vulnerabilities are discovered in products that have already shipped? Despite defensive programming
and other tactics for producing secure software, some defects inevitably
remain undiscovered in products that end up in the hands of consumers.
Some of those defects could be discovered and exploited by attackers. To
be fair, some exploits are caused by factors that didn’t exist when a software product was in development. For example, features of a new operating system might interact with a product in such a way that previously
secure code suddenly becomes vulnerable. When software bugs are discovered—especially if the bugs are being exploited by attackers—the programmer’s remaining line of defense is to produce a bug fix, or patch.
What’s up with all these patches? In today’s computing environment, patches seem to pop up like mushrooms after a spring rain. Computer
users are encouraged to apply all available patches, and some software
publishers such as Microsoft virtually force users to apply patches through
an auto-update service.
To create a software patch, programmers first locate the source of the
defect and make a judgment about its scope. Some patches require reworking an entire module, whereas small patches might affect just a few lines of
code. Before being posted for users, patches should be thoroughly tested.
Patches can be supplied as complete files that simply overwrite an entire
bad file with a more secure version. Patches can also be supplied as an inline code segment, which overwrites only a targeted section of code.
Are there steps consumers can take to mitigate security vulnerabilities that exist because of programming flaws? You
might remember seeing an error message like the one in Figure 12-58.
The question “Do you want to debug?” could lead you to believe that you
can simply correct program errors on your own. That is rarely the case. To
debug software, you need access to source code or scripts. Even if those
are available, as in the case of open source software, you would need programming expertise and knowledge of the application to locate the bug and
fix it.
FIGURE 12-58
An error message that seems
to offer an opportunity to fix
a bug really isn’t much use to
most consumers.
Realistically, computer users have no control over software at the code
level, but there are a few steps they can take to avoid security problems
that stem from software defects:
Select applications from software publishers with a good security track
Watch for patches and apply them.
And yes, keep your firewall and antivirus software deployed and up to
Consider using open source software, which has been extensively
reviewed by the programming community.
Security experts anticipate that buffer overflow and scripting attacks may
decline because social engineering exploits like phishing scams require
much less technical expertise. Social engineering exploits pit attackers
directly against consumers and the techniques for fending off such attacks
are typically out of the hands of programmers. In addition to remaining vigilant to social engineering exploits, consumers should remain aware of the
vulnerabilities related to software defects and factor that into software purchase decisions.
A buffer
is a condition in
programmers have to
which data in memory exceeds its expected
anticipate ways in which their programs could
boundaries and flows into memory areas
be compromised by legitimate users, intruders,
intended for use by other data.
other applications, the operating system, or thirdparty security software.
error messages can
present attackers with information about the
Programmers can offer a(n)
directory location of programs or files, the struc-
to fix a defect in a software product that is in the
ture of a database, or the layout of the program
hands of consumers.
in memory.
The basic objective of
programming methods is to generate proofs that
the program code meets requirements.
Issue: Who’s Minding the Asylum?
IN JUST 41 SECONDS, word text messaging record holder Ben Cook thumbed in “The razortoothed piranhas of the genera Serrasalmus and
Pygocentrus are the most ferocious freshwater fish
in the world. In reality they seldom attack a human.”
Although some people can use a cell phone keypad
to rapidly enter text messages, for most people, a
numeric keypad is a frustrating tool for entering text.
In addition to the exasperation of dealing with controls for gadgets such as cell phones and remote
controls, you probably have pet peeves about the
software interfaces for Web sites, productivity software, and computer games.
Today’s programming languages provide programmers with sophisticated tools for coding and testing
software. Why, then, are computers and computer
software so often characterized as being difficult to
use? How is it that the computer lexicon contains the
term techno rage? What prompts comments such
as “My machine sometimes makes me feel like an
Programmer and user interface designer Alan
Cooper offers an explanation and solution in his book
The Inmates Are Running the Asylum. The book’s
title is a metaphor for what Cooper perceives as the
current state of computer programming. The inmates
are computer programmers and the asylum is the
frustrating, seemingly demented world of computer
technology, with its cryptic error messages, puzzling
user manuals, and inscrutable modes of operation.
According to Cooper, programmers don’t intentionally create bad technology products. “Programmers
aren’t evil. They work hard to make their software
easy to use. Unfortunately, their frame of reference
is themselves, so they only make it easy to use for
other software engineers, not for normal human
beings.” Cooper suggests that it is possible to create
intuitive, easy-to-use technology products by devoting more time to developing detailed product specifications with the assistance of an interactive designer
who is familiar with the psychology and habits of a
typical computer user.
Paul Somerson, a well-known computer columnist, asserts, “You shouldn’t have to plod through
manuals, or spend hours waiting on support lines just
to get your work done. This stuff is way, way too hard
and overcomplicated.” Somerson proposes a tenpoint User’s Bill of Rights that begins “All computers
should be forced to work the way people do, rather
than the other way around.”
The first point of Somerson’s Bill of Rights echoes
the last point of another User’s Bill of Rights, developed by Clare-Marie Karat, a psychologist and IBM
The Computer User’s Bill of Rights
1. The user is always right. If there is a problem with
the use of the system, the system is the problem,
not the user.
2. The user has the right to easily install software
and hardware systems.
3. The user has the right to a system that performs
exactly as promised.
4. The user has the right to easy-to-use instructions
for understanding and utilizing a system to achieve
desired goals.
5. The user has the right to be in control of the
system and to be able to get the system to respond
to a request for attention.
6. The user has the right to a system that provides
clear, understandable, and accurate information
regarding the task it is performing and the progress
toward completion.
7. The user has the right to be clearly informed
about all system requirements for successfully using
software or hardware.
8. The user has the right to know the limits of the
system’s capabilities.
9. The user has the right to communicate with the
technology provider and receive a thoughtful and
helpful response when raising concerns.
10.The user should be the master of software and
hardware technology, not vice-versa. Products
should be natural and intuitive to use.
Source Clare Marie Karat IBM Thomas J. Watson Research
Karat agrees with Cooper’s comments about programmers being unable to understand the people
who use their software. She says, “The profile of the
people who use systems has changed, while the system, and the culture in which they have developed,
have not adjusted The engineers and computer scientists who design hardware and software know little
about the needs and frustrations of consumers.”
ing. Some controls, such as those for setting up
networks, are not easy to understand, but could be
crucial for a successful installation. Hiding those controls because they might confuse beginners has only
caused advanced users to become frustrated.
BusinessWeek columnist Stephen H. Wildstrom
published Karat’s Bill of Rights and asked for reader
feedback. The response was overwhelming and led
Wildstrom to comment in a follow-up article, “The
computer industry has a lot of baffled, frustrated,
and unhappy customers.” Surprisingly, many readers disagreed with the tenets of the Bill of Rights.
For example, Jef Raskin, a member of the Macintosh
computer design team, pointed out that “the mouse
was not intuitive. A person seeing one for the first
time had no idea how to use it.”
Until we are able to implant some kind of instantcomputer-genius chip at birth, it might be that people
will just have to invest some time learning how to
use a computer. “It shouldn’t take a Ph.D. to understand that a few hours invested in learning about
the computer and its software will make subsequent
products intuitively usable,” wrote one concerned
BusinessWeek reader. Other readers questioned
how much simplicity one could really expect from a
computer. A computer that is as simple to use as a
toaster would seem unlikely. As readers pointed out,
a toaster is designed to do only one thing, whereas a
computer can perform many different tasks, depending on the software it uses.
Some efforts to simplify operating system software
have created another band of disgruntled users
who complain that important features are now hidden because of feedback from novice testers who
considered such features too advanced or confus-
Security and digital rights management are also factors that have negatively affected user satisfaction.
Virus checking can slow system performance and
an operating system that periodically blanks out the
screen during routine procedures can set nerves on
Who is right? Can technology be simplified, yet
remain powerful enough to accomplish complex
tasks without compromising security? A branch
of ergonomics called Human Factors, or HumanComputer Interaction (HCI), focuses on factors that
make computers easy or difficult to use. The Human
Factors InfoWeb provides more information about
HCI and offers some additional food for thought on
the usability controversy.
You can read more about
user-oriented software design at
the Human Factors InfoWeb.
What Do You Think?
1. Can you think of a specific instance when you have become frustrated
with a software user interface?
Yes  No  Not sure
2. Is it possible to make computer software significantly easier to use?
Yes  No  Not sure
3. Would you agree that programmers do not understand the viewpoint of a
typical computer user and consequently produce bad software?
Yes  No  Not sure
Computers in Context: Agriculture
AGRICULTURE MIGHT SEEM like a lowtech enterprise, but many farmers are turning to
technology for help managing their finances, crops,
and livestock. Even home gardeners who need little
more than a few seed packets and a hoe are digging into computer and Internet resources for tips on
combating garden pests, growing spectacular roses,
and producing a bumper crop of veggies. Need to
identify the pesky insect that’s eating your tomatoes? Worried about the black spots appearing on
your apple trees? Trying to figure out if that sprout
is a flower or a weed? Many of your gardening questions are answered at sites sponsored by state and
province extension services, the National Gardening
Association, Organic Gardening magazine, and
many more.
Computers first sprouted
up on farms to take care of
financial matters. Farming,
like any business, is all
about the bottom line—the
profit that’s left after paying for seed, feed, fertilizer,
machinery, taxes, utilities,
and labor. Tracking income
and expenses provides
essential information for
analyzing ways to improve
operations and generate
more profit. To keep track of finances, farmers typically use generic small-business accounting software, such as Quicken, or vertical market software
designed especially for farming.
Farmers also use computers to maintain and analyze production records for crops and livestock.
The Manitoba Milk Revenue Analyzer is an Excel
spreadsheet template designed to help farmers
pick the best dairy management scenario by analyzing factors such as feed costs and milk production levels. Cow Sense decision support software
can help farmers improve cow herds and explore
production, marketing, and financial alternatives.
How does a farmer decide whether to plant fields
with soybeans, corn, or wheat? The Internet offers
resources such as the Alberta Agriculture and Rural
Development Web site where farmers can use an
interactive crop cost calculator to compare profit
potential for up to four crops. The calculator uses
average market value for each crop and expected
yield per acre based on the farm’s growing zone. It
produces a table that shows costs and estimated
profit for each crop.
Suppose that a farmer decides to plant durum
wheat. How much seed is needed? Too much
seed is wasted money. Not enough seed produces
scanty crops. A Web-based seed calculator helps
farmers decide how much seed is necessary to
produce the desired
plant population. It also
provides instructions for
calibrating the seeder
so that it sows the correct amount of seed.
And what if chickweeds
are choking out the sunflower crop? Alberta’s
Agriculture Web site
offers an expert system
to determine the most
effective herbicide.
Farmers use the Internet to gather information about
weather, market reports, farm equipment, loans,
crops, and livestock. Lively discussions take place in
“ag” chat groups, such as Farm Business, Crop Talk,
Cattle Chat, Hog Talk, and Bug Talk. Farmers subscribe to e-mail newsletters, such as Amber Waves,
and tap government resources, such as the USDA
(United States Department of Agriculture) Quarterly
Hogs and Pigs report.
The cutting edge of agricultural technology revolves
around remote sensing, satellite imaging, geographical information systems, and global positioning systems. Remote sensing involves gathering information
about an object without being in physical contact with
it. For agriculture, two of the most often used remote
sensing tools are satellite imaging and aerial photography. Weather satellite images are readily available
and help farmers decide the best days to plant and
harvest crops. Topographical satellite images can
help farmers analyze drainage patterns to prevent
crops from being flooded. Other satellite images can
be used for crop surveillance, such as looking for
areas of low yield, drought, disease, and infestation.
A geographic information system (GIS) is a computer-based
tool for storing data and creating layered maps of the earth’s
surface. A GIS can store data
about many factors important
to farmers, such as soil moisture, salinity, nitrogen levels,
and acidity. To collect data for
a GIS, farmers use a GPS and
a variety of monitoring devices.
Throughout the growing season, farmers use GPSs to find
specific locations in their fields
where they record data from
soil sampling and observations
of weed growth, unusual plant
stress, and growth conditions.
They can enter this data into a
GIS program, along with data
from satellite images, to create maps that help them gauge
where to plant, what to plant,
and how to care for plants.
The experience of a North Dakota farmer illustrates
how data from satellite images and GPS observations can be combined in a GIS to create valuable
agricultural maps. The farmer was producing a bountiful harvest of sugar beets, but the crop’s sugar
content was low. The farmer enlisted the help of agriculture experts at a nearby university who obtained a
satellite image of the fields that showed areas of high
and low production. The next step was to take soil
samples—one every half acre. A handheld GPS was
used to make sure samples were taken in an exact
half-acre grid pattern. The satellite and soil sample
data were then entered into a GIS, which showed
that some areas of the field were low on nitrogen.
The GIS produced a map overlaid with a multicolored
grid. Grid colors corresponded to the amount of nitrogen that should be applied for best production. But
how to apply these varying levels of nitrogen in each
small area? The farmer used GPS-equipped machinery to spread the correct amount of nitrogen in each
area of the field. This selective fertilization, along
with crop rotation to further even out nitrogen levels,
increased the beets’ sugar content and the farmer’s
Applying detailed agricultural data collected with a
GPS is called precision farming. Several specialized
tools, such as GPS-equipped
yield monitors, help farmers
collect data on bushels per
acre, wet and dry bushels, total
pounds, acres per hour, acres
worked, and grain moisture
content. Yield monitors are usually installed on the combines
that harvest crops. The data is
recorded on a memory card for
later analysis and mapping.
Although a variety of agricultural technologies are available,
not all farmers embrace them
with equal enthusiasm. Barriers
to using technology such as
computers, GISs, GPSs, and
satellite imaging include cost,
training, and concerns about
reliability, privacy, and security.
The cost of obtaining satellite
images, for example, has been
the biggest deterrent to regular
use of this data; the main barrier
to the use of computers is simply a lack of expertise.
Busy farmers might not have time to learn how to use
even basic computer programs, and a fairly complex GIS database application can seem particularly
daunting. University and government agencies are
targeting farmers with special extension courses on
agriculture-specific software for accounting, livestock decision support, and crop management. The
goal is to make these technology tools part of the
legacy that will be handed down to the next generation of farmers.
You’ll find lots more information at the Computers and
Agriculture InfoWeb.
New Perspectives Labs
On the BookOnCD
To access the New Perspectives Lab for Chapter 12, start the BookOnCD, or other NP2011 BookOn product,
and then click the icon next to the lab title below.
To use the basic tools provided by the Visual Basic
How to work with a form design grid
The way that a visual development environment
displays properties for a control
How to set properties that modify the appearance
and operation of a control
About the variety of events that can affect a control
How to add a component to the Visual Basic
toolbox, and then incorporate it into a program
How to save and test a program
How to select controls, such as buttons, menus,
and dialog boxes, for the graphical user interface
of a computer program
How to add code that specifies how a control
responds to events
How to compile a program and run the executable
1. Start the interactive part of the lab. Make sure
you’ve enabled Tracking if you want to save your
QuickCheck results. Perform each lab step as
directed, and answer all the lab QuickCheck questions. When you exit the lab, your answers are automatically graded and your results are displayed.
2. Draw a sketch of the main screen of your favorite
word processing program. Identify five controls
(such as menus, toolbars, lists, buttons, and scroll
bars) provided by the programmer. Describe the
external events (such as clicks, double-clicks,
right-clicks, and mouseovers) to which each control responds.
3. Suppose you are preparing to write a program
that calculates the number of calories you burn
while exercising. The program requires users to
enter their weight, the distance travelled, and the
elapsed time in minutes from the beginning of the
exercise to the end. Users should also be able
to select from the following types of exercises:
jogging, walking, swimming, and bicycling. After
these calculations are entered, users should click
a Calculate button to display the results of the
calorie calculation. A Clear button should allow
users to enter a new set of weight, distance, and
time data. Sketch a form design grid like the one
you used in the lab, and indicate where you would
place each control necessary for this program’s
user interface.
Key Terms
Make sure you understand all the boldfaced key terms presented in this chapter. If you’re using the
NP2011 BookOnCD, or other NP2011 BookOn product, you can use this list of terms as an interactive
study activity. First, try to define a term in your own words, and then click the term to compare your definition with the definition presented in the chapter.
Ada, 679
Agile methodology, 681
Algorithm, 689
API, 687
APL, 679
Argument, 714
Assembly language, 677
Assumption, 680
Attack tree, 726
BASIC, 679
Buffer overflow, 723
C, 679
C#, 679
C++, 679
Class, 702
Class attribute, 703
Class hierarchy, 704
COBOL, 679
Code, 674
Component, 687
Computer programming, 675
Constant, 680
Control, 683
Control structures, 695
CPL, 679
Debugger, 685
Decision table, 714
Declarative paradigm, 713
Defensive programming, 726
Eiffel, 679
Encapsulation, 712
Event, 684
Event-driven paradigm, 685
Event-handling code, 684
Fact, 713
Fifth-generation languages, 678
First-generation languages, 677
Flowchart, 692
Form design grid, 683
Formal methods, 725
Fortran, 679
Fourth-generation languages, 678
Function, 696
Functional paradigm, 713
Goal, 715
Haskell, 679
High-level language, 676
IDE, 686
Inheritance, 704
Instantiation, 717
Iteration, 698
Java, 679
Keyword, 676
Known information, 680
LISP, 679
Logic error, 685
Loop, 698
Low-level language, 676
Message, 706
Method, 705
Multiparadigm languages, 679
Object, 702
Object-oriented paradigm, 702
Parameters, 676
Particle renderer, 687
Pascal, 679
Pathfinder algorithms, 687
PL/1, 679
Polymorphism, 707
Predicate, 714
Predictive methodology, 681
Private attribute, 703
Problem statement, 680
Procedural language, 689
Procedural paradigm, 689
Procedure, 696
Program editor, 682
Programming language, 676
Programming paradigm, 679
Prolog, 679
Properties, 683
Pseudocode, 692
Public attribute, 703
REALbasic, 679
Remarks, 686
Repetition control structure, 698
RPG, 679
Rule, 713
Runtime error, 685
Scheme, 679
Scratch, 679
SDK, 686
Second-generation languages, 677
Selection control structure, 697
Sequence control structure, 695
Sequential execution, 695
Signed code, 727
Smalltalk, 679
Structured English, 692
Subclass, 704
Subroutine, 696
Superclass, 704
Syntax, 676
Syntax error, 685
Third-generation languages, 677
Threat modeling, 725
Variable, 680
VDE, 683
Visual Basic, 679
Walkthrough, 694
CHAP T E R 1 2
Interactive Summary
To review important concepts from this chapter, fill in the blanks to best complete each sentence. When using the
NP2011 BookOnCD, or other BookOn product, click the Check Answers buttons to automatically score your answers.
SECTION A: The instructions for a computer program are
Some experts believe that
sometimes referred to as
. Computer
such as Prolog, constitute a fifth generation of computer lan-
computer pro-
guages. Other experts define fifth-generation languages as those
grams, but also plan, test, and document computer programs.
that allow programmers to use graphical or visual tools to con-
In contrast, software
struct programs.
programmers focus on
tend to focus on
designing and
Before program code can be written, a programmer needs a
A computer programming language is a set of grammar rules
clear problem
for creating instructions that can
assumptions, a description of known information, and a speci-
ultimately be processed by a computer. The first programming
fication for what constitutes a solution. With a clear plan, a pro-
languages were low-level
grammer can begin coding using a text editor, program editor,
, which includes a list of
Second-generation languages, called
languages, allowed programmers to write programs consisting
gram is not complete until it has been tested to ensure that it
development environment. A pro-
of abbreviated op codes instead of 1s and 0s. Third-generation
contains no
languages provided programmers with easy-to-remember com-
computer programs should include internal documentation in the
mand words, such as PRINT and INPUT. Fourth-generation
form of
languages were designed to eliminate many of the strict punc-
inserted into a computer program along with lines of code.
tuation and
errors or runtime errors. All
, which are explanatory comments
rules that complicated
third-generation languages.
SECTION B: A programming
is a
Procedural languages provide programmers with a variety of
method that affects the way programmers conceptualize and
structures for specifying the order of pro-
approach a computer program. Every programming language
gram execution. A
supports one or more programming approaches. Languages
directs the computer to execute one or more instructions, not
such as COBOL and Fortran support a traditional approach to
coded as a simple succession of steps. A
programming called the
paradigm, which is
control provides a choice of paths, based on whether a condi-
based on a step-by-step
. Various planning
control structure
tion is true or false. A
control, or loop,
, and
repeats one or more instructions until a certain condition is met.
flowcharts, help programmers plan the steps for a procedural
The procedural paradigm provides a solid approach to prob-
lems that can be solved by following a set of steps. Procedural
tools, such as structured English,
languages tend to produce programs that run quickly and use
resources efficiently.
SECTION C: The object-oriented paradigm is based on
Objects interact to solve problems by exchanging
the idea that the solution to a problem can be visualized in
, which initiate an action, process, or
terms of objects that
with each other. An
procedure. OO programmers can create
object is a single instance of an entity. Programmers can use
to define what happens once an action is initiated. For flexibility
a concept called
as a template for a group of objects
, or overloading, allows
with similar characteristics. Classes can be derived from other
programmers to create a single, generic name for a procedure
classes through a process called
. The set
that behaves in unique ways for different classes. The OO para-
of superclasses and subclasses that are related to each other is
digm allows programmers to hide the internal details of objects
referred to as a class
and their methods. This process, called
. OO programmers
Modeling Language diagrams
often use
allows objects to be easily reused, modified, and repurposed.
to plan the classes for a program.
SECTION D: Programming languages such as Prolog sup-
of the rule. Prolog uses a process called
port the
to evaluate facts and rules to determine whether they are true.
programming paradigm because
they encourage programmers to describe a
In Prolog jargon, a question or query to a program’s database is
rather than its solution. Prolog programs are typically based
called a
upon a collection of facts and rules. A Prolog fact begins with a
, such as shapeof, followed by a series
within parentheses, such as
(pizza,round). Each Prolog rule has a
which defines an outcome or fact, followed by the notation :-, which
Declarative languages, such as Prolog, can be used for problems
that require calculations, but those problems are typically better
suited to
languages. As a general rule,
declarative languages are best suited for problems that pertain to
words and concepts rather than numbers.
means “if.” The body of the rule consists of one or more clauses
that define conditions that must be satisfied to validate the head
SECTION E: According to most experts, the primary cause
security breaches. A technique called
of security holes is a
programming focuses on source code walkthroughs, simplifica-
overflow, a condi-
tion in which data in memory exceeds its expected boundaries
tion, and filtering input.
and flows into memory areas intended for use by other data.
program that identifies its source and carries a digital certificate
Hackers also use verbose
messages to
attesting to its authenticity. Despite the best development efforts,
uncover security vulnerabilities. Developing secure software
code defects are sometimes found after products ship and must
depends on rigorous software development techniques, such as
be remedied with
methods, which generate proof that the program code meets listed requirements, and
code is a software
. Consumers should
remain aware of the vulnerabilities related to software defects and
factor that into software purchase decisions.
modeling that can be used to identify potential vulnerabilities to
CHAP T E R 1 2
Interactive Situation Questions
Apply what you’ve learned to some typical computing situations. When using the NP2011 BookOnCD, or any other
NP2011 BookOn product, you can type your answers, and then use the Check Answers button to automatically score your
A friend asks you for help writing a computer program to
calculate the square yards of carpet needed for a dorm
room. The statement “the living room floor is rectangular” is
. The length and
an example of a(n)
width of the room are examples of
information, which you can obtain as
from the user.
Continuing with the carpet example, you devise a set of
, to solve the problem.
steps, or a(n)
will be coded as a series of attributes, such as private
shown below, which expresses the
string manufacturer.
Input "Enter the width of the room in
feet: "; width
Input "Enter the length of the room in
feet: "; length
Print "Carpet needed:"
Print length*width & " square feet"
Print (length*width)/9 & "square yards"
Examine the code shown below. This program prints
lines of text.
For n = 1 To 5
Print "Loop number " & n
Next n
, which
immediately that these are
You then use a programming language to write the
You’ve just joined a programming team that is developing
a Java program for an earth-moving equipment vendor.
The lead programmer shows you a UML with labels such
as Cranes, Trucks, and Front-end Loaders. With your
background in object-oriented programming, you can tell
While browsing through several programs posted online,
you come across the following code and realize it is written
using the
programming language.
Interactive Practice Tests
Practice tests that consist of ten multiple-choice, true/false, and fill-in-the-blank questions are available on both the NP2011
BookOn products and the NP2011 Web site. The questions are selected at random from a large test bank, so each time you
take a test, you’ll receive a different set of questions. Your tests are scored immediately, and you can print study guides that
help you find the correct answers for any questions that you missed.
Learning Objectives Checkpoints
Learning Objectives Checkpoints are designed to help you assess whether you have achieved the major learning objectives for this chapter. You can use paper and pencil or word processing software to complete most of the activities.
1. Provide a ballpark figure for the number of lines of code in an
operating system such as Windows Vista.
10. Give an example of a sequence control structure, a selection
control structure, and a repetition control structure.
2. Describe how the jobs performed by computer programmers
differ from the jobs performed by software engineers and systems analysts.
11. Define the following terms associated with object-oriented programming: object, class, superclass, subclass, attribute, message, method, inheritance, polymorphism, and
3. Create a diagram that shows how low-level and high-level languages relate to the five generations of computer languages.
4. Describe the differences between event-driven, procedural,
object-oriented, and declarative paradigms. Provide at least
one example of a language that supports each paradigm.
5. Describe the three elements of a problem statement. Provide
examples within the context of the pizza problem.
6. List and describe three types of errors that are typically found
when computer programs are tested.
7. List and describe at least eight tools other than programming
languages that programmers use to create computer programs.
8. Define the term algorithm and explain how it relates to procedural programming.
9. Create a flowchart, structured English, and pseudocode to
express the algorithm for tying your shoes.
Concept Map
12. Define the following terms associated with the declarative paradigm: fact, rule, predicate, arguments, goal, instantiation, and
13. Write at least five Prolog facts that describe your relationships
to members of your family.
14. Describe how buffer overflows and verbose error messages
make computer programs vulnerable to hackers.
15. Create a sentence outline for Section E that focuses on techniques for secure programming.
16. List steps that consumers can take to avoid vulnerabilities that
exist in defective software code.
Study Tip: Make sure you can use your own words to correctly
answer each of the red focus questions that appear throughout the
Fill in the blanks to show the hierarchy of programming paradigms described in this chapter.
Objecta. ______________
d. ______________
g. ______________
j. ______________
k. ______________ -
Driven Paradigm
b. ______________
l. ______________
h. ______________
e. ______________
Messages and
f. ______________
c. ______________
Selection Controls
Repetition Controls
i. ______________
m. ______________
CHAP T E R 1 2
Think like a programmer and write a detailed description of making a
peanut butter sandwich. Next, look at your detailed instructions and
circle any looping or branching activities. If you don’t have any, your
description wasn’t detailed enough and you should rework it. When
you’ve completed the description, submit it to your instructor, who
might compare the most and least detailed descriptions submitted by
all students in your class.
The computer game industry is hot and employs professionals from a
wide variety of career fields. How would a professional in your career
field fit into a computer game development team? What aspect of the
game would he or she work on? Jot down your thoughts, and then go
online and search for information about computer game development.
What can you learn about jobs in the computer game industry for
people with skills in your career field? Submit your findings in a format
of your choice. You can write a one-page summary or get creative and
work up a brochure or 30-second radio spot.
In a group of three students, create the specifications for a program to
operate a gas pump. Make sure you create a problem statement, complete with assumptions and known information. Design the algorithm,
making sure it dispenses the customer’s choice of Regular, Mid-grade,
or Premium gas. Assume that all customers will pay cash (credit cards
are not accepted). Create mockups of the input/output displays shown
to the customer. Create a test plan with a comprehensive set of inputs
and outputs that could be used to check the accuracy of your finished
program. You can collaborate on each aspect of the specifications, or
assign one student to each. Consolidate your completed specifications
into a single document to submit to your instructor.
Computer programmers often develop user interfaces for programs.
For this project, your team will use an online program and evaluate
its interface. Your team leader should initiate the project by finding
a free online tutorial about one hour in length that will be of interest to the rest of the team. A good place to find tutorials is www. All team members should complete the tutorial and
then send the team leader answers to the following questions: 1)
From a learner’s perspective, did the tutorial hold your interest
and help you learn?; 2) If you were redesigning the user interface
for this program, what improvements would you make? The team
leader should compile everyone’s comments and forward them to
the instructor.
To appreciate the complexity of game programming, play a computer
game. Make a list of the objects you encounter during the first five minutes of the game. You might have to stop and restart the game several
times to complete your list. Don’t forget to include the title screen,
introductory music, video, and so on. Expand your list of objects by
adding descriptions of what happens to the objects. For example, the
background scenery object might move when the game character
reaches a certain point on the screen, or a sound might be emitted by
a character that gets struck by a weapon. Take a screenshot of the
game during your observation period. Submit your list and screenshot.
Indicate the name of the game you observed on the screenshot.
There is a growing trend to develop software that can be used globally. Suppose you are supervising a programming team and you have
directed them to internationalize a software application and make sure
it can be easily converted into a variety of languages. After researching on the Web, create a list of best practices for software globalization
that you will distribute to your programming team.
The Issue section of this chapter focused on why computers seem
difficult to use. Some critics accuse software engineers of designing
software for their fellow engineers rather than non-technical computer
users. On the other side of the argument are people who believe
that computers perform complex tasks, which can never be simplified enough to become totally intuitive. Which side do you support?
To begin this project, access the Human Factors InfoWeb to get an
in-depth overview of the issue. Next, determine the viewpoint that you
want to present and write a two- to three-page article suitable for a
computer magazine. Follow your professor’s instructions for submitting
your paper by e-mail or as a printed document.
The Computers in Context section focused on technologies used in
agriculture, farming, and gardening. For this project, research one
of these technologies. Find out how it works, how much it costs, and
how it is applied to farming. Now imagine you are a county agriculture
agent whose job is to inform farmers of new and useful agricultural
technologies. You have a booth at the county fair. Design an eyecatching poster that fair-goers could understand in about two minutes. You can design your poster on poster board, or you can use an
electronic medium, such as a word processor. When you submit your
poster, provide a list of the sources you used to gather information and
On the Web
or open your browser and connect to
Lab results can be stored in the Universal Gradebook.
Work hands-on in structured simulations
practicing important skills and concepts
In the Visual Programming Student Edition Lab, you will learn
about the following topics:
Introduction to the basics of visual programming
Understanding structured vs. object-oriented programming
Using Visual Basic
Designing a user interface
Writing and running a program
Use your computer or iPod to hear a five-minute
audio presentation of chapter highlights.
Review chapter material by taking these ten-question tests, then send your results to the Universal
Interact with audio flashcards to review key terms
from the chapter.
Have some fun while refreshing your memory about
key concepts that might appear on the next test.
You can even send your results to the Universal
Make sure that you’ve achieved all the objectives for
a chapter before it’s time for your test!
At the NP2011 Web site you’ll also find Extra Content
and InfoWebLinks.
1. unit
2. Shut Down
3. False
4. Backspace
5. menu
1. system
2. Productivity
3. groupware
4. utility
5. driver
ec E
1. authentication
2. Biometrics
3. keylogger
4. True
5. password
1. save
2. browser
3. search
4. @
5. account
1. False
2. security
3. Spyware
4. spam
1. peripheral
2. desktop
3. tablet
4. gaming
5. compatible
1. Annotation
2. False
3. Labs
4. Tracking
1. clock
2. processor
3. bus
4. core
5. volatile
6. virtual
ec E
1. True
2. Home
3. Overview
4. Labs
1. Internet
2. networks
3. Cyberspace
4. Digitization
5. Convergence
1. output
2. False
3. stored
4. supercomputer
5. microcontroller
1. digital
2. binary
3b. binary
4. gigabyte
5. integrated
1. source
2. object
3. operands
4. arithmetic
5. control
1. Access
2a. random (or direct)
2b. sequential
3. density
4. head
5. crashes
6. lands
7. True
8. state
1. pointing
2. response
3. resolution
4. duplex
5. ports
6. USB
ec E
1. Slot
2. surge
3. battery
4. death
5. Safe
1. document
2. False
3. Spreadsheet
4. Database
5. ripper
6. DVD
1. suite
2. requirements
3. False
4. Public
5. concurrent
6. Open
1. executable
2. local
3. True
4. Portable
5. patch
ec E
1. blended
2. viruses
3. worm
4. rootkit
5. quarantines
1. resources
2. memory (or RAM)
3. kernel
4. bootstrap
5. interface
1. False
2. dual
3. virtual
4. fork
5. Linux
6. True
1. conventions
2. True
3. C:
4. subdirectories
5. folders
6. size
7. header
8. native
1. Save
2. metaphor (or model)
3. Explorer
4a. tracks
4b. sectors
5. shredder
ec E
1. Registry
2. folder
3. external
4. incremental
5. recovery
1. interface
2. False
3. protocols
4a. packet
4b. circuit
5. IP
1. Ethernet
2. True
3. 100
4. hub
5. router
1. Wi-Fi
2. Bluetooth
3. ad-hoc
4. infrastructure
1. resources
2. root
3. driver
4. file
5. application
ec E
1a. WEP
1b. WPA2
2. Symmetric
3. Public
4. PGP
1. backbone
2. ISP
3a. TCP
3b. IP
4a. static
4b. dynamic
5. domain
6. .edu
7. True
1. voiceband
2. False
3. Ethernet
4. latency
5. WiMAX
1. Portable
2. hotspot
3. WiMAX
4. WAP
1. chat
2. False
3. grid
4. FTP
5. BitTorrent
ec E
1. ports
2. patches
3. Firewall
4. router
5. private
1. link
2. space
3. Browser
4. helper
5. stateless
6. True
7. certificates
1. crawler (or spider)
2. stuffing
3. False
4. Boolean
5. False
6. citation
1. True
2. True
3. clickthrough
4. cookies
5. False
1. @
4. forward
5a. SMTP
5b. POP
ec E
1. proxy
2. Flash
3. bug
4. Pharming
5. filter
6. False
1a. digital
1b. MIDI
2. sampling
3. AAC
4. playlist
5. recognition
1. FireWire (or IEEE 1394)
2. resolution
3. dependent
4. grayscale
6. GIF
7a. Lossy
7b. lossless
1. True
2. drawing
3. wireframe
4. tracing
5. rasterization
6. SWF (or Flash)
1. Desktop
2. capture
3. frame (or bit)
4. False
5. False
6. streaming
7. VOB (or Video Object)
ec E
1. Time
2. watermark
3. protected
4. CSS
5. individualization
6. super
1. manual (or hand)
2. Babbage
3. prototypes
4a. vacuum
4b. transistors
5a. integrated
5b. microprocessor
1. sectors
2. Silicon
3. offshoring
4. dot
5. retirement
6. vaporware
7. channels
1. False
2. security
3. telecommuting
4. Information
5. certification
6. portfolio
7. metasearch
1. ethics
2. Laws
3. Digital
4. Confidentiality
5. responsible
6. whistleblower
ec E
1. radiation
2. SAR
3. repetitive
4. False
5. native
6. reminder
1. mission
2a. tactical
2b. strategic
3. structured
4a. Batch
4b. online
5. MIS
6. decision
7. expert
1. management
2. Development
3. opportunities
4. waterfall
5. Requirements
6. use
1. solutions
2. distributed
3. application
4. RFP
5. specifications
1. implementation
2. customized
3a. unit
3b. integration
4. system
5. procedure
6. direct
7. acceptance
8. reliability
ec E
2. False
3. countermeasures
4. False
5a. identity
5b. phishing
1 0
1 1
1. mining
2. analytical
3. occurrences
4. flat
5. cardinalities
6. relational
7. object
1. True
2. engineers
3. paradigms
4. Third
5. visual
6. debugger
7. API
2. False
3. independence
4. Dynamic
5. False
1. False
2. procedural
3. flowcharts
4. sequence
5. True
6. loop
1. key
2. types
3. True
4. sensitive
5. validation
6. redundancy
7. template
1. keywords
2. True
3. Boolean
4. False
7. False
ec E
1. Encryption
2. read
3. audit
4. financial
5. portable
1. object-oriented
2. True
3. UML
4. inheritance
5a. messages
5b. method
1a. problem
1b. solution
2. decision
3a. arguments
3b. predicate
4a. constant
4b. variable
5. instantiation
6. if
ec E
1. overflow
2. Verbose
3. formal
4. Defensive
5. patch
1 2
Page v, Image copyright 2009, Katrina Brown. Used under
license from
Page vi, Image copyright 2009, Alexander Kalina. Used under
license from
Page vii, Image copyright 2009, sukiyaki. Used under license
Page viii, Image copyright 2009, Natutik. Used under license
Page xi, Image copyright 2009, Alexander Kalina. Used under
license from
Page xii, Image copyright 2009, Vjom. Used under license from
Page xiv, Image copyright 2009, Vjom. Used under license from
Page xv, Image copyright 2009, Antonov Roman. Used under
license from
Page xvii, Image copyright 2009, Gladskikh Tatiana. Used under
license from
Orientation 2, Courtesy of Sony Electronics, Inc.
Orientation 6, Courtesy of Kensington Technology Group
Orientation 7, Photodisc/Getty Images
Orientation 15, Courtesy of Stephen G. Eick, SSS Research Inc.
Orientation 27, AP Photo/Darren Hauck
Figure 1-02, Time & Life Pictures/Getty Images
Figure 1-06, Walt Disney Pictures/courtesy Everett Collection
Figure 1-07, Courtesy of All Things iPod, iPhone,
iTunes, and beyond.
Figure 1-07, Courtesy of Apple
Figure 1-08, Courtesy Everett Collection
Figure 1-09, Motion Picture Association of America, Inc.
Figure 1-10, Joel W. Rogers/Corbis
Figure 1-11, AP Photo/Pavel Rahman
Figure 1-14, Courtesy of IBM Corporation
Figure 1-14, Courtesy of Alienware
Figure 1-14, Courtesy of Apple
Figure 1-14, Courtesy of Acer Inc. and Microsoft Corporation
Figure 1-15, Courtesy of Hewlett-Packard Company
Figure 1-16, Courtesy of Nintendo Corporation
Figure 1-17, Courtesy of IBM Corporation
Figure 1-18, Courtesy of LeRoy N. Sanchez, Records
Management, Media Services and Operations, Los Alamos
National Laboratory
Figure 1-19a, Courtesy of Palm, Inc.
Figure 1-19b, BlackBerry Curve image courtesy of Research In
Figure 1-19c, Courtesy of Hewlett-Packard Company
Figure 1-19d, Courtesy of Apple
Figure 1-20, Courtesy of HTC
Figure 1-21, Getty Images
Figure 1-41, Brand X Pictures/Alamy
Figure 1-44, Courtesy of
Figure 1-49, Courtesy of SanDisk Corporation
Issue 1a, Warner Bros/courtesy Everett Collection
CinC-1a, Image courtesy of The Advertising Archives
CinC-1b, Napster advertisement reprinted with permission of
Napster, LLC
Figure 2-03b, Courtesy of
Figure 2-03c, Courtesy of TriGem Computer Inc.
Figure 2-04a, Courtesy of Hewlett-Packard Company
Figure 2-04b, PRNewsFotot/RadioShack Corporation
Figure 2-04c,Courtesy of Motion Computing Inc.
Figure 2-04d, Courtesy of Fujitsu Technology Solutions
Figure 2-03c, Courtesy of dpa/Landov
Figure 2-05, Courtesy of Hewlett-Packard Company
Figure 2-06, Courtesy of Alienware Corporation
Figure 2-07, Courtesy of Hewlett-Packard Company
Figure 2-08, Courtesy of Hewlett-Packard Company
Figure 2-11, Courtesy of Jonathan Atwell
Figure 2-12, Courtesy of Intel Corporation
Figure 2-15a, Courtesy of Intel Corporation
Figure 2-15b, AMD, the AMD Arrow logo, and combinations
thereof are trademarks of Advanced Micro Devices, Inc.
Figure 2-20, Courtesy of Kingston Technology Corporation
Figure 2-27, Courtesy of IBM Research
Figure 2-31, Courtesy of Hewlett-Packard Company
Figure 2-32, Courtesy of BiTMICRO Networks, Inc.
Figure 2-33, Courtesy of Sony Electronics, Inc.
Figure 2-38a, Courtesy of IBM Corporation
Figure 2-38c, Courtesy of Kensington Technology Group
Figure 2-38d, Courtesy of Saitek USA
Figure 2-39, Ozier Muhammad/The New York Times/Redux
Figure 2-40, Courtesy of ViewSonic Corporation
Figure 2-43, Courtesy of Advanced Micro Devices, Inc.
Figure 2-44, Courtesy of Epson America Inc.
Figure 2-45, Courtesy of Hewlett-Packard Company
Figure 2-56, Courtesy of Kensington Technology Group
Figure 2-57, Courtesy of AnchorPad
Figure 2-58, Courtesy of Kensington Technology Group
Figure 2-59, Courtesy of American Power Conversion
Issue-2b, Gabe Palmer/CORBIS
CinC-2a, Bettmann/CORBIS
CinC-2b, Courtesy of Business Wire and Lages & Associates
Figure 3-04, Courtesy of Microsoft Corporation
Figure 3-07a, Courtesy of Microsoft Corporation
Figure 3-07b, Reprinted with permission of Quark, Inc. and its
Figure 3-07c, Courtesy of Adobe Systems Incorporated
Figure 3-16a, wrangle/
Figure 3-16b, Courtesy of Wolfram Research
Figure 3-28, Courtesy of Microsoft Corporation
Figure 3-28, Courtesy of Symantec Corp.
Figure 3-28, Courtesy of Adobe Systems Incorporated
Figure 3-28, Courtesy of CyberLink
Figure 3-33, Copyright 2006 by the Open Source Initiative
Figure 3-44, David Woolley/Getty Images
Figure 3-49, Courtesy of ClamWin Free Antivirus
Issue-3a, Courtesy of Software & Information Industry
CinC-3a, Eli Reed/Magnum
CinC-3b, Ashley Gilbertson/Aurora Photos
Figure 4-08, Courtesy of Microsoft Corporation
Figure 4-23, Courtesy of ACCESS CO., LTD
Page 203, Courtesy of Microsoft Corporation
Page 203, Courtesy of Apple
Figure 4-23, Courtesy of Symbian
Figure 4-47, Courtesy of Seagate Technology
Issue-4, Dennis O’Clair/Getty Images
CinC-4a, Courtesy of the Fond du Lac Police Department
CinC-4b, Courtesy of the Fond du Lac Police Department
Figure 5-01, Courtesy of Bob Metcalfe
Figure 5-02, Gail Mooney/Masterfile
Figure 5-12, AP Photo/Eckehard Schulz
Figure 5-14, Courtesy of Iogear
Figure 5-19a, Courtesy of SMC Corporation
Figure 5-19b, Courtesy of D-Link Systems
Figure 5-20, Courtesy of Linksys
Figure 5-25, Courtesy of Dell, Inc.
Figure 5-27, Courtesy of Bluetooth SIG
Figure 5-28a, Courtesy of Nokia
Figure 5-28b, Courtesy of Motorola
Figure 5-30, Courtesy of D-Link Systems
Figure 5-33a, Courtesy of Nokia
Figure 5-33c, Courtesy of NETGEAR, Inc.
Figure 5-39, Steve Chenn/CORBIS
Figure 5-40a, Courtesy of Sonos, Inc.
Figure 5-40b, Courtesy of D-Link Systems
Figure 5-40c, Courtesy of Toshiba America Information Systems
Figure 5-44a, Courtesy of Dell, Inc.
Figure 5-44b, Courtesy of Intel Corporation
Figure 5-48, AP Photo/Matthias Rietschel
Figure 5-54, A. Ramey/PhotoEdit
Issue-5a, Courtesy of Ken Pau and Stone Creek Coffee
Issue-5b, Courtesy of Rob Flickenger
CinC-5a, Photography courtesy of the University of Illinois at
Urbana-Champaign Archives
CinC-5b, Tom Stewart/CORBIS
Figure 6-01, Courtesy of Computer History Museum
Figure 6-14, Courtesy of ZyXEL
Figure 6-16a, Courtesy of
Figure 6-16b, Courtesy of Zoom Technologies
Figure 6-20, Siri Stafford/Getty Images
Figure 6-20, Bryce Kroll/
Figure 6-20, Jonathan Ling/
Figure 6-21, Courtesy of Hughes Network Systems, LLC
Figure 6-22, Courtesy of Intel Corporation
Figure 6-24, Courtesy of Cracker Barrel Old Country Store, Inc.
Figure 6-25, Royalty-Free/CORBIS
Figure 6-26, Courtesy of Siemens Press Photo
Figure 6-27, Courtesy of Ground Control
Figure 6-28, Courtesy of Ground Control
Figure 6-30, David Young-Wolff/ PhotoEdit
Figure 6-31, Courtesy of PRNewsFoto/Verizon Wireless
Figure 6-33, Courtesy of Kyocera Wireless
Figure 6-34, Courtesy of BenQ Mobile
Figure 6-36, Courtesy of Microsoft Corporation
Figure 6-38, AP Photo/Richard Drew
Figure 6-40, Courtesy of [email protected]
Figure 6-41a, Courtesy of
Figure 6-41b, Courtesy of
Figure 6-41c, Courtesy of
Figure 6-41d, Courtesy of Vijay Pande, [email protected], and
Stanford University
Figure 6-41e, Courtesy of PrimeGrid distributed computing project
Figure 6-41f, Courtesy of The Scripps Research Institute
Figure 6-46, Paul Edmondson/Getty Images
Figure 6-47, Courtesy of Gibson Research Corporation
Issue-6b, Steve Allen/Getty Images
CinC-6a, H.F. Davis/Getty Images
CinC-6b, Royalty-Free/CORBIS
Figure 7-01, Courtesy of Ted Nelson, Project Xanadu
Figure 7-18, Courtesy of Ben Samuels
Figure 7-27a, Eric Bean/Getty Images
Figure 7-27b, Don Farrall/Getty Images
Figure 7-27c, Ryan McVay/Getty Images
Figure 7-27d, S.T. Yiap/Alamy
Figure 7-27e, Comstock Images/Alamy
Figure 7-29, Nicholas DeVore/Getty Images
Figure 7-47a, Courtesy of Webroot Software
Figure 7-47b, Courtesy of Computer Associates
Figure 7-47c, 2003 2007 Check Point Software Technologies
Ltd. All rights reserved.
Issue-7a, Ron Chapple/Getty Images
Issue-7b, Dennis MacDonald/PhotoEdit
CinC-7a, Courtesy of ArahWeave and fabric
courtesy of MTT Maribor
CinC-7b, Courtesy of MIT Media Lab/Photo by Lynn Barry
Figure 8-05, Courtesy of Microsoft Corporation
Figure 8-06, Courtesy of Apple
Figure 8-09, Photodisc/Getty Images
Figure 8-14a e, Courtesy of SanDisk Corporation
Figure 8-14f, Courtesy of Hitachi Global Storage Technologies
Figure 8-15, Courtesy of SanDisk Corporation
Figure 8-28, Courtesy of Learning Technology Services,
University of Wisconsin-Stout
Figure 8-40, Rodolfo Arpia/Alamy
Figure 8-43, Corbis Premium Collection/Alamy
Figure 8-55, Getty Images
Figure 8-56, Courtesy of Sling Media, Inc.
Issue-8a, Victor Spinelli
CinC-8a, Paramount/courtesy Everett Collection
CinC-8b, Corbis/Sygma
Figure 9-02a, Courtesy of IBM Corporation
Figure 9-03a, Courtesy of IBM Corporation
Figure 9-04, Courtesy of Iowa State University Photo Service
Figure 9-05, Courtesy of IBM Corporation
Figure 9-06, Courtesy of Unisys
Figure 9-08, Courtesy of Texas Instruments
Figure 9-11, Courtesy of Apple
Figure 9-12, Courtesy of IBM Corporation
Figure 9-13, Courtesy of Apple
Figure 9-14, Courtesy of Dell, Inc.
page 498, Courtesy of Dell, Inc.
page 498, Courtesy of Intel Corporation
page 498, Courtesy of Microsoft Corporation
page 498, AP Photo/LM Otero
page 498, AP Photo/Donna McWilliam
Figure 9-15, Silicon Maps, Inc.
Figure 9-16, Pawel Kopczynski/Reuters/Landov
Figure 9-22a, Jonathan Blake/Bloomberg News
Figure 9-22b, Mark Richards/PhotoEdit
Figure 9-22c, Ed Kashi/CORBIS
Figure 9-24, 2006 Dell, Inc. All Rights Reserved.
Figure 9-25a, Courtesy of the Federal Communications
Figure 9-25b, James Leynse/CORBIS
Figure 9-27, Hill Creek Pictures/Getty Images
Figure 9-30, DAJ/Getty Images
Figure 9-37, Helen King/Corbis
Figure 9-39, Jiang Jin/SuperStock
Figure 9-40, Comstock Images/Alamy
Figure 9-41, Stephen Simpson/Getty Images
Figure 9-42, David Ellis/Getty Images
Figure 9-43, Ryan McVay/Getty Images
Figure 9-44, John Foxx/The Print Collector
Figure 9-45, Javier Pierini/Getty Images
Figure 9-48, Ingram Publishing/Alamy
Figure 9-49, Courtesy of Body Composition Laboratory, Baylor
College of Medicine
Figure 9-51, 1999 Leslie Laurien
Issue-9a, Michael Goldman/Getty Images
Issue-9b, Sherwin Crasto/Reuters/Landov
CinC-9a, Getty Images
Figure 10-01, Courtesy of
Figure 10-03a, Reza Estakhrian/Getty Images
Figure 10-03b, Photodisc/Getty Images
Figure 10-03c, Photodisc/Getty Images
Figure 10-04a, Paul Edmondson/CORBIS
Figure 10-04b, Photodisc/Getty Images
Figure 10-04c, Photodisc/Getty Images
Figure 10-04d, Photodisc/Getty Images
Figure 10-08a, Hill Street Studios/Getty Images
Figure 10-08b, Jupiterimages/Getty Images
Figure 10-12, Jeremy Horner/CORBIS
Figure 10-28, Courtesy of
Figure 10-31a, Courtesy of Microsoft Corporation
Figure 10-31b, Courtesy of Sybase, Inc.
Figure 10-31c, Courtesy of Sage Software, Inc., a subsidiary of
The Sage Group plc
Figure 10-31d, Paul King/Getty Images
Figure 10-38, Rob Lewine/CORBIS
Figure 10-39, AP Photo/Ric Francis
Figure 10-44, James Patrick Cooper/Bloomberg News
Figure 10-45, AP Photo/Daniel Hulshizer
Figure 10-46, Courtesy of Disaster Recovery Journal
Issue-10b, SCPhotos/Alamy
CinC-10a, Courtesy of MIDASoft Inc.
CinC-10b, John Van Hasselt/CORBIS
Figure 11-01, Courtesy of the State of Queensland, Department
of Natural Resources and Mines 2005
Figure 11-02, David Ellis/Getty Images
Figure 11-15a, Ryan McVay/Getty Images
Figure 11-15b, Digital Vision/Getty Images
Figure 11-49, Jim Craigmyle/CORBIS
Figure 11-52, Fredrik Skold/Getty Images
Figure 11-53, Courtesy of Krell Software
Figure 11-54, Courtesy of SoftTree Technologies, Inc.
Issue-11a, AP Photo/Dave Martin
Issue-11b, Getty Images
CinC-11a, Central Press/Hulton Archive/Getty Images
CinC-11b, Gabe Palmer/CORBIS
Figure 12-01, Courtesy of
Figure 12-02, Digital Vision/Getty Images
Figure 12-05, Courtesy of IBM Corporate Archives
Figure 12-15, Dex Images/CORBIS
Figure 12-17, Patrik Giardino/CORBIS
Figure 12-45a, Wolfgang Kaehler/CORBIS
Figure 12-45b, Stockbyte/Getty Images
Figure 12-45c, Keith Brofsky/Getty Images
Issue-12b, John Turner/Getty Images
CinC-12a, Agricultural Research Service, a division of the
United States Department of Agriculture; Photo supplied by
GeoVantage, Inc.
CinC-12b, AP Photo/Hays Daily News, Steven Hausler
All other figure images MediaTechnics Corp.
24-bit bitmap A True Color graphic, which requires 24 bits for each
pixel, used for photographic-quality
images that can include any of
16.7 million colors. 437
3-D graphics A type of digital
graphics format that displays a
three-dimensional image on a twodimensional space. 449
3-D graphics software The
software used to create threedimensional wireframe objects,
then render them into images. 137
32-bit bitmap A graphical image
that requires 32 bits for each pixel.
AAC (Advanced Audio Coding)
A file format that provides highly
compressed audio files with very
little loss of sound quality and is
promoted by Apple on its iTunes
Web site. 424
AACS (Advanced Access Content
System) A digital rights management system that uses encryption
to restrict access and copying content from optical media. 469
Abacus A manual calculator that
consists of beads mounted on
sticks inside a frame with each
bead representing a specific quantity. 486
Actors Object-oriented jargon for
people who use an information
system. 573
Ad hoc report A customized
report (also called a demand
report) generated as needed. 561
Ad-blocking software A type of
software that prevents ads from
appearing on your computer
screen. 385
Analog data Data that is measured or represented on a
continuously varying scale, such
as a dimmer switch or a watch with
a sweep second hand. 22
Analog hole Any device or technique that allows digital content to
be copied legally or illegally from
an analog device. 464
Ad-serving cookie A cookie
installed by a marketing firm to
track user activities on Web sites
containing its ads. 400
Analog protection system (APS)
A DVD copy prevention technology developed by Macromedia that
scrambles data copied to videotape. 468
Ada A high-level programming
language developed by the U.S.
Department of Defense and
originally intended for military
applications. 679
Analysis phase Tasks performed
by the project team whose goal is
to produce a list of requirements
for a new or revised information
system. 571
AES (Advanced Encryption
Standard) An encryption standard that uses three separate key
sizes and is based on the Rijndael
encryption algorithm. 285
Analytical Engine A mechanical
calculator designed by Charles
Babbage that included memory
and a programmable processor,
and is widely regarded as the most
important ancestor to modern computer design. 488
Agile methodology An approach
to software development that produces programs in an incremental
way allowing specification to
evolve at each iteration. 681
Android OS An open source operating system used primarily for
handheld devices. 203
AIFF (Audio Interchange File
Format) An audio file format developed by Apple that is popular for
cross-platform use. 424
Animated GIF A type of GIF
image that displays a sequence of
frames to create the appearance of
continuous motion. 448
Ajax An approach to developing
interactive Web sites that uses
tools such as JavaScript and XML.
Anonymizer tools Software and/
or hardware that cloaks the origination of an e-mail or Web page
request. 10
Acceptance testing The final
phase of testing for a new information system, in which the system’s
new owner determines whether the
system performs as required. 586
Algorithm An abstract or general
procedure for solving a problem,
typically expressed as pseudocode, structured English, or a
flowchart. 689
Anonymous FTP A type of FTP
access that requires no account
on a server, but rather can be
accessed using “anonymous” as
the user ID. 337
Access control Security measures that limit access to systems,
such as databases. 655
Alpha test One of the first phases
of software testing, usually conducted by the software publisher’s
in-house testing team. 504
Anonymous proxy service A
server on the Internet that can be
used to forward Web requests after
cloaking the originating address
for users who want to surf anonymously. 403
Absolute reference In a worksheet formula, cell references
(usually preceded by a $ symbol)
that cannot change as a result of a
move or copy operation. 132
Access time The estimated time
for a storage device to locate data
on a disk, usually measured in milliseconds. 77
Accounting software A category
of software that includes accounting, money management, and tax
preparation software. 142
ActiveX control A set of commands and components that can
be used by programmers to add
interactive features to Web pages.
ALU (Arithmetic Logic Unit) The
part of the CPU that performs arithmetic and logical operations on the
numbers stored in its registers. 31
Always-on connection In the
context of Internet access, a permanent connection, as opposed
to a connection that is established
and dropped as needed. 307
Anti-spyware Software that blocks
spyware from entering a computer.
Antivirus software A computer
program used to scan a computer’s memory and disks to identify,
isolate, and eliminate viruses. 167
API (Application Program[ming]
Interface) A set of application
programs or operating system
functions that can be utilized by a
program. 687
Argument In the context of
Prolog programming, an argument describes a predicate and
is enclosed in parentheses in a
Prolog fact. 714
APL The acronym for A
Programming Language, a highlevel scientific programming
language used to manipulate
tables of numbers. 679
ASCII (American Standard Code
for Information Interchange) A
code that represents characters as
a series of 1s and 0s. Most computers use ASCII code to represent
text, making it possible to transfer
data between computers. 24
Apple I An unassembled computer
kit released in 1976 by Apple, Inc.
for computer hobbyists. 495
Apple II A complete microcomputer system developed by Apple, Inc.
and introduced in 1978 that helped
broaden the personal computer
market beyond hobbyists. 495
Apple Lisa A personal computer
system developed and manufactured by Apple, Inc. that featured
one of the first graphical user interfaces. 495
Apple Macintosh First released
in 1984, it was one of the first
commercially successful personal
computers sold with graphical user
interface software. 496
Application development tool
Software, such as 4GLs, expert
system shells, and component
objects, that can be assembled
into the applications software for
an information system. 578
Application server A computer
on a network that is dedicated to
running applications and delivering
applications to client computers.
Application software Computer
programs that help you perform
a specific task such as word processing. Also called application
programs, applications, or programs. 16
Application specifications A
detailed description of the way that
the software for an information
system should interface with the
user, store data, process data, and
format reports. 581
Application testing The process
of testing newly developed application software by running unit tests,
integration tests, and system tests.
Audio encoding software A computer program designed to convert
sound files into a digital sound format, such as MP3 or AAC. 139
Authentication protocol
Passwords, user IDs, and biometric measures used to verify a
person’s identity. 34
Authorization and revocation
A component of digital rights
management that can be used to
disable compromised players. 469
ASF (Advanced Systems Format)
Microsoft’s proprietary container
format for streaming digital multimedia; typically holds WMV and
WMA files. 457
Automatic recalculation A feature found in spreadsheet software
that automatically recalculates
every formula after a user makes a
change to any cell. 132
Assembly language A low-level
computer programming language
that uses simple commands and is
translated into machine language
by an assembler. 677
AVI (Audio Video Interleave) A
video file format, developed by
Microsoft, that was once the most
common format for desktop video
on the PC. 457
Assumption In the context of
programming, a condition that
you accept to be true, which often
places limits on the scope of the
programming problem. 680
B2B (Business-to-Business) An
e-commerce exchange of products, services, or information
between businesses. 384
Asymmetric Internet connection
Any connection to the Internet in
which the upstream speed differs
from the downstream speed. 311
B2C (Business-to-Consumer)
An e-commerce exchange of
products, services, or information
between businesses and consumers. 384
ATA (Analog Telephone Adapter)
A device used with VoIP systems
to convert analog voice signals
from a standard telephone into
digital data. 332
B2G (Business-to-Government)
An e-commerce exchange of
products, services, or information
between businesses and governments. 384
Atanasoff-Berry Computer (ABC)
An early electronic computer prototype that incorporated the use of
vacuum tubes for data processing
instead of mechanical switches.
Backup A duplicate copy of a
file, disk, or tape. Also refers to a
Windows utility that allows you to
create and restore backups. 222
Atom A syndicated data feed technology for the Web similar to RSS.
Backup software A set of utility
programs that performs a variety
of backup-related tasks, such
as helping users select files for
backup. 227
Attack tree A hierarchical diagram
of potential threats to a system
used as one tool in creating more
secure software. 726
Backward compatibility The ability to work with products designed
for prior generations of the product.
Audio compression Techniques
used to reduce the size of files that
contain audio data. 423
Bandwidth The data transmission capacity of a communications
channel. Digital signals are measured in bits per second; analog
signals in Hertz. 251
Audio editing software A program that enables users to create
and edit digital voice and music
recordings. 139
Banner ad A type of advertisement typically embedded at the top
of a Web page. 385
Bare-metal restore A process by
which a backup is restored to a
hard disk without first reinstalling
the operating system and device
drivers. 230
BASIC (Beginners All-purpose
Symbolic Instruction Code) A
simple high-level programming
language that was popularized by
Microsoft in the 1970s. 679
Batch processing A processing
system that involves holding a
group of transactions for processing until the end of a specified
period of time. 560
BD-R (Blu-ray disc recordable) A
Blu-ray disc that can be recorded
on one time. 83
BD-RE (Blu-ray disc rerecordable)
A Blu-ray disc that can be recorded
on multiple times. 83
BD-ROM (Blu-ray ROM) A Blu-ray
disc that cannot be modified; usually used to distribute movies. 83
Benchmarks A set of tests used
to measure computer hardware or
software performance. 69
Beta test A testing phase near the
end of the software development
process in which a software product is tested in real-world computer
environments, often by end users.
BI (Business Intelligence) An
integrated set of technologies and
procedures used to collect and
analyze data pertaining to sales,
production, and other internal
operations of a business in order
to make better business decisions.
Binary number system A method
for representing numbers using
only two digits: 0 and 1. Contrast to
the decimal number system, which
uses ten digits: 0, 1, 2, 3, 4, 5, 6, 7,
8, and 9. 23
Biometrics The use of physical
attributes such as a fingerprint to
verify a person’s identity. 34
Bit The smallest unit of information
handled by a computer. A bit is
one of two values, either a 0 or a 1.
Eight bits constitute a byte, which
can represent a letter or number.
Bitmap graphic An image, such
as a digital photo, that is stored as
a grid work of colored dots. 430
Bitrate A ratio such as 5:1 that
indicates the ratio of compression
that has been applied to a file. High
compression ratios, such as 35:1,
indicate more compression so data
can be contained in smaller files.
BitTorrent A peer-to-peer technology in which pieces of files are
distributed to and from a collection
of networked computers; used for
distributing music and movies over
the Internet. 338
Black screen of death An error
condition in which a PC “freezes”
and displays a black screen; usually turning the computer off and
turning it on again clears the error.
Blended threat A combination of
more than one type of malicious
program. 162
BLOB (Binary Large OBject) A
collection of binary data, such as a
graphic or audio clip, that is stored
in a single field of a database. 635
Blogs (WeB LOG) A publiclyaccessible personal journal posted
on the Web. Blogs often reflect the
personality of the author and are
typically updated daily. 6
Blu-ray A high-capacity storage
technology that stores up to 25 GB
per layer on Blu-ray discs or BDs.
Bluetooth A wireless technology
used in conjunction with standard
Ethernet networks that allows data
transfer rates between 200 and
700 Kbps up to a maximum range
of 35 feet. 267
Bot An intelligent agent that autonomously executes commands
behind the scenes. Sometimes
used to refer to a remote access
Trojan horse that infects computers. 164
Botnet A group of bots under the
remote control of a botmaster,
used to distribute spam and denialof-service attacks. 164
BPR (Business Process Redesign)
A technique for improving a business by making radical changes
to existing business procedures or
organizational structure. 569
Break reminder software
Software designed to signal users
when it is time to take a break in
order to avoid various repetitiveuse and stress injuries. 541
Bridge A device that connects two
similar networks by simply transferring data without regard to the
network format. 250
Broadband A term used to refer
to communications channels that
have high bandwidth. 251
Broadcast flag A status flag
inserted into the data stream of
digital television to indicate whether it can be copied. 465
Brute force attack A method of
breaking encryption code by trying
all possible encryption keys. 37
BSD license (Berkeley Software
Distribution) An open source
software license patterned on
a license originally used by the
University of California. 150
BMP The native bitmap graphic file
format of the Microsoft Windows
OS. 442
Buffer overflow A condition that
can be exploited by hackers in
which data overflows its intended
memory space to affect other variables. 723
Boolean operator A logical search
operator such as AND, OR, and
NOT that helps form complex queries. 379
Bulletin boards One of the
original communications and social
network technologies used on the
Internet. 6
Boot disk A floppy disk or CD that
contains the files needed for the
boot process. 229
Bus topology A network arranged
on a common backbone that connects all the network devices. If
the backbone fails, the network
becomes unusable. 250
Boot process The sequence of
events that occurs within a computer system between the time the
user starts the computer and the
time it is ready to process commands. 192
Bootstrap program A program
stored in ROM that loads and initializes the operating system on a
computer. 192
Business An organization that
seeks profit by providing goods
and services. 556
Button An onscreen graphical
control that can be clicked to initiate an action or command. 190
Byte An 8-bit unit of data that represents a single character. 26
C A compiled procedural language
that provides both high-level commands and low-level access to
hardware. 679
C# A derivative of C++ programming language developed by
Microsoft. 679
C An object-oriented version of
the C programming language. 679
C2C (Consumer-to-Consumer)
An e-commerce exchange of
products, services, or information
between consumers; for example,
online auctions. 384
Cable Internet service A type
of Internet connection offered to
subscribers by cable television
companies. 316
Cable modem A communications
device that can be used to connect
a computer to the Internet via the
cable TV infrastructure. 317
Cache Special high-speed memory that gives the CPU rapid access
to data that would otherwise be
accessed from disk. Also called
RAM cache or cache memory. 68
CAD software (Computer-Aided
Design software) A program
designed to draw 3-D graphics for
architecture and engineering tasks.
Capacitors Electronic circuit components that store an electrical
charge; in RAM, a charged capacitor represents an “on” bit, and a
discharged one represents an “off”
bit. 72
Card reader A device that can be
used to read and record data on
solid stage storage devices, such
as flash memory cards. 84
Cardinality A description of the
numeric relationship (one-to-one,
one-to-many, or many-to-many)
that exists between two record
types. 616
Case sensitive A condition in
which uppercase letters are not
equivalent to their lowercase counterparts. 35
Case sensitive database A database in which uppercase letters
are not equivalent to their lowercase counterparts. 636
CASE tool (Computer-Aided
Software Engineering) Software
that is used to summarize system
requirements, diagram current and
proposed information systems,
schedule development tasks, prepare documentation, and develop
computer programs. 574
Certification exam An objective test that verifies your level of
knowledge about a particular technology or subject. 516
CD (Compact Disc) An optical storage medium used to store digital
information. CD-ROMs are read
only. CD-Rs and CD-RWs can be
used to record data. 81
Channel conflict A situation in
which computer vendors from
retail, wholesale, or mail-order
channels compete for customers.
CD ripper software Software that
converts the music on an audio CD
to a WAV file. 139
Character data Letters, symbols,
or numerals that will not be used
in arithmetic operations (name,
Social Security Number, etc.). 24
CD-DA (Compact Disc Digital
Audio) The format for commercial
music CDs, typically recorded by
the manufacturer. 82
CD-R (Compact Disc Recordable)
CD-R is a type of optical disc
technology that allows the user to
record data once on a disc. 83
CD-ROM (Compact Disc ReadOnly Memory) The read-only data
format that is stamped onto a CD,
usually by the manufacturer. 83
CD-RW (Compact Disc
ReWritable) CD-RW is a type of
optical disc technology that allows
the user to write data onto a CD,
then change that data much like on
a floppy or hard disk. 83
Cell In spreadsheet terminology,
the intersection of a column and a
row. In cellular communications,
a limited geographical area surrounding a cellular phone tower.
Cell references The column letter
and row number that designate
the location of a worksheet cell.
For example, the cell reference C5
refers to a cell in column C, row 5.
Central processing unit (CPU)
The main processing unit in a computer, consisting of circuitry that
executes instructions to process
data. 15
Centralized processing An information system design in which
data is processed on a centrally
located computer, usually a mainframe. 577
Certificates of completion A certification offered to students who
successfully complete one or more
courses on a specific topic. 515
Change requests A formal, written
request to add, delete, or change
the features of an information system. 582
Chat Interactive real-time personto-person communication over a
network. 330
Chat groups A discussion in
which a group of people communicates online simultaneously. 6
Chief information officer (CIO)
The highest-ranking executive
responsible for information systems. 510
Chipmakers Companies that
design and manufacture computer
chips used in a wide variety of
computer-related applications. 498
Ciphertext An encrypted message. 285
Circuit switching The method
used by the telephone network to
temporarily connect one telephone
with another for the duration of a
call. 253
CISC (Complex Instruction Set
Computer) A general-purpose
microprocessor chip designed to
handle a wider array of instructions
than a RISC chip. 69
Class In object-oriented terminology, a group with specific
characteristics to which an object
belongs. 702
Class attribute In the context of
object-oriented programming, a
class attribute defines a characteristic for the members of a class.
Similar to a field in a database. 703
Class diagram A diagram that
provides the name of each object,
a list of the object’s attributes, a
list of methods, and an indication
of the cardinality between objects.
Class hierarchy Like a hierarchical diagram, a class hierarchy is
a set of related superclasses and
subclasses defined within the
object-oriented paradigm. 704
Click-through rate The number of
times Web site visitors click an ad
to connect to an advertiser’s site.
Client A computer or software that
requests information from another
computer or server. 18
Client-side script Scripting statements embedded in an HTML
document that are executed by a
client’s browser. 372
Client server mode A network
where processing is split between
workstations (clients) and the
server. 249
Clip art Graphics designed to be
inserted into documents, Web
pages, and worksheets, usually
available in CD-ROM or Webbased collections. 129
Cloud computing A grid of servers and storage devices harnessed
together to offer Internetaccessible computing services.
Cluster (1) A group of sectors
on a storage medium that, when
accessed as a group, speeds up
data access. (2) A group of two or
more devices connected together
to share processing, storage, input,
or output tasks. 219
COBOL (COmmon BusinessOriented Language) A high-level
programming language used for
transaction processing on mainframe computers. 679
Code In the context of computer
programming, code can be used
as a noun to refer to the set of
instructions that form a program, or
as a verb that refers to the process
of writing a program. 674
Code of ethics A set of guidelines
designed to help professionals
make on-the-job ethical decisions.
Codec Short for COmpressor/
DECompressor, a hardware or
software routine that compresses
and decompresses digital graphics, sound, and video files. 458
Color depth The number of bits
that determines the range of possible colors that can be assigned
to each pixel. For example, an 8-bit
color depth can create 256 colors.
Color palette The selection of colors used in a graphic. 437
COLOSSUS An early electronic
computer prototype that used
binary data representation and was
used during WWII to decode messages encrypted by ENIGMA. 490
Computer A device that accepts
input, processes data, stores data,
and produces output according to
a stored program. 14
Computer engineer A computer
professional who focuses on the
design and development of computer hardware and peripheral
devices. 512
Computer engineering A career
that focuses on the design and
development of computer hardware and peripheral devices. 514
Command-line interface A style
of user interface that requires
users to type commands, rather
than use a mouse to manipulate
on-screen controls. 189
Computer industry The corporations and individuals that supply
computer-related goods and
services to individuals and organizations. 497
Commercial software
Copyrighted computer applications
sold to consumers for profit. 149
Computer network A collection
of computers and related devices,
connected in a way that allows
them to share data, hardware, and
software. 7
Commit or rollback strategy A
procedure in transaction processing systems that will nullify, or roll
back, a transaction if all the steps
cannot be finalized, or committed
to. 560
Communications channel Any
pathway between the sender and
receiver; channel may refer to a
physical medium or a frequency.
Communications protocol A set
of rules that ensures the orderly
and accurate transmission and
reception of data. 252
Compiler Software that translates
a program written in a high-level
language into low-level instructions
before the program is executed. 30
Component Prewritten objects or
modules that programmers can
customize and add to their own
programs. 687
Compression ratio A ratio such
as 5:1 that indicates the ratio of
compression that has been applied
to a file. High compression ratios,
such as 35:1, indicate more compression so data can be contained
in smaller files. 458
Compute-intensive Refers to any
task, problem, or product that is
able to handle massive amounts
of data and complex mathematical
calculations. 19
Computed field A calculation that
a DBMS performs during processing and then temporarily stores in a
memory location. 635
Computer operator A computer
professional who works directly
with and maintains mainframe
computers. 511
Computer professional Any
person whose primary occupation
involves one or more aspects of
computer technology. 510
Computer program A detailed set
of instructions that tells a computer
how to solve a problem or carry out
a task. 15
Computer programmer A person
who designs, codes, and tests
computer programs. 511
Computer programming The
process of designing, coding, and
testing computer programs. 675
Computer retail store A store that
typically sells several brands of
computers from a store-front location, such as a mall or shopping
center. 506
Computer retailers Also called
resellers, companies that sell computer-related products. 498
Computer salesperson A computer professional who sells
computers and computer-related
products. Also called a sales rep.
Computer science A career field
that focuses on developing fast
and efficient computers from their
construction to their programming
and operating systems. 514
Computer virus A program
designed to attach itself to a file,
reproduce, and spread from one
file to another, destroying data,
displaying an irritating message,
or otherwise disrupting computer
operations. 163
Computer worm A software program designed to enter a computer
system, usually a network, through
security “holes” and then replicate
itself. 163
Computer-aided music software
Software used to generate unique
musical compositions with a simplified set of tools, such as tempo,
key, and style. 139
Concurrent-use license Legal
permission for an organization to
use a certain number of copies of
a software program at the same
time. 147
Confidentiality The obligation not
to disclose willingly any information
obtained in confidence. 526
Constant In the context of programming, a constant represents
an unchanging value. In contrast,
the data held in a variable can
change. 680
Container formats File formats,
typically for storing sound and
video, that contain one or more
types of data that is compressed
using standard codecs. 457
Contract worker A computer
professional who does not work
directly for one company and often
is paid by the job instead of a salary. 513
Control In the context of graphical user interfaces, a control is
a screen-based object whose
behavior can be specified by a programmer. 683
Control structures Instructions
that specify the sequence in which
a program is to be executed:
sequence, selection, and repetition
controls. 695
Cookie A message sent from
a Web server to a browser and
stored on a user’s hard disk, usually containing information about
the user. 367
Copy generation management A
digital rights management technology that controls the number of
times that a CD, DVD, or tape can
be recopied. 467
Copy protection Any digital rights
management technology designed
to prevent duplication of digital
content; also referred to as copy
prevention or copy restriction. 466
Copyright A form of legal protection that grants certain exclusive
rights to the author of a program or
the owner of the copyright. 146
Copyright notice A line such as
“Copyright 2007 by ACME CO”
that identifies a copyright holder.
CPL (Combined Programming
Language) A programming language developed in the 1960s for
scientific and commercial applications. 679
Cyberspace A term coined by
William Gibson and now used
to refer to information and other
resources offered in virtual “worlds”
based on computer networks and
the Internet. 7
Data In the context of computing
and data management, data refers
to the symbols that a computer
uses to represent facts and ideas.
Data bus An electronic pathway or
circuit that connects the electronic
components (such as the processor and RAM) on a computer’s
motherboard. 94
Data center A specialized facility designed to house and protect
computer systems and data. 592
Data dependence The undesirable situation in which data and
program modules become so interrelated that modifications become
difficult. 624
Data flow On a DFD, a line with an
arrow on the end, which indicates
the direction in which data flows.
CPU (Central Processing Unit) The
main processing circuitry within a
computer or chip that contains the
ALU, control unit, and registers. 15
Data flow diagram (DFD) A
diagram that illustrates how data
moves through an information system. 572
CRM (Customer Relationship
Management) A technique for
increasing profitability by improving
the relationship between a company and its customers. 569
Data fork An element of the
Macintosh file system that comprises the part of the file that contains
the text, audio, or video data; contrast with resource fork. 200
Cropping The process of selecting and removing part of an image.
Data independence The separation of data from the programs that
manipulate the data. 624
Cryptographic algorithm A specific procedure for encrypting and
decrypting data. 285
Data mining Analyzing data to
discover patterns and relationships
that are important to decision making. 612
Cryptographic key A specific
word, number, or phrase that must
be used to encrypt or decrypt data.
Control unit The part of the
microprocessor that directs and
coordinates processing. 31
CSMA CD (Carrier Sense Multiple
Access with Collision Detection)
A method of responding to an
attempt by two devices to use a
data channel simultaneously. Used
by Ethernet networks. 259
Convergence In the context of
technology, the melding of digital
devices into a single platform that
handles a diverse array of digital
content, such as cell phones also
playing digital music and displaying
digital video. 8
CSS (1) (Content Scramble
System) A DRM technology
designed to prevent unauthorized duplication of DVDs. (2)
(Cascading Style Sheets) A Web
technology for specifying Web
page styles. 468
Data redundancy Repetition of
data within a database. 637
Data representation The use of
electronic signals, marks, or binary
digits to represent character,
numeric, visual, or audio data. 22
Data store A filing cabinet, disk,
or tape that holds data. On a DFD,
usually represented by an openended rectangle. 572
Data transfer rate The amount
of data that a storage device can
move from a storage medium to
computer memory in one time unit,
such as one second. 77
Data type The characteristics of
data that can be entered into a field
in a data file; data types include
character, numeric, date, logical,
and memo. 634
Data view A mechanism typically
applied to databases in which
different forms or reports are displayed depending on a query, and
can be customized for different
categories of users. 655
Data warehouse A collection of
information organized for analysis.
Database A collection of information that might be stored in more
than one file or in more than one
record type. 134, 610
Database administrator A person
who supervises database design,
development, testing, and maintenance. 511
Database audit A procedure that
monitors or records user activity
within a database, often for security purposes. 656
Database client software
Software that allows any remote
computer or network workstation to
access data in a database. 626
Database index A file of keys
and pointers used to display a list
of database records organized
according to the data in one or
more fields. 639
Database model The underlying structure or category of a
database, such as relational, hierarchical, network, or object. 614
Database server software
Software that is designed to manage a large number of records and
perform many simultaneous transactions. 626
Database software Software
designed for entering, finding,
organizing, updating, and reporting
information stored in a database.
Database structure The arrangement of the fields, tables, and
relationships in a database. 633
Date data type A data type that
indicates that the data in a field
represents a date. 634
DBMS (DataBase Management
System) Application software that
assists the user in manipulating,
storing, and maintaining database
files. 625
de Colmar’s Arithmometer The
first commercially successful,
mass-produced mechanical calculator. 487
Debugger A programming utility
that helps programmers test and
correct a computer program. 685
DEC PDP-8 Built by Digital
Equipment Corp. and introduced in
1965, the PDP-8 was the first commercially successful minicomputer.
Decision model A numerical representation of a realistic situation,
such as a cash flow model of a
business. 562
Decision query A question or set
of instructions that describes the
data that needs to be gathered to
make a decision. 562
Decision support system (DSS)
A computer system that allows
decision makers to manipulate
data directly, to incorporate data
from external sources, and to
create data models or “what-if”
scenarios. 562
Decision support worksheet A
comparison table used by a project team to evaluate solutions by
assigning a score and a weight to
each criterion. 579
Decision table A tabular method
for listing rules and specifying the
outcomes for various combinations
of rules. 714
Declarative paradigm An
approach to the programming process in which a programmer writes
a program by specifying a set of
statements and rules that define
the conditions for solving a problem. 713
Decryption The process of converting ciphertext into plaintext.
DeCSS A program that defeats the
CSS copy protection and allows
users to copy DVDs. 468
Defensive programming An
approach to programming that
attempts to identify possible
threats and proactively create code
to avoid them. 726
Defragmentation utility A software tool used to rearrange the
files on a disk so that they are
stored in contiguous clusters. 221
DELETE An SQL keyword that
removes a record from a table. 646
Demoware Commercial software
that is distributed free, but expires
after a certain time limit and then
requires users to pay to continue
using it. 149
Design phase The process a
project team uses for figuring out
how to implement a new system.
This phase is undertaken after the
analysis phase is complete. 576
Desktop A term used to refer to
the main screen of a graphical
user interface that can hold objects
such as folders and widgets. 189
Desktop computer A computer
that is small enough to fit on a desk
and built around a single microprocessor chip. 58
Desktop operating system An
operating system specifically
designed for use on personal computers, such as Windows 7 or Mac
OS X. 188
Desktop publishing software
(DTP) Software used to create
high-quality output suitable for
commercial printing. DTP software
provides precise control over layout. 125
Desktop video Videos stored in
digital format on a PC’s hard disk
or CD. 452
Desktop widget An interactive
program that is represented on
the desktop by an information-rich
graphic, such as a clock or graph.
Detail reports Organized lists
generated by a management information system (for example, an
inventory list). 560
Device driver A type of system
software that provides the computer with the means to control a
peripheral device. 124
DHCP (Dynamic Host
Configuration Protocol) A set of
rules that allow network client computers to find and use the Internet
address that corresponds to a
domain name. 255
DHTML (Dynamic HTML) A collection of technologies such as
HTML and JavaScript used to create animated and interactive Web
pages. 362
Dial-up connection A connection
that uses a phone line to establish
a temporary Internet connection.
Dialog box An element of graphical user interfaces that appears
in a window and requests
information, such as command
parameters, from a user. 191
Dictionary attack A method of
discovering a password by trying
every word in an electronic dictionary. 36
Difference Engine A mechanical calculator design created by
Charles Babbage that was to use
steam power for fully automatic
operation. It was never built. 488
Differential backup A copy of all
the files that changed since the last
full backup of a disk. 227
Digital audio Music or voice that
has been digitized into files using
sampling techniques; sometimes
referred to as waveform audio. 422
Digital camera A camera that
takes and stores a digital image
instead of recording onto film. 431
Digital certificate A security
method that identifies the author
of an ActiveX control. A computer
programmer can “sign” a digital
certificate after being approved.
Digital content A term popularized
in the context of multimedia that
refers to digital music, video, text,
and images. 464
Digital data Text, numbers,
graphics, or sound represented
by discrete digits, such as 1s and
0s. 22
Digital divide A gap between
those who have access to digital
technologies and those who do
not. 12
Digital revolution A set of significant changes brought about
by computers and other digital
devices during the second half of
the 20th century. 4
Digital rights management
(DRM) A set of techniques and
technologies designed to discourage and prevent unauthorized
duplication of digital content. 464
Digital signal processor Circuitry
that is used to process, record, and
play back audio files. 424
Digital video A series of still
frames stored sequentially in digital
format by assigning values to each
pixel in a frame. 452
Digital video recorder (DVR) A
time-shifting device, such as a
TiVo, that captures television and
cable TV programs then stores
them on a built-in hard disk for
later viewing. 455
Digital watermark A digital rights
management technology that
inserts a hidden signal into multimedia content as an identifying
marker that can be tracked or verified. 465
Digitization To convert non-digital
information or media to a digital
format through the use of a scanner, sampler, or other input device.
Digitizing tablet A device that
provides a flat surface for a paperbased drawing and a “pen” used
to create hand-drawn vector drawings. 446
Dimensional database A database often created for data
analysis that has a more complex
structure than a simple two-dimensional table. 619
Direct conversion The simultaneous deactivation of an old
computer system and activation of
a new one. 586
Directory In the context of computer file management, a list of
files contained on a computer storage device. 206
Disaster recovery plan A stepby-step plan that describes the
methods used to secure equipment
and data against disasters, and
how to recover from disasters. 593
Disk image A bit-by-bit copy of
the contents of a disk created for
backup, archiving, or duplication of
data. 230
Disk mastering The process of
creating a CD or DVD by selecting
all the files to be copied and then
writing them in a single session.
Contrast with packet writing. 219
Disk partition An area of a hard
disk created by dividing a large
hard disk into several smaller
virtual ones, such as when using
two operating systems on a single
computer. 205
Distributed database A database
that is stored on different computers, on different networks, or in
different locations. 626
Distributed processing An information system design in which
data is processed on multiple
workstations or servers. 577
Distribution media One or more
floppy disks, CDs, or DVDs that
contain programs and data, which
can be installed on a hard disk.
DOCSIS (Data Over Cable Service
Interface Specification) A security technology used for filtering
packets and maintaining customer
privacy on cable Internet services.
Document production software
Computer programs that assist the
user in composing, editing, designing, and printing documents. 125
Domain name Short for “fully qualified domain name”; an identifying
name by which host computers on
the Internet are familiarly known
(for example, “”).
Domain name server A computer
that hosts the domain name system database. 308
Domain Name System (DNS)
A large database of unique IP
addresses that correspond with
domain names. 308
DOS (Disk Operating System) The
operating system software shipped
with the first IBM PCs, then used
on millions of computers until the
introduction of Microsoft Windows.
Dot matrix printer A printer that
creates characters and graphics by
striking an inked ribbon with small
wires called “pins,” generating a
fine pattern of dots. 92
Dot pitch The diagonal distance
between colored dots on a display
screen. Measured in millimeters,
dot pitch helps to determine the
quality of an image displayed on a
monitor. 90
Double layer DVD A DVD that
essentially stacks data in two different layers on the disk surface to
store 8.5 GB, twice the capacity of
a standard DVD. 81
Download The process of transferring a copy of a file from a
remote computer to a local computer’s storage device. 8
Downstream speed The rate
at which transmitted data flows
from a host or server to a local
computer (contrast with upstream
speed). 311
Drawing software Programs that
are used to create vector graphics with lines, shapes, and colors,
such as logos or diagrams. 137,
Drive bays Areas within a
computer system unit that can
accommodate additional storage
devices. 86
Drive mapping A process of
assigning a drive letter to a storage
device located on a different network workstation. 276
DRM individualization A digital
rights management concept that
ties access to digital content to
individual subscribers, whose
access can be tracked, if necessary. 470
DSL (Digital Subscriber Line) A
high-speed Internet connection
that uses existing telephone lines,
requiring close proximity to a
switching station. 314
DSL filters Devices that are commonly used to prevent interference
from analog devices, such as telephones, that use the same line as
DSL devices. 315
DSL modem A device that sends
and receives digital data to and
from computers over telephone
lines. 315
Dual boot A computer that contains more than one operating
system and can boot into either
one. 199
Dual-channel architecture The
use of two channels to quickly
transport data between RAM and
the processor. 73
Duplex printer A printer that prints
on both sides of the paper in a
single pass. 93
Duty cycle A measurement of how
many pages a printer is able to
produce per day or month. 93
DVD (Digital Video Disc or Digital
Versatile Disc) An optical storage
medium similar in appearance and
technology to a CD but with higher
storage capacity. 81
DVD authoring software
Computer programs that offer tools
for creating DVD menus and transferring digital video onto DVDs that
can be played in a computer or
standalone DVD player. 140
DVD image A series of files
containing the data needed for a
video DVD. The image is typically
stored on a hard disk for testing
before the image is transferred or
“burned” to the DVD. 462
DVD R (Digital Versatile Disc
Recordable) A DVD data format
that, similar to CD-R, allows
recording data but not changing
data on a DVD. 83
DVD RW (Digital Versatile Disc
ReWritable) A DVD technology
that allows recording and changing
data on DVDs. 83
DVD-R (Digital Versatile Disc
Recordable) A DVD data format
that, similar to CD-R, allows writing
data but not changing data on a
DVD. 83
DVD-ROM A DVD disc that
contains data that has been permanently stamped on the disk
surface. 83
DVD-RW A DVD technology
similar to DVD+RW that allows
recording and changing data on
DVDs. 83
DVD-video A DVD format used
for commercial movies shipped on
DVDs. 82, 452
Dynamic IP address A temporarily assigned IP address usually
provided by an ISP. 306
Dynamic Web publishing A way
of displaying data from a database
as customized Web pages, which
are generated as the page is sent
to the browser. 628
E-commerce Short for electronic
commerce; the business of buying
and selling products online. 384
E-mail Messages that are transmitted between computers over a
communications network. Short for
electronic mail. 6
E-mail account A service that provides users with an e-mail address
and a mailbox. 392
E-mail attachment A separate file
that is transmitted along with an
e-mail message. 393
E-mail authentication A technology designed to defeat spam
by checking to make sure that
messages originate from valid
addresses. 403
E-mail client software Software
that is installed on a client computer and has access to e-mail
servers on a network. This software is used to compose, send,
and read e-mail messages. 398
E-mail message A computer file
containing a letter or memo that
is transmitted electronically via a
communications network. 392
E-mail servers A computer that
uses special software to store and
send e-mail messages over the
Internet. 397
E-mail system The collection of
computers and software that works
together to provide e-mail services.
EAI (Enterprise Application
Integration) The use of networked
software and databases for providing unrestricted sharing of data in
an organization. 569
Ear training software Software
used by musicians to develop
tuning skills, recognize keys, and
develop musical skills. 139
EBCDIC (Extended Binary-Coded
Decimal Interchange Code) A
method by which digital computers, usually mainframes, represent
character data. 25
EDGE (Enhanced Data Rates
for GSM Evolution) A cell phone
technology that offers faster data
transport than basic GSM service.
EDI (Electronic Data Interchange)
The ability to transfer data between
different companies using networks that enable companies to
buy, sell, and trade information.
Educational software Software
used to develop and practice skills.
EEPROM (Electrically Erasable
Programmable Read-Only
Memory) A type of non-volatile
storage typically used in personal
computers to store boot and BIOS
data. 74
Eiffel An object-oriented programming language with syntax similar
to C. 679
Electronic wallet Software that
stores personal information used
during e-commerce transactions.
Encapsulation An object-oriented
technique in which the internal
details of an object are “hidden”
in order to simplify their use and
reuse. 712
Encryption The process of scrambling or hiding information so that it
cannot be understood without the
key necessary to change it back
into its original form. 285
ENIAC (Electronic Numerical
Integrator and Computer) An early
electronic computer prototype that
was designed for the U.S. Army
for calculating trajectories and was
completed in 1945. 490
EV-DO (Evolution-Data Optimized)
A technology used by cell phone
companies to offer faster data
transport than basic CDMA service. 327
Event In the context of programming, an action or change in
state, such as a mouse click, that
requires a response from the computer. 684
Event-driven paradigm An
approach to programming in which
a programmer creates programs
that continually check for, and
respond to, program events, such
as mouse clicks. 685
Event-handling code The program segment that instructs the
computer how to react to events,
such as mouse clicks. 684
Enterprise information system
The use of one or more information systems that share data and
typically provide information to
hundreds or thousands of users
who may be located in diverse
locations. 559
Exception report A report generated by a management information
system, listing information that
is outside normal or acceptable
ranges, such as a reorder report
showing low-stock inventory items.
Entity-relationship diagram
(ERD) A diagram that graphically
depicts relationships between
record types. 616
Executable file A file, usually
with an .exe extension, containing
instructions that tell a computer
how to perform a specific task. 152
Equipment manufacturers
Companies that design and manufacture computer hardware and
communication products. 498
Executive dashboard software
Software designed for managers that typically uses widgets to
graphically display statistics relevant to business decisions. 613
Ergonomics The science of
designing safe, comfortable,
efficient machines and tools for
human use. 537
ERP (Enterprise Resource
Planning) A system of business
management that integrates all
resources of a business, including
planning, manufacturing, sales,
and marketing. 569
Ethernet A type of network in
which network nodes are connected by coaxial cable or twisted-pair
wire; the most popular network
architecture, it typically transmits
data at 10 or 100 megabits per
second. 258
Ethernet adapter A type of network interface card designed to
support Ethernet protocols. 261
EULA (End User License
Agreement) A type of software
license that appears on the computer screen when software is
being installed and prompts the
user to accept or decline. 148
Executive information system
(EIS) A special type of a decision
support system that is designed
to provide senior managers with
information relevant to strategic
management activities. 562
Expansion bus The segment of
the data bus that transports data
between RAM and peripheral
devices. 94
Expansion card A circuit board
that is plugged into a slot on a
computer motherboard to add
extra functions, devices, or ports.
Expansion port A socket into
which the user plugs a cable from
a peripheral device, allowing data
to pass between the computer and
the peripheral device. 95
Expansion slot A socket or “slot”
on a PC motherboard designed
to hold a circuit board called an
expansion card. 95
Expert system A computer system incorporating knowledge from
human experts, and designed to
analyze data and produce a recommendation or decision (also
called knowledge-based system).
Expert system shell A software
tool used for developing expert
system applications. 564
Extended ASCII Similar to ASCII
but with 8-bit character representation instead of 7-bit, allowing for an
additional 128 characters. 24
External entity A person, organization, or device that exists
outside an information system, but
provides it with input or receives
output. On a DFD, usually represented by a square. 572
External information Information
obtained by organizations from
outside sources. 559
Fact In the context of Prolog programming, a fact is a statement
incorporated into a program that
provides basic information for solving a problem. 713
FairPlay A digital rights management technology used to protect
content distributed at the iPod
store. 470
FAT32 A file system used by
Microsoft Windows 95, 98, and Me
operating systems to keep track of
the name and location of files on a
hard disk. 219
Feature creep An undesirable
occurrence during information
system development when users,
customers, or designers attempt to
add features after the final specifications have been approved. 582
Field The smallest meaningful unit
of information contained in a data
file. 134, 615
Field format A specification for the
way that data is displayed on the
screen and printouts, usually using
a series of Xs to indicate characters and 9s to indicate numbers.
Field name A name that identifies
the contents of a field. 615
Field validation rule A specification that a database designer sets
up to filter the data entered into a
particular field. 636
Fifth-generation languages
Either declarative languages, such
as Prolog, or programming languages that allow programmers
to use graphical or visual tools to
construct programs. 678
File A named collection of data
(such as a computer program,
document, or graphic) that exists
on a storage medium, such as a
hard disk or CD. 15
File Allocation Table (FAT) A
special file that is used by some
operating systems to store the
physical location of all the files on
a storage medium, such as a hard
disk or floppy disk. 219
File compression utility A type
of data compression software that
shrinks one or more files into a
single file occupying less storage
space than the files did separately.
File date The date that a file was
created or last modified. 206
File extension A set of letters and/
or numbers added to the end of a
file name that helps to identify the
file contents or file type. 204
File format The method of organization used to encode and store
data in a computer. Text formats
include DOC and TXT. Graphics
formats include BMP, TIFF, GIF,
and PCX. 207
File header Hidden information
inserted at the beginning of a file to
identify its properties, such as the
software that can open it. 207
File management utilities
Software, such as Windows
Explorer, that helps users locate,
rename, move, copy, and delete
files. 214
File-naming conventions A set of
rules, established by the operating
system, that must be followed to
create a valid file name. 204
File server A network computer
that is dedicated to storing and
distributing files to network clients.
File shredder software Software
designed to overwrite sectors of a
disk with a random series of 1s and
0s to ensure deletion of data. 220
File size The physical size of a file
on a storage medium, usually measured in kilobytes (KB). 206
File specification A combination
of the drive letter, subdirectory, file
name, and extension that identifies
a file (such as A:.doc). Also called
a “path.” 206
File Synchronization The process
of keeping two sets of files updated
so they are the same; used to synchronize files between a computer
and PDA or backup device. 224
File system A method that is used
by an operating system to keep
files organized. 219
File tag In the context of Windows,
a piece of information that
describes a file. Tags, such as
Owner, Rating, and Date Taken,
can be added by users. 212
Firewall Software or hardware
designed to analyze and control
incoming and outgoing packets on
a network, used to enhance security by filtering out potential intrusion
attempts. 342
First-generation computers
Computers that use vacuum tubes
to process and store data such as
First-generation languages
Machine languages that were
available for programming the earliest computers. 677
Fixed Internet access Any
Internet access service designed
to be used from a fixed, non-portable location, i.e., dial-up, ISDN,
DSL, and cable Internet service.
Fixed-length field A field in a data
file that has a predetermined number of characters. 615
Fixed wireless Internet service
High-speed, wide area Internet
service alternative to cable and
DSL that transmits data wirelessly
using RF signals. 320
Flash A file format developed by
Macromedia and marketed by
Adobe that has become popular for
animations on Web pages. 448
Flash cookie A cookie-like object
that is created and used by the
Adobe Flash Player; also referred
to as a local shared object. 402
Flash Video A popular video
file format developed by Adobe
Systems and used for Web-based
video at sites such as YouTube.
Flat file A single file that is the
electronic version of a box of index
cards, in which all records use the
same record format. 614
Floppy disk A removable magnetic storage medium, typically
3.5 in size, with a capacity of 1.44
MB. 80
Flowchart In software engineering, a graphical representation of
the way a computer should progress from one instruction to the
next when it performs a task. 692
Folder The subdirectories, or subdivisions of a directory, that can
contain files or other folders. 206
Font A typeface or style of lettering, such as Arial, Times New
Roman, and Gothic. 127
Footer Text that appears in the
bottom margin of each page of a
document. 128
Form design grid A visual
programming tool that allows
programmers to drag and drop
controls to form the user interface
for a program. 683
Form factor The configuration of a
computer’s system unit; examples
include tower, mini-tower, pizza
box, and cube. 58
Formal methods Mathematicallybased techniques for specifying
and developing reliable and robust
software or hardware. 725
Format (1) Specified properties for
setting a document’s appearance.
(2) File type, i.e., BMP format. 127
Format shifting The process of
converting media into a different
file format to use it on a device
other than the original one. 465
Formatting The process of dividing a disk into sectors so that it can
be used to store information. 218
Formula In spreadsheet terminology, a combination of numbers and
symbols that tells the computer
how to use the contents of cells in
calculations. 131
Fortran (FORmula TRANslator)
The oldest high-level computer
programming language still in use
for scientific, mathematical, and
engineering programs. 679
Fourth-generation computers Computers, such as today’s
personal computer, servers, and
mainframes, that use a general
purpose microprocessor for data
processing. 494
Fourth-generation languages
Programming and query languages, such as SQL and RPG, that
more closely resemble human languages than did third-generation
languages. 678
Fragmented files Files stored in
scattered, noncontiguous clusters
on a disk. 221
Frame rate Refers to the number
of frames displayed per second in
a video or film. 456
Frames An outline or boundary,
frequently defining a box. For
document production software, a
pre-defined area into which text or
graphics may be placed. 129
Gantt chart A chart that depicts a
project schedule by showing each
task as a bar on the chart. 570
Gateway A network device that
connects two dissimilar networks
even if the networks use different
protocols. 251
GIF (Graphics Interchange Format)
A bitmap graphics file format, popularized by CompuServe, for use
on the Web. 442
Gigabit (Gb or Gbit) Approximately
one billion bits, exactly 1,024
megabits. 26
Gigabyte (GB) Approximately one
billion bytes; exactly 1,024 megabytes (1,073,741,824 bytes). 26
Graphics card A circuit board
inserted into a computer to handle
the display of text, graphics, animation, and videos. Also called a
“video card.” 91
Graphics processing unit (GPU)
A microprocessor dedicated to rendering and displaying graphics on
personal computers, workstations,
and videogame consoles. 91
Graphics software Computer
programs for creating, editing, and
manipulating images; types include
paint software and drawing software. 137
Grayscale palette Digital images
that are displayed in shades of
gray, black, and white. 438
Freeware Copyrighted software
that is given away by the author or
copyright owner. 150
Gigahertz (GHz) A measure of
frequency equivalent to one billion
cycles per second. 67
Front side bus (FSB) The data
bus that carries signals between
the CPU and RAM, disks, or
expansion slots. 68
Global update In the context of
databases, changing data in more
than one record at a time, i.e.,
changing the due date in all the
records. 650
Grid computing system A network of computers harnessed
together to perform processing
tasks; distributed grids like the
SETI project use ad hoc and
diverse Internet connected computers; also see cloud computing.
Globalization A group of social,
economic, political, and technological interdependencies linking
people and institutions from all
areas of the world. 12
Groupware Software that enables
multiple users to collaborate on a
project, usually through a pool of
data that can be shared by members of the workgroup. 121
Goal In the context of Prolog programming, a query that searches
for an answer based on a set of
Prolog facts and rules. 715
Handheld computer A small,
pocket-sized computer that is
designed to run on its own power
supply and provide users with
basic applications. 19
FTP (File Transfer Protocol) A
set of rules for uploading and
downloading files between a client
computer and a remote server. 336
FTP client The computer or software that is used to access an FTP
server and transfer files to it or
from it. 336
FTP server A computer that stores
and distributes files to remote client computers. 336
Full backup A copy of all the files
for a specified backup job. 226
Full system backup A backup
that contains all of the files on the
hard disk, including the operating
system. 228
Fully justified The horizontal
alignment of text where the text
terminates exactly at both margins
of the document. 128
Function In spreadsheet software,
a built-in formula for making a calculation. In programming, a section
of code that manipulates data, but
is not included in the main sequential execution path of a program.
131, 696
Functional paradigm An
approach to programming that
emphasizes the use of expressions
called “functions.” 713
Fuzzy logic A technique used
by an expert system to deal with
imprecise data by incorporating the
probability that the input information is correct. 564
Google Chrome OS An operating
system based on the Linux kernel;
designed for netbooks dedicated
to using the Web and Web-based
applications. 201
GPL (General Public License) A
software license often used for
freeware that insures it will be
distributed freely whether in its
original form or as a derivative
work. 151
Gradient A smooth blending of
shades of different colors, from
light to dark. 447
Grammar checker A feature of
word processing software that
coaches the user on correct sentence structure and word usage.
Graphical user interface (GUI)
A type of user interface that features on-screen objects, such as
menus and icons, manipulated by
a mouse. 189
Graphics Any picture, photograph,
or image that can be manipulated
or viewed on a computer. 137
Handshaking A process where a
protocol helps two network devices
communicate. 252
Hard disk controller A circuit
board in a hard drive that positions
the disk and read-write heads to
locate data. 79
Hard disk drive A computer
storage device that contains a
large-capacity rigid storage surface sealed inside a drive case.
Typically used as the primary storage device in personal computers.
Hard disk platter The component
of a hard disk drive on which data
is stored. It is a flat, rigid disk made
of aluminum or glass and coated
with a magnetic oxide. 78
Harvard Mark I An early computer
prototype also known as the ASCC
(Automatic Sequence Controlled
Calculator) developed by IBM that
used decimal data representation
rather than binary. 490
Hash value A number produced
by a hash function to create a
unique digital “fingerprint” that can
be used to allow or deny access to
a software application. 157
Hover ad An advertisement, created using interactive Web tools
such as DHTML, that appears
on top of Web pages sometimes
obscuring parts of them. 385
Hypertext link Also referred to
simply as a “link,” an underlined
word or phrase on a Web page
that, when clicked, takes you to a
designated URL. 361
Haskell A functional programming
language. (See functional para
digm.) 679
HSUPA (High Speed Uplink
Packet Access) A data transmission standard used by cell phone
companies for high-speed data
transport. 327
IBM 360 An early third-generation
computer that is widely regarded
as the first general purpose mainframe. 493
HDCP (High-bandwidth Digital
Content Protection) A form of copy
protection designed to prevent digital content from being transmitted
over a DVI interface to a non-complying display device. 466
HTML (Hypertext Markup
Language) A standardized format
used to specify the layout for Web
pages. 362
Head crash A collision between
the read-write head and the
surface of the hard disk platter,
resulting in damage to some of the
data on the disk. 80
HTML conversion utility Utility
software that converts documents,
spreadsheets, and databases into
HTML files that can be posted on
the Web. 369
Header Text that is placed in the
top margin of each page of a document. 128
HTML document A plain text or
ASCII document with embedded
HTML tags that dictate formatting
and are interpreted by a browser.
Help desk Part of the Information
Systems department designated to
assist users experiencing problems
with their computers or applications. 588
Helper application An external
program that is used to display
content retrieved using a Web
browser. 367
Hierarchical database A database model in which record types
are arranged as a hierarchy, or
tree, of child nodes that can have
only one parent node. 617
High-level language A programming language that allows a
programmer to write instructions
using human-like language. 676
Hollerith Tabulating Machine A
mechanical calculator first used in
1890 by the U.S. Census Bureau
that used punch cards to store
data and led to the creation of IBM.
Home computer system A personal computer designed for use
with mainstream computer applications such as Web browsing,
e-mail, music downloads, and productivity software. 60
HomePNA A network technology that uses a building’s existing
phone lines to connect nodes. 257
Horizontal market software
Any computer program that can
be used by many different kinds
of businesses (for example, an
accounting program). 142
HTML forms An HTML document containing blank boxes that
prompt users to enter information
that can be sent to a Web server.
Commonly used for e-commerce
transactions. 371
HTML script A series of instructions embedded directly into the
text of an HTML document or a file
referenced from an HTML document. 371
HTML tags A set of instructions,
such as <B>, inserted into an
HTML document to provide formatting and display information to a
Web browser. 362
HTTP (Hypertext Transfer
Protocol) The communications
protocol used to transmit Web
pages. HTTP:// is an identifier that
appears at the beginning of Web
URLs (for example, http //www. 364
HTTP status code A code used
by Web servers to report the status
of a browser’s request. The HTTP
status code 404 means document
not found. 365
Hyperlink data type A data type
assigned to fields that store URLs
used to link directly to a Web page.
Hypertext A way of organizing a collection of documents by
assigning an address to each and
providing a way to link from one
address to another. 360
IBM AS 400 IBM’s most successful
legacy minicomputer. 493
IBM PC An early, commercially
successful personal computer
system that featured a 4.77 MHz
Intel 8088 processor, 64 KB RAM,
and a floppy disk drive. Ancestor to
today’s PCs. 495
IBM PC XT An early, commercially
successful personal computer
system that included a hard disk
drive. 495
ICANN (Internet Corporation for
Assigned Names and Numbers)
A global organization that coordinates the management of the
Internet’s domain name system,
IP addresses, and protocol parameters. 309
Icon A graphical object, such as
those that represent programs or
folders on a computer desktop.
IDE (Integrated Development
Environment) A set of programming tools, typically including
editor, compiler, and debugger,
packaged into an application for
creating programs. 686
Identity theft An illegal practice in
which a criminal obtains enough
information to masquerade as
someone. 36
Image compression Any technique that is used to reduce the
size of a file that holds a graphic.
IMAP (Internet Messaging Access
Protocol) A protocol similar to POP
that is used to retrieve e-mail messages from an e-mail server, but
offers additional features, such as
choosing which e-mails to download from the server. 397
Implementation phase A set of
tasks performed with the supervision of a system development
project team in which a new information system is constructed. 583
Incremental backup A backup
that contains files that changed
since the last backup. 228
Inference engine Software that
can analyze and manipulate a
knowledge base or expert system.
Information engineering methodology A method of developing
an information system that focuses
on data the information system
collects before finding ways to process that data. 570
Information system A computer
system that collects, stores, and
processes information, usually
within the context of an organization. 556
Information systems (IS or CIS)
The career field or academic major
that focuses on developing computer systems and networks for
businesses. 514
Information technology (1) A
degree program that focuses
on the computer equipment and
software used by businesses and
organizations. (2) The use of computers and software to manipulate
data. 514
Information technology industry
(IT industry) Companies involved
in the development, production,
sales, and support of computers
and software. 497
Infrared light A transmission technology that uses a frequency range
just below the visible light spectrum to transport data. 265
Inheritance In object-oriented
terminology, a method for defining new classes of objects based
on the characteristics of existing
classes. 704
Ink jet printer A non-impact printer
that creates characters or graphics
by spraying liquid ink onto paper or
other media. 92
Input noun, the information that is
conveyed to a computer. verb, to
enter data into a computer. 15
INSERT An SQL keyword that
adds a record to a table. 647
Instant messaging A private chat
in which users can communicate
with each other in real time using
electronically transmitted text messages. 330
Instantiation A programming term
that refers to the process of assigning a value to a variable. 717
Instruction cycle The steps followed by a computer to process
a single instruction; fetch, interpret, execute, then increment the
instruction pointer. 32
Instruction set The collection of
instructions that a CPU is designed
to process. 30
Integer data type A numeric data
type used for fields that contain
whole numbers. 634
Integrated circuit (IC) A thin slice
of silicon crystal containing microscopic circuit elements such as
transistors, wires, capacitors, and
resistors; also called chips and
microchips. 27
Integration testing The testing of
completed modules of an application to ensure that they operate
together correctly. 584
Intellectual property A legal
concept that refers to ownership
of intangible information, such as
ideas. 11
Internal information Information
obtained by an organization from
its own resources, such as from
accounting or personnel systems.
Internet The worldwide communication infrastructure that links
computer networks using TCP/IP
protocol. 6
Internet backbone The major
communications links that form the
core of the Internet. 303
Internet service provider (ISP)
A company that provides Internet
access to businesses, organizations, and individuals. 303
Interpreter A program that converts high-level instructions in a
computer program into machine
language instructions, one instruction at a time. 30
iPhone OS X A streamlined version of the Mac OS X operating
system, designed for the iPhone.
ISDN (Integrated Services Digital
Network) A telephone company
service that transports data digitally over dial-up or dedicated lines.
ISDN terminal adapter A device
that connects a computer to a telephone jack and translates the data
into a signal that can travel over an
ISDN connection. 314
Iteration In the context of computer programming, a section of
code that is repeated; also called a
loop. 698
Iterative SDLC A series of phases
that outlines the development
process of an information system
where each phase is allowed to
repeat as needed in the development process. 566
Java A platform-independent,
object-oriented, high-level programming language based on
C++, typically used to produce
interactive Web applications. 679
Java applet Small programs that
add processing and interactive
capabilities to Web pages. 372
JIT (Just In Time) A manufacturing
system in which the parts needed
to construct a product are received
at the assembly site only as needed. 569
Job search agent An automated
program that searches one or
more databases and notifies you
when it finds a lead on a specific
job type. 521
JOIN An SQL command that temporarily joins data from more than
one table in order to allow simultaneous access to both tables. 651
Intrusion In the context of computer security, the unauthorized
access to a computer system. 340
Joining tables In SQL terminology, the act of creating a
relationship between tables. 651
IP (Internet Protocol) One of the
main protocols of TCP/IP; responsible for addressing packets so
that they can be routed to their
destinations; IPv4 offers 32-bit
addresses whereas IPv6 offers
128-bit addresses. 305
Joint application design (JAD)
A widely accepted design technique that is based on the idea that
the best information systems are
designed when end users and systems analysts work together on a
project as equal partners. 567
IP address Unique identifying
numbers assigned to each computer connected to the Internet. 255
Joystick An input device that
looks like a small version of a car’s
stick shift. Popular with gamers,
moving the stick moves objects on
the screen. 89
JPEG (Joint Photographic Experts
Group) A format that uses lossy
compression to store bitmap images. JPEG (pronounced JAY-peg)
files have a .jpg extension. 442
LAN party An assembly of computer users and their computers for
the purpose of creating a temporary local area network for gaming.
Kernel The core module of an
operating system that typically
manages memory, processes,
tasks, and storage devices. 192
Lands Non-pitted surface areas
on a CD that represent digital data.
(See also pits.) 81
Key frame Frames at intervals in
a digital video clip that contain all
data for that frame. The rest of the
frames in the video contain only
the information that is different
from the preceding key frame. 458
Keylogger A program, sometimes
part of a Trojan horse, that records
a person’s keystrokes, saves them,
and then sends them to a system
administrator or remote hacker.
Keyword (1) A word or term
used as the basis for a Web page
search. (2) A command word provided by a programming language.
Keyword stuffing An unpopular
practice of including a huge variety
of keywords in the header of an
HTML document in the hopes that
a search engine will display it even
when the content of the page is not
relevant to the search. 378
Kilobit (Kbit or Kb) 1024 bits. 26
Kilobyte (KB) Approximately 1,000
bytes; exactly 1,024 bytes. 26
Knowledge base The collection
of facts and rules obtained from
experts that are incorporated into
an expert system. 564
Knowledge engineering The process of designing rules, entering
them into an expert system, and
testing them. 564
Known information In a problem
statement, information supplied
to the computer to help it solve a
problem. 680
Label In the context of spreadsheets, any text used to describe
data. 130
LAN (Local Area Network) An
interconnected group of computers and peripherals located within
a relatively limited area, such as a
building or campus. 247
LAN jacking Unauthorized access
to a wireless network; also called
war driving. 282
Laser printer A printer that uses
laser-based technology, similar to
that used by photocopiers, to produce text and graphics. 92
Latency The elapsed time it takes
for a packet of data to arrive at its
destination. 309
LCD (Liquid Crystal Display)
Technology used for flat panel
computer screens typically found
on notebook computers. 90
Leading Also called line spacing,
the vertical spacing between lines
of text. 128
Leibniz Calculator A mechanical
calculator capable of performing
the four arithmetic functions that
helped develop the technology for
the first commercially successful
calculator. 487
Level 1 cache (L1 cache) Cache
memory built into a microprocessor chip. L1 cache typically can be
read in one clock cycle. 68
Level 2 cache (L2 cache) Cache
memory that is located in a chip
separate from the microprocessor
chip. 68
Line spacing Also called leading,
the vertical spacing between lines
of text. (See leading.) 128
Linear editing A video editing
technique involving recording segments of video from one tape to
another. 456
Link popularity A metric used by
some search engines to rank the
sites that are relevant to a query.
Linux An operating system that
is a derivative of UNIX, available
as freeware, and widely used for
servers though it is also used on
personal computers and workstations. 201
Linux distribution Usually a
download that includes the Linux
operating system, a Linux desktop,
and other Linux utilities. 201
Linux platform A computer that
is running the Linux operating system. 64
LISP (LISt Processor) A declarative programming language that
excels at handling complex data
structures, artificial intelligence
projects, and very complex programs. 679
Local application Software
designed to be installed on and run
from a hard disk. 154
Logic error A run-time error in the
logic or design of a computer program. 685
Logical data type A data type
specifying that a field in a data file
is used to store true/false or yes/no
data. 634
Logical storage models Any
visual or conceptual aid that helps
a computer user visualize a file
storage system. Also called a storage metaphor. 215
Lookup routine A validation process used by database designers
to prevent data entry errors by
searching for an entry such as a
state abbreviation in a file or database table. 637
Loop The section of program code
that is repeated because of a repetition control structure. 698
Lossless compression A compression technique that is able
to reconstitute all of the data in
the original file; hence “lossless”
means that this compression technique does not lose data. 439
Lossy compression Any data
compression technique in which
some of the data is sacrificed to
obtain more compression. 439
Low-level language A programming language that requires a
programmer to write instructions
for specific hardware elements
such as the computer processor,
registers, and RAM locations. 676
MAC address (Media Access
Control) A unique identifier similar
to a serial number assigned to
networking equipment at time of
manufacture. 254
Mac OS The operating system
software designed for use on
Apple Macintosh computers. 197
Mac platform A family or category
of Macintosh-compatible personal
computers designed and manufactured by Apple, Inc. 64
Machine code Program instructions written in binary code that the
computer can execute directly. 30
Machine language A low-level
language written in binary code
that the computer can execute
directly. 30
Magnetic storage A technology
for recording data onto disks or
tape by magnetizing particles of an
oxide-based surface coating. 78
Mail merge A feature of document
production software that automates
the process of producing customized documents, such as letters
and advertising flyers. 129
Mail order A type of retailing in
which a merchant takes orders by
telephone or from an Internet site,
then ships orders by mail or other
courier service. 507
Mainframe computer A large,
fast, and expensive computer
generally used by businesses or
government agencies to provide
centralized storage, processing, and management for large
amounts of data. 18
Maintenance phase The day-today operation of an information
system, including making modifications and correcting problems to
insure correct operation. 587
Manufacturer direct The selling
of products by hardware manufacturers directly to consumers
by means of a sales force or mail
order. 507
Manufacturing technician A
computer professional who participates in the fabrication of computer
chips, systems, and devices. 512
Many-to-many relationship A
relationship in which one record
in a particular record type can be
related to more than one record
in another record type, and vice
versa. 616
Mark-8 A microprocessor-based
computer system developed by
Jonathan A. Titus in 1974 that
helped lead to the development of
personal computers. 494
Market share A company’s share,
or percentage, of the total market.
Market tiers Categories of computer companies based on size,
longevity, and market share. 505
Megahertz (MHz) A measure of
frequency equivalent to one million
cycles per second. 67
Megapixel One million pixels;
expresses the resolution and quality of an image; usually used in
reference to digital cameras. 433
Memo data type A data type that
specifies that a field in a data file
can contain variable-length text
comments (also called memo
field). 634
Memory The computer circuitry
that holds data waiting to be processed. 15
Memory leak An undesirable state
in which an operating system does
not correctly allocate memory for
programs causing parts of one program to overwrite parts of others
and malfunction. 187
Menu In the context of user
interfaces, a list of commands or
options often displayed as a list.
Marketing channels Marketing
outlets such as retail stores or mail
order for computer-related products. 506
Menu bar A standard component
of most graphical user interfaces
that is displayed as a strip of clickable options, that in turn display a
list of commands. 190
Malicious software Any program
or set of program instructions, such
as a virus, worm, or Trojan horse,
designed to surreptitiously enter
a computer and disrupt its normal
operations. 162
Markup language A language
that provides text and graphics
formatting through the use of tags.
Examples of markup languages
include HTML, XML, and SGML.
Mesh topology A network
arranged in such a way that each
device is connected to many other
devices. Data traveling on a mesh
network can take any of several
possible paths. 250
Malware (malicious software)
Programs such as viruses, worms,
and bots designed to disrupt computer operations. 162
Mass-mailing worm A worm
that sends itself to every e-mail
address in the address book of an
infected computer. 163
Message In the context of objectoriented programming, input that
is collected and sent to an object.
MAN (Metropolitan Area Network)
A public, high-speed network that
can transmit voice and data within
a range of 50 miles. 247
Master File Table An index file
used in NTFS storage systems to
maintain a list of clusters and keep
track of their contents. 219
Message header The section
of an e-mail file that contains
address, subject, and file attachment information. 392
Management information system (MIS) A type of information
system that manipulates the data
collected by a transaction processing system to generate reports that
managers can use to make business decisions. 561
Mathematical modeling software
Software for visualizing and solving
a wide range of math, science, and
engineering problems. 133
Meta keyword A word that is
included in the header of an HTML
document in order to describe the
document’s contents. 378
Mathematical operators Symbols
such as + - / * that represent specific mathematical functions in a
formula. 131
Metafile In the context of graphics,
a file that contains both vector and
bitmap data. 447
Managers People who make decisions about how an organization
carries out its activities. 557
Manual calculator A device that
helps solve mathematical calculations, but does not contain
sophisticated built-in algorithms.
Mechanical calculator A machine
capable of implementing algorithms used to solve mathematical
calculations. 487
Megabit (Mb or Mbit) 1,048,576
bits. 26
Megabyte (MB) Approximately one
million bytes; exactly 1,048,576
bytes. 26
Metasearch engine A search
engine that searches other search
engines. 380
Metasearch tool A program
that performs broad-based Web
searches, such as searching more
than one job database at a time.
Method In the context of objectoriented programming, any action
that an object can perform. 705
Microcontroller A special purpose
microprocessor that is built into the
device it controls. 20
Microprocessor An integrated
circuit that contains the circuitry for
processing data. It is a single-chip
version of the central processing
unit (CPU) found in all computers.
Microprocessor clock A timing signal that sets the pace for
executing instructions in a microprocessor. 67
Microsoft Windows An operating
system, developed by Microsoft
Corporation, that provides a graphical interface. Versions include
Windows 3.1, 95, 98, Me, NT,
2000, XP, and Vista. 194
Microwaves Electromagnetic
waves with a frequency of at least
1 gigahertz; one type of channel
for transmitting data over communications networks. 265
MIDI (Musical Instrument Digital
Interface) A standardized way in
which sound and music are encoded and transmitted between digital
devices that play music. 426
MIDI sequence Digitally encoded
MIDI music stored on a digital
device, such as a computer or
MIDI instrument. 426
MIDI sequencing software
Software that uses a standardized
way of transmitting encoded music
or sounds for controlling musical
devices, such as a keyboard or
sound card. 139
MIME (Multi-purpose Internet Mail
Extensions) A standard for formatting non-ASCII messages so that
they can be sent over the Internet,
typically as e-mail messages. 393
MIMO (Multiple Input Multiple
Output) A wireless communications device that uses an array
of antennas to transmit data over
more than one channel. 268
Mission An organization’s goal
or plan, which is reflected by the
organization’s activities. 556
Mission statement The written
expression of an organization’s
goals and how those goals will be
accomplished. 556
MITS Altair The first commercial
microcomputer. It was based on
the Intel 8080 processor and sold
primarily to computer hobbyists.
Mobile broadband Highbandwidth wireless technology that
was developed for sending digital
data over cell phone systems. 327
Mobile Internet access Any
service that allows subscribers to
access the Internet while on the
go. 311
Mod In the context of personal
computers, a customized or “modified” system unit typically jazzed
up with lights, chrome, and decals.
Modem A device that modulates
and demodulates a signal, typically
used to send data from a computer
to the Internet over telephone,
cable television, or satellite networks. 304
Modified waterfall SDLC A series
of phases that outlines the development process of an information
system where each phase can
overlap and be repeated as necessary in the development process.
Money management software
Software used to track monetary
transactions and investments. 133
Monochrome bitmap A bitmap
image that contains only the colors
black and white. 436
Mouse An input device that allows
the user to manipulate objects on
the screen by clicking, dragging,
and dropping. 88
MP3 A file format that provides
highly compressed audio files with
very little loss of sound quality. 424
MPEG (Moving Picture Experts
Group) A family of highly compressed container file formats
and codecs for digital multimedia;
MPEG-1, MPEG-2, and MPEG-4.
MRP (Manufacturing Resource
Planning) A business management
technique in which an optimum
manufacturing plan is generated
based on a wide variety of data.
MSRP (Manufacturer’s Suggested
Retail Price) The suggested price
of a product that is set by the manufacturers, usually higher than the
street price. 503
Multi-core processor A microprocessor that contains circuitry for
more than one processing unit. 69
Multiparadigm languages A programming language that supports
more than one paradigm, such as
object-oriented and procedural
paradigms. 679
Multiple-user license Legal permission for more than one person
to use a particular software package. 147
Multiprocessing The ability of a
computer or operating system to
support dual core processors or
multiple processors. 186
Multitasking The ability of a
computer, processor, or operating system to run more than one
program, job, or task at the same
time. 186
Multithreading A technology that
allows multiple parts or threads
from a program to run simultaneously. 186
Multiuser operating system An
operating system that allows a
single computer to deal with simultaneous processing requests from
multiple users. 187
Nanosecond A unit of time representing one billionth of a second.
Napier’s Bones A manual calculator created by John Napier
that could be used to perform
mathematical calculations by
manipulating numbered rods. 487
Narrowband A term that refers
to communications channels that
have low bandwidth. 251
Native file format A file format that
is unique to a program or group
of programs and has a unique file
extension. 209
Native resolution The dimensions
of the grid that holds LEDs in a flatscreen, LCD display device; the
resolution at which an LCD offers
the clearest display. 539
Natural language query A query
formulated in human language, as
opposed to an artificially constructed language such as machine
language. 136
Netbook A scaled-down version
of a standard clamshell-style notebook computer. Sometimes called
a minilaptop. 59
Netiquette (Internet etiquette)
A set of guidelines for posting
messages and e-mails in a civil,
concise way. 396
Network access point (NAP) An
Internet node that links together
different network service providers so that data can be transferred
from one service provider to the
other. 303
Network address translation
(NAT) A security technique that
allows a LAN to use one type of IP
address for intra-network data and
another type of address for data
traveling to and from the Internet.
Network attached storage (NAS)
Storage devices that are designed
to be attached directly to a network, rather than to a workstation
or server. 248
Network database A collection
of physically linked records in a
one-to-many relationship in which
a member (child) can have more
than one owner (parent). 617
Network device Any device, such
as a gateway, hub, or router, that
is used to broadcast network data,
boost signals, or route data to its
destination. 248
Network hub A network device
that connects several nodes of a
local area network. 261
Network interface card Circuitry,
often on an expansion card
mounted inside a computer, that
transmits and receives data on
a local area network. Also called
a NIC, network card, or network
adapter. 248
Networked peripheral A peripheral device that contains circuitry that
allows it to be directly connected to
a network, rather than connecting
to a computer that transfers data to
a network. 248
Object database A database
model that organizes data into
classes of objects that can be
manipulated by programmerdefined methods; also referred to
as object-oriented database. 620
Neural network A type of expert
system that uses computer circuitry to simulate the way in which
the brain processes information,
learns, and remembers. 565
Object-oriented methodology An
approach to system development
that regards the elements of a system as a collection of objects that
interact with each other to accomplish tasks. 570
Node In a network, a connection
point; in a hierarchical database, a
segment or record type. 248
Non-executing zip file A type
of compressed file that has to be
unzipped manually to extract the
file or files contained within it. 157
Non-volatile Any electronic component that does not require a
constant supply of power to hold
data. 84
Nonlinear editing A digital video
editing technique that requires a
personal computer and video editing software. 456
Nonprofit organization
Organizations with political, social,
or charitable goals that are not
intended to generate a profit. 556
Normalization The process of
analyzing data to create the most
efficient database structure. 637
Notation software Software used
to help musicians compose, edit,
and print their compositions. 139
Notebook computer A small,
lightweight, portable computer
that usually runs on batteries.
Sometimes called a laptop. 59
Network router A device found at
each intersection on the Internet
backbone that examines the IP
address of incoming data, and
forwards the data towards its destination. 261
NTFS (New Technology File
System) A file system used by
Microsoft Windows NT, 2000,
Vista, and Windows 7 operating
systems to keep track of the name
and location of files on a hard disk.
Network service provider (NSP)
A company that maintains a series
of nationwide Internet links. 303
Numeric data Numbers that represent quantities and can be used in
arithmetic operations. 23
Network specialist administrator A computer professional who
plans, installs, and maintains one
or more local area networks. 511
Object In an object database or
OO programming language, a
discrete piece of code describing a
person, place, thing, event, or type
of information. 702
Network switch A network device
that sends data to a specific
address instead of broadcasting it
over an entire network. 261
Object code The low-level instructions that result from compiling
source code. 30
Object-oriented paradigm An
approach to programming that
focuses on the manipulation of
objects rather than on the generation of procedure-based code. 702
Object-relational database A
database that uses object-oriented
and relational concepts. 621
Octet One of four sections of an IP
address. 255
ODBMS (Object Database
Management System) Database
management software used to
construct an object-oriented database. 625
Offshoring The corporate practice
of relocating production, manufacturing, or customer service to
lower-cost overseas locations. 500
OLAP (Online Analytical
Processing) A system that consists
of computer hardware, database
software, and analytical tools that
are optimized for analyzing and
manipulating data. 613
OLED Display technology that
uses organic light emitting diodes
imprinted on a thin, plastic backing. 90
OLTP system (Online Transaction
Processing System) Interactive
online transaction processing
methods that use a “commit or rollback” strategy to ensure accurate
transaction processing. 560
One-to-many relationship A
relationship in which one record in
a particular type may be related to
more than one record of another
record type. 616
One-to-one relationship An association between database entities
in which one record type is related
to one record of another type. 616
Online auction A consumer-toconsumer form of e-commerce in
which merchandise and services
are sold to the highest bidder.
eBay is a popular example. 388
Online job bank An online
database of job opening
announcements that spans many
industries or just one specific
industry. 520
Online processing An interactive
method of processing transactions
in which each transaction is processed as it is entered. 560
Online shopping cart A feature
of e-commerce sites that stores
information about items selected
for purchase often by creating a
cookie on a shopper’s computer.
Online social networks Web
sites that provide ways for people
to communicate and socialize.
MySpace is a popular example. 6
Op code Short for operation code;
an assembly language command
word that designates an operation, such as add (ADD), compare
(CMP), or jump (JMP). 31
Open source An approach to
developing and licensing software
in which source code remains public so it can be improved and freely
distributed. 12
Open source software Software
that includes its source code,
allowing programmers to modify
and improve it. 150
Operand The part of an instruction that specifies the data, or the
address of the data, on which the
operation is to be performed. 31
Operating system The software
that controls the computer’s use
of its hardware resources, such as
memory and disk storage space.
Also called OS. 16, 184
Operational planning The scheduling and monitoring of workers
and processes. 557
Optical storage A technology
that records data as light and dark
spots on a CD, DVD, or other optical media. 81
Organization A group of people
working together to accomplish a
goal. 556
Organizational chart A diagram
showing the hierarchy of workers
in an organization. 557
Output The results produced by
a computer (for example, reports,
graphs, and music). 15
Outsourcing The corporate practice of using third-party contractors
to supply raw goods, manufacturing, or services. 499
Parallel processing The simultaneous use of more than one
processor to execute a program.
Overclocking Forcing a computer
component, such as a microprocessor, to run at a higher speed
than intended by the manufacturer.
Parameters A delimiting variable
used to modify a command, e.g.,
/ON modifies the DIR command
so it displays files in order by
name. 647, 676
P2P file sharing A practice in
which individuals can obtain music,
video, and other types of files from
other users on a network; sometimes the files are shared without
authorization from the copyright
holder. 337
Particle renderer Graphics software that generates special effects
for explosions, flares, fog, and
smoke. 687
Packet A small unit of data transmitted over a network. 253
Packet switching A technology
used by data communications networks, such as the Internet, where
a message is divided into smaller
units called “packets” for transmission. 253
Packet writing The process of
recording data to a CD or DVD in
multiple sessions. Contrast with
disk mastering. 219
Page layout The physical positions of elements on a document
page such as headers, footers,
page numbering, and graphics.
Paint software Software that
creates and manipulates bitmap
graphics. 137, 430
Palm OS A popular type of operating system produced by ACCESS
specifically for handheld computers. 202
PAN (Personal Area Network) An
interconnected group of personal
digital devices located within a
range of about 30 feet. 246
Paragraph alignment The horizontal position (left, right, justified,
centered, for example) of the text
in a document. 128
Paragraph style A specification
for the format of a paragraph,
which includes the alignment of
text within the margins and line
spacing. 128
Parallel conversion A type of
system conversion in which the old
computer system remains in service while some or all of the new
system is activated. 586
Pascal A high-level, procedural
programming language developed
to help computer programming
students learn the structured
approach to programming. 679
Pascaline An early mechanical
calculator capable of performing
addition, subtraction, division, and
multiplication. 487
Password A special set of symbols used to restrict access to a
user’s computer or network. 35
Password manager Software that
keeps track of sites at which a user
has registered and the password
that corresponds to each site. 40
Path A file’s location specified by
the drive on which it is stored and
the hierarchy of folders in which it
is stored. (See file specification.)
Pathfinder algorithms Program
code used to control the routes
characters take as they move
through the virtual world of a computer game. 687
Payroll software A type of horizontal market software used to
maintain payroll records. 142
PC platform A family of personal
computers that use Windows software and contain Intel-compatible
microprocessors. 64
PC slot (Personal Computer
Memory Card International
Association or PCMCIA slot) An
external expansion slot typically
found on notebook computers. 96
PCX The PC Paintbrush file format
that incorporates a compression
algorithm. 442
PDA (Personal Digital Assistant)
A shirt-pocket sized computer
originally designed to keep track of
appointments (also called a palmtop). 19
PDA video Digital video formatted for viewing on a PDA or other
handheld device. 452
Peer-to-peer mode A method of
using a network in which workstations act as both file servers and
clients. 249
Peripheral device A component or
equipment, such as a printer, that
expands a computer’s input, output, or storage capabilities. 56
Person-to-person payment A
method of e-commerce payment
that uses an intermediary or third
party such as PayPal to handle
payment between a buyer and
seller. 390
Personal computer A microcomputer designed for use by an
individual user for applications
such as Web browsing and word
processing. 17
Personal finance software
Software geared toward individual
finances that helps track bank
account balances, credit card payments, investments, and bills. 133
PERT (Program Evaluation and
Review Technique) A technique for
project management by displaying
interconnected events and task
milestones on a timeline. 570
PGP (Pretty Good Privacy) A
popular program used to encrypt
and decrypt files and e-mail messages. 287
Piconet A network formed by
Bluetooth devices. 267
PIECES framework A concept
developed by James Wetherbe
to help identify problems in an
information system. Each letter of PIECES stands for a
potential problem (Performance,
Information, Economics, Control,
Efficiency, and Service). 569
Pilot conversion A type of system
conversion in which a new information system is first activated at one
branch of a multi-branch company.
Ping (Packet INternet Grouper)
A command on a TCP/IP network
that sends a test packet to a specified IP address and waits for a
reply. 310
Pipelining A technology that
allows a processor to begin
executing an instruction before
completing the previous instruction. 69
Pits Spots on a CD that are
“burned” onto an optical storage
medium to represent digital data.
Pixel interpolation A process that
is used by graphics software to
average the color of adjacent pixels in an image, usually when the
image is enlarged. 435
Pharming An exploit that redirects
users to fake Web sites. 405
Pixelated Describes the effect
of increasing the size and thus
decreasing the quality of an image.
Phased conversion A type of
information system conversion in
which one module of a new information system is activated at a
time. 586
Pixels Short for picture element;
is the smallest unit in a graphic
image. Computer display devices
use a matrix of pixels to display
text and graphics. 90
Phishing An e-mail based scam
that’s designed to fool users into
revealing confidential information.
PL 1 (Programming Language 1)
A business and scientific programming language developed by IBM
in 1964. 679
Phoneme A unit of sound that is a
basic component of words and is
produced by speech synthesizers.
Place shifting The practice of
accessing media from a remote
location, such as over a network.
Photo editing software The
software used to edit, enhance,
retouch, and manipulate digital
photographs. 137
Plaintext An original, un-encrypted
message. 285
Physical storage model A representation of data as it is physically
stored. 218
Physical topology The actual layout of network devices, wires, and
cables. 250
Planning phase The first phase
of an information system development project with the goal of
creating a Project Development
Plan. 567
Plug and play The ability of a
computer to automatically recognize and adjust the system
configuration for a newly added
device. 97
Plug-in A software module that
adds a specific feature to a system. In the context of browsers, a
plug-in adds the ability to play files
referenced from the EMBED tag.
PNG (Portable Network Graphics)
A type of graphics file format similar to but newer than GIF or JPEG.
Podcast An audio file that is distributed over the Internet through
downloads or the use of an RSS
feed or Atom. 360
Point size A unit of measure (1/72
of an inch) used to specify the
height of characters in a font. 127
Pointing device An input device,
such as a mouse, trackball, pointing stick, or trackpad, that allows
users to manipulate an on-screen
pointer and other screen-based
graphical controls. 88
Pointing stick A mouse-substitute
input device that looks like the tip
of an eraser embedded in the keyboard of a notebook computer. 89
Polymorphism In the context of
object-oriented programming, the
ability to redefine a method for a
subclass. Also called overloading.
POP (Post Office Protocol) A
standard for retrieving e-mail messages from an e-mail server. 397
POP server A computer that
receives and stores e-mail data
until retrieved by the e-mail
account holder. 398
Pop-up ad A type of advertisement that usually appears in a
separate window when you enter a
Web site. 385
Port In the context of computer
networks, a virtual device that sets
up one or more connections over
which data can flow. 308
Port probe An exploit used by
hackers to locate computer ports
that can be used for surreptitious
access. 341
Portable audio player A digital
device designed to store and play
digital music; also called MP3
player. 425
Portable computer Any type of
computer, such as a notebook
computer, that runs on batteries
and is designed to be carried from
one location to another. 59
Portable Internet access Any
type of Internet service, such as
portable satellite, that can be
moved from one place to another.
Portable media player A small,
lightweight, battery-powered
device designed to store and play
audio, video, or image files stored
in such formats as MP3 and AAC.
Portable software Software
designed to be stored on a flash
drive or CD, and that does not
require installation before it is
used. 158
PostScript A printer language,
developed by Adobe Systems,
which uses a special set of commands to control page layout,
fonts, and graphics. 94
Power surge A spike in electrical
voltage that has the potential to
damage electronic equipment such
as computers. 99
Powerline network A network
that uses a building’s existing powerline cables to connect nodes;
also called HomePlug, HPLC, or
HomePLC. 258
Predicate In a Prolog fact, such
as likes(John, Mary), the predicate
“likes” describes the relationship
between the arguments in parentheses, such as (John, Mary). 714
Predictive analytics A branch
of data mining that focuses on
predicting future probabilities and
trends using statistical algorithms,
neural networks, and optimization
research. 613
Predictive methodology The
traditional approach to software
development in which detailed
specifications are created before
coding begins. 681
Presentation software Software
that provides tools to combine
text, graphics, graphs, animation,
and sound into a series of electronic “slides” that can be output
on a projector, or as overhead
transparencies, paper copies, or
35-millimeter slides. 138
Primary key A field in a database that contains data, such as
a Social Security number, that is
unique to a record. 634
Print server A device that controls
a cluster of printers by distributing
jobs that arrive in its print queue—
a list of documents that require
printing. 249
Printer Control Language (PCL)
A standard for formatting codes
embedded within a document that
specify how a printer should format
each page. 94
Private attribute An attribute for
an object, class, or record that can
be accessed only from the program routine in which it is defined.
Private IP address An IP address
that cannot be routed over the
Internet. 344
Problem statement In software
engineering, a concise summary of
elements that must be manipulated
in order to achieve a result or goal.
Procedural language Any programming language used to create
programs composed of a series of
statements that tell the computer
how to perform a specific task. 689
Procedural paradigm An
approach to programming in which
a programmer defines the steps for
solving a problem. 689
Procedure In the context of computer programming, a section of
code that performs activities but is
not included in the main sequential
execution path of a program. 696
Procedure handbook Step-bystep instructions for performing a
specific job or task. 585
Process A systematic series of
actions that a computer performs
to manipulate data; typically represented on a DFD by a rounded
rectangle. 572
Processing The manipulation of
data by a computer’s microprocessor or central processing unit. 15
Product activation The process
of becoming a registered user of
a software product; the process
might include entering a validation
code to unlock the software. 157
Productivity software Software
that helps people work more
efficiently; traditionally word
processing, spreadsheet, presentation, e-mail, and database
software. 121
Professional ethics On-the-job
actions and choices that reflect a
person’s values. 523
Program editor A programming
tool, similar to a word processor, but that provides specialized
editing and formatting features to
streamline the programming process. 682
Programming language A set of
keywords and grammar (syntax)
that allows a programmer to write
instructions that a computer can
execute. 29, 676
Programming paradigm A
programming methodology or
approach, as in the object-oriented
paradigm. 679
Project Development Plan A
planning document that is the final
result of a planning phase and is
reviewed and approved by management. 567
Project management software
Software specifically designed as
a tool for planning, scheduling, and
tracking projects and their costs.
142, 571
Prolog A declarative programming
language used to develop expert
systems modeled after human
thinking. 679
Properties The characteristics of
an object in a program. 683
Proprietary information Financial
and product data, procedures, or
concepts created by an individual
or organization that are not made
public because they would aid the
competition. 526
Proprietary software Software
that carries restrictions on its use
that are delineated by copyright,
patents, or license agreements.
Protocol suite A group of protocols, such as TCP and IP, that
work together. 305
Prototype An experimental or trial
version of a device or system. 489
Pseudocode A notational system for algorithms that combines
English and a programming language. 692
PSK (Pre-shared key) A variation of WPA encryption protocol
for wireless networks in which the
encryption key used by the router
is the same for all client computers
that connect to the network. 283
Public attribute An attribute for
an object, class, or record that can
be accessed from any routine in a
program. 703
Public domain software Software
that is available for public use without restriction except that it cannot
be copyrighted. 149
Public key encryption (PKE) An
encryption method that uses a pair
of keys, a public key (known to
everyone) that encrypts the message, and a private key (known
only to the recipient) that decrypts
it. 286
Quality assurance specialist A
computer professional who participates in alpha and beta test cycles
of software. Also refers to a person
who examines and tests computer
chips and devices. 512
Quality of service (QoS) The level
of performance that is provided by
a computer system and measured
by factors such as response time,
downtime, and capacity. 587
Quality-of-service metric A technique for measuring a particular
quality-of-service characteristic,
such as response time. 587
QuickTime Movie A video and
animation file format developed by
Apple, Inc. that can also be run on
PCs. QuickTime files have a .mov
extension. 457
RAM (Random Access Memory)
Computer memory circuitry that
holds data, program instructions,
and the operating system while the
computer is on. 71
Random access The ability of
a storage device (such as a disk
drive) to go directly to a specific
storage location without having to
search sequentially from a beginning location. 77
Rasterization The process of
superimposing a grid over a vector
image and determining the color
depth for each pixel. 447
RAW In the context of digital
graphics, a file that contains unprocessed image data directly from a
digital camera’s sensors. 442
Ray tracing A technique by which
light and shadows are added to a
3-D image. 449
RCA Spectra 70 An early thirdgeneration computer that was
among the first to use integrated
circuits for data processing. 493
RDBMS (Relational Database
Management System) Database
management software used to
create, update, and administer a
relational database. 625
REALbasic A modern OO version
of the BASIC programming language that works cross platform on
Windows, Macs, and Linux. 679
RealMedia A video file format
developed by RealNetworks that is
popular for streaming Web videos.
Record In the context of database
management, the fields of data
that pertain to a single entity in a
database. 134, 615
Record occurrence A record that
has been filled with data for a particular entity. 615
Record type The structure of
a record, including the names,
length, and data types for each
field. 615
Recordable technology The
devices and standards that allow
computers to write data permanently on CDs and DVDs, but does
not allow that data to be changed
once it has been recorded. 82
Recovery disk A CD that contains
all the operating system files and
application software files necessary to restore a computer to its
original state. 229
Reference software Software
that contains a large database of
information with tools for sorting,
viewing, and accessing specific
topics. 141
Read-only technology Storage
media that can only be read from,
but not recorded on. 82
Region code A signal added
to commercial DVDs that limits
playback to devices that have a
corresponding region code. 468
Query A search specification that
prompts the computer to look for
particular records in a file. 136
Read-write head The mechanism
in a disk drive that magnetizes particles on the storage disk surface
to write data, or senses the bits
that are present to read data. 78
Registers A sort of “scratch pad”
area of the microprocessor into
which data or instructions are
moved so that they can be processed. 31
Query by example (QBE) A type
of database interface in which the
user fills in a field with an example
of the type of information that he or
she is seeking. 136
Readability formula A feature
found in some word processing
software that can estimate the
reading level of a written document. 127
Relational database A database
structure that incorporates the use
of tables that can establish relationships with other, similar tables.
Query language A set of command words that can be used
to direct the computer to create
databases, locate information, sort
records, and change the data in
those records. 136
Real data type A numeric data
type used for fields that contain
numbers with decimal places. 634
Relationship In the context of
databases, an association between
entities that can be used to link
records in more than one file. 616
Quarantined file A file suspected
to be infected with a virus that antivirus software moves to a special
folder to prevent accidental access
to it. 169
Query processor The component
of a search engine that examines
keywords entered by users and
fetches results that match the
query. 377
Real-time messaging system
Technologies, such as instant
messaging and chat, that allow
people to exchange messages
when they are online. 330
RealAudio An audio file format
developed by RealNetworks especially for streaming audio data over
the Web. 424
Relative reference In a worksheet, a cell reference that can
change if cells change position as
a result of a move or copy operation. 132
Remarks Explanatory comments
inserted into lines of code in a
computer program. 686
Remote Access Trojan (RAT) A
type of Trojan horse malware that
allows remote hackers to transmit
files to victims’ computers. 163
Rendering In graphics software,
the process of creating a 3-D solid
image by covering a wireframe
drawing and applying computergenerated highlights and shadows.
Repetition control structure A
component of a computer program
that repeats one or more instructions until a certain condition is met
(also called loop or iteration). 698
Repetitive stress injury An injury
that occurs from overuse over a
period of time. 536
Report generator The component
of a data management environment that provides a user with the
ability to design reports. 642
Report template A predesigned
pattern that provides the outline or
general specifications for a report.
Request for proposal (RFP) A
document sent by an organization
to vendors to solicit proposals; it
specifies the problem that needs
to be solved and the requirements
that must be met. 580
Request for quotation (RFQ) A
document sent by an organization
to vendors requesting a formal
price quotation on a list of hardware and/or software. 580
Reserved words Special words
used as commands in some operating systems that may not be
used in file names. 205
Resolution The density of the grid
used to display or print text and
graphics; the greater the horizontal
and vertical density, the higher the
resolution. 91
Resolution dependent Graphics,
such as bitmaps, in which the quality of the image is dependent on
the number of pixels comprising
the image. 435
Resource A component, either
hardware or software, that is
available for use by a computer’s
processor. 185
Resource fork A storage characteristic of Mac OS that creates a
file containing a description of the
data stored in an accompanying
raw data file. 200
Response rate In relation to display technology, response rate is
the time it takes for one pixel to
change from black and white then
back to black. 90
Restore point Data stored about
the state of files and the operating
system at a given point in time,
then used to roll back the computer
system to that state. 230
Rewritable technology The devices and standards that allow users
to write data on a storage medium
and then change that data. 82
RF signals (Radio Frequency
signals) Data that is broadcast and
received via radio waves with a
transceiver. 265
Ribbon An element of the user
interface popularized by Microsoft
Office 2007 that presents users
with multiple tabs instead of menus
at the top of the application window. 190
Ring topology A network in which
all devices are connected in a circle with each device having exactly
two neighbors. 250
RISC (Reduced Instruction Set
Computer) A microprocessor
designed for rapid and efficient
processing of a small set of simple
instructions. 69
RJ45 connector A square plastic
cable connector that resembles an
oversized telephone connector,
and is used to connect Ethernet
devices. 262
ROM (Read-Only Memory) Refers
to one or more integrated circuits
that contain permanent instructions
that the computer uses during the
boot process. 73
ROM BIOS A small set of basic
input/output system instructions
stored in ROM. 73
Root directory The main directory
of a disk. 206
Rootkit Software that conceals
running processes; used by hackers to disguise security breaches
and break-ins. 165
RSS (Really Simple Syndication)
Delivers files called “feeds” from
Web sites to subscribers. 360
Rule In the context of Prolog programming, a general statement
about the relationship between
facts. 713
Run-length encoding A graphics
file compression technique that
looks for patterns of bytes and
replaces them with messages that
describe the patterns. 439
Runtime error An error that
occurs when a computer program
is run. 685
S-HTTP (Secure HTTP) A method
of encrypting data transmitted
between a computer and a Web
server by encrypting individual
packets of data as they are transmitted. 389
Safe Mode A menu option that
appears when Windows is unable
to complete the boot sequence.
By entering Safe Mode, a user can
gracefully shut down the computer,
then try to reboot it. 105
Sampling rate The number of
times per second a sound is
measured during the recording
process. 423
Satellite Internet service A highspeed Internet service that uses a
geosynchronous or low-earth orbit
satellite to send data directly to
satellite dishes owned by individuals. 318
Satellite modem A device that
connects a computer to a satellite for purposes of accessing the
Internet. 319
Scanner A device that converts
a printed image into a bitmap
graphic. 431
Scheduled reports Reports such
as monthly sales summaries that
follow a fixed format and are produced according to a preset time
table. 561
Scheme A dialect of LISP, used
for computer research and teaching. 679
Routable IP address A network
address that can be routed over
the Internet; contrast to private IP
address. 344
Schickard’s Calculator An early
mechanical calculator consisting of
a series of gears and spokes representing numerical values. 487
RPG (Report Program Generator)
A programming language used to
generate business reports. 679
Scratch A simple, visual programming language based on Smalltalk/
Squeak and used to teach programming. 679
SDK (Software Development Kit)
A collection of language-specific
programming tools. 686
SDLC (System Development Life
Cycle) The series of phases that
outlines the development process
of an information system. 566
Search and Replace A feature of
document production software that
allows the user to automatically
locate all instances of a particular
word or phrase and substitute
another word or phrase. 127
Search engine indexer The component of a search engine that
reviews the Web pages brought
back by a crawler and creates
pointers to them so that they can
be quickly accessed. 376
Search terms The words entered
into a search engine or database
to form a query. 378
Second-generation computers
Computers that use transistors
for data processing and storage
instead of vacuum tubes. 492
Second-generation languages
Assembly languages that followed
machine languages. 677
Sectors Subdivisions of the tracks
on a storage medium that provide
storage areas for data. 218
Secure connection An Internet
connection that encrypts data
transmitted between your computer and a Web site. 389
Security software Any software
package that is designed to protect
computers from destructive software and unauthorized intrusions.
Security specialist A computer
professional who analyzes security
threats, implements solutions, and
develops policies and procedures
to protect computer equipment and
data. 511
Security suite A software suite
containing modules to protect
computers against viruses, worms,
intrusions, spyware, and other
threats. 166
SELECT An SQL keyword that
queries for a particular record or
group of records from a table. 648
Selection control structure A
component of a computer program
that tells a computer what to do,
depending on whether a condition
is true or false (also called decision
structure or branch). 697
Self-executing zip file A type of
compressed file that can be run
to unzip the file or files contained
within it. 157
Server-side script Scripting statements that are executed by a Web
server in response to client data.
Self-installing executable file A
program that automatically unzips
and then initiates its setup program. 157
Service companies Companies
that provide computer-related
services such as consulting or support. 498
Semi-structured problem A problem for which a general procedure
has been established, but which
requires some degree of discretionary judgment to arrive at a
solution. 558
Service pack A collection of
patches designed to correct bugs
and/or add features to an existing
software program. 159
Semiconducting materials
(Semiconductors) Substances,
such as silicon or germanium, that
can act either as a conductor or an
insulator. Used in the manufacture
of computer chips. 27
Sequence control structure A
programming construct that alters
the order in which instructions are
executed. 695
Sequence diagram A tool used
by a project team that depicts
the detailed interactions that take
place within an information system.
Sequential access A characteristic of data storage, usually on
computer tape, that requires a
device to read or write data one
record after another, starting at the
beginning of the medium. 77
Sequential execution The
computer execution of program
instructions performed in the
sequence established by a programmer. 695
Serial processing Processing
of data one instruction at a time,
completing one instruction before
beginning another. 69
Setup program A program module
supplied with a software package
for the purpose of installing the
software. 154
Shared resources On a network,
resources such as hardware, software, and data made available for
authorized users to share. 274
Shareware Copyrighted software
marketed under a license that
allows users to use the software
for a trial period and then send in a
registration fee if they wish to continue to use it. 149
Shrink-wrap license A legal
agreement printed on computer software packaging, which
becomes binding when the package is opened. 147
Signal scrambling A technique
that encrypts or otherwise disrupts
broadcast signals so that they
have to be unscrambled before
they are sensible. 465
Signed code Program code that
has an associated digital certificate
identifying the programmer; used
to reduce susceptibility to malware.
SIMULA (SIMUlation LAnguage)
Believed to be the first object-oriented programming language. 679
Server A computer or software on
a network that supplies the network with data and storage. 18
Single-user license Legal permission for one person to use a
particular software package. 147
Server operating system A type
of operating system, sometimes
called a network operating system,
that provides management tools
for distributed networks, e-mail
servers, and Web hosting sites.
Single-user operating system
A type of operating system that
is designed for one user at a time
using one set of input devices. 187
Server-side program A program
or scripting statement that resides
on a Web server and acts as an
intermediary between a user’s
browser and a DBMS. 628
Site license Legal permission for
software to be used on any and all
computers at a specific location
(for example, within a corporate
building or on a university campus). 147
Slide rule A manual calculator
invented by William Oughtred that
uses John Napier’s logarithms to
perform complex engineering and
scientific calculations. 487
Smalltalk A classic object-oriented
programming language. 679
Smart phone A handheld device
that integrates the functions of
a mobile phone, PDA, portable
music player, or other digital
device. 20
Smileys Text-based symbols used
to express emotion. 396
SMTP server (Simple Mail
Transfer Protocol server) A computer used to send e-mail across a
network or the Internet. 398
Sniffing In the context of computer
hacking, a technique that uses
packet sniffer software to capture
packets as they are sent over a
network. 37
Solid state drive Data storage
device that utilizes erasable, rewritable circuitry. 84
Solid state storage A technology
that records data and stores it in
a microscopic grid of cells on a
non-volatile, erasable, low-power
chip. 84
Sort key A field used to arrange
records in order. 639
Sort order In a database table, the
order in which records are stored
on disk. 639
Sound card A circuit board that
gives the computer the ability to
accept audio input from a microphone, play sound files, and
produce audio output through
speakers or headphones. 423
Source code Computer instructions written in a high-level
language. 29
Socket A communication path
between two remote programs.
Spam Unsolicited e-mail typically
sent as a bulk or mass-mailing and
often used for fraudulent or deceptive marketing. 403
Software The instructions that
direct a computer to perform a
task, interact with a user, or process data. 15
Spam filter Software that identifies
unsolicited and unwanted e-mail
messages and blocks them from
the recipient’s Inbox. 404
Software customization The process of modifying a commercially
available software application to
meet the needs of a specific user
or organization. 583
Speech recognition The process
by which computers recognize
voice patterns and words, then
convert them to digital data. 428
Software engineering The
process of developing software
using systematic mathematical,
engineering, and management
techniques. 515
Software installation The process by which programs and data
are copied to the hard disk of a
computer system and otherwise
prepared for access and use. 153
Software license A legal contract
that defines the ways in which a
user may use a computer program.
Software patch A section of software code designed to modify an
existing program to fix a specific
error or add a feature. 159
Software publishers Companies
that produce computer software.
Software suite A collection of
individual applications sold as one
package. 144
Speech synthesis The process by
which computers produce sound
that resembles spoken words. 428
Spelling checker A feature of
document production software that
checks each word in a document
against an electronic dictionary
of correctly spelled words, then
presents a list of alternatives for
possible misspellings. 126
Spelling dictionary A data
module that is used by a spelling checker as a list of correctly
spelled words. 126
Spreadsheet A numerical model
or representation of a real situation, presented in the form of a
table. 130
Spreadsheet software Software
for creating electronic worksheets
that hold data in cells and perform
calculations based on that data.
Spyware Any software that covertly gathers user information without
the user’s knowledge, usually for
advertising purposes. 164
SQL A popular query language
used by mainframes and microcomputers. 645
SQL keywords A collection of
command words that issue instructions to an SQL database. 646
SQL query A command created
using SQL database client software that operates directly on the
record in a database. 645
SSID (Service Set IDentifier) A
code that identifies a wireless
network and is attached to every
packet that travels on that network.
SSL (Secure Sockets Layer)
A security protocol that uses
encryption to establish a secure
connection between a computer
and a Web server. 389
Star topology A network configured with a central connection
point or hub for all workstations
and peripherals. 250
Stateless protocol A protocol,
such as HTTP, that allows one
request and response per session.
Static IP address A permanently
assigned and unique IP address,
used by hosts or servers. 306
Static Web publishing A simple
way to display the data in a database by converting a database
report into an HTML document.
Statistical software Software
for analyzing large sets of data to
discover patterns and relationships
within them. 133
Storage The area in a computer
where data is retained on a permanent basis. 15
Storage density The closeness of
the particles on a disk surface. As
density increases, the particles are
packed more tightly together and
are usually smaller. 77
Storage device A mechanical
apparatus that records data to
and retrieves data from a storage
medium. 76
Storage medium The physical
material used to store computer
data, such as a floppy disk, a hard
disk, or a CD-ROM. 76
Subclass In object-oriented programming, a subclass is derived
from a superclass and inherits its
attributes and methods. 704
Store-and-forward A technology
used by communications networks
in which an e-mail message is temporarily held in storage on a server
until it is requested by a client computer. 397
Subdirectory A directory found
under the root directory. 206
Stored program A set of instructions that resides on a storage
device, such as a hard drive, and
can be loaded into computer memory and executed. 16
Subroutine A section of code that
performs activities or manipulates
data but is not included in the main
sequential execution path of a program. 696
Strategic planning The process of
developing long-range goals and
plans for an organization. 557
Success factors System requirements that also serve as an
evaluation checklist at the end of a
development project. 571
Streaming audio An audio file
format that allows the audio clip
to begin before the file is entirely
downloaded. 425
Streaming video An Internet
video technology that sends a
small segment of a video file to a
user’s computer and begins to play
it while the next segment is being
sent. 459
Street price The average discounted price of a product. 503
Strong encryption Encryption
that is difficult to decrypt or “break”
without the encryption key. 285
Structured English Vocabulary
and syntax used by systems
analysts to concisely and unambiguously explain the logic of a
process. It is limited to words
defined in a data dictionary and to
specific logical terms such as IF...
THEN. 692
Structured file A file that consists
of a collection of data organized
as a set of similarly structured
records. 614
Structured methodology A
method of developing an information system that focuses on the
processes that take place within
the information system. 570
Structured problem A problem
for which there exists a well-established procedure for obtaining the
best solution. 558
Style A feature in many desktop
publishing and word processing
programs that allows the user to
apply numerous format settings
with a single command. 128
Submenu A user interface element that emerges after a menu is
selected to offer additional options.
Summary report A report generated by a management information
system that combines or groups
data and usually provides totals,
such as a report of total annual
sales for the past five years. 561
Super distribution A concept
incorporated into Microsoft DRM
that allows users to share protected media with others who can
access it after they obtain their
own license for it. 471
Superclass In object-oriented
programming, a superclass can
provide attributes and methods for
subclasses. 704
Supercomputer The fastest and
most expensive type of computer,
capable of processing trillions of
instructions per second. 18
Surge strip A device that filters
out electrical spikes that could
damage computer equipment. 100
SVG (Scalable Vector Graphics)
A graphics format designed
specifically for Web display that
automatically re-sizes when displayed on different screens. 448
SVGA (Super Video Graphics
Array) Typically refers to 800 x 600
resolution. 91
SXGA (Super eXtended Graphics
Array) A screen resolution of 1280
x 1024. 91
Symbian OS An operating system
typically used on mobile phones
and open to programming by thirdparty developers. 202
Symmetric Internet connection
Any connection to the Internet in
which the upstream speed is the
same as the downstream speed.
Symmetric key encryption An
encryption key that is used for both
encryption and decryption of messages. 286
Syntax In the context of programming languages, refers to the
grammar rules that create valid
program statements. 676
Syntax error An error that results
when an instruction does not follow
the syntax rules, or grammar, of
the programming language. 685
Synthesized sound Artificially created sound, usually found in MIDI
music or synthesized speech. 426
System board The main circuit
board in a computer that houses
chips and other electronic components. 28
System conversion The process
of deactivating an old information
system and activating a new one.
System development life cycle
(SDLC) The series of phases that
outlines the development process
of an information system. 566
System documentation
Descriptions of the features,
hardware architecture, and programming of an information system
written for programmers, designers, and analysts who maintain the
system. 585
System operator The person
responsible for the day-to-day
operation of a computer—usually a
mainframe or supercomputer. 588
System palette A selection of colors that are used by an operating
system to display graphic elements. 438
System requirements The criteria for developing a successful
information system; compiled into
a System Requirements Report
at the conclusion of the analysis
phase. 145, 571
System Requirements Report
A report generated at the conclusion of the analysis phase by a
project team that has studied a
system and determined the system
requirements. 572
System software Computer
programs, such as an operating
system or utility software, that help
the computer carry out essential
operating tasks. 16
System testing The process of
testing an information system to
ensure that all the hardware and
software components work together. 584
System unit The case or box that
contains the computer’s power
supply, storage devices, main
circuit board, processor, and
memory. 57
TCP IP (Transmission Control
Protocol/Internet Protocol) The primary protocol suite for transmitting
messages over the Internet. 305
TIFF (Tag Image File Format) A
bitmap image file format with a .tif
extension that automatically compresses the file data. 442
Technical support specialist
A computer professional who
provides phone or online help to
customers of computer companies
and software publishers. 511
Time shifting The practice of
recording digital content for later
playback. 465
Technical writer A person who
specializes in writing explanations
of technical concepts and procedures. 512
Systems analysis and design
The process of planning and building an information system. 566
Telecommuting The act of using
available technologies, such as
computers, telephones, and the
Internet, to work from home or
another off-site location. 513
Systems analyst A computer professional responsible for analyzing
requirements, designing information systems, and supervising the
implementation of new information
systems. 510
Temporal compression A data
compression scheme that, when
applied to video or audio data,
eliminates unnecessary data
between video frames or audio
samples. 458
Systems programmer The person responsible for installing,
modifying, and troubleshooting the
operating system of a mainframe
or supercomputer. 588
Test area A portion of a computer
system where software testing
can occur without disrupting an
organization’s regular information
system. 584
Table (1) An arrangement of data
in a grid of rows and columns. (2)
In a relational database, a collection of record types with their data.
129, 618
Text data type A data type used
for fixed-length fields that hold
character data such as people’s
names or CD titles. 634
Tablet computer A small, portable
computer with a touch-sensitive
screen that can be used as a writing or drawing pad. 59
Tactical planning Short- or nearterm decisions and goals that
deploy the human, financial, and
natural resources necessary to
meet strategic goals. 557
Taskbar A graphical user interface
element usually displayed near the
bottom of the screen to help users
launch and monitor applications.
Tax preparation software
Personal finance software that is
specifically designed to assist with
tax preparation. 133
TCP (Transmission Control
Protocol) The protocol within TCP/
IP that is responsible for establishing a data connection between
two hosts and breaking data into
packets. 305
Text-to-speech software
Software that generates speech
based on written text that is played
back through a computer’s sound
card. 428
Thesaurus A feature of documentation software that provides
synonyms. 127
Third-generation computers
Computers characterized by using
integrated circuits instead of transistors or vacuum tubes for data
processing. 493
Third-generation languages
Programming languages, such as
Fortran, BASIC, and COBOL, that
followed assembly languages and
provided English-like keywords.
Threat modeling A component
of defensive programming that
helps programmers identify ways
in which their programs might be
compromised. 725
TLS (Transport Layer Security)
An update of the Secure Sockets
Layer (SSL) protocol for encrypting
data before it is transmitted over a
network. 389
Toolbar A component of graphical
user interfaces that displays icons
representing tools, commands,
and other options. 190
Top-level domain A major domain
category into which groups of computers on the Internet are divided,
such as com, edu, gov, int, mil,
net, and org. 307
Touch screen A display device
that accepts input from being
touched with a stylus or fingertip.
TQM (Total Quality Management)
The process by which an organization analyzes and implements
ways to improve the quality of its
products and/or services. 569
Traceroute A network utility that
records a packet’s path, the number of hops, and the time it takes
for the packet to make each hop.
Tracing software Software that
locates the edges of objects in
a bitmap graphic and converts
the resulting shape into a vector
graphic. 447
Trackball An input device that
looks like an upside down mouse.
The user rolls the ball to move the
on-screen pointer. 89
Trackpad A touch-sensitive
surface on which you slide your
fingers to move the on-screen
pointer. 89
Tracks A series of concentric or
spiral storage areas created on a
storage medium during the formatting process. 218
Transaction An exchange
between two parties that can be
recorded and stored in a computer
system. 559
Transaction processing system
(TPS) A system that keeps track of
transactions for an organization by
providing ways to collect, display,
modify, and cancel transactions.
Unstructured problem A problem
for which there is no established
procedure for arriving at a solution.
Transceiver A combination of a
transmitter and a receiver used to
send and receive data in the form
of radio frequencies. 265
UPDATE An SQL keyword used
to alter the values in a database
record. 650
Transistors A computer processing technology created by Bell
Laboratories in 1947, characterizing second-generation computers,
which replaced vacuum tubes for
data processing. 492
Unzipped Refers to files that have
been uncompressed. 156
UPS (Uninterruptible Power
Supply) A battery-backed device
designed to provide power to a
computer during blackouts, brownouts, or other electrical disruptions.
UXGA (Ultra eXtended Graphics
Array) A screen resolution of 1600
x 1200. 91
Vacuum tube An electronic device
that controls the flow of electrons
in a vacuum and represents binary
data; used in the construction of
first generation computers. 491
Value A number used in a calculation. 130
Vaporware Software or other
products that are announced, but
never produced. 503
URL (Uniform Resource Locator)
The address of a Web page. 361
VAR (Value-Added Reseller)
A company that combines one
product with additional hardware,
software, and/or services to create a system designed to meet
the needs of specific customers or
industries. 508
USB (Universal Serial Bus) A highspeed bus commonly used for
connecting peripheral devices to
computers. 96
Variable A named storage location that is capable of holding data,
which can be modified during program execution. 680
True Color bitmap A color image
with a color depth of 24 bits or 32
bits. Each pixel in a True Color
image can be displayed using any
of 16.7 million different colors. 437
USB flash drive A portable solid
state storage device nicknamed
“pen drive” or “keychain drive” that
plugs directly into a computer’s
USB port. 84
Variable-length field A field in a
data file that can expand to accept
any number of characters up to a
maximum limit. 615
Turnkey system A complete
information system that consists
of both hardware and commercial
software. 578
USB hub A device that provides
several auxiliary USB ports. 96
UML (Unified Modeling Language)
A tool for diagramming a set of
object classes. 573
Use case diagram Documentation
of the users of an information system and their functions. 573
Unicode A 16-bit character-representation code that can represent
more than 65,000 characters. 25
User documentation Descriptions
of how to interact with an information system or program, including
instructions on use, features, and
troubleshooting. 585
Tree topology Multiple star
networks connected into a bus
configuration by a backbone. 250
Trojan horse A computer program
that appears to perform one function while actually doing something
else, such as inserting a virus into
a computer system or stealing a
password. 163
Uninstall routine A program that
removes software files, references,
and registry entries from a computer’s hard disk. 160
Unit testing The process of testing
a completed application module to
make sure that it operates reliably
and correctly. 584
UNIVAC The first commercially
successful digital computer. 491
UNIX A multi-user, multitasking
server operating system developed
by AT&T Bell Laboratories in 1969.
Unstructured file A file that
contains data, but that is not in
a structured format of fields and
records. 614
Upstream speed The rate at
which data is transmitted from your
home computer to the Internet. 311
Use case Tasks performed by an
actor in an information system. 573
User ID A combination of letters
and numbers that serves as a
user’s “call sign” or identification.
Also referred to as a user name. 34
User interface The software and
hardware that enable people to
interact with computers. 189
User privileges A set of assigned
rights that specify what data is
accessible to a particular user on a
network or on a database. 655
Utility software A type of system
software provided by the operating
system or third-party vendors that
specializes in tasks such as system maintenance, security, or file
management. 122
VDE (Visual Development
Environment) Programming tools
that allow programmers to build
substantial parts of computer programs by pointing and clicking,
rather than entering code. 683
Vector graphic An image generated from descriptions that specify
the position, length, and direction
in which lines and shapes are
drawn. 444
Vertical market software
Computer programs designed to
meet the needs of a specific market segment or industry, such as
medical record-keeping software
for use in hospitals. 142
VGA (Video Graphics Array) A
screen resolution of 640 x 480. 91
Video capture The process of
converting analog video signals
into digital data stored on a hard
drive. 454
Video editing software Software
that provides tools for capturing
and editing video from a camcorder. 140
Videocasting Online delivery of a
video clip as an Atom or RSS feed;
also referred to as video podcasting or vodcasting. 361
Videoconferencing camera (Also
called a Web camera.) An inexpensive digital camera that attaches
directly to a computer and creates
a video by capturing a series of still
images. 453
Videogame console A computer
specifically designed for playing
games using a television screen
and game controllers. 17
Viewing angle width The angle
at which you can clearly see the
screen image from the side. 90
Virtual machine Software that
creates an operating environment
that emulates another computer
platform; as an example, Parallels
Desktop creates a virtual PC on an
Intel Macintosh computer. 199
Virtual memory A computer’s use
of hard disk storage to simulate
RAM. 72
Virtual private network (VPN)
A network connection that typically carries encrypted data over
the Internet to and from a remote
access server. 345
Virus definitions A group of virus
signatures used by antivirus software to identify and block viruses
and other malware. 168
Virus hoax A message, usually
e-mail, that makes claims about a
virus problem that doesn’t actually
exist. 166
Virus signature The unique computer code contained in a virus that
security software uses to identify
it. 167
VisiCalc First released on the
Apple II; was the first electronic
spreadsheet. 495
Visual Basic An event-driven programming environment in which
the programmer uses forms to lay
out the screen components of a
program; components are defined
by properties and Basic program
code. 679
VOB (Video OBject) An industry-standard video format for
standalone DVD players. 457
Voiceband modem The type of
modem typically used to connect a
computer to a telephone line. 312
VoIP (Voice over Internet Protocol)
Hardware, software, and protocols
used to make telephone-style calls
over the Internet. Also referred to
as Internet telephony. 332
Volatile A term that describes
data (usually in RAM), which can
exist only with a constant supply of
power. 72
Walkthrough In the context of programming, a method of verifying
that an algorithm functions properly
when using realistic test data. 694
WAN (Wide Area Network) An
interconnected group of computers and peripherals that covers a
large geographical area, such as
multiple branches of a corporation.
WAP (Wireless Access Protocol) A
communications protocol that provides Internet access for handheld
devices. 327
Waterfall SDLC A series of phases that outlines the development
process of an information system
where each phase is a discrete
step in the development process.
Wave An audio file format with
.wav extension that was Windows’
original “native” sound format. 424
Wavetable A set of pre-recorded
musical instrument sounds in MIDI
format. 426
WBS (Work Breakdown Structure)
A project management tool based
on a hierarchical structure of tasks
and deliverables. 570
Weak encryption Encryption
that is relatively easy or simple to
decrypt without the encryption key.
Web Short for World Wide Web.
An Internet service that links
documents and information from
computers located worldwide,
using the HTTP protocol. 7, 360
Web 2.0 A group of new and innovative ways to use the Web, such
as for social networking, blogging,
and wikis. 361
Web application Applications
software that is accessed and used
from within a browser. 158
Web authoring software
Computer programs for designing
and developing customized Web
pages that can be published electronically on the Internet. 125
Web browser A program that
communicates with a Web server
and displays Web pages. 361
Web bug A small graphic on a
Web page that installs cookies
designed to track your online
activities. Also known as a Clear
GIF. 402
Web cache A collection of Web
pages and associated graphics
that have been accessed and are
temporarily stored locally to speed
up subsequent access to them.
Web crawler The component of a
search engine that autonomously
visits Web sites collecting Web
page data that will be indexed and
available for searching. 375
Web page Information displayed
by a Web browser that’s produced
from an HTML document or generated on the fly from data in a
database. 361
Web palette A standard selection
of colors that all Internet browsers
can display. 438
Web portfolio A hypertext version
of a resume containing links to
Web sites of former employers or
schools. 519
Web search engine A program
that uses keywords to find information on the Internet and returns a
list of links to relevant documents.
Web server A computer that
listens for queries from Web
browsers and transmits HTML
documents over the Internet. 361
Web site A Web address that
holds a collection of information
identified by a common domain
name, such as 360
Web site designer A computer
professional who creates, tests,
posts, and modifies HTML documents and other data for a Web
site. 511
Web-based e-mail An e-mail system that allows users to access
e-mail messages using a browser.
Web-based video Digital video
designed to be accessed using
a browser and played on a computer. 452
WEP (Wired Equivalent Privacy)
An encryption algorithm used to
protect data on Wi-Fi networks.
What-if analysis The process of
setting up a model in a spreadsheet and experimenting to see
what happens when different values are entered. 130
Whistleblowing The disclosure
by an employee of confidential
information that relates to some
danger, fraud, or other illegal or
unethical conduct connected with
the workplace. 532
Wireframe A representation of a
3-D object using separate lines,
which resemble wire, to create a
model. 449
Workstation (1) A computer connected to a local area network.
(2) A powerful desktop computer
designed for specific tasks. 17
Wireless access point A network device that connects several
devices of a local area network by
broadcasting signals to any device
with compatible Wi-Fi cards. 270
WPA (Wi-Fi Protected Access) A
method for encrypting data transmitted over wireless networks. 283
Wi-Fi An Ethernet-compatible wireless network that uses 802.11a, b,
g, and n standards. 268
Wireless ad-hoc network A wireless network in which devices
broadcast directly to each other
instead of to a central access
point. 270
Wi-Fi adapter A type of network
interface card that includes a transmitter and a receiver using Wi-Fi
protocols. 269
Wireless encryption A security
measure for wireless networks
that scrambles data transmitted
between network devices. 283
Wi-Fi hotspot The geographical
area in which you can connect to
a Wi-Fi signal, such as a Wi-Fi
equipped campus or coffeehouse.
Wireless infrastructure network
A wireless network in which devices communicate through a central
access point. 270
Wiki Software that allows users to
collaborate to create, change, and
link Web pages. Used for applications such as Wikipedia and open
source project management. 361
WiMAX Fixed wireless Internet
service based on Ethernet protocols with a range of 30 miles and
a transmission speed of 70 Mbps.
Window An element of graphical
user interfaces that is rectangular
in shape and displays the controls
for a program or a dialog box. 189
Windows Explorer A file management utility included with most
Windows operating systems that
helps users manage their files. 216
Windows Media DRM Microsoft’s
digital rights management technology. 470
Windows Mobile OS An operating
system designed by Microsoft for
hand-held computers. 203
Windows Registry A crucial set
of data files maintained by the
operating system that contains the
settings needed by a computer to
correctly use any hardware and
software that has been installed.
Wired network A network that
uses cables or wires to transmit
data from one network device to
another. 256
Wireless network Networks
that use radio or infrared signals
(instead of cables) to transmit
data from one network device to
another. 265
Wireless network key The
encryption key used to encrypt
and decrypt data that travels over
a wireless network protected by
WEP, WPA, or WPA2. 284
Wireless router A network device
that contains circuitry for a wireless
access point and routing data to
the Internet. 270
WMA (Windows Media Audio) A
file format with a .wma extension
that is promoted by Microsoft and
provides highly compressed audio
files with very little loss of sound
quality. 424
Word processing software
Computer programs that assist the
user in producing documents, such
as reports, letters, papers, and
manuscripts. 125
Word size The number of bits that
a CPU can manipulate at one time,
which is dependent on the size of
the registers in the CPU, and the
number of data lines in the bus. 68
Workers People who perform the
tasks necessary to carry out an
organization’s mission. 557
Worksheet A computerized, or
electronic, spreadsheet. 130
WQXGA (Wide Quad eXtended
Graphics Array) 2560 x 1600 resolution. 91
WUXGA (Widescreen Ultra
eXtended Graphics Array) A display resolution of 1920 X 1200
pixels. 91
Xerox Alto An early personal
computer prototype developed by
Xerox Corp. that featured, among
other things, a graphical user
interface that became influential
in the development of the Apple
Macintosh. 495
XForms A database technology
that provides an alternative to
HTML forms by providing more
flexibility and an interface to XML
documents. 629
XGA (eXtended Graphics Array)
Usually refers to 1024 x 768 resolution. 91
XHTML A markup language very
similar to HTML 4.01, but more
customizable. 362
XML (eXtensible Markup
Language) A document format
similar to HTML, but that allows
the Web page developer to define
customized tags, generally for the
purpose of creating more interactivity. 630
XML DBMS A database management system that provides
authoring and query tools for
designing and managing collections of XML documents. 625
Z3 An early electronic computer
prototype designed by Konrad
Zuse that was the first to incorporate the use of binary numbers for
data representation. 489
Zipped Refers to one or more files
that have been compressed. 156
Zombie A computer that has
been compromised by malware
that allows it to be controlled by a
remote user. 164
A+ Certification, 516
A Programming Language (APL),
679, 700
AAC (Advanced Audio Coding)
format, 424
AACS (Advanced Access Content
System), 469
abacus, 486
ABC (Atanasoff-Berry Computer),
absolute references, worksheets,
The Abyss (film), 474
acceptance testing, 586
access controls, 655
access times
hard disks, 79
storage devices, 77
accounting software, 142
accuracy, quality-of-service
metrics, 587
Acer, market share, 504
ACH (Automated Clearing House),
ACM (Association for Computing
Machinery), 531
action games, 141
ActiveX controls, 372 373
actors, 573
acts of war, information system
data vulnerability, 591
ad hoc reports, 561
Ada, 679, 700, 711
Ada95, 712
ad-blocking software, 385
Internet, 305 307
spoofed, 163
Adobe Creative Suite, 144
Adobe Reader, 122, 210
ad-serving cookies, 400
Advanced Access Content System
(AACS), 469
Advanced Audio Coding (AAC)
format, 424
Advanced Encryption Standard
(AES), 285
Advanced Micro Devices. See
AMD (Advanced Micro
Advanced Research Projects
Agency (ARPA), 108, 302
advanced searches, 380
Advanced Systems Format (ASF),
adventure games, 141
advertising, e-commerce, 385
AES (Advanced Encryption
Standard), 285
agile methodology, 681
agriculture, computers in, 731 732
AIFF (Audio Interchange File
Format), 424
Aiken, Howard, 490
Ajax (Asynchronous JavaScript
and XML), 362
Alberta Agriculture and Rural
Development Web site, 731
ALGOL (ALGOrithmic Language),
algorithms, 689 694
definition, 689
designing, 690 691
expressing, 692 694
walkthroughs, 694
writing, 689 690
alpha tests, 504
ALU (arithmetic logic unit), 31, 32
always-on connections, 307
ALWIL avast!, 167
Amadeus, 544, 7, 499
Amazon Auctions, 388
Elastic Compute Cloud, 335
IPO, 501
AMD (Advanced Micro Devices),
microprocessors, 70, 494
America Online, call center, 542
American Airlines, 544, 545
American Express call center, 542
American Society of Travel Agents
(ASTA), 545
American Standard Code for
Information Interchange
(ASCII), 24, 25
ASCII files, 682
analog data, 22
digital data compared, 22
analog hole, 464
analog modems, digital phone
service, 313
analog protection systems, 468
Analog Telephone Adapters
(ATAs), 332
analog video cameras, 453
analysis phase of SDLC, 571 575
activities, 571
documentation tools, 572 575
system requirements, 571 572
Analytical Engine, 488
AND, SQL queries, 648, 649
AND operator, 380
Andreesen, Marc, 360
Android OS, 203
animated GIFs, 448
animation, film, 475
anonymizer tools, 10
anonymous FTP, 337
anonymous proxy service, 403
antipharming tools, 406
anti-spyware software, 402
anti-theft devices, 98 99
antivirus software, 122, 167 169
activating and deactivating, 168
configuring, 168
dependability, 169
frequency of system scans, 169
keeping up-to-date, 168
operation, 167 168
AOL, 6
censorship, 346 347
security software available from,
APA style for citations, 382
Apache helicopters, 108
APIs (application programming
interfaces), 687, 688
APL (A Programming Language),
679, 700
Apple Computer, Inc.. See also
Mac entries
GUI, 189
Macintosh. See Mac entries
Safari, 366
Apple Computer Corporation, 499
Apple I, 495
Apple II, 495
Apple Lisa, 495
founding, 495
market share, 504
microprocessors, 494
application development tools,
information systems, 578
application programming interfaces
(APIs), 687, 688
application servers, 249
application software, 16, 120,
125 142. See also specific
types of application software
file management, 212 213
groupware, 121
included with operating system,
143 144
productivity, 121
running, 121
application specifications, 581 582
application testing, 584
appz, 179
architecture, computer applications
in, 598 599
arguments, Prolog, 714 715
arithmetic logic unit (ALU), 31, 32
ARPA (Advanced Research
Projects Agency), 108, 302
ARPANET, 108, 109, 232, 302
ASCC (Automatic Sequence
Controlled Calculator), 490
ASCII (American Standard Code
for Information Interchange),
24, 25
extended, 24
ASCII files, 682
ASF (Advanced Systems Format),
assembly languages, 677
associate’s degree,
computer-related, 515
Association for Computing
Machinery (ACM), 531
assumptions, 680
ASTA (American Society of Travel
Agents), 545
asymmetric Internet connection,
Asynchronous JavaScript and XML
(Ajax), 362
ATA(s) (Analog Telephone
Adapters), 332
Atanasoff-Berry Computer (ABC),
Atari, 495
ATMs (automated teller machines),
348 349
Atom, 360
AT&T, 303, 492, 497
attachments, e-mail, 393
attack trees, 726
auctions, online, 388
digital. See digital audio
streaming, 425
audio compression, 423
audio editing software, 139
audio encoding software, 139
audio format converters, 139
Audio Interchange File Format
(AIFF), 424
Audio Video Interleave (AVI)
format, 457
audits, databases, 656
authentication protocols, 34 36
authorization and revocation, 469
AutoCAD Certified User exam, 516
Autodesk, certification, 516
automated check clearing, 348
Automated Clearing House (ACH),
automated teller machines (ATMs),
348 349
automatic recalculation,
worksheets, 132
Automatic Sequence Controlled
Calculator (ASCC), 490
automation, information systems,
576 577
AVI (Audio Video Interleave)
format, 457
Babbage, Charles, 348, 488
back pain, 540
backing up, 222 231
avoiding viruses, 223
backup software, 227
bare-metal restores, 230
boot disk, 229
choosing device for, 223
differential backups, 227
disk images, 230 231
file copies and synchronization,
224 225
frequency, 223
full backups, 227
incremental backups, 228
need for, 222
number of backups, 228
plan for, 222
recovery disk, 229
restore points, 230
restoring data, 228 229
storage location for backups,
system synchronization, 226
Windows Registry, 229
backpack journalists, 173
Backup, 143
backup(s), 222
disaster recovery plans,
593 594
backup software, 227
backward compatibility, Mac OS,
198 199
bandwidth, 251
bank clearinghouses, 348
Bank of America, 348, 653
banking industry, 348 349
banner ads, 385
bare-metal restore, 230
BASIC (Beginner’s All-purpose
Symbolic Instruction Code),
679, 700
game development, 687
batch processing, 560
battery backup, 100
Battlefield 1942, 142
B2B (business-to-business) model,
B2C (business-to-consumer)
model, 384
BD-R (Blu-ray recordable), 83
BD-RE (Blu-ray rerecordable), 83
BD-ROM (Blu-ray read-only
memory), 83
Becky Sharp (film), 474
Beginner’s All-purpose Symbolic
Instruction Code. See BASIC
(Beginner’s All-purpose
Symbolic Instruction Code)
Beise, S, Clark, 348
Bell Laboratories, 492
benchmarks, 69
Berners-Lee, Tim, 360, 362
Berry, Clifford E., 489
Best Buy, 506, 611
beta tests, 504
Betamax, 472
B2G (business-to-government)
model, 384
BI (Business Intelligence), 569
Bidz, 388
binary number system, 23
biometrics, 34
bit(s), 23
quantification, 26
storage and transport, 27
storing images, 25
storing sound, 25
bitmap graphics, 430 443
color depth, 436 437
color palettes, 437 438
compression. See image
converting vector graphics to,
creating, 430
definition, 430
digital cameras, 431 433
file formats, 442 443
image resolution, 433 435
modifying, 433
monochrome, 436
resolution dependence, 435
scanners, 431
32-bit, 437
True Color, 437
24-bit, 437
uses, 430
vector graphics compared,
444 445
bitrate, 458
BitTorrent, 305, 338 339, 529
legality, 339
security, 339
black screen of death, 103
Blackberry Curve, 19
Blackboard, 291
blade servers, 18
Blancco File Shredder, 123
Blaster worm, 233
blended threats, 162
BLOB data type, 635
Blockbuster Online, 471
blogs, 6
Bloom, David, 173
blue screen of death, 103
Blue Shield of Pennsylvania, 542
Bluetooth, 267
definition, 267
range, 267
speed, 267
uses, 267
Blu-ray, 81
backup device, 223
comparison with other storage
technologies, 87
operation, 81 82
other optical technologies
compared, 81
speed, 82
uses, 83
Blu-ray disc(s), copy protection,
Blu-ray Disc Movie format, 457
Blu-ray read-only memory
(BD-ROM), 83
Blu-ray recordable (BD-R), 83
Blu-ray rerecordable (BD-RE), 83
BMP format, 442, 443
body scanners, 41
Boole, George, 379
Boolean operators, 379 380
boot disks, 229
boot process, 192 193
bootstrap program, 192
bot(s), 164
botnets, 164
BPR (Business Practice
Reengineering), 569
break reminder software, 541
bridges, 250
British Telecom, 303
broadband, 251
mobile, 327
broadcast flags, 465 466
broadcast journalism, 173
Brooks, Frederick, 566
browser caches, 367
brute force attacks, 37
BSD license, 150 151
buffer overflows, 723 724
Bugnosis, 402
bulletin boards, 6
Burroughs, 489, 492
bus topology, 250
business(es). See also
definition, 556
e-mail privacy policies, 409
employee e-mail privacy, 408,
ethics. See professional ethics;
Business Intelligence (BI), 569
Business Practice Reengineering
(BPR), 569
business software, 142
business-to-business (B2B) model,
business-to-consumer (B2C)
model, 384
business-to-government (B2G)
model, 384
buttons, 190
buying hardware, 62 66
compatibility, 64
costs, 62 63
mods, 65 66
planned uses, 63
product information sources, 62
software considerations, 64
upgrading, 65
vendors, 66
buying software, 143 151
applications and utilities
included with operating
system, 143 144
copyrights, 146 147
essential software to have, 143
freeware, 150
information sources, 145
licenses, 147 150, 151
open source software, 150 151
software package ingredients,
software suites, 144
system requirements, 145
vendors, 145
bytes, 26
quantification, 26
C (programming language), 679,
689, 700, 711 712
game development, 687
C#, 679, 712
C++, 679, 711, 712
game development, 687
CA SB1386, 658
Ethernet, 262
transferring images from digital
cameras, 432
cable Internet service, 316 317,
equipment needed, 317
security, 317
speed, 316
cable modems, 317
caches, 68
size, 68
Cactus Data Shield (CDS), 466
CAD (computer-aided design)
software, 138, 410, 598
CAI (computer-aided instruction),
CAL (computer-aided learning),
Calculator, 143
manual, 486 487
mechanical, 487 489
California Department of Social
Services, 653
call centers, offshore, 542
analog, 453
digital. See digital cameras
videoconferencing, 453
Campbell Soup Company, 564
Canada, offshoring, 542
CAN-SPAM Act, 524
capacitors, 72
quality-of-service metrics, 587
storage devices, 77
card readers, 84, 432
cardinality, 616
careers. See computer
carpal tunnel syndrome, 536
Carrier Sense Multiple Access with
Collision Detection (CSMA/
CD) protocol, 259
case sensitive databases, 636
case sensitivity, 35
CASE tools, 574 575
cathode ray tubes (CRTs),
radiation emissions, 535
CATV (community antenna
television), 316
CBT (computer-based training),
C2C (consumer-to-consumer)
model, 384
CCNP (Cisco Certified Network
Professional), 516
CD(s) (compact discs), 81
backup device, 223
buying software on,
downloading versus, 146
copy protection, 466 467
formats, 82, 83
installing software from, 155
operation, 81 82
other optical technologies
compared, 81
speed, 82
uses, 83
CD ripper software, 139
CDC (Centers for Disease
Control), 663
CD-DA (compact disc digital audio)
discs, 82
CD-R (compact disc recordable)
discs, 83
CD-ROM (compact disc read-only
memory) discs, 83
CD-RW (compact disc rewritable)
discs, 83
comparison with other storage
technologies, 87
CDS (Cactus Data Shield), 466
CDW, 507
cell(s), worksheets, 130
cell phones
Internet access, 326 329
radiation emissions, 536
cell references, 131
cellular data service, 326 329
equipment needed, 327
speed, 326, 327
WAP, 327
cellular networks, tracking, 42 43
eBay, 10
Internet, 10, 346 347
Centers for Disease Control
(CDC), 663
central processing unit (CPU), 15
centralized processing, 577
certificates of completion, 515
certification, 515 516
certification exams, 516
Certified Information Systems
Security Professional
(CISSP), 517
CGI (computer-generated
imagery), 474 475
change requests, 582
channel conflict, 508
character data, 24 25
chat, 330 331
chat groups, 6
Chicago style for citations, 382
chief information officer (CIO), 510
Children’s Internet Protection Act,
Children’s Online Privacy
Protection Act, 524
Internet censorship, 10, 347
offshoring, 542
chipmakers, 498
chips, 27. See also
ChoicePoint, 653
chokers, 339
Chrome, 366
CIO (chief information officer), 510
ciphertext, 285
circuit switching, 253
circulatory problems, 540 541
CISC (complex instruction set
computing), 69
Cisco Certified Network
Professional (CCNP), 516
Cisco Systems, 499
Internet censorship tools, 347
CISSP (Certified Information
Systems Security
Professional), 517
ClamWin, 167
coding, 704
defining, 703
definition, 702
inheritance, 704 705
methods related to, 706
objects compared, 702
class attributes, 703
class diagrams, 573 574
class hierarchies, 704
Classmates, 361
cleaning. See maintenance
clear GIFs, 402
click-through rate, 385
client(s), 18
client/server mode, 249
client-side scripts, 372
clip art, 129
clothing production, warehousing,
and shipping, 410 411
cloud computing, 335
clusters, 219
CMSs (course management
systems), 291
COBOL (Common
Language), 493, 677, 679,
689, 700
code, 674 675
codecs, 458
codes of ethics, 530 532
coding programs, 682 685
program editors, 684 685, 685
text editors, 682, 684 685
VDEs, 683 685
color depth, 436 437
bitmap graphics, 436 437
display devices, 91
file size, 436
reducing, 437
color palettes, 437 438
Combined Programming Language
(CPL), 679
Comcast, security software
available from, 167
command-line user interfaces, 189
comments, computer programs,
commercial software, 149
commit or rollback strategy, 560
Commodore, 495
Common Business-Oriented
Language (COBOL), 493,
677, 679, 689, 700
communications channels, 251
Communications Decency Act,
508, 524
communications protocols,
252 255, 305 306
addresses, 254 255
CSMA/CD, 259
definition, 252
operation, 252
packets, 253 254
signals, 253
stateless, 365
communications technology,
global, 12
community antenna television
(CATV), 316
compact discs. See CD(s)
(compact discs)
CompactFlash, 84
Compaq, 493
compatibility, 64
backward, Mac OS, 198 199
compilers, 30
complex instruction set computing
(CISC), 69
components, computer
programming, 687
audio, 423
images. See image compression
video, 456, 458
compression ratio, 458
CompTIA (Computing Technology
Industry Association),
516 517
CompUSA, 506
CompuServe, 6
computations, databases, 635
computed fields, 635
computed tomography (CT), 8, 663
compute-intensive problems, 19
adding storage, 86
categories, 16 19
definition, 14
desktop, 58
disposal, 106 107
first, 5
gaming, 61
growth in ownership, 4 7
handheld, 19
history. See computer history
home, 60
input, 15
output, 15
PCs. See personal computer(s)
portable, 59
small business, 61
software. See software
storage of instructions, 15 16
upgrading, 65
Computer Associates, location,
Computer Buyer’s Guide InfoWeb,
computer chips, 27. See also
computer crime
penalties, 232 233
unauthorized access to wireless
networks, 288 289
computer engineer(s), 512
computer engineering, 514
computer forensics, 235
Computer Fraud and Abuse Act,
computer games, programming
tools, 687 688
computer gaming, 8
computer hardware. See
hardware; specific hardware
computer history, 486 496
first-generation computers,
491 492
fourth-generation computers,
manual calculators, 486 487
mechanical calculators,
487 489
personal computers. See
personal computer entries
prototypes, 489 490
second-generation computers,
492 493
third-generation computers, 493
computer industry, definition, 497
computer languages. See
programming languages
computer magazines, information
on software, 145
computer networks, 7. See also
network entries
computer operators, 511
computer professionals, 510 522
advantages of working in
information technology
industry, 513
basic qualifications, 514
career outlook for, 512
certification, 515 517
contract work, 513
definition, 510
educational requirements,
514 515
ethics. See professional ethics
job hunting, 517
job listings, 520 522
jobs available to, 510 512
part-time work, 513
portfolios, 519 520
resumes, 518 519
salaries of, 512
telecommuting, 513
computer program(s), 15, 29 31.
See also software
coding, 682 685
planning, 680 681
programmers, 511, 675. See
also computer programming;
specific types of programming
programming languages, 29,
676 679
size, 675
source code conversion, 30 31
stored, 16
computer programmers, 511
computer programming, 672 733
components, 687
computer programming,
definition, 675
declarative. See declarative
paradigm; Prolog
documentation, 686
object-oriented. See
object-oriented programming
procedural. See procedural
program code defined, 674 675
program coding, 682 685
program planning, 680 681
program size, 675
program testing, 685
programmers, 511, 675
programming languages, 29,
676 679
programming tools, 686 688
secure. See secure
software engineering compared,
computer retail stores, 506
computer retailers, 498
computer salespersons, 512
computer science, 514
computer screens, maintenance,
computer simulations, military use,
computer slump, 540
computer software.
computer systems, 56 57
components, 56 57
computer theft
anti-theft devices, 98 99
recovery, 99
computer viruses, 163
avoiding in backups, 223
e-mail, 397
information system data
vulnerability, 591
virus definitions, 168
virus distribution, 232
virus hoaxes, 166
virus signatures, 167
computer worms, 163
computer-aided design (CAD)
software, 138, 410, 598
computer-aided instruction (CAI),
computer-aided learning (CAL),
computer-aided music software,
computer-based training (CBT),
computer-generated imagery
(CGI), 474 475
computerization, information
systems, 576 577
Computing Technology Industry
Association (CompTIA),
516 517
concurrent-use licenses, 147
confidentiality, 11
ethical issues, 526 527
network routers, 264
workstations for Ethernet, 264
connection speed, Internet,
309 311
constant(s), 680
Construction, computer
applications in, 598 599
construction robots, 599
consumer-to-consumer (C2C)
model, 384
container formats, 457
Content Scramble System (CSS),
Continental Airlines, 545
contract workers, 513
control(s), 123, 683 684
definition, 683
properties, 683
Control Data, 492
control structures, use, 695 700
control unit, 31 32
convergence, 8 9
conversion of file formats, 210 211
Cook, Ben, 730
cookies, 400 403
ad-serving, 400
definition, 367 368
deleting, 401 402
Flash, 402
operation, 368
turning off, 401
uses, 368
Cooper, Alan, 730
Copy Control, 466
copy control, 466
copy generation management, 467
copy prevention, 466
copy protection, 466 467
copying, databases, illicitly, 653
copying desktop videos to DVDs,
462 463
ethical issues, 525
fair use, 472 473
software, 146 151
Web-based sources, 383
copyright notices, 147
corporate data security, 590 595
corporate identity theft, 594 595
information system data
security, 592 594
information system data
vulnerabilities, 590 591
corporate identity theft, 594 595
corrupted signals, 253
computers, 62 63
domain names, 309
portable satellite service, 325
printer operation, 93
products, 498
counterfeiting, 179
course management systems
(CMSs), 291
Cow Sense decision support
software, 731
CPL (Combined Programming
Language), 679
CP/M, 493
CPU (central processing unit), 15
CREATE keyword, 646
credit cards, online payment, 389,
CRM (Customer Relationship
Management), 569
cropping, 435
cryptographic algorithms, 285
cryptographic keys, 285
CSMA/CD (Carrier Sense Multiple
Access with Collision
Detection) protocol, 259
CSS (Content Scramble System),
CT (computed tomography), 8, 663
Customer Relationship
Management (CRM), 569
cyber censorship, 346 347
CyberAngel, 99
cyber-hacking, 232 233
CyberLink DVD Suite 7, 144
cyberspace, 7
cyberterrorism, 591
cycles, microprocessors, 67 68
dashboard widgets, 123
data, 15
analyzing, databases, 612
character, 24 25
collecting, databases, 610
digital, 22 23
distribution, databases, 611
finding, databases, 611 612
information compared, 22
loading into database tables,
numeric, 23
organizing, databases, 611
output, databases, 611
reading (loading), 76
sharing on LANs, 274
storing, databases, 610
travel over networks, 252 253
updating, databases, 610 611
writing, 76
data bus, 94
data centers
disaster recovery plans,
593 594
risk minimization, 592 593
data dependence, 624
data diddling, 232
data dredging, 613
data files, backing up. See backing
data fishing, 613
data flow(s), 572 573
data flow diagrams (DFDs),
572 573
data fork, Mac OS, 200
data independence, 624
data management software,
622 632
custom, 623 624
DBMSs, 625 626
selecting, 624
Web access to databases,
627 630
XML, 630 632
data mining, 612 613
Data Over Cable Service Interface
Specification (DOCSIS), 316
data processing, 15
data redundancy, 637
data representation, 22 23
definition, 22
digital. See digital data
data service plans, 327
data stores, 572
data transfer rate, 77
data types, 634 635
data views, 655
data warehouses, 612
database(s), 608 663
case sensitive, 636
computations, 635
copying illicitly, 653
data management tools. See
data management software
data mining, 612 613
declarative languages, 722
definition, 134, 610
design. See database design
distributed, 626
fields. See field(s), databases
jobs, 519
medical, 662
models. See database models
OLAP, 613
preventing inaccurate data
entry, 636 637
records. See record(s),
relationships, 616
security. See database security
SQL. See SQL (Structured
Query Language)
tables. See database tables
underlying structure, 614
uses, 610 612
database administration,
certification, 516
database administrators, 511
database audits, 656
database client software, 626
database design, 633 644
defining fields, 633 637
interface design, 640 641
loading data, 644
normalization, 637 638
organizing records, 639 640
report template design, 642 643
database indexes, 639
database management software
(DBMS). See database
database management systems.
See DBMSs (database
management systems)
database models, 614 621
dimensional, 619
flat file, 614 616
hierarchical, 617
network, 617
object, 620
object-relational, 621
relational, 618 619
database security, 653 659
access control, 655
database audits, 656
database use policies, 656
encryption, 654 655
individual efforts, 658 659
laws, 656 658
vulnerabilities, 653 654
database server software, 626
database software, 134 136
data entry, 135
data storage, 134 135
definition, 134
locating data, 136
record creation, 135
database structure, 633
database tables, 618
joining, 651 652
loading data, 644
database use policies, 656
date data type, 635
DBMS (database management
software). See database
DBMSs (database management
systems), 625 626
choosing, 625 626
XML, 625
DCGS (Distributed Common
Ground System), 109
DE (distance education), 291
de Colmar, Thomas, 487
de Colmar’s Arithmometer, 487
debuggers, 685
DEC (Digital Equipment Corp.),
DEC PDP-8, 493
decimal number system, 23
decision models, 562
decision queries, 562
decision support systems (DSSs),
562 563
declarative languages, 722
decision support worksheets, 579
decision tables, declarative
paradigm, 714
declarative paradigm, 679,
713 722
advantages and disadvantages,
applications, 722
building blocks, 713 714
definition, 713
input capabilities, 720 721
languages, 722
planning declarative programs,
Prolog. See Prolog
unique features, 713
decryption, 285
DeCSS, 468
dedicated lines, 314, 321
DefenseLINK, 108
defensive programming, 726
defragmentation utilities, 221
DELETE keyword, 646
cookies, 401 402
files, 220
activities, 498
call center, 542
location, 499
market share, 504
market tier, 505
servers, 18
Web-based direct sales, 507
Delta Airlines, 545
democracy, digital technology, 10
demoware, 149
denial of service, 232
design phase of SDLC, 576 582
activities, 576
application specifications,
581 582
hardware alternatives, 576 577
RFPs and RFQs, 580 581
software alternatives, 578
solution selection, 579
desktop, 189
desktop computers, 58
desktop operating systems, 188
desktop publishing (DTP) software,
desktop video, 452, 459
copying to DVDs, 462 463
desktop widgets, 123
detail reports, 560
Deutsche Telekom, 303
device drivers, 124
DFDs (data flow diagrams),
572 573
DHCP (Dynamic Host
Configuration Protocol), 255
DHTML (Dynamic Hypertext
Markup Language), 362
dialog boxes, 191
dial-up connections, 312 313, 321
DICOM (Digital Imaging and
Communications in Medicine),
dictionary attacks, 36
Difference Engine, 488
differential backups, 227
digital audio, 422 425
adding to Web pages, 425
definition, 422
file formats, 424
MIDI music, 426 427
portable audio players, 425 426
production, 423 424
sampling rate and sound quality,
software for recording and
playing, 425
speech recognition and
synthesis, 428 429
digital cameras, 431 433
digital video cameras, 453 454
image storage, 432
transferring data to computer,
transferring images from,
432 433
videoconferencing cameras, 453
digital certificates, 373
digital content, 464
digital data, 22 23
digital data representation, 22 28
bits and bytes, 26
circuits and chips, 27 28
images, 25
numbers, 23
text, 24 25
digital devices, radiation
emissions, 534 536
digital divide, 12 13
Digital Document Shredder, 123
digital electronic devices, 4 5
Digital Equipment Corp. (DEC),
digital images, 8
Digital Imaging and
Communications in Medicine
(DICOM), 663
Digital Millennium Copyright Act
(DMCA), 346, 473, 524, 529
digital music, 8
sources, 425
digital phone service, analog
modems, 313
digital processing, 29 33
processor logic, 31 33
programs, 29 31
digital revolution, 4 8
computers, 5 7
digitization, 7 8
significance, 4 5
technologies fueling, 4
digital rights management (DRM),
464 473
Blu-ray, 469
CD copy protection, 466 467
definition, 464
digital downloads, 469 471
digital media use, 464 465
digital watermarks, 465 466
DVDs, 467 468
effectiveness, 465
signal scrambling, 465
digital signal processors, 424
digital subscriber line. See DSL
(digital subscriber line)
digital technology
analog technology compared,
economy, 12 13
freedom and democracy, 10
intellectual property, 11 12
privacy, 11
digital versatile discs. See DVD
digital video, 8, 452 463
compression, 456, 458
creating, 453 454
definition, 452
desktop video, 452, 459
DVD-video, 452, 461 463
editing, 456 457
file formats, 456, 457, 462 463
frame rate, 456
PDA, 452, 459
transferring video footage to
computer, 454 456
types, 452
video output, 457 458
Web-based, 452, 459 460
digital video cameras, 453 454
digital video discs. See DVD
digital video recorders, capturing
video, 455
digital watermarks, 465 466
digitization, 7 8
digitizing tablets, 446
dimensional databases, 619
DIMMs (dual inline memory
modules), 73
DIPs (dual in-line packages), 27
direct access. See random access
direct conversion, 586
direct marketing, 44 45
directories, 206
disaster recovery plans, 593 594
disc(s). See specific types of discs
disc mastering, 219
disk(s). See also specific types of
formatting, 218 219
Disk defragmenter, 143
disk images, 230 231
disk operating system (DOS), 202
disk partitions, 205
display devices, 90 91. See also
specific display devices
components, 91
image quality, 90
maintenance of screens, 101
optimal placement, 538 539
resolution, 539
screensavers, 123
types, 91
display systems, 57
distance education (DE), 291
distance learning, 291
Distributed Common Ground
System (DCGS), 109
distributed databases, 626
distributed processing, 577, 335
distribution media, 146
DMCA (Digital Millennium
Copyright Act), 346, 473, 524,
DNS (Domain Name System), 309
docking stations, transferring
images from digital cameras,
DOCSIS (Data Over Cable Service
Interface Specification), 316
doctoral degrees,
computer-related, 515
document production software,
125 129
desktop publishing software,
formatting, 127 129
improving writing quality,
126 127
spell checking, 126
Web authoring software, 125
word processing software, 125
documentation, programs, 686
documentation tools
CASE tools, 574 575
object-oriented analysis and
design, 573 574
structured, 572 573
DoD (U.S. Department of
Defense), 108
domain name(s), 307 309
fee, 309
IP addresses related, 308
list, 307
obtaining, 308 309
domain name servers, 308
pharming, 405 406
Domain Name System (DNS), 309
donating old computers, 106
DOS (disk operating system), 202
dot commands, 499
dot command bubble, 501
dot matrix printers, 92 93, 94
dot pitch, 90
double layer DVDs, 81
DoubleClick, 401
downloading, 8
DRM, 469 471
installing downloaded software,
156 157
software, 146
downstream speed, 311
downtime, quality-of-service
metrics, 587
drawing(s). See graphics
drawing software, 137, 446
DREAD categories, 725
drive(s). See hard disk drives;
optical drives; solid state
drives (SSDs); USB flash
drives; specific types of optical
drive bays, 86
drive mapping, 276
driver licenses, 660
DRM. See digital rights
management (DRM)
DRM individualization, 470, 473
DSL (digital subscriber line),
314 315, 321
equipment, 315
operation, 315
speed, 315
DSL filters, 315
DSL modems, 315
DSSs. See decision support
systems (DSSs)
DTP (desktop publishing) software,
dual boot, Mac OS, 199
dual inline memory modules
(DIMMs), 73
dual in-line packages (DIPs), 27
dual-channel architecture, 73
duplex printers, 93
durability, storage technologies, 77
duty cycle, printers, 93
DV format, 456
DVD(s) (digital video discs or
digital versatile discs), 81
backup device, 223
double layer, 81
DRM, 467 468
formats, 82, 83
installing software from, 155
operation, 81 82
other optical technologies
compared, 81
outputting video to, 462
speed, 82
uses, 83
DVD authoring software, 140
DVD burners, 461
DVD drives, writable, 461
DVD images, 462
DVD volumes, 462
DVD+R or DVD-R (digital versatile
disc recordable) discs, 83,
DVD-ROM (digital versatile disc
read-only memory) discs, 83
rewritable) discs, 83, 463
comparison with other storage
technologies, 87
DVD-Video, 452, 461 463
testing, 463
DVD-Video (digital versatile disc
video) discs, 82
DVI (Digital Visual Interface) ports,
95, 96
Dynabook project, 711
Dynamic Host Configuration
Protocol (DHCP), 255
Dynamic Hypertext Markup
Language (DHTML), 362
dynamic IP addresses, 306 307
dynamic Web publishing, 628
EAI (Enterprise Application
Integration), 569
ear training software, 139
EarthLink, e-mail authentication,
eBay, 7, 388
censorship, 10
EBCDIC (Extended Binary Coded
Decimal Interchange Code),
eBid, 388
e-books, fair use, 473
Eckert, J. Presper, 490
Eckert-Mauchly Computer Corp.,
e-commerce, 384 391
common models, 384
definition, 384
marketing, 45
online auctions, 388
online payment, 389 391
online shopping, 386 387
popularity, 385
profitability, 384 385
Web sites, 45
who benefits, 385
digital technology, 12 13
information technology
industry’s effect, 500
EDGE (Enhanced Data rates for
GSM Evolution), 327
EDI (Electronic Data Interchange),
linear, 456
nonlinear, 456
video, 456 457
EDS (Electronic Data Systems),
497, 542
education for computer
professionals, 514 515
educational applications of
computers, 290 291
educational software, 140 141
EEPROM (electronically erasable
programmable read-only
memory), 74 75
e-garbage, 106 107
Eiffel, 679, 711
Eisenhower, Dwight, 109
EISs (executive information
systems), 562
Elastic Compute Cloud, 335
Electrical Numerical Integrator And
Calculator (ENIAC), 108, 109,
490, 491
Electronic Communications
Privacy Act, 408
Electronic Data Interchange (EDI),
Electronic Data Systems (EDS),
497, 542
Electronic Recording
Machine-Accounting (ERMA),
electronic wallets, 390 391
electronically erasable
programmable read-only
memory (EEPROM), 74 75
Electronics Communications
Privacy Act, 524
electronics recycling firms, 106
e-mail, 6, 392 399
access, 392
accounts, 392
activities, 393
attachments, 393 394
e-mail client software, 399
e-mail systems, 397
features, 395
forwarding, 393
HTML, 395
IMAP, 397, 398
interception, 408
messages, 392
netiquette, 396 397
phishing, 37, 594 595
POP, 397, 398, 399
privacy, 408 409
security. See e-mail security
spam. See spam
transferring images from digital
cameras, 432
Web-based, 397, 398, 408, 545
e-mail accounts, 392
e-mail attachments, 393
e-mail authentication, 403 404
e-mail client software, 398, 399
e-mail messages, 392
e-mail security
phishing, 405, 594 595
privacy, 408 409
spam, 403 404
e-mail servers, 397
e-mail systems, 397
e-mail privacy, 408, 409
use of work computer for
personal activities, 527 528
work area safety. See radiation
risks; work area safety
employment. See computer
eMule, 529
encapsulation, 712
databases, 654 655
definition, 285
operation, 285
public key, 286 287
strong, 285 286
symmetric key, 286
weak, 285
wireless. See wireless
end-user license agreements
(EULAs), 148
end-user piracy, 179
Enhanced Copy Protection (XCP),
Enhanced Data rates for GSM
Evolution (EDGE), 327
ENIAC (Electrical Numerical
Integrator And Calculator),
108, 109, 490, 491
Enterprise Application Integration
(EAI), 569
enterprise information systems,
Enterprise Resource Planning
(ERP), 569
entertainment software, 141 142
entity-relationship diagrams
(ERDs), 616, 545
equipment manufacturers, 498
Eraser, 123
ERDs (entity-relationship
diagrams), 616
ergonomics, 537, 731
ERMA (Electronic Recording
Machine-Accounting), 348
ERP (Enterprise Resource
Planning), 569
logic, 685
runtime, 685
syntax, 685
error messages, verbose, 724
Ethernet, 258 264
equipment, 260 262
operation, 258 259
popularity, 259
setup, 262 264
speed, 259, 261 262
standards, 259
Ethernet adapters, 261
ethical decision making, 529 532
codes of ethics, 530 532
process, 529 530
ethics. See professional ethics
EULAs (end-user license
agreements), 148
European Convention on Human
Rights, 10
EV-DO (Evolution Data
Optimized), 327
event(s), 684
event-driven paradigm, 679, 685
event-handling code, 684
EverQuest, 142
Evolution Data Optimized
(EV-DO), 327
exabyte, 26
exception reports, 561
executable files, 152
self-installing, 157
executive dashboard software, 613
executive information systems
(EISs), 562
expansion bus, 94
expansion cards, 95
expansion ports, 95
expansion slots, 95
expert system(s), 564 565
declarative languages, 722
knowledge-based systems,
564 565
expert system shell, 564
Extended ASCII, 24
Extended Binary Coded Decimal
Interchange Code (EBCDIC),
eXtended Graphics Array (XGA),
external entities, 572
external information, 559
eye strain, 538 539
fabric design and manufacturing,
Facebook, 6, 361
facts, declarative paradigm, 713
fair use, 472 473
Fair Use Doctrine, 524
FairPlay, 470
fake Web sites, 405 406
fans, maintenance, 102
farming, computers in, 731 732
fashion industry, 410 411
FAT (File Allocation Table), 219
FAT32, 219
FCC (Federal Communications
Commission), information
technology industry
regulation, 508
FCS (Future Combat Systems)
network, 109
feature creep, 582
Federal Communications
Commission (FCC),
information technology
industry regulation, 508
Federal Trade Commission (FTC),
information technology
industry regulation, 508
FedEx, 610
field(s), databases, 134, 615,
633 637
updating, 650
field format, 636
field names, 615
field validation rules, 636
fifth-generation languages, 678
file(s), 15, 204 211
ASCII, 682
dates, 206
definition, 204
deleting, 220
designating location, 205
directories, 206
disk partitions, 205
executable. See executable files
flat, 614 616
folders, 206
formats. See file formats
fragmented, 221
management. See file
names, 204 205
number required by software
packages, 153
opening, 76
quarantined, 169
saving, 76
sharing on LANs, 276 278
size. See file size
structured, 614
undeleting, 221
unstructured, 614
unzipping, 156 157
zipped, 156 157
File Allocation Table (FAT), 219
file compression utilities, 439
file date, 206
file extensions, 152, 204
file formats, 207, 208
file formats, 207 211
bitmap graphics, 442 443
common, 208
container formats, 457
converting, 210 211
digital audio, 424
digital video, 462 463
inability to open some files,
209 210
native, 209
portable audio players, 425 426
vector graphics on Web, 448
video files, 456, 457
Web browsers, 366
Web videos, 460
file headers, 207
file management, 212 221
application-based, 212 213
file management utilities, 214,
216 217
metaphors, 215
physical file storage, 218 221
tips, 217 218
Windows Explorer, 216 217
file management utilities, 214,
216 217
file names, 204 205
characters, 205
file-naming conventions, 204
reserved words, 205
file servers, 249, 278
home networks, 278
LANs, 278
setup, 278
file sharing. See P2P file sharing
File Shredder 2, 123
file shredder software, 220
file size, 206
color depth, 436
image resolution, 433
file specifications, 206
file synchronization, 224
file systems, 219
file tags, 212
File Transfer Protocol. See FTP
(File Transfer Protocol)
file-encryption software, 122
file-naming conventions, 204
film, computer technology,
474 475
filter(s), DSL, 315
filtering software, 122
fingerprinting, 234
Firefox, 365
firewalls, 342
FireWire (IEEE 1394) ports, 95, 96
first-generation computers,
491 492
first-generation languages, 677
Fitz, 8
fixed disks. See hard disk(s); hard
disk drives
fixed Internet access, 311,
312 321
cable Internet service, 316 317,
dedicated lines, 314, 321
dial-up connections, 312 313,
DSL, 314 315, 321
fixed wireless Internet service,
320, 321
ISDN, 314, 321
limitations, 322 323
satellite Internet service,
318 319, 321
fixed wireless Internet service,
320, 321
fixed-length fields, 615
Flash cookies, 402
Flash format, vector graphics, 448
flash memory. See solid state
Flash Video format, 457
flat files, 614 616
flex-forward posture, 540
floppy disks, 80
floppy drives, comparison with
other storage technologies, 87
flowcharts, 692 693, 545
folders, 206
font(s), 127
font styles, 127
footers, 128
Force XXI Battle Command
Brigade and Below systems,
forensics, computer, 235
forgotten passwords, 35
help remembering, 40 41
form design grids, 683
form factor, 17, 58
formal methods, secure software
development, 725
format, fields, 636
format(s), files. See file formats
format shifting, 465
fair use, 472
disks, 218
documents, 127 129
formula(s), worksheets, 131
Formula Translator (Fortran), 493,
677, 679, 689, 700
formulating searches, 378 380
advanced searches, 380
Boolean operators, 379 380
search terms, 378
tips, 379
FORTH, 700
Fortran (Formula Translator), 493,
677, 679, 689, 700
forwarding e-mail, 393
Fourth Amendment, 11
fourth-generation computers, 494
fourth-generation languages, 678
fragmented files, 221
frame(s), documents, 129
frame rate, digital video, 456
digital technology, 10
freedom of expression, 10. See
also censorship
freeware, 150, 545
front side bus (FSB), 68
FTC (Federal Trade Commission),
information technology
industry regulation, 508
FTP (File Transfer Protocol), 305
accessing FTP servers,
336 337
anonymous, 337
operation, 336
FTP clients, 336
FTP servers, 336
accessing, 336 337
full backups, 227
full system backups, 226
fully justified alignment, 128
functional paradigm, 679, 713
functions, 131, 696
Future Combat Systems (FCS)
network, 109
fuzzy logic, 564
gadgets, 123
Gaeta, John, 475
game software, 141 142
game systems, 61
Gantt charts, 570, 571
Gates, Bill, 233, 495
gateways, 251
Gb (gigabit), 26
GB (gigabyte), 26
Gbit (gigabit), 26
GByte (gigabyte), 26
GDSs (global distribution systems),
544 545
General Public License (GPL), 151
geographic information systems
(GISs), 733
GHz (gigahertz), 67
GIF (Graphics Interchange
Format), 442, 443
animated, 448
giga-, definition, 26
gigabit (Gb or Gbit), 26
gigabyte (GB or GByte), 26
gigahertz (GHz), 67
GISs (geographic information
systems), 733
global distribution systems (GDSs),
544 545
global positioning system (GPS),
42, 599
global updates, 650
globalization, 12 13
Gmail, 545
GNU, 179
goals, Prolog, 715 716
Google, 499
e-mail authentication, 403 404
Internet censorship tools, 347
IPO, 501
Google Maps, 545
GOTO command, 696
government regulation, information
technology industry, 508 509
GPL (General Public License), 151
GPS (global positioning system),
42, 599
GPUs (graphics processing units),
gradients, 447
graduate degrees,
computer-related, 515
Gralnick, Jeff, 173
grammar checkers, 127
Gramm-Leach-Bliley Act, 524, 657
graphical elements, documents,
graphical user interfaces (GUIs),
189 192
basic elements, 189 190
menus and dialog boxes,
190 191
similarities, 192
bitmap. See bitmap graphics
definition, 137
specifying for Web pages, 370
3-D, 449 451
vector. See vector graphics
graphics cards, 91
Graphics Interchange Format. See
GIF (Graphics Interchange
graphics processing units (GPUs),
graphics software, 137 138
CAD software, 138
drawing software, 137
paint software, 137
photo editing software, 137
presentation software, 138
3-D, 137
grayscale palettes, 438
Green v. America Online, 524
grid computing systems, 334 335
groupware, 121
GUIs. See graphical user
interfaces (GUIs)
hackers, 36
methods used by, 340 345
hacking, 232 233
ethical issues, 528
handheld computers, 19
handheld devices, 19 20
accessing Internet, 328
operating systems, 202 203
handheld operating systems,
202 203
handshaking, 252
hard disk(s)
access times, 79
backup device, 223
RAM versus storage on, 71
hard disk controllers, 79
hard disk drives, 57
comparison with other storage
technologies, 87
disadvantages, 80
multiple, 80
operation, 78 79
popularity, 78
technologies, 79
hard disk platters, 78 79
hardware, 54 109
buying. See buying hardware
computer systems, 56 57
desktop and portable
computers, 58 59
home, game, and small
business systems, 60 61
information systems, 576 577
input devices, 88 89. See also
specific input devices
installing peripheral devices,
94 97
memory. See memory
microprocessors. See
output devices, 90 94. See also
specific output devices
repair, 105
security. See hardware security
sharing on LANs, 275, 278 280
storage devices, 76 87. See
also specific storage devices
troubleshooting, 103 104
hardware breakdowns, information
system data vulnerability, 590
hardware security, 98 105
anti-theft devices, 98 99
battery backup, 100
maintenance, 101 103
surge protection, 99 100
troubleshooting and repair,
103 105
Harvard Mark I, 490, 491
hash values, 157
Haskell, 679, 713
HCI (Human-Computer
Interaction), 731
HDCP (High-bandwidth Digital
Content Protection), 466
HDMI (High-Definition Multimedia
Interface) ports, 95, 96
HDSL (high-rate DSL), 314
HDTV circuitry, 90
head crashes, 80
headers, 128
health care industry, computers in,
662 663
Health Insurance Portability and
Accountability Act, 524, 657,
help desk, 588
helper applications, 367
hertz (Hz), 251
Hewlett-Packard, 493, 499
market share, 504
market tier, 505
Hewlett-Packard iPAQ, 19
hierarchical databases, 617
High-bandwidth Digital Content
Protection (HDCP), 466
High-Definition Multimedia
Interface (HDMI) ports, 95, 96
high-level languages, 676 677
high-rate DSL (HDSL), 314
High-Speed Uplink Packet Access
(HSUPA), 327
HISs (hospital information
systems), 662
Hitachi, 494, 498
Hitler, Adolf, 489
Hoff, Ted, 494
Hollerith, Herman, 488 489
Hollerith Tabulating Machine, 488
home computers, 60
Homeland Security Act, 524
HomePNA (HPNA), 257 258
Honeywell, 492
horizontal market software, 142
hospital information systems
(HISs), 662
Hotmail, 545
hot-plugging, 97
hotspots, Wi-Fi, 323 324
hover ads, 385
HPNA (HomePNA), 257 258
HSUPA (High-Speed Uplink
Packet Access), 327
HTML (Hypertext Markup
Language), 362 363
e-mail, 395
HTML conversion utilities, 369
HTML documents, 362
HTML forms, 371
HTML resumes, 518
HTML scripts, 371 373
client-side, 372
server-side, 372
HTML tags, 362 363, 370
HTTP (Hypertext Transfer
Protocol), 305, 364 365
methods, 364
HTTP status codes, 365
human errors, information system
data vulnerability, 591
Human Factors InfoWeb, 731
Human-Computer Interaction
(HCI), 731
Hurricane Katrina, 590
hyperlink data type, 635
hypertext, 360
hypertext links, 361
Hypertext Markup Language. See
HTML (Hypertext Markup
Hypertext Transfer Protocol. See
HTTP (Hypertext Transfer
Hz (hertz), 251
IAFIS (Integrated Automated
Fingerprint Identification
System), 234
activities, 498
Automatic Sequence Controlled
Calculator (ASCC), 490
competition, 489
direct sales, 507
early computers, 492
founding, 489
IBM 360, 493
IBM AS/400, 493
IBM PC, 495
IBM PC XT, 495
location, 499
market tier, 505
operating systems, 492 493
Roadrunner computer, 18
servers, 18
IBM-compatible computers, 495
IC(s) (integrated circuits), 27
ICANN (Internet Corporation
for Assigned Names and
Numbers), 309
ICCP (Institute for Certification of
Computing Professionals),
icons. See also graphics
GUIs, 189
IDE (integrated development
environment), 686 687
identity theft, 36, 232
corporate, 594 595
IE (Internet Explorer), 365
IEEE 1394 (FireWire) ports, 95, 96
IEEE Standards Association, 509
IM. See instant messaging (IM)
image(s). See also digital video;
compression. See image
digital, 8
digital data representation, 25
DVD, 462
resolution. See image resolution
storage using bits, 25
image compression, 439 441
lossless, 439
lossy, 439, 440
process, 440 441
image editing software, 137
image resolution, 433 435
changing image size, 435
file size, 433
image quality, 433
physical size of image, 434
screen display, 434 435
specifying image size, 434
IMAP (Internet Messaging Access
Protocol), 397, 398
imperative paradigms, 689
implementation phase of SDLC,
583 586
activities, 583
application testing, 584
conversion and cutover,
585 586
software customization,
583 584
system documentation, 585
training, 585
unit documentation, 585
in-betweening, 474
increasing productivity, document
production software, 129
incremental backups, 228
indexes, database, 639
indexing, sorting compared,
637 638
India, offshoring, 542
inference engines, 564
data compared, 22
theft, 232
information engineering
methodology, 570
information systems, 514, 554 599
corporate data security. See
corporate data security
data security, 592 594
decision support systems,
562 563
definition, 556
design. See design phase of
expert systems, 564 565
maintenance phase, 587 589
management information
systems, 561 562
neural networks, 565
online voting, 596 597
in organizations, 556 559
reasons for developing,
568 569
SDLC. See system development
life cycle (SDLC); specific
phases of cycle
systems analysis. See systems
transaction processing systems,
559 560
users, 557
uses, 558 559
information systems (IS)
department, 511
information technology, 514 515
information technology industry,
497 509
careers. See computer
companies included in, 497 498
definition, 497
dot coms, 499, 501
effect on economy, 500
factors accounting for success,
information sources, 500
market share, 504 505
market tiers, 505
marketing channels, 506 508
offshoring, 500, 542 543
outsourcing, 499 500, 542
product development, 502 504
regulation, 508 509
Silicon Valley, 499
infrared light, 265
infrared ports, transferring images
from digital cameras, 432
inheritance, 704 705
ink jet printers, 92, 94
The Inmates Are Running the
Asylum (Cooper), 730 731
input, 15
input devices, 88 89. See also
specific input devices
INSERT keyword, 646
peripheral devices, 94 97
software. See installing software
updates, 160
installing software, 152 160
local applications, 154 157
multiple files, 153
portable software, 158
software updates, 159 160
Web applications, 158 159
instant messaging (IM), 330 331
security, 331
setting up, 331
instantiation, Prolog, 717 718
Institute for Certification of
Computing Professionals
(ICCP), 516
instruction cycle, 32
instruction set, 30
integer data type, 634, 635
Integrated Automated Fingerprint
Identification System (IAFIS),
integrated circuits (ICs), 27
integrated development
environment (IDE), 686 687
Integrated Services Digital Network
(ISDN), 314, 321
integration testing, 584
Intel 4004, 494
Intel microprocessors, 70, 494
intellectual property, 11
digital technology, 11 12
interactive DVD menus, 461 462
internal information, 559
International Business Machines.
Internet, 6, 300 349
access, 57
addresses, 305 307
censorship, 10, 346 347
connection speed, 309 311
domains, 308 309
infrastructure, 303 304
job hunting, 517
marketing, 44 45
netiquette, 396 397
origins, 302
popularity, 302
protocols. See communications
putting Web pages on, 371
security. See Internet security;
Web security
size, 302
surfing anonymously, 402 403
Web versus, 360
Internet access, 57
Internet backbone, 303
Internet Corporation for Assigned
Names and Numbers
(ICANN), 309
Internet Explorer (IE), 143, 365
Internet Messaging Access
Protocol (IMAP), 397, 398
Internet piracy, 179
Internet Protocol (IP), 305
Internet Relay Chat (IRC), 305
Internet security, 340 345. See
also Web security
intrusion attempts, 340 341
NAT, 344 345
routers, 343 345
securing ports, 342 343
VPNs, 345
Internet service(s), 330 339
file sharing, 337 339
FTP, 336 337
grid computing, 334 335
real-time messaging, 330 331
VoIP, 332 333
Internet service providers (ISPs),
303 304
interpreters, 30
intrusions, 340
IP (Internet Protocol), 305
IP addresses, 255, 305 306
dynamic, 306 307
private, 344
routable, 344
static, 306
iPhone, 9, 19
iPhone OS X, 203
iPod, 9, 20
IPv4, 305
IPv6, 305
Iran, Internet censorship, 347
IRC (Internet Relay Chat), 305
IS (information systems)
department, 511
ISDN (Integrated Services Digital
Network), 314, 321
ISDN terminal adapters, 314
ISPs (Internet service providers),
303 304
iterations, 698
iterative SDLC, 566
iTunes, 471
JAD (joint application design), 567
Java, 679, 711, 712
game development, 687
program operation, 710 711
Java applets, 372, 373
The Ja Singer (film), 474
JIT (Just In Time), 569
job(s). See computer professionals
job hunting, 517
job listings, 520 522
job search agents, 521
Jobs, Steve, 233, 495
Johnson, Leigh, 475
JOIN keyword, 646, 651 652
joining tables, 651 652
joint application design (JAD), 567
Joint Photographic Experts Group
(JPEG) format, 442, 443
Jolson, Al, 474
journalism, 172 173
joysticks, 89
JPEG (Joint Photographic Experts
Group) format, 442, 443
jumpdrives. See USB flash drives
Just In Time (JIT), 569
Karat, Clare-Marie, 730 731
Kay, Alan, 711, 545
Kb (kilobit), 26
KB (kilobyte), 26
Kbit (kilobit), 26
KByte (kilobyte), 26
Kemper Insurance, 593
Kensington Security Slot, 98
kernel, 192
key frames, 458
keyboards, 57
cleaning, 101
design, 88
maintenance, 101
keychain drives. See USB flash
keyloggers, 163
KeyPass, 41
keystroke logging, 37
computer programming, 676
SQL, 646 647
keyword stuffing, 378
Kilby, Jack, 493
kilo-, definition, 26
kilobit (Kb or Kbit), 26
kilobyte (KB or KByte), 26
knowledge base, 564
knowledge engineering, 564
known information, 680 681
Kubrick, Stanley, 474
Kurzweil, Ray, 662
labels in worksheets, 130
LAN(s) (local area networks), 247,
274 281
accessing network resources,
advantages, 274 275
connecting to, 248
disadvantages, 275
file servers, 278
LAN parties, 280
security, 282
sharing printers, 278 280
specifying resources that can
bee shared, 277
standards, 247
troubleshooting, 280 281
Wi-Fi. See Wi-Fi
LAN jacking, 282
LAN parties, 280
lands, optical storage devices, 81
Lands’ End, 41
laser printers, 92, 94
latency, 309 311
computer crimes, penalties,
232 233
computer forensics, 235
computer use in enforcement,
234 235
professional ethics related, 523,
protecting databases, 656 657
Lawson, Jeff, 335
LCDs (liquid crystal displays), 90
radiation emissions, 535
leading, 128
leech(es), 339
leechers, 339
Leibniz, Gottfried Wilhelm von, 487
Leibniz Calculator, 487
Lenovo, 504
Level 1 cache, 68
Level 2 cache, 68
LexisNexis, 497
license agreements. See software
licensing, wireless networks, 266
LIFEPAK 12, 663
line spacing, 128
linear editing, 456
hypertext, 361
networks, 251
link popularity, 377
Linux, 201
Linux distributions, 201
Linux platform, 64
liquid crystal displays (LCDs). See
LCDs (liquid crystal displays)
LISP (LISt Processing), 679, 713
loading data, 76
local applications
definition, 154
installing, 154 157
local area networks. See LAN(s)
(local area networks)
local shared objects, 402
location-enabled (location-aware)
devices, 42
logic errors, 685
logical data type, 634, 635
logical storage models, 215
LoJack, 99
loops, 698
The Lord of the Rings The Two
Towers (film), 474
lossless compression, 439
lossy compression, 439, 440
low-level languages, 676, 677
Lucas, George, 474
Mac(s), 64
MAC addresses, 254
Mac OS, 197 200
backward compatibility, 198 199
dual boot, 199
evolution, 198
resource fork, 200
strengths, 198
versions, 198
virtual machine, 199 200
weaknesses, 200
Mac platform, 64
machine code, 30
machine languages, 30 31, 677
magazines, information on
software, 145
magnetic storage, 78 80
tape, comparison with other
storage technologies, 87
mail merge, 129
mail order, 507
mainframe computers, 16, 18
computer screens, 101
fans, 102
keyboards, 101
optical drives, 103
maintenance phase of SDLC,
587 589
duration, 588 589
quality-of-service metrics, 587
responsibility, 588
user support, 588
malicious software. See malware
activities, 164
avoiding, 165
blended threats, 162
bots, 164
protection. See security software
spyware, 164
symptoms of infection, 165
Trojan horses, 163
viruses, 163
Windows susceptibility, 196
worms, 163
management information systems
(MISs), 561 562
TPSs versus, 562
management information systems
(MIS) department, 511
managers, 557
Manitoba Milk Revenue Analyzer,
MANs (metropolitan area
networks), 247
manual calculators, 486 487
manufacturer direct, 507
manufacturer’s suggested retail
price (MSRP), 503
Manufacturing Resource Planning
(MRP), 569
manufacturing technicians, 512
many-to-many relationships, 616
MapQuest, 545
Mark-8, 494
market share, 504 505
market tiers, 505
marketing, 44 45
marketing channels, 506 508
markup language, 362
mass-mailing worms, 163
Master File Table (MFT), 219, 220
master’s degrees,
computer-related, 515
mathematical modeling software,
mathematical operators, 131
The Matrix (film), 475
The Matrix Reloaded (film), 475
The Matrix Revolutions (film), 475
Mauchly, John W., 490
Mb (megabit), 26
MB (megabyte), 26
Mbit (megabit), 26
MByte (megabyte), 26
McAfee Internet Security Suite,
McAfee security software, 144
McAfee VirusScan Plus, 122
McKay, John, 233
MCSE (Microsoft Certified
Systems Engineer)
certification, 516
mean time between failures
(MTBF), 590
mechanical calculators, 487 489
media transfer, transferring images
from digital cameras, 432
medicine, computers in, 662 663
MedlinePlus, 663
mega-, definition, 26
megabit (Mb or Mbit), 26
megabyte (MB or MByte), 26
megahertz (MHz), 67
megapixels, 433
memo data type, 634, 635
memory, 15
comparison of types, 75
EEPROM, 74 75
operating system management,
printers, 94
RAM. See random access
memory (RAM)
ROM, 73
virtual, 72
memory leaks, 187
menu(s), 190 191
interactive DVDs, 461 462
menu bar, 190
mesh topology, 250
e-mail. See e-mail
method activation, 706
message headers, 392
meta keywords, 378
metafiles, 447
metasearch engines, 380
metasearch tools, 521
Metcalfe, Bob, 246
methods, 705 708
activation, 706
classes related, 706
coding, 705
definition, 705
functions, 705
polymorphism, 707 708
metropolitan area networks
(MANs), 247
Mexico, offshoring, 542
MFT (Master File Table), 219, 220
MGM v. Gorkster, 524
MHz (megahertz), 67
MICR technology, 348
Micro Instrumentation and
Telemetry Systems (MITS),
microchips, 27
microcomputers, 16
microcontrollers, 20 21
microprocessor(s), 15, 67 70
cache size, 68
choosing, 70
cycles, 67 68
definition, 67
effects on computer industry,
FSB, 68
instruction processing, 69
instruction set, 69
logic, 31 33
multi-core, 69
overclocking, 70
popular, 70
specifications, 67, 68
speed, 67 68, 70
word size, 68
microprocessor clock, 67 68
Access, 625
Internet censorship tools, 347
Internet Explorer, 143, 365
location, 499
MS-DOS, 495
offshoring, 500
XNA framework, 687
Microsoft Certified Systems
Engineer (MCSE) certification,
Microsoft Office 2007 Professional,
Microsoft Office Specialist
certification, 516
Microsoft Windows, 194 196
applications and utilities
included with, 143
bugs allowing unauthorized
access, 591
evolution, 195
Network and Sharing Center,
strengths, 195
versions, 194, 196
weaknesses, 195 196
Windows Explorer, 143,
216 217
Windows Firewall, 143
Windows Media Audio (WMA)
format, 424
Windows Media DRM, 470 471
Windows Media Player, 143
Windows Mobile OS, 203
Windows Movie Maker, 143
Windows Photo Gallery, 143
Windows Registry, 154, 229
microwaves, 265
MIDI (Musical Instrument Digital
Interface), 426 427
advantages and disadvantages,
uses, 427
MIDI sequences, 426
MIDI sequencing software, 139
military computer use, 108 109
MIME (Multi-Purpose Internet Mail
Extensions), 393
MIMO (multiple-input
multiple-output) technology,
mini cases, 58
minicomputers, 16, 493
mini-laptops, 59
MIS(s). See management
information systems (MISs)
MIS (management information
systems) department, 511
miscommunication, offshoring, 542
mission(s), 556
mission statements, 556
Mitnick, Kevin, 232
MITS (Micro Instrumentation and
Telemetry Systems), 494
MITS Altair, 494 495
MLA style for citations, 382
mobile broadband, 327
mobile broadband-enabled
computers, 329
mobile Internet access, 311
mobile learning, 291
mobile WiMAX, 324
mod(s), 65 66
modems, 304
analog, digital phone service,
cable, 317
DSL, 315
satellite, 319
voiceband, 312 313
modified waterfall SDLC, 566
money management software, 133
monochrome bitmaps, 436
Monsters Inc. (film), 474, 475
Moodle, 291
morality, censorship, 346
morphing, 474
Morris, Robert, 232
motion sensor alarms, 99
Motorola, 494
mouse, 57
operation, 88
optical, 88
movie downloads, DRM, 471
Moving Pictures Experts Group
(MPEG) format, 457, 458
Mozilla, 365
MP3 format, 210, 424
MP3 players, 20. See also iPod
MPEG (Moving Pictures Experts
Group) format, 457, 458
MPEG-1 Layer 3 format, 424
MPEG-2 codec, 458
MPEG-2 video clips, 462
MPR standards, 535
MRP (Manufacturing Resource
Planning), 569
MS-DOS, 495
MSRP (manufacturer’s suggested
retail price), 503
MTBF (mean time between
failures), 590
multi-core processors, 69
MultiMedia, 84
multimedia, Web portfolios,
519 520
multiparadigm languages, 679
multiplayer games, 142
multiple-input multiple-output
(MIMO) technology, 268
multiple-user licenses, 147
multiprocessing, 186
Multi-Purpose Internet Mail
Extensions (MIME), 393
multitasking, 186
multithreading, 186
multiuser operating systems, 187
music, digital. See digital music
music software, 139
Musical Instrument Digital
Interface. See MIDI (Musical
Instrument Digital Interface)
MyDoom worm, 591
MySpace, 361
NAI (Network Advertising
Initiative), 401
nanoseconds, 73
NAP(s) (network access points),
Napier, John, 487
Napier’s Bones, 487
narrowband, 251
NAS (network attached storage),
NAT (Network Address
Translation), 344 345
National Cash Register (NCR), 489
National Crime Information Center
(NCIC), 234
national ID cards, 660 661
National Science Foundation
(NSF), 6, 302
native file format, 209
native resolution, 539
natural disasters, information
system data vulnerability, 590
natural language queries, 136
NCIC (National Crime Information
Center), 234
NCR (National Cash Register), 489
Net Nanny, 122
netbooks, 59
Netflix, 471
netiquette, 396 397
Netscape Navigator, 365
network(s), 244 291
classifications, 246 247
clients, 249
communications protocols. See
communications protocols
data travel over, 252 253
HomePNA, 257 258
interconnecting, 250 251
LANs. See LAN(s) (local area
links, 251
MANs, 247
network devices, 248
PANs, 246
peers, 249
physical topology, 250 251
powerline, 258
purposes, 246
security. See network security
servers, 249
WANs, 247
wired. See wired networks
wireless. See Wi-Fi; wireless
network access points (NAPs), 303
network adapters. See network
interface cards (NICs)
Network Address Translation
(NAT), 344 345
network administrators, 511
Network Advertising Initiative
(NAI), 401
network attached storage (NAS),
network cards. See network
interface cards (NICs)
network circuitry, 57
network databases, 617
network devices, 248
ISPs, 303 304
network hubs, 261
network interface cards (NICs),
network resources
accessing on LANs, 276
shared, 274. See also specific
shared resources
network routers, 261
configuring, 264
network security, 282 287
encryption. See encryption
LANs, 282
Wi-Fi, 282 284
network servers, backup device,
network service providers (NSPs),
network specialists, 511
network switches, 261
network technology, information
systems, 577
networkability, printers, 94
networked peripherals, 248
networking, certification, 516
neural networks, 565
New Technology File System
(NTFS), 219
news gathering, 173
Newton, 9
NICs (network interface cards),
nodes, 248
connecting in networks, 251
non-executing zip files, 157
nonlinear editing, 456
nonprofit organizations, definition,
non-volatile data, 84
normalization, databases, 637 638
Northwest Airlines, 545
Norton AntiVirus software, 122,
Norton Internet Security, 167
Norton SystemWorks, 122, 144
NOT operator, 380
notation software, 139
notebook computers, 59
optimal placement, 538
Notepad, 143, 682
Noyce, Robert, 493
NSF (National Science
Foundation), 302
NSPs (network service providers),
NTFS (New Technology File
System), 219
NTSC circuitry, 90
number(s), digital data
representation, 23
numbering pages, 128
numeric data, 23
object(s), 702
classes compared, 702
definition, 702
object code, 30
object databases, 620
object-oriented analysis and
design, documentation tools,
573 574
object-oriented database(s), 620
object-oriented database
management systems
(ODBMSs), 625
object-oriented languages
applications suitable for, 712
currently popular, 711 712
origins, 711
object-oriented methodology, 570
object-oriented paradigm, 679
advantages and disadvantages,
object-oriented programming,
702 712
coding classes, 704
defining classes, 703
definition, 702
inheritance, 704 705
methods, 705 708
object-oriented languages,
711 712
objects versus classes, 702
polymorphism, 707 708
program structure, 709 711
object-relational databases, 621
O’Brien, Willis, 474
octets, 255, 305 306
ODBMSs (object-oriented
database management
systems), 625
Office Depot, 506
OfficeMax, 506
offshoring, 500, 542 543
OLAP (online analytical
processing), 613
OLEDs (organic light emitting
diodes), 90
radiation emissions, 535
OLTP (online transaction
processing) systems, 560
Omega Engineering Corporation,
Omidyar, Pierre, 388
one-time-use credit cards, 390
one-to-many relationships, 616
one-to-one relationships, 616
online analytical processing
(OLAP), 613
online auctions, 388
making payments, 389 391
online banking services, 349
online job banks, 520 522
online job databases, 519
online music stores, 8
online payment, 389 391
electronic wallets, 390 391
one-time-use credit cards, 390
person-to-person, 390
online processing, 560
online resumes, 518 519
online shopping, 386 387
making payments, 389 391
online shopping carts, 386 387
online social networks, 6 7
online transaction processing
(OLTP) systems, 560
online voting, 596 597
op codes, 31
open source projects, 12
open source software, 150 151
security software, 167
opening files, 76
Opera, 366
operands, 31
operating environments, 195
operating systems (OSs), 16,
184 203
application software versus, 184
applications and utilities
included with, 143 144
boot process, 192 193
definition, 184
desktop, 188
DOS, 202
early, 492 493
effects on user interfaces, 189
handheld, 202 203
Linux, 202
Mac OS, 197 200
memory management, 187
multiuser, 187
peripheral devices, 187
processor resource
management, 186
server, 187 188
single-user, 187
system utilities, 188
tasks, 185
UNIX, 201
user interfaces. See user
Windows, 194 196
operational planning, 557
operator codes, 677
optical drives, 57
creating video DVDs, 461
maintenance, 103
optical mouse, 88
optical storage. See also Blu-ray;
CD(s) (compact discs);
DVD(s) (digital video discs or
digital versatile discs)
definition, 81
opt-in mailing lists, 45
OR, SQL queries, 648, 649
OR operator, 380
Oracle, 499
offshoring, 500, 545
organic light emitting diodes. See
OLEDs (organic light emitting
definition, 556
information systems. See
information systems
mission statements, 556
nonprofit, definition, 556
threats and opportunities
affecting, 568 569
organizational charts, 557
OSs. See operating systems (OSs)
Oughtred, William, 487
output, 15
outsourcing, 499 500, 542
overclocking, 70
Overlake Hospital (Bellevue,
Washington), 662
overloading, 707 708, 388
Pacino, Al, 475
packet(s), 253
Packet Internet Groper (Ping), 310
packet switching, 253 254
packet writing, 219
page layout, 128
page numbering, 128
Paint, 143
paint software, 137, 143, 430
Palm OS, 202
Palm Pre, 19
PANs (personal area networks),
paragraph alignment, 128
paragraph style, 128
parallel conversion, 586
parallel processing, 69
computer programming, 676
SQL, 647
particle renderers, 687
Pascal, 679, 700
Blaise, 487
Pascaline, 487
password(s), 34 41
authentication protocols, 34 36
definition, 35
forgetting, 35
help remembering, 40 41
managing, 39
PINs compared, 35 36
protecting, 38 39
secure, 38 41
theft, 36 37
wireless router, changing, 272
password managers, 40 41
patches, 728
software, 159
path(s), 206
pathfinder algorithms, 687
Patrick, Robert, 474
payment, online, 389 391
Payment Card Industry (PCI) Data
Security Standards, 658
PC(s). See personal computer(s)
PC Doc Pro, 122
PC platform, 64
PC-DOS, 495
PCI (Payment Card Industry) Data
Security Standards, 658
PCL (Printer Control Language),
PCX format, 442, 443
PDA(s) (personal digital
assistants), 19
educational applications,
290 291
PDA video, 452, 459
PDF files, 210
peer-to-peer mode, 249
pen drives. See USB flash drives
Penenberg, Adam L., 232
peripheral devices, 56. See also
display devices; input devices;
printer(s); storage; specific
peripheral devices
device drivers, 124
operating system management,
software for installation, 97
Perot, H. Ross, 542
Persistent Identification Element
(PIE) system, 402
personal area networks (PANs),
personal computer(s) (PCs), 17, 64
definition, 16
invention, 494 495
success, 495 496
personal computer systems, 56 57
components, 56 57
personal digital assistants (PDAs),
personal finance software, 133
personal identification numbers
(PINs), passwords compared,
35 36
person-to-person payments, 390
PERT (Program Evaluation and
Review Technique), 570
petabyte, 26
Pfaelzer, Marianne, 232
PGAs (pin grid arrays), 27
PGP (Pretty Good Privacy), 287
pharming, 405 406
phased conversion, 586
Philippines, offshoring, 542
phishing, 37, 405, 594 595
phonemes, 428 429
photo editing software, 137
photographs. See graphics
physical fitness, 540
physical storage model, 218 221
physical topology, networks,
250 251
piconets, 267
pictures. See graphics
PIE (Persistent Identification
Element) system, 402
PIECES framework, 569
pilot conversion, 586
Pilot Night Vision Sensors, 108
PIN(s) (personal identification
numbers), passwords
compared, 35 36
pin grid arrays (PGAs), 27
Ping (Packet Internet Groper), 310
pipelining, 69
pirated software, 147, 170 171
pits, optical storage devices, 81
Pixar, Inc., 8, 475
pixel(s), 90
pixel interpolation, 435
pixelated appearance, 435
PKE (public key encryption),
286 287
PKZIP, 439
PL/1, 679, 700
place shifting, 465
fair use, 472
plaintext, 285
planning phase of SDLC, 567 571
activities, 567
need for new information
systems, 568 569
participants, 567
project schedule development,
570 571
project supervision, 567
system development
methodology, 570
player software, 425
PlayStation, 17
Plug and Play, 97
plug-ins, 367
PN(s) (processor numbers), 68
PNG (Portable Network Graphics)
format, 443
podcasts, 360 361
point size, 127
pointing devices, 88
pointing sticks, 89
polymorphism, 707 708
Pong, 142
POP (Post Office Protocol), 305,
397, 398, 399
POP servers, 398
pop-up ads, 385
pornography, censorship, 346
Ethernet, 261
open, detecting, 341
securing, 342 343
software, 309
port probes (port scans), 341
portable audio players, 425 426
file formats, 425 426
popular, 426
portable computers, 59
portable Internet access, 311,
323. See also mobile WiMAX;
portable media players, 20, 21
Portable Network Graphics (PNG)
format, 443
portable satellite service, 325
portable software, 158
installing, 158
portable WiMAX, 324
Post Office Protocol (POP), 305,
397, 398, 399
PostScript, 94
power outages, information system
data vulnerability, 590
power surges, 99
surge protection, 99 100
powerline networks, 258
PowerPD processors, 494
P2P file sharing, 337 339
BitTorrent, 338 339
precision farming, 733
predicates, 714
predictive analytics, 613
predictive dialers, 44
predictive methodology, 681
premises wiring, 257
presentation software, 138
pre-shared key (PSK), 283
Pretty Good Privacy (PGP), 287
primary key, 634
print journalism, 172 173
print resumes, 518
print servers, 249
print speed, printers, 93
printer(s), 57, 92 94
dot matrix, 92 93, 94
duplex, 93
features, 93 94
ink jet, 92, 94
laser, 92, 94
sharing on LANs, 278 280
Printer Control Language (PCL),
database vulnerability, 654
digital technology, 11
ethical issues, 526
online job banks, 521 522
Privacy Directive 95/46/EC, 656
private attributes, 703
private IP addresses, 344
problem statements, 680, 681
procedural languages, 700 701
procedural paradigm, 679
procedural programming, 689 701
algorithms, 689 694
control structure use, 700
repetition control structures,
698 699
selection control structures, 697
sequence control structures,
695 696
sequential execution, 695
procedure(s), 696
procedure handbook, 585
processes, 572
operating systems, 186
processing, 15
processor(s). See
processor numbers (PNs), 68
product activation, 157
product development, 502 504
hardware product life cycle,
502 503
new products, 502
software product life cycle, 504
product life cycle
hardware, 502 503
software, 504
document production software,
shared resources on LANs, 274
productivity software, 121
professional ethics, 523 533
career fields, 523
codes of ethics, 530 532
confidentiality issues, 526 527
decision making, 529 532
definition, 523
hacking, 528
importance for IT workers, 525
privacy issues, 526
relationship to laws, 523, 524
responsibility for software
quality, 528 529
responsibility for software use,
software copyrights as ethical
issue, 525
using work computer for
personal activities, 527 528
whistleblowing, 532 533
program(s). See computer
program code, 674 675
program editors, 684 685, 685
Program Evaluation and Review
Technique (PERT), 570
PROgramming in LOGic. See
Prolog (PROgramming in
programming languages, 29,
676 679
best, 678 679
categories, 676
definition, 676
evolution, 677 678
paradigms, 679
programming paradigms, 679
comparison, 713
programming tools, 686 688
APIs, 687
computer games, 687 688
IDEs, 686 687
SDKs, 686, 687
Project Development Plan, 567
project management software,
142, 571
Project PX, 108
Prolog (PROgramming in LOGic),
678, 679, 713, 714 721
coding facts, 714 715
goals, 715 716
instantiation, 717 718
rules, 718 720
user input, 721
properties, controls, 683
proprietary information, 526
proprietary software, 149
protecting passwords, 38 41
protocol suites, 305
prototypes, 489 490
pseudocode, 692
PSK (pre-shared key), 283
public attributes, 703
public domain software, 149
public key encryption (PKE),
286 287
puzzle games, 141
QBE (query by example), 136
QoS (quality of service), 587
quality, software, 528 529
quality assurance specialists, 512
quality of service (QoS), 587
quality-of-service metrics, 587
quarantined files, 169
databases, 136. See also
formulating searches
decision, 562
query by example (QBE), 136
query languages, 136
query processors, 377
Quick Response (QR), 41
QuickTime Movie format, 457
R (recordable technology), 82
radiation risks, 534 536
radio frequency identification
(RFID). See RFID (radio
frequency identification)
RadioShack, 495, 506
RAM. See random access memory
random access, 77
random access memory (RAM),
71 73
amount, 72 73
definition, 71
hard-disk storage compared, 71
importance, 71
operation, 72
speed, 73
types, 73
volatility, 72, 192 193
Bluetooth, 267
HomePNA (HPNA), 257
Wi-Fi, 268
wireless networks, 266
Raskin, Jef, 731
rasterization, 447
RATs (Remote Access Trojans),
RAW format, 442, 443
ray tracing, 449
RB (REALbasic), 679
RCA Spectra 70, 493
RDBMSs (relational database
management systems), 625
readability formulas, 127
reading data, 76
read-only memory (ROM), 73
read-only technology (ROM), 82
read-write heads, 78
real data type, 634, 635
Real ID Act, 660 661
Real Simple Syndication (RSS),
RealAudio format, 424
REALbasic (RB), 679
RealMedia format, 457
real-time messaging systems,
330 331
setting up, 331
record(s), databases, 134, 135,
adding, 647
organization, 639 640
record occurrences, 615
record types, 615
recordable technology (R), 82
recovery disks, 229
recovery software, 99
recycling equipment, 106 107
Red Book format, 466, 467
Red Cross, 610
reduced instruction set computing
(RISC), 69
reference software, 141
region codes, 468
registers, 31
regulation, information technology
industry, 508 509
relational database(s), 618 619
relational database management
systems (RDBMSs), 625
databases, 616
databases tracking, 617
many-to-many, 616
one-to-many, 616
one-to-one, 616
relative references, worksheets,
remarks, computer programs, 686
Remington Rand, 491, 492
Remote Access Trojans (RATs),
rendering, 449, 474, 475
repetition control structures,
698 699
repetitive stress injuries (RSIs),
536 537
report generators, 642
Report Program Generator (RPG),
678, 679
report templates, databases,
642 643
requests for proposal (RFPs), 580,
requests for quotations (RFQs),
580 581
reserved words, 205
display devices, 91, 539
images. See image resolution
native, 539
printers, 93
resolution dependence, 435
resource(s), 185
management by operating
systems, 186
resource fork, Mac OS, 200
response rate, display devices, 90
response time, quality-of-service
metrics, 587
restore points, 230
restoring data files, 225, 226,
228 229
resumes, 518 519
rewritable technology (RW), 82
RF signals, 265
cell phone emissions, 536
RFID (radio frequency
clothing production,
warehousing, and shipping,
410 411
inventory management, 610
tracking, 42, 43
RFPs (requests for proposal), 580,
RFQs (requests for quotations),
580 581
ribbon, 190
ring topology, 250
RISC (reduced instruction set
computing), 69
RJ45 connectors, 262
RLE (run-length encoding), 439
RM video files, 210
Roberts, Ed, 494
RoboForm, 41
robots, construction, 599
role-playing games, 141
ROM. See read-only memory
(ROM); read-only technology
ROM BIOS, 73, 83
root directory, 206
rootkit, 165
routable IP addresses, 344
Internet security, 343 345
NAT, 344 345
operation, 343 344
RPG (Report Program Generator),
678, 679
RSA Security Inc., 335
RSIs (repetitive stress injuries),
536 537
RSS (Real Simple Syndication),
declarative paradigm, 713 714
Prolog, 718 720
run-length encoding (RLE), 439
running application software, 121
runtime errors, 685
Russia, offshoring, 542
RW (rewritable technology), 82
SABRE (Semi-Automatic Business
Research Environment)
system, 544
Safari, 366
Safe Mode, 105
salami shaving, 232
salaries, for information technology
industry jobs, 512
sales reps, 512
sampling rate, digital audio, 423
SAR (specific absorption rate), 536
Sarbanes-Oxley Act, 524
Sasser computer worm, 232 233
satellite Internet service, 318 319,
equipment needed, 319
operation, 318
speed, 318
satellite modems, 319
satellite news gathering (SNG),
Save As dialog box, 213
Save As option, 213
Save option, 213
saving files, 76
Scalable Vector Graphics (SVG),
scanners, 431
scheduled reports, 561
Scheme, 679, 713
Schickard, William, 487
Schickard’s Calculator, 487
schools, e-mail privacy policies,
Scratch, 679, 712
screensavers, 123
SD (Secure Digital), 84
SDKs (software development kits),
686, 687
SDLC. See system development
life cycle (SDLC)
SDSL (symmetric DSL), 314
Search and Replace feature, 127
search engine(s). See Web search
search engine indexers, 376
search engine sites, search
engines compared, 375
search operators, 379 380
search terms, 378
second-generation computers,
492 493
second-generation languages, 677
sectors, 218
secure connections, 389
online payments, 389
Secure Digital (SD), 84
Secure Electronic Registration and
Voting Experiment (SERVE),
596, 597
secure HTTP (S-HTTP), 389
secure passwords, 38 41
secure programming, 723 729,
attack trees, 726
buffer overflow, 723 724
defensive programming, 726
mitigating vulnerabilities,
728 729
signed code, 727
software development, 725 727
threat modeling, 725
verbose error messages, 724
vulnerability to attack, 723
secure socket layer (SSL), 389
BitTorrent, 339
cable Internet connections, 316
DRM technologies, 469
electronic wallets, 391
e-mail. See e-mail security
hardware. See hardware
IM, 331
networks. See network security
person-to-person payments, 390
secure connections for online
payment, 389
software. See security software
Web. See cookies; Web security
Wi-Fi hotspots, 324
wireless networks, 266, 273
security breeches, information
system data vulnerability, 591
Security Center, 143
Security+ Certification, 517
Security Peer Review Group
(SPRG), 596 597
security software, 162, 167 169
antivirus modules, 167 169
definition, 162
dependability, 169
free, 167
frequency of system scans, 169
keeping up-to-date, 168
malware threats, 162
open source, 167
quarantines, 169
suites, 166 167
security specialists, 511
security suites, 166 167
Security Tracking of Office
Property (STOP) plates, 99
sedentary lifestyle, 540 541
seed(s), 339
seeders, 339
SELECT keyword, 646, 648
selection control structures, 697
self-executing zip files, 157
self-installing executable files, 157
Semi-Automatic Business
Research Environment
(SABRE) system, 544
semiconducting materials, 27
semi-structured problems,
558 559
sequence control structures,
695 696
sequence diagrams, 574
sequential access, 77
sequential execution, 695
serial processing, 69
SERVE (Secure Electronic
Registration and Voting
Experiment), 596, 597
server(s), 18
application, 249
domain name, 308
e-mail, 397
file. See file servers
POP, 398
print, 249
SMTP, 398
Web, 361
server operating systems, 187 188
server-side programs, 628 630
creating, 629 630
server-side scripts, 372
service companies, 498
software engineering, 498
service packs, 159
service set identifiers (SSIDs),
272 273
[email protected], 7, 334
setup. See installing software
setup programs, 154
Shannon, Claude, 252
shared resources, 274. See also
specific shared resources
shareware, 149 150
sharing printers, LANs, 278 280
shopping, online, 386 387
shopping carts, online, 386 387
shrink-wrap licenses, 147
S-HTTP (secure HTTP), 389
signal(s), corrupted, 253
signal scrambling, 465
signed code, 727
Silicon Valley, 499
Simon, Herbert, 558
Simone (film), 475
Simple Mail Transfer Protocol
(SMTP), 305
SIMULA (SIMUlation LAnguage),
679, 711
simulation(s), educational
applications, 290
simulation games, 141
SIMUlation LAnguage (SIMULA),
679, 711
Sin City (film), 475
single-user licenses, 147
single-user operating systems, 187
SIPRNet, 108
site licenses, 147
sketches. See graphics
skins, 123
Sky Captain and the World of
Tomorrow (film), 475
slates, 59
slide rule, 487
small business computers, 61
small-scale integration (SSI), 27
Smalltalk, 679, 711
smart phones, accessing Internet,
SmartMedia, 84
smartphones, 20, 21
operating systems, 202 203
smileys, 396
Smith, R. Blair, 544
Smith, R. C., 544
SMTP (Simple Mail Transfer
Protocol), 305
SMTP servers, 398
SNG (satellite news gathering),
sniffing, 37
social networking sites, 361
sockets, 364
software, 15, 118 173
ad-blocking, 385
anti-spyware, 402
antivirus. See antivirus software
application. See application
software; specific types of
application software
backup, 227
boxed, downloading versus, 146
break reminder, 541
buying. See buying software
buying computers, 64
categories, 120
commercial, 149
definition, 120
device drivers, 124
drawing, 446
e-mail client, 398, 399
executive dashboard, 613
file shredder, 220
file-encryption, 122
filtering, 122
freeware, 150
groupware, 121
information systems, 578
installing. See installing software
LAN parties, 280
local applications, 154 157
malicious. See malware
open source, 150 151
paint, 430
peripheral device installation, 97
PGP, 287
piracy, 147, 170 171
player, 425
portable, 158
proprietary, 149
public domain, 149
quality, 528 529
recovery, 99
responsibility for use, 529
security. See security software
server-side programs, 628 630
service packs, 159
shareware, 149 150
sharing on LANs, 274
system, 16, 120, 121
text-to-speech, 428 429
tracing, 447
tracking, 99
uninstalling, 160 161
updates, 159 160
utility, 122 123
Software & Information Industry
Association, 509
software copyrights, ethical issues,
software customization, 583 584
software development kits (SDKs),
686, 687
software engineering, 515
computer programming
compared, 675
software failures, information
system data vulnerability, 591
software licenses, 147 149, 151
agreements, 148
BSD, 150 151
commercial software, 148
concurrent-use, 147
EULAs, 148
GPL (General Public License),
location, 147
multiple-user, 147
proprietary software, 148
public domain software, 148
shrink-wrap, 147
single-user, 147
site, 147
software packages, contents,
152 153
software patches, 159
software ports, 309
software publishers, 498
Software Publishers Association,
software suites, 144
Solaris operating system, 102
solid state drives (SSDs), 84
backup device, 223
comparison with other storage
technologies, 87
solid state storage, 84 85
operation, 84
types, 84
USB flash drives, 84, 85
Somerson, Paul, 730
Betamax, 472, 529
BMG rootkit incident, 467
Sony Corp. v. niversal City
Studios, 524, 529
sort key, 639
sort order, 639
sorting, indexing compared,
637 638
sound. See also digital audio
storage using bits, 25
sound cards, 423 424
Sound recorder, 143
sound systems, 57
source code, 29
conversion to digital format,
30 31
source material, Web-based,
citing, 382 383
spam, 45, 403 404
avoiding, 404
blocking, 403 404
dangers, 403
definition, 403
marketing, 45
spam filters, 404
specific absorption rate (SAR), 536
specifications, microprocessors,
67, 68
speech, digitization, 8
speech recognition, 428 429
speech synthesis, 428
Bluetooth, 267
cable Internet service, 316
cellular data service, 326, 327
downstream, 311
DSL, 315
Ethernet networks, 259,
261 262
HomePNA (HPNA), 257
Internet connection, 309 311
microprocessors, 67 68, 70
printers, 93
RAM, 73
satellite Internet service, 318
sources, 313
storage technologies, 77
voiceband modems, 313
Web videos, 460
Wi-Fi, 268, 324
WiMAX, 320
wireless networks, 266
spelling checkers, 126
spelling dictionaries, 126
Sperry Corp., 492
Sperry Rand Company, 489, 492
Spiderman (film), 474 475
spoofed addresses, 163
spoofing, 405
sports games, 141
spreadsheet(s), 130 132
appearance, 130 131
definition, 130
using, 131 132
spreadsheet software, 130 132,
operation, 131
SPRG (Security Peer Review
Group), 596 597
Sprint, 303
spyware, 164
SQL (Structured Query Language),
645 652, 678
adding records to databases,
joining tables, 651 652
keywords, 646 647
operation, 645
queries, 645, 646, 648 649
simple queries, 646
updating fields, 650
SQL keywords, 646 647
SQL queries, 645, 646, 648 649
SRI (Stanford Research Institute),
SSDs. See solid state drives
SSI (small-scale integration), 27
SSIDs (service set identifiers),
272 273
SSL (secure socket layer), 389
Stallman, Richard, 179
standalone password manager
software, 40 41
AES, 285
Ethernet, 259
IEEE Standards Association,
LANs (local area networks), 247
MPR, 535
PCI, 658
TCO, 535
Wi-Fi, 268
Stanford Research Institute (SRI),
Staples, 506
star topology, 250
Star Wars (film), 474
stateless protocols, 365
static IP addresses, 306
static Web publishing, 627
statistical software, 133
STAT!Ref, 662
Steinhardt, Barry, 661
STOP (Security Tracking of Office
Property) plates, 99
Stoppelenburg, Ramon, 544
storage, 15
hard-disk, RAM versus, 71
operating system management,
storage density, 77
storage devices, 57, 76 87
adding, 86
capacity, 77
components, 76
definition, 76
durability, 77
interaction with other
components, 76
magnetic, 78 80
optical discs, 81 83
solid state, 84 85
speed, 77
types compared, 77, 87
versatility, 77
storage media, 76
storage servers, 18
store-and-forward technology, 397
stored programs, 16
strategic planning, 557
strategy games, 141
streaming audio, 425
streaming video, 459
street price, 498
STRIDE categories, 725
strong encryption, 285 286
breaking, 286
structured documentation tools,
572 573
structured English, 692
structured files, 614
structured methodology, 570
structured problems, 558 559
students, e-mail privacy, 409
styles, 128
subclasses, 704
coding, 705
subdirectories, 206
submenus, 191
subnotebooks, 59
subroutines, 696
success factors, 571
summary reports, 561
Sun Microsystems, 494, 499, 712
activities, 498
super distribution, 471
Super VGA (SVGA), 91
Super XGA (SXGA), 91
superclasses, 704
supercomputers, 18 19
SurfSecret KeyPad, 41
surge protection, 99 100
surge strips (surge suppressor or
surge protector), 100
surveillance, 11
SVG (Scalable Vector Graphics),
SVGA (Super VGA), 91
swarms, 339
SXGA (Super XGA), 91
Symbian OS, 202
symmetric DSL (SDSL), 314
symmetric Internet connection, 311
symmetric key encryption, 286
syntax, programming languages,
syntax errors, 685
synthesized sound, 426
system application software, 120
system board, 28
system conversion, 586
system development life cycle
(SDLC), 566 572. See also
specific phases
analysis phase, 571 575
design phase, 576 582
implementation phase, 583 586
iterative, 566
maintenance phase, 587 589
modified waterfall, 566
planning phase, 567 571
waterfall, 566
system development
methodologies, 570
system documentation, 585
System Mechanic, 122
system operator, 588
system palettes, 438
system requirements, 145
definition, 571
determining, 571 572
documentation tools, 572 575
System Requirements Report,
System Requirements Report, 572
system software, 16, 120, 121
utility, 122 123
system synchronization, 226
system testing, 584
system unit, 57
system utilities, 122
systems analysis, 566 575
SDLC. See system development
life cycle (SDLC); specific
phases of cycle
systems analysts, 510
systems design and analysis,
566 567
systems programmers, 588
T4 syndrome, 540
databases. See database tables
decision, declarative paradigm,
documents, 129
FAT, 219
MFT, 219, 220
wavetables, 426
tablet computers, 59
The Tabulating Machine Company,
tactical planning, 557
Tagged Image File Format (TOF or
TIFF), 442, 443
tanks (military), 108
tape storage, 80
Target Acquisition Destination
Sights, 108
taskbar, 190
tax preparation software, 133
TCO standards, 535
TCP (Transmission Control
Protocol), 305
TCP/IP, 305
technical support specialists, 511
technical writers, 512
technology, user-friendliness,
730 731
technology magazines, information
on software, 145
technotrash, 106 107
telecommuting, 513
telemarketing, 44
temporal compression, 458
tera-, definition, 26
terabyte, 26
Terminator 2 (film), 474
test areas, 584
DVD-video, 463
programs, 685
Texas Instruments, 494
digital data representation,
24 25
specifying for Web pages, 370
text data type, 634, 635
text editors, 682, 684 685
Web page authoring, 369
text-to-speech software, 428 429
computers, 98 99
corporate identity, 594 595
identity, 36, 232
information, 232
passwords, 36 37, 501
thesauruses, 127
third-generation computers, 493
third-generation languages, 677
32-bit bitmaps, 437
Thompson, Ken, 700
threat modeling, 725
3-D graphics, 449 451
tools for creating, 450 451
vector graphics related, 449
3-D graphics software, 137
throughput, quality-of-service
metrics, 587
thumb drives. See USB flash
TIF or TIFF (Tagged Image File
Format), 442, 443
TigerDirect, 507
time shifting, 465
fair use, 472
Tippett, Peter, 162
Titus, Jonathan A., 494
TLS (Transport Layer Security),
toolbar, 190
top-level domains, 307
Torvalds, Linus, 201
Toshiba, 494
Total Quality Management (TQM),
touch screens, 89
tower cases, 58
Toy Story (film), 475
TPSs. See transaction processing
systems (TPSs)_
TQM (Total Quality Management),
Traceroute, 310
tracing software, 447
track(s), 218
trackballs, 89
trackers, 339
tracking software, 99
tracking technology, 42 43
trackpads, 89
TrackPoints, 89
transaction(s), definition, 559
transaction processing systems
(TPSs)_, 559 560
MISs versus, 562
online, 560
transceivers, wireless networks,
transistors, 492
Transmission Control Protocol
(TCP), 305
Transport Layer Security (TLS),
travel industry, 544 545
tree topology, 250
Trend Micro Internet Security, 167, 545
Trojan horses, 37, 163
TRON (film), 474
hardware, 103 104
LANs, 280 281
True Color bitmaps, 437
Turabian style for citations, 382
TurboPasswords, 41
turning off cookies, 401
turnkey systems, 578
TWA, 544
24-bit bitmaps, 437
Twitter, 6, 361
2001 A Space Odyssey (film), 474
uBid, 388
UDP (User Datagram Protocol),
UFDs. See USB flash drives
ULSI (ultra large-scale integration),
ultra large-scale integration (ULSI),
Ultra XGA (UXGA), 91
UML. See Unified Modeling
Language (UML)
undeleting files, 221
unethical business practices.
See professional ethics;
Unicode, 25
Unified Modeling Language (UML),
object-oriented programming,
uninstall routine, 160 161
uninstalling software, 160 161
uninterruptible power supplies
(UPSs), 100
Unisys, location, 499
unit testing, 584
United Airlines, 544, 545
United States Copyright Act, 524
United States Omnibus Crime
Control and Safe Street Act,
United Virtualities (UV), 402
U.S. Army, 103, 108
reporters embedded with, 173
U.S. Census Bureau, 488
U.S. Department of Defense, 711
U.S. Department of Defense
(DoD), 108
U.S. Digital Millennium Copyright
Act, 10
U.S. Privacy Act, 657
Universal Declaration of Human
Rights, 10
Universal Resource Locators
(URLs), 361 362
universal serial bus. See USB
UNIX, 201, 493
unpowered hubs, 96
unstructured files, 614
unstructured problems, 558 559
unzipping files, 156 157
update(s), software, 159 160
UPDATE keyword, 646, 650
updating data in databases,
610 611
updating over Web, 628 629
updating fields, 650
browsers, 366
computers, 65
UPSs (uninterruptible power
supplies), 100
upstream speed, 311
URLs (Universal Resource
Locators), 361 362
USA PATRIOT Act, 524, 657
USB flash drives, 84, 85
backup device, 223
comparison with other storage
technologies, 87
USB hubs, 96
USB ports, 96
use case(s), 573
use case diagrams, 573
User Datagram Protocol (UDP),
user documentation, 585
user IDs, 34 35
managing, 39
user input, Prolog, 721
user interfaces, 189 192
command-line, 189
database design, 640 641
definition, 189
graphical, 189 192
operating system effects, 189
user levels, quality-of-service
metrics, 587
user privileges, 655
user-friendliness of technology,
730 731
User’s Bill of Rights, 730, 731
utility software, 122 123
included with operating system,
143 144
UXGA (Ultra XGA), 91
vacuum tubes, 491
value(s), worksheet(s), 130
value-added resellers (VARs), 508
vandalism, 232
vaporware, 503
VAR(s) (value-added resellers),
variable(s), 680
variable-length fields, 615
VDEs (visual development
environments), 683 685
VDSL (very high-speed DSL), 314
vector graphics, 444 447
bitmap graphics compared,
444 445
conversion to bitmap graphics,
definition, 444
identifying, 444
3-D graphics related, 449
tools for creating, 446 447
on Web, 448
computers, 66
software, 145
verbose error messages, 724
Verio, 592
VeriSign, 727
Verizon, 303
versatility, storage technologies, 77
vertical market software, 142
very high-speed DSL (VDSL), 314
VGA ports, 95, 96
VGA resolution, 91
Victoria’s Secret, 410
digital. See digital video
streaming, 459
video capture, 454 455
video editing software, 140
Video Graphics Array. See VGA
Video Object (VOB) format, 457
videocasting, 361
videoconferencing cameras, 453
videogame consoles, 17
viewing angle width, 90
virtual machine (VM) technologies,
Mac OS, 199 200
virtual memory, 72
virtual private networks (VPNs),
accessing, 345
importance, 345
setting up, 345
virus(es). See computer viruses
virus definitions, 168
virus distribution, 232
virus hoaxes, 166
virus signatures, 167
VisiCalc, 495
Visual Basic, 679, 712
visual development environments
(VDEs), 683 685
VM (virtual machine) technologies,
Mac OS, 199 200
VOB (Video Object) format, 457
voice communication, 9
Voice over Internet Protocol. See
VoIP (Voice over Internet
voice recognition, 428 429
voiceband modems, 312 313
speed, 313
VoIP (Voice over Internet
Protocol), 305, 332 333
advantages and disadvantages,
operation, 332
setting up, 332
volatility, RAM, 72, 192 193
voting, online, 596 597
VPNs. See virtual private networks
walkthroughs, 694
Wal-Mart, 610
WANs (wide area networks), 247
WAP (Wireless Application
Protocol), 327
war, acts of, information system
data vulnerability, 591
warez, 179
waterfall SDLC, 566
Watson, Thomas J., 490
Wave format, 424
wavetables, 426
WBSs (work breakdown
structures), 570, 571
weak encryption, 285
wearable technology, 41
Web, 7, 360 373
browsers. See Web browsers
cookies, 367 368
database access, 627 630
definition, 360
HTML. See HTML (Hypertext
Markup Language)
HTTP, 364 365
Internet versus, 360
search engines. See Web
search engines
security. See cookies; Web
vector graphics, 448
Web pages. See Web page(s)
Web sites. See Web site(s)
Web 2.0, 361
Web applications, 158, 159
installing, 158
Web authoring software, 125
Web browsers, 361, 365 367
file formats, 366
helper applications, 367
plug-ins, 367
popular, 365 366
upgrading, 366
Web caches, 367
Web bug(s), 402
Web bug detectors, 402
Web caches, 367
Web crawlers, 375 376
Web page(s)
adding audio files, 425
adding videos, 459 460
authoring. See Web page
ranking by search engines,
377 378
Web page authoring, 369 371
HTML conversion utilities, 369
putting Web pages on Internet,
specifying text and graphics,
starting HTML documents,
369 370
text editors, 369
Web palettes, 438
Web portfolios, 519 520
Web search engines, 374 382
definition, 374 375
formulating searches. See
formulating searches
information stored by, 381
keeping searches confidential,
operation, 375
ranking of Web sites, 377 378
recording of queries, 380 381
search engine indexers, 376
search engine sites compared,
Web crawlers, 375 376
Web security
cookies. See cookies
defenses, 407
fake sites, 405 406
Web servers, 361
Web site(s), 360 361
accessing, 361 362
backup device, 223
definition, 361
fake, 405 406
HTML. See HTML (Hypertext
Markup Language)
information on software, 145
Web site designers, 511
Web-based e-mail, 397, 398, 399,
408, 545
Web-based source material
citing, 382 383
copyright, 383
permission to use, 383
Web-based video, 452, 459 460
file formats, 460
speed, 460
WEP (Wired Equivalent Privacy),
Wetherbe, James, 569
what-if analysis, 130
whistleblowing, 532 533
WHO (World Health Organization),
wide area networks (WANs), 247
Wi-Fi, 268 273
definition, 268
encryption. See encryption;
wireless encryption
equipment, 268 270
hotspots, 323 324
range, 268
security, 282 284
setup, 270 273
speed, 268
standards, 268
Wi-Fi adapters, 269
Wi-Fi hotspots
security, 324
speed, 324
Wi-Fi Protected Access (WPA),
Wii, 17
wiki(s), 10, 361
Wikipedia, 10, 361
Wildstrom, Stephen H., 731
WiMAX, 320, 321
mobile, 324
portable, 324
speed, 320
Windows. See Microsoft Windows
windows, 189
Windows Registry, 154
backing up, 229
WinZIP, 439
Wired Equivalent Privacy (WEP),
wired networks, 256 264
advantages, 256
definition, 256
disadvantages, 256 257
Ethernet. See Ethernet
HomePNA, 257 258
mixing wireless and wired
devices, 273
powerline, 258
types, 257
wireframes, 449
wireless access points, 270
wireless ad-hoc networks, 270
Wireless Application Protocol
(WAP), 327
wireless broadband service, 320,
Wireless CWNP certification, 516
wireless encryption, 283. See also
activating, 284
PSK, 283
WEP, 283
WPA, 283
wireless infrastructure networks,
wireless network(s), 7, 265 273
advantages, 265
Bluetooth, 267
definition, 265
disadvantages, 265
free access, 288 289
infrared light, 265
licensing, 266
microwaves, 265
mixing wireless and wired
devices, 273
popular technologies, 266
range, 266
RF signals, 265
security, 266, 273, 283 284
speed, 266
tracking, 42 43
unauthorized access, 288
Wi-Fi. See Wi-Fi
wireless network keys, 284
wireless routers, 270
accessing configuration utility,
changing default password, 272
configuring, 271 273
wireless-ready devices, 269
Wirth, Niklaus, 700
WMA (Windows Media Audio)
format, 424
word processing software, 125
word size, 68
WordPad, 143
work. See computer professionals;
work area safety
back pain, 540
ergonomics, 537
eye strain, 538 539
radiation. See radiation risks
repetitive stress injuries,
536 537
sedentary lifestyle, 540 541
work breakdown structures
(WBSs), 570, 571
workers, 557. See also employees
worksheets, 130
modifying, 132
workstations, 17
configuring for Ethernet, 264
definition, 248
wireless networks, 273
World Health Organization (WHO),
World Trade Center attack, 593
World Wide Web. See Web
worms, 163
Wozniak, Steve, 495
WPA (Wi-Fi Protected Access),
writable DVD drives, 461
writing data, 76
xB Browser, 403
Xbox, 17
XCP (Enhanced Copy Protection),
xD-Picture Cards, 84
xDSL, 314
Xerox Alto, 495
XForms, 629
XGA (eXtended Graphics Array),
XHTML, 362
advantages and disadvantages
for storing data, 631 632
databases, 630 632
uses, 631
XML DBMSs, 625
XML resumes, 518
XNA framework, 687
e-mail authentication, 404
Internet censorship tools, 347
Yahoo! Mail, 545
YouTube, 383
posting videos, 459
Z3 computer, 489
ZEDO, 401
Zilog, 494
zip files
non-executing, 157
self-executing, 157
zipped files, 156 157
zombies, 164
Zuse, Konrad, 489