Dec 18 2008
An Oracle database system comprises at least one instance of the
application, along with data storage. An instance comprises a
set of operating-system processes and memory-structures that
interact with the storage. Typical processes include PMON (the
process monitor) and SMON (the system monitor).
Users of
Oracle databases refer to the server-side memory-structure as
the SGA (System Global Area). The SGA typically holds cache
information such as data-buffers, SQL commands and user
information. In addition to storage, the database consists of
online redo logs (which hold transactional history). Processes
can in turn archive the online redo logs into archive logs
(offline redo logs), which provide the basis (if necessary) for
data recovery and for some forms of data replication.
The Oracle RDBMS stores data logically in
the form of tablespaces and physically in
the form of data files. Tablespaces can
contain various types of memory segments;
for example, Data Segments, Index Segments
etc. Segments in turn comprise one or more
extents. Extents comprise groups of
contiguous data blocks. Data blocks form the
basic units of data storage. At the physical
level, data-files comprise one or more data
blocks, where the block size can vary
between data-files.
Oracle database
management keeps track of its data storage
with the help of information stored in the
SYSTEMM tablespace. The
SYSTEM tablespace contains the data
dictionary ? and often (by default) indexes
and clusters. (A data dictionary consists of
a special collection of tables that contains
information about all user-objects in the
database). Since version 8i, the Oracle
RDBMS also supports "locally managed"
tablespaces which can store space management
information in bitmaps in their own headers
rather than in the SYSTEMM
tablespace (as happens with the default
"dictionary-managed" tablespaces).
If the Oracle database administrator has
instituted Oracle RAC (Real Application
Clusters), then multiple instances, usually
on different servers, attach to a central
storage array. This scenario offers numerous
advantages, most importantly performance,
scalability and redundancy. However, support
becomes more complex, and many sites do not
use RAC. In version 10g, grid computing has
introduced shared resources where an
instance can use (for example) CPU resources
from another node (computer) in the grid.
The Oracle DBMS can store and execute
stored procedures and functions within
itself. PL/SQL (Oracle Corporation's
proprietary procedural extension to SQL), or
the object-oriented language Java can invoke
such code objects and/or provide the
programming structures for writing them.
Schemas
Oracle database
conventions refer to defined
groups of ownership
(generally associated with a
"username") as schemas.
Most Oracle database
installations traditionally
come with a default schema
called SCOTT.
After the installation
process has set up the
sample tables, the user can
log into the database with
the username scott
and the password tiger.
(The name of the SCOTT
schema originated with Bruce
Scott, one of the first
employees at Oracle (then
Software Development
Laboratories), who had a cat
named Tiger.)
Other default schemas
include:
SYS
(essential core database
structures and
utilities)
SYSTEM
(additional core
database structures and
utilities, and
privileged account)
OUTLN
(utilized to store
metadata for stored
outlines for query
optimizer plan
stability.
BI,
IX,
HR, OE,
PM, and
SH
(expanded sample schemas
containing more data and
structures than the
older SCOTT
schema)
Tablespaces
Default tablespaces
include:
SYSTEM
(essential core database
structures and
utilities)
SYSAUX
(extra/extended data to
supplement the
SYSTEM schema)
TEMP
(temporary tablespace)
UNDOTBS1
(undo tablespace)
USERS
(default users
tablespace created by
the Database
Configuration Assistant
- but replaceable by the
DBA)
Memory architecture
System Global Area
Each Oracle instance uses
a System Global Area or SGA
? a shared-memory area ? to
store its data and control
information.
Each Oracle instance
allocates itself an SGA when
it starts and de-allocates
it at shut-down time. The
information in the SGA
consists of the following
elements, each of which has
a fixed size, established at
instance startup:
- the database buffer
cache: this stores the
most recently-used data
blocks. These blocks can
contain modified data
not yet written to disk
(sometimes known as
"dirty blocks"),
unmodified blocks, or
blocks written to disk
since modification
(sometimes known as
clean blocks). Because
the buffer cache keeps
blocks based on a
most-recently-used
algorithm, the most
active buffers stay in
memory to reduce I/O and
to improve performance.
- the redo log buffer:
this stores redo entries
? a log of changes made
to the database. The
instance writes redo log
buffers to the redo log
as quickly and
efficiently as possible.
The redo log aids in
instance recovery in the
event of a system
failure.
- the shared pool:
this area of the SGA
stores shared-memory
structures such as
shared SQL areas in the
library cache and
internal information in
the data dictionary. An
insufficient amount of
memory allocated to the
shared pool can cause
performance degradation.
Library cache
The library cache stores
shared SQL, caching the
parse tree and the execution
plan for every unique SQL
statement.
If multiple applications
issue the same SQL
statement, each application
can access the shared SQL
area: this reduces the
amount of memory needed and
reduces the processing-time
used for parsing and
execution planning.
Data-dictionary cache
The data dictionary
comprises a set of tables
and views that map the
structure of the database.
Oracle stores information
here about the logical and
physical structure of the
database. The data
dictionary contains
information such as the
following:
- User-information,
such as user-privileges
- Integrity
constraints defined for
tables in the database
- Names and data-types
of all columns in
database tables
- Information on space
allocated and used for
schema objects
The Oracle instance
frequently accesses the data
dictionary in order to parse
SQL statements. The
operation of Oracle depends
on ready access to the data
dictionary: performance
bottlenecks in the data
dictionary affect all Oracle
users. Because of this,
database administrators
should make sure that the
data-dictionary cache has
sufficient capacity to cache
this data. Without enough
memory for the
data-dictionary cache, users
see a severe
performance-degradation.
Allocating sufficient memory
to the shared pool where the
data-dictionary cache
resides precludes these
particular
performance-problems.
Program Global Area
The Program Global Area
or PGA memory area contains
data and control information
for the Oracle server
processes.
The size and content of the PGA depends on
the Oracle-server options installed. This area
consists of the following components:
- stack-space: the memory that holds the
session's variables, arrays, and so on.
- session-information: unless using the
multithreaded server, the instance stores
its session information in the PGA. (In a
multithreaded server, the session
information goes in the SGA.)
- private SQL-area: an area in the PGA
holding information such as bind-variables
and runtime buffers.
- sorting area: an
area in the PGA holding
information on sorts,
hash-joins, etc.
History
Corporate and technical
development
This article or section may contain a proseline.
Larry Ellison founded Software Development
Laboratories in 1977. In 1979 SDL changed its
company-name to Relational Software, Inc. (RSI)
and introduced its product Oracle V2 as an early
commercially-available relational database
system. The version did not support
transactions, but implemented the basic SQL
functionality of queries and joins. (RSI never
released a version 1 - instead calling the first
version version 2 as a marketing
gimmick.)
In 1983, RSI in its turn
changed its name, becoming
known as Oracle Corporation
to align itself more closely
with its flagship product.
The company released Oracle
version 3, which it had
re-written using the C
programming language and
which supported COMMIT
and ROLLBACK
functionality for
transactions. Version 3
extended platform support
from the existing Digital
VAX/VMS systems to include
Unix environments.
In 1984, Oracle
Corporation released Oracle
version 4, which supported
read-consistency.
From 1985, the Oracle
RDBMS began supporting the
client-server model, with
networks becoming available
in the mid-1980s. Oracle
version 5.0 supported
distributed queries.
In 1989, Oracle
Corporation entered the
application products market
and developed its ERP
product - Oracle Financials
based on the Oracle
relational database. Oracle
RDBMS version 6 came out
with support for PL/SQL
embedded within Oracle Forms
v3 (PLSQL could not be
stored in the database in
v6), row-level locking and
hot backups.
In 1992, Oracle version 7
appeared with support for
referential integrity,
stored procedures and
triggers.
In 1997, Oracle
Corporation released version
8, which supported
object-oriented development
and multimedia applications.
In 1999, Oracle8i came
out, aiming to operate more
in tune with the needs of
the Internet (The i
in the name stands for
"Internet"). The Oracle 8i
database incorporated a
native Java virtual machine
(JVM).
In 2001, Oracle9i appeared with 400 new
features, including the ability to read and
write XML documents. 9i also provided an option
for Oracle RAC, or "Real Application Clusters",
a computer-cluster database, as a replacement
for the Oracle Parallel Server (OPS) option.
In 2003, Oracle
Corporation released Oracle
Database 10g. The g
stands for "grid";
emphasizing a marketing
thrust of presenting 10g as
"grid-computing ready".
In 2005, Oracle Database
10.2.0.1 ? also known as
Oracle Database 10g Release
2 (10gR2) ? appeared.
In 2007, Oracle
Corporation released Oracle
Database 11g for the Linux
operating system.
List of claimed firsts
Oracle Corporation claims
to have provided:
- the first
commercially-available
SQL-based database
(1979)
- the first database
to support symmetric
multiprocessing (SMP)
(1983)
- the first
distributed database
(1986)
- the first database
product tested to comply
with the ANSI SQL
standard (1993)
- the first 64-bit
database (1995)
- the first web
database (1997)
- the first database
to incorporate a native
JRE (1998)
- the first commercial
RDBMS to become
available on Linux
(1998)
- the first database
to support XML (1999)
Editions
Over and above the
different versions of the
Oracle database management
software, Oracle Corporation
subdivides its product into
varying "editions" -
apparently for marketing and
license-tracking reasons.
- Standard Edition
(SE) contains base
database functionality.
Oracle Corporation
licenses this product on
the basis of users or of
processors, typically
for servers running from
one to four CPUs. If the
number of CPUs exceeds 4
CPUs, the user must
convert to an Enterprise
license. SE has no memory limits, and can
utilize clustering with
Oracle RAC at no
additional charge.
- Enterprise Edition (EE)
includes more features
than the 'Standard
Edition', especially in
the areas of performance
and security. Oracle
Corporation licenses
this product on the
basis of users or of
processors, typically
for servers running 4 or
more CPUs. EE has no
memory limits, and can
utilize clustering using
Oracle RAC software.
- Standard Edition
One, introduced with
Oracle 10g, has some
additional
feature-restrictions.
Oracle Corporation
markets it for use on
systems with one or two
CPUs. It has no memory
limitations.
- Express Edition
('Oracle Database XE'),
introduced in 2005,
offers Oracle 10g free
to distribute on Windows
and Linux platforms
(with a footprint of
only 150 MB and
restricted to the use of
a single CPU, a maximum
of 4 GB of user data and
1 GB of memory). Support
for this version comes
exclusively through
on-line forums and not
through Oracle support.
- Oracle Personal
Edition provides the
functionality of the
"high end" Enterprise
Edition but marketed to
(and licensed for)
single-user developers
working on personal
workstations.
- Oracle Database
Lite, intended to
run on mobile devices.
The database, partially
located on the mobile
device, can synchronize
with a server-based
installation.
- TimesTen, a
memory-resident database
that has the ability to
cache transactions and
synchronize data with a
centralized Oracle
database server. It
functions as a real-time
infrastructure software
product designed for low
latency, high-volume
data, event and
transaction management
- BerkeleyDB,
high-performance,
embedded database
library
Host platforms
Prior to releasing
Oracle9i, Oracle Corporation
ported the database engine
to a wide variety of
platforms. More recently,
Oracle Corporation has
consolidated on a smaller
range of operating-system
platforms.
Related software
For links to some of
Oracle Corporation's
software which integrates
with Oracle databases, see
the Oracle Corporation
category and the Oracle
software category pages.
Database "features"
Apart from the
clearly-defined database
options, Oracle databases
may include many
semi-autonomous software
sub-systems, which Oracle
Corporation sometimes refers
to as "features". Such
"features" may include (for
example):
- Automatic Workload
Repository (AWR),
providing monitoring
services to Oracle
database installations
from Oracle version 10.
Prior to the release of
Oracle version 10, the
Statspack facility
provided similar
functionality.
- Data Aggregation and
Consolidation
- Data Guard for high
availability
- Flashback for
selective data recovery
and reconstruction
- iSQL*Plus, a
web-browser-based
interface to Oracle
database DML
- Recovery Manager
(rman) for database
backup, restoration and
recovery
- SQL*Plus, a
command-line oriented
interface to Oracle
database DML and DDL
See also the category
"Oracle software" (linked
below)
Getting started
Users new to Oracle who
need to get databases up and
running may check out the
online documentation, the
Oracle Technology Network
site, and the
comp.databases.oracle Usenet
discussion group. The Oracle
Technet site offers
downloads of full-featured
evaluation software. Users
who have Oracle support
contracts should turn to
Oracle's Metalink web site
(password required). Users
can also check the Oracle
FAQ site before posting
questions to forums, mailing
lists, etc. They can also
log on to
http://asktom.oracle.com to
post questions to and get
answers from Tom Kyte, the
author of several Oracle
books including Expert
One-On-One Oracle (ISBN
1-59059-525-4).
The Oracle RDBMS has had
a reputation among novice
users as difficult to
install on Linux systems.
Oracle Corporation has
packaged recent versions for
several popular Linux
distributions in an attempt
to minimize installation
challenges beyond the level
of technical expertise
required to install a
database server.
[citation needed]
Oracle database in the
market
Competition
In the market for
relational databases, Oracle
competes against commercial
products such as IBM's DB2
UDB and Microsoft SQL
Server. Oracle and IBM tend
to battle for the mid-range
market (especially on UNIX
and Linux platforms), while
Microsoft tends to compete
in the low-end market (on
Microsoft Windows
platforms). However, since
they share many of the same
customers, Oracle and IBM
tend to support each other's
products in many middleware
and application categories
(for example, WebSphere,
PeopleSoft, and Siebel
Systems CRM), and IBM's
hardware divisions work
closely with Oracle on
performance-optimizing
server-technologies (for
example, Linux on zSeries).
The two companies have a
relationship perhaps best
described as "coopetition".
Niche commercial competitors
include Teradata (in data
warehousing and business
intelligence), Software AG's
Adabas, Sybase, and IBM's
Informix, among many others.
Increasingly, the Oracle database products
compete against open-source relational database
systems, particularly PostgreSQL, Firebird, and
MySQL. Oracle acquired Innobase, supplier of the
InnoDB codebase to MySQL, in part to compete
better in the open source market. Database
products developed on the basis of the
open-source model generally cost significantly
less to acquire than Oracle systems.
EnterpriseDB, based on PostgreSQL, has recently
made inroads by proclaiming that its product
delivers Oracle compatibility features at a much
lower price.
Recently there has been competition with SAP
AG software and litigation from Oracle.

Webmaster Said:
Thank you.
Asad Said:
Thank you