Overview of High Availability Features
Computing environments configured to provide nearly full-time
availability are known as high availability systems. Such systems
typically have redundant hardware and software that makes the system
available despite failures. Well-designed high availability systems
avoid having single points-of-failure.
When failures occur, the fail over process moves processing performed
by the failed component to the backup component. This process remasters
systemwide resources, recovers partial or failed transactions, and
restores the system to normal, preferably within a matter of
microseconds. The more transparent that fail over is to users, the
higher the availability of the system.
Oracle has a number of products and features that provide high
availability in cases of unplanned downtime or planned downtime. These
include Fast-Start Fault Recovery, Real Application Clusters,
Recovery Manager (RMAN),
backup and recovery solutions, Oracle Flashback, partitioning, Oracle
Data Guard, LogMiner, multiplexed redo log files, online reorganization.
These can be used in various combinations to meet specific high
availability needs.
Overview of Business Intelligence Features
This section describes several business intelligence features.
Data Warehousing
A data warehouse is a relational database designed for query and
analysis rather than for transaction processing. It usually contains
historical data derived from transaction data, but it can include data
from other sources. It separates analysis workload from transaction
workload and enables an organization to consolidate data from several
sources.
In addition to a relational database, a data warehouse environment
includes an extraction, transportation, transformation, and loading
(ETL) solution, an online analytical processing (OLAP)
engine, client analysis tools, and other applications that manage the
process of gathering data and delivering it to business users.
Extraction, Transformation, and Loading (ETL)
You must load your data
warehouse regularly so that it can serve its purpose of facilitating
business analysis. To do this, data from one or more operational systems
must be extracted and copied into the warehouse. The process of
extracting data from source systems and bringing it into the data
warehouse is commonly called ETL, which stands for extraction, transformation, and loading.
Materialized Views
A materialized view provides access to
table data by storing the results of a query in a separate schema
object. Unlike an ordinary view, which does not take up any storage
space or contain any data, a materialized view contains the rows
resulting from a query against one or more base tables or views. A
materialized view can be stored in the same database as its base tables
or in a different database.
Materialized views stored in the same database as their base tables can improve query performance through query rewrites.
Query rewrite is a mechanism where Oracle or applications from the end
user or database transparently improve query response time, by
automatically rewriting the SQL query to use the materialized view
instead of accessing the original tables. Query rewrites are
particularly useful in a data warehouse environment.
Bitmap Indexes in Data Warehousing
Data warehousing environments typically have
large amounts of data and ad hoc queries, but a low level of concurrent
database manipulation language (DML) transactions. For such
applications, bitmap indexing provides:
-
Reduced response time for large classes of ad hoc queries
-
Reduced storage requirements compared to other indexing techniques
-
Dramatic performance gains even on hardware with a relatively small number of CPUs or a small amount of memory
-
Efficient maintenance during parallel DML and loads
Fully indexing a large table with a traditional B-tree index can be
prohibitively expensive in terms of space because the indexes can be
several times larger than the data in the table. Bitmap indexes are
typically only a fraction of the size of the indexed data in the table.
Table Compression
To reduce disk use and memory use (specifically, the buffer cache),
you can store tables and partitioned tables in a compressed format
inside the database. This often leads to a better scaleup for read-only
operations. Table compression can also speed up query execution. There
is, however, a slight cost in CPU overhead.
Parallel Execution
When
Oracle runs SQL statements in parallel, multiple processes work
together simultaneously to run a single SQL statement. By dividing the
work necessary to run a statement among multiple processes, Oracle can
run the statement more quickly than if only a single process ran it.
This is called parallel execution or parallel processing.
Parallel execution dramatically reduces response time for
data-intensive operations on large databases, because statement
processing can be split up among many CPUs on a single Oracle system.
Analytic SQL
Oracle has many SQL operations for performing analytic operations in
the database. These include ranking, moving averages, cumulative sums,
ratio-to-reports, and period-over-period comparisons.
OLAP Capabilities
Application developers can
use SQL online analytical processing (OLAP) functions for standard and
ad-hoc reporting. For additional analytic functionality, Oracle OLAP
provides multidimensional calculations, forecasting, modeling, and
what-if scenarios. This enables developers to build sophisticated
analytic and planning applications such as sales and marketing analysis,
enterprise budgeting and financial analysis, and demand planning
systems. Data can be stored in either relational tables or
multidimensional objects.
Oracle OLAP provides the query performance and calculation capability
previously found only in multidimensional databases to Oracle's
relational platform. In addition, it provides a Java OLAP API that is
appropriate for the development of internet-ready analytical
applications. Unlike other combinations of OLAP and RDBMS technology,
Oracle OLAP is not a multidimensional database using bridges to move
data from the relational data store to a multidimensional data store.
Instead, it is truly an OLAP-enabled relational database. As a result,
Oracle provides the benefits of a multidimensional database along with
the scalability, accessibility, security, manageability, and high
availability of the Oracle database. The Java OLAP API, which is
specifically designed for internet-based analytical applications, offers
productive data access.
Data Mining
With Oracle Data Mining, data never leaves the database — the data,
data preparation, model building, and model scoring results all remain
in the database. This enables Oracle to provide an infrastructure for
application developers to integrate data mining seamlessly with database
applications. Some typical examples of the applications that data
mining are used in are call centers, ATMs, ERM, and business planning
applications. Data mining functions such as model building, testing, and
scoring are provided through a Java API
Partitioning
Partitioning
addresses key issues in supporting very large tables and indexes by
letting you decompose them into smaller and more manageable pieces
called
partitions. SQL queries and DML
statements do not need to be modified in order to access partitioned
tables. However, after partitions are defined, DDL statements can access
and manipulate individuals partitions rather than entire tables or
indexes. This is how partitioning can simplify the manageability of
large database objects. Also, partitioning is entirely transparent to
applications.
Partitioning is useful for many different types of applications,
particularly applications that manage large volumes of data. OLTP
systems often benefit from improvements in manageability and
availability, while data warehousing systems benefit from performance
and manageability.
Overview of Content Management Features
Oracle includes datatypes to handle all the types of rich Internet
content such as relational data, object-relational data, XML, text,
audio, video, image, and spatial. These datatypes appear as native types
in the database. They can all be queried using SQL. A single SQL
statement can include data belonging to any or all of these datatypes.
XML in Oracle
XML, eXtensible Markup Language, is the standard way to identify and describe data on the Web. Oracle XML
DB treats XML as a native datatype in the database. Oracle XML DB
offers a number of easy ways to create XML documents from relational
tables. The result of any SQL query can be automatically converted into
an XML document. Oracle also includes a set of utilities, available in
Java and C++, to simplify the task of creating XML documents.
Oracle includes five XML developer's kits, or XDKs.
Each consists of a standards-based set of components, tools, and
utilities. The XDKs are available for Java, C, C++, PL/SQL, and Java
Beans.
LOBs
The LOB datatypes BLOB
, CLOB
, NCLOB
, and BFILE
enable you to store and manipulate large blocks of unstructured data
(such as text, graphic images, video clips, and sound waveforms) in
binary or character format. They provide efficient, random, piece-wise
access to the data.
Oracle Text
Oracle Text indexes any document or textual content to add fast,
accurate retrieval of information. Oracle Text allows text searches to
be combined with regular database searches in a single SQL statement.
The ability to find documents based on their textual content, metadata,
or attributes, makes the Oracle Database the single point of integration
for all data management.
The Oracle Text SQL API makes it simple and intuitive for application
developers and DBAs to create and maintain Text indexes and run Text
searches.
Oracle Ultra Search
Oracle Ultra Search lets you index and search Web sites, database
tables, files, mailing lists, Oracle Application Server Portals, and
user-defined data sources. As such, you can use Oracle Ultra Search to
build different kinds of search applications.
Oracle interMedia
Oracle interMedia provides an array of
services to develop and deploy traditional, Web, and wireless
applications that include image, audio, and video in an integrated
fashion. Multimedia content can be stored and managed directly in
Oracle, or Oracle can store and index metadata together with external
references that enable efficient access to media content stored outside
the database.
Oracle Spatial
Oracle includes built-in spatial features that let you store, index,
and manage location content (assets, buildings, roads, land parcels,
sales regions, and so on.) and query location relationships using the
power of the database. The Oracle Spatial Option adds advanced spatial
features such as linear reference support and coordinate systems.
Overview of Security Features
Oracle includes security features that control how a database is accessed and used. For example, security mechanisms:
Associated with each database user is a schema by the same name. By
default, each database user creates and has access to all objects in the
corresponding schema.
Database security can be classified into two categories:
system security and
data security.
System security
includes the mechanisms that control the access and use of the database
at the system level. For example, system security includes:
-
Valid user name/password combinations
-
The amount of disk space available to a user's schema objects
-
The resource limits for a user
System security mechanisms check whether a user is authorized to
connect to the database, whether database auditing is active, and which
system operations a user can perform.
Data security
includes the mechanisms that control the access and use of the database
at the schema object level. For example, data security includes:
-
Which users have access to a specific schema object and the specific
types of actions allowed for each user on the schema object (for
example, user
SCOTT
can issue SELECT
and INSERT
statements but not DELETE
statements using the employees
table)
-
The actions, if any, that are audited for each schema object
-
Data encryption to prevent unauthorized users from bypassing Oracle and accessing data
Security Mechanisms
The Oracle database provides
discretionary access control,
which is a means of restricting access to information based on
privileges. The appropriate privilege must be assigned to a user in
order for that user to access a schema object. Appropriately privileged
users can grant other users privileges at their discretion.
Oracle manages database security using several different facilities:
-
Authentication to validate the identity of the entities using your networks, databases, and applications
-
Authorization processes to limit access and actions, limits that are linked to user's identities and roles.
-
Access restrictions on objects, like tables or rows.
-
Security policies
-
Database auditing
Overview of Data Integrity and Triggers
Data must adhere to certain business rules, as determined by the
database administrator or application developer. For example, assume
that a business rule says that no row in the inventory
table can contain a numeric value greater than nine in the sale_discount
column. If an INSERT
or UPDATE
statement attempts to violate this integrity rule, then Oracle must
undo the invalid statement and return an error to the application.
Oracle provides integrity constraints and database triggers to manage
data integrity rules.
Integrity Constraints
An integrity constraint is a declarative
way to define a business rule for a column of a table. An integrity
constraint is a statement about table data that is always true and that
follows these rules:
-
If an integrity constraint is created for a table and some existing
table data does not satisfy the constraint, then the constraint cannot
be enforced.
-
After a constraint is defined, if any of the results of a DML
statement violate the integrity constraint, then the statement is rolled
back, and an error is returned.
Integrity constraints are defined with a table and are stored as part
of the table's definition in the data dictionary, so that all database
applications adhere to the same set of rules. When a rule changes, it
only needs be changed once at the database level and not many times for
each application.
The following integrity constraints are supported by Oracle:
-
NOT
NULL
: Disallows nulls (empty entries) in a table's column.
-
UNIQUE
KEY
: Disallows duplicate values in a column or set of columns.
-
PRIMARY
KEY
: Disallows duplicate values and nulls in a column or set of columns.
-
FOREIGN
KEY
: Requires each value in a column or set of columns to match a value in a related table's UNIQUE
or PRIMARY
KEY
. FOREIGN
KEY
integrity constraints also define referential integrity actions that
dictate what Oracle should do with dependent data if the data it
references is altered.
-
CHECK
: Disallows values that do not satisfy the logical expression of the constraint.
Keys
Key is used in the definitions of several
types of integrity constraints. A key is the column or set of columns
included in the definition of certain types of integrity constraints.
Keys describe the relationships between the different tables and columns
of a relational database. Individual values in a key are called
key values.
The different types of keys include:
-
Primary key: The column or set of columns included in the definition of a table's
PRIMARY
KEY
constraint. A primary key's values uniquely identify the rows in a table. Only one primary key can be defined for each table.
-
Unique key: The column or set of columns included in the definition of a
UNIQUE
constraint.
-
Foreign key: The column or set of columns included in the definition of a referential integrity constraint.
-
Referenced key: The unique key or primary key of the same or a different table referenced by a foreign key.
Triggers
Triggers are procedures written in PL/SQL, Java, or C that run (fire)
implicitly whenever a table or view is modified or when some user
actions or database system actions occur.
Triggers supplement the
standard capabilities of Oracle to provide a highly customized database
management system. For example, a trigger can restrict DML operations
against a table to those issued during regular business hours.
Overview of Information Integration Features
A distributed environment is a network of disparate systems that
seamlessly communicate with each other. Each system in the distributed
environment is called a node. The system to which a user is directly
connected is called the local system. Any additional systems accessed by
this user are called remote systems. A distributed environment allows
applications to access and exchange data from the local and remote
systems. All the data can be simultaneously accessed and modified.
Distributed SQL
A homogeneous distributed database system is a network of two or more
Oracle databases that reside on one or more computers. Distributed SQL
enables applications and users to simultaneously access or modify the
data in several databases as easily as they access or modify a single
database.
An Oracle distributed database system can be transparent to users,
making it appear as though it is a single Oracle database. Companies can
use this distributed SQL feature to make all its Oracle databases look
like one and thus reduce some of the complexity of the distributed
system.
Oracle uses database links to enable users on one database to access
objects in a remote database. A local user can access a link to a remote
database without having to be a user on the remote database.
Location Transparency
Location transparency occurs when the physical location of data is
transparent to the applications and users. For example, a view that
joins table data from several databases provides location transparency
because the user of the view does not need to know from where the data
originates.
SQL and Transaction Transparency
Oracle's provides query, update, and transaction transparency. For example, standard SQL statements like SELECT
, INSERT
, UPDATE
, and DELETE
work just as they do in a non-distributed database environment.
Additionally, applications control transactions using the standard SQL
statements COMMIT
, SAVEPOINT
, and ROLLBACK
. Oracle ensures the integrity of data in a distributed transaction using the two-phase commit mechanism.
Distributed Query Optimization
Distributed query optimization reduces the amount of data transfer
required between sites when a transaction retrieves data from remote
tables referenced in a distributed SQL statement.
Oracle Streams
Oracle Streams enables the propagation and management of data,
transactions, and events in a data stream either within a database, or
from one database to another. The stream routes published information to
subscribed destinations. As users' needs change, they can simply
implement a new capability of Oracle Streams, without sacrificing
existing capabilities.
Oracle Streams provides a set of elements that lets users control
what information is put into a stream, how the stream flows or is routed
from node to node, what happens to events in the stream as they flow
into each node, and how the stream terminates. By specifying the
configuration of the elements acting on the stream, a user can address
specific requirements, such as message queuing or data replication.
Capture
Oracle Streams implicitly and explicitly captures events and places
them in the staging area. Database events, such as DML and DDL, are
implicitly captured by mining the redo log files. Sophisticated
subscription rules can determine what events should be captured.
Staging
The staging area is a queue that provides a service to store and
manage captured events. Changes to database tables are formatted as
logical change records (LCR), and stored in a staging area until
subscribers consume them. LCR staging provides a holding area with
security, as well as auditing and tracking of LCR data.
Consumption
Messages in a staging area are consumed by the apply engine, where
changes are applied to a database or consumed by an application. A
flexible apply engine allows use of a standard or custom apply function.
Support for explicit dequeue lets application developers use Oracle
Streams to reliably exchange messages. They can also notify applications
of changes to data, by still leveraging the change capture and
propagation features of Oracle Streams.
Message Queuing
Oracle Streams Advanced Queuing is built on top of the flexible
Oracle Streams infrastructure. It provides a unified framework for
processing events. Events generated in applications, in workflow, or
implicitly captured from redo logs or database triggers can be captured
in a queue. These events can be consumed in a variety of ways. They can
be automatically applied with a user-defined function or database table
operation, can be explicitly dequeued, or a notification can be sent to
the consuming application. These events can be transformed at any stage.
If the consuming application is on a different database, then the
events are automatically propagated to the appropriate database.
Operations on these events can be automatically audited, and the history
can be retained for the user-specified duration.
Data Replication
Replication is the maintenance of database objects in two or more
databases. Oracle Streams provides powerful replication features that
can be used to keep multiple copies of distributed objects synchronized.
Oracle Streams automatically determines what information is relevant
and shares that information with those who need it. This active sharing
of information includes capturing and managing events in the database
including data changes with DML and propagating those events to other
databases and applications. Data changes can be applied directly to the
replica database, or can call a user-defined procedure to perform
alternative work at the destination database, for example, populate a
staging table used to load a data warehouse.
Oracle Streams is an open information sharing solution, supporting
heterogeneous replication between Oracle and non-Oracle systems. Using a
transparent gateway, DML changes initiated at Oracle databases can be
applied to non-Oracle platforms.
Oracle Streams is fully inter-operational with materialized views, or
snapshots, which can maintain updatable or read-only, point-in-time
copies of data. They can contain a full copy of a table or a defined
subset of the rows in the master table that satisfy a value-based
selection criterion. There can be multitier materialized views as well,
where one materialized view is a subset of another materialized view.
Materialized views are periodically updated, or refreshed, from their
associated master tables through transactionally consistent batch
updates.
Oracle Transparent Gateways and Generic Connectivity
Oracle Transparent Gateways and Generic Connectivity extend Oracle
distributed features to non-Oracle systems. Oracle can work with
non-Oracle data sources, non-Oracle message queuing systems, and non-SQL
applications, ensuring interoperability with other vendor's products
and technologies.
They translate third party SQL dialects, data dictionaries, and
datatypes into Oracle formats, thus making the non-Oracle data store
appear as a remote Oracle database. These technologies enable companies
to seamlessly integrate the different systems and provide a consolidated
view of the company as a whole.
Oracle Transparent Gateways and Generic Connectivity can be used for
synchronous access, using distributed SQL, and for asynchronous access,
using Oracle Streams. Introducing a Transparent Gateway into an Oracle
Streams environment enables replication of data from an Oracle database
to a non-Oracle database.
Generic Connectivity is a generic solution, while Oracle Transparent
Gateways are tailored solutions, specifically coded for the non-Oracle
system.