Oracle Essentials [Electronic resources] : Oracle Database 10g, 3rd Edition نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Oracle Essentials [Electronic resources] : Oracle Database 10g, 3rd Edition - نسخه متنی

Jonathan Stern

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید










Chapter 7. Multiuser Concurrency


All
information systems fulfill a single purpose: to collect, store, and
retrieve information. As systems grow to handle many different users
with many different needs, problems can arise as a result of the
conflicting demands for concurrent access to the same data.

Concurrent user access is one of the most
central and vexing issues for applications accessing data from
databases. Implementing
concurrent user access, or concurrency, can affect two of the most
important facets of any application: the underlying integrity of the
data and the performance of the application system.

As Ken Jacobs,
Vice President at Oracle, put it in his classic paper entitled
"Transaction Control and Oracle7,"
a multiuser database must be able to handle concurrently executing
transactions in a way that "ensure(s) predictable
and reproducible results." This goal is the core
issue of data integrity, which, in turn, is the foundation of any
database system.

As multiple users access the same data, there is always the
possibility that one user's changes to a specific
piece of data will be unwittingly overwritten by another
user's changes. If this situation occurs, the
accuracy of the information in the database is compromised, which can
render the data useless or, even worse, misleading. At the same time,
the techniques used to prevent this type of loss can dramatically
reduce the performance of an application system, as users wait for
other users to complete their work before continuing. These
techniques act like a traffic signal, so you can't
solve this type of performance problem by increasing the resources
available to the database. The problem isn't due to
a lack of horsepowerit's caused by a red
light.

Although concurrency issues are central to the success of
applications, they are some of the most difficult problems to predict
because they can stem from such complex interactive situations. The
difficulties posed by concurrent access continue to increase as the
number of concurrent users increases. Even a robust debugging and
testing environment may fail to detect problems created by concurrent
access, because these problems are created by large numbers of users
who may not be available in a test environment. Concurrency problems
can also pop up as user access patterns change throughout the life of
an application.

If the problems raised by concurrent access aren't
properly handled by the underlying database software, developers may
find themselves suffering in a number of ways. They will have to
create their own customized solutions to these problems in their
software, which will consume valuable development time. They will
frequently find themselves adding code during the late stages of
development and testing to work around the underlying deficiencies in
the database, which can alter the design of the application. Worst of
all, they may find themselves changing the optimal design of their
data structures to compensate for weaknesses in the capabilities of
the underlying database.

There is only one way to deal successfully with the issues raised by
concurrent data access. The database that provides the access must
implement strategies to transparently overcome the potential problems
posed by concurrent access. Fortunately, Oracle has excellent methods
for handling concurrent access.

This chapter describes the basics of concurrent data access and gives
you an overview of the way that Oracle handles the issues raised by
concurrent access. If you've worked with large
database systems in the past and are familiar with concurrent user
access, you might want to skip the first section of this
chapter.


/ 167