Sapere On Line - basic courses, professional and advanced

LINUX

     Is Linux Really FREE?
     Getting Linux
     So What Do I Gain?
     What Do I Lose?
     Getting a Free Copy
     Dual Booting
Preserving Your Data
Windows on Linux
Getting Ready for Your Installation
Hardware Considerations
Dual Booting Revisited
An Installation Comparison
A Mandrake Linux Install
Putting On The Red Hat
Rambler's 

Top100

 

Linux

Handling Multiple Users

If the only purpose of a database was to store data, an enormous amount of the inner workings of
the Oracle database, as well as years of development, could have been avoided. But the real magic
of a modern relational database like Oracle is not that it simply stores data. The tricky part comes
in when more than one user wants to use the same piece of data.
Handling multiple concurrent requests for data is one of the most devilish tasks a database has to
accomplish. There are three main reasons for this complexity. The most basic reason is that each
user wants to think that he or she is the only user for that data. Every user has to be isolated from
all other activity in the database, whether it is taking place on completely unrelated data structures
or on the exact same table, row, and columns that a user is working on.
The second reason is that the database has to be able to handle these multiple potentially conflicting
requests without adversely affecting performance. In other words, you don’t want to see the response
time for data retrieval or update fall off the table as the number of users increases.
The third reason is that both of these qualities must continue to exist as the demand on the application
increases. This is true even as the load on the database increases into the hundreds and thousands of
requests.
Creating applications that will work for multiple users is also one of the most devilish tasks facing
developers. You have to create applications that will run properly and efficiently for potentially
large numbers of users, even though your test harness will almost inevitably not be able to simulate
the wide variety of potential interactions by these users.
So a modern, enterprise database must be able to handle simultaneous requests for hundreds of
users without unduly increasing overhead. Sounds a bit like wanting an application created fast,
cheap, and good—at best, you can get two of them.
Fortunately, the Oracle database has a terrific built-in strategy for dealing with these exact issues. As
a developer, you can pretty much let Oracle take care of handling concurrent requests for data—
certainly to a greater extent than for any other major relational database.
Although it may seem somewhat contradictory to devote an entire chapter to a functionality that works by
default, many of you may have experience with other databases that do not handle large numbers of users
as well. This may have led you into the habit of coding to avoid their potential problems. It is crucial that
you understand both the potential problems that concurrent multiuser access can create and how Oracle
addresses them.Most importantly, properly understanding and implementing the features that ensure accurate and wellperforming
multiuser data access is absolutely essential to creating viable applications. Frankly, your ability to
create applications that can handle many, many users is really at the core of this book. As a developer, you are
responsible for creating applications for entire communities of users that use the data in an Oracle database.
You create the interface between those user communities and their data. The more the built-in features of the
Oracle database can help you accomplish this task, the better. Acomplete understanding of the issues surrounding
multiuser access, as well as how Oracle deals with these issues, is essential for all Oracle developers.
So, even if you feel you are completely familiar with how to deal with these issues, you will probably
want to at least skim through the first part of this chapter for review.Goals
The previous section discussed some specific issues related to multiple users and a database. But before
you can start to understand those issues in more detail, it is worthwhile to step back and think about the
overall goals that the database must achieve as it supports multiple users.
Data Integrity
Even though you write application code, the concept of data integrity is hopefully one that you have
already taken to heart. Data integrity refers to the overall quality of your data. You, and, more importantly,
your users, should be able to depend on the data in the Oracle database being both accurate and consistent.
Data integrity implies many things. In terms of multiple users, data integrity implies that any changes in
the data do not overwrite other users’ changes unknowingly. In its most complete sense, data integrity
also implies that data returned to a user will represent a consistent set of data at any one point in time.
This consistent view of data is sometimes referred to as a snapshot.
This consistency is provided by Oracle for multiple users, but not necessarily as easily or completely by
other databases. Your users would probably not be happy with inconsistent data, so developers using
other databases sometimes have to implement other types of solutions, such as reporting databases, to
address this issue. But not with Oracle.
Multiuser concurrency issues are one area that really separates Oracle DBAs from
Oracle developers. A DBA is concerned with keeping the database running, but not
necessarily with how the database is supporting applications. You, as a developer,
take things like backup and maintenance for granted, but care deeply about the
eventual functionality and performance delivered to end users.
28
Chapter 3
Data integrity covers a lot more than just multiuser issues. In a well-designed database, internal capabilities
in the database, such as constraints, help to ensure that the data is also logically consistent. Chapter 11,
“Constraints,” focuses on how you can use constraints to implement logical data integrity.SapereOnLine
 


ORACLE

Oracle Data Dictionary
Installing Oracle
Introduction to SQL
Extended SQL
Indexes
Constraints
Other Database Structures
Functions
Distributed Queries, Transactions, and Databases
PL/SQL Basics
PL/SQL and SQL
PL/SQL Packages
Introduction to Java Database Programming
Triggers
Regular Expressions and Expression Filter
Object Relational Interactions with Oracle
Oracle XML DB
HTML-DB
High-Speed Data Movement
Data Loading and Management
Business Intelligence Query
Business Intelligence Analysis
Optimization
© 2008 The Company, Inc. All rights reserved. Terms of Use and Disclaimer