DBMS

Oracle7 Release 7.3

By Martin Rennhackkamp
DBMS Server Comparison Supplement, November 1996

Oracle Finally Puts Its Money Where Its Mouth Is With Oracle7 Release 7.3 and the Universal Server.


With a marketing hype rivaled only by Microsoft's Windows 95 launch, the Oracle Universal Server, including Oracle7 Release 7.3, was forced onto the Oracle user community and the general IT public at large at the Oracle Developers' Conference in February 1996. The aim of the Oracle Universal Server is to combine the functionality of the world's best-selling client/server relational DBMS with complete Web, text management, messaging, and multimedia information servers. The multimedia services include ful ly integrated relational, spatial, text, audio, and video information to any user with a standard Web browser accessing a Web-enabled database. The Oracle Universal Server is targeted to give Oracle users a comprehensive platform designed to handle all o f these needs: network- centric computing, mission-critical online transaction processing (OLTP), online analytical processing (OLAP), and data warehousing applications. In this review I investigate what the Oracle Universal Server has to offer.

Relational Data Model

Like the other DBMSs that claim to be relational, Oracle also supports the relational data model to an extent. Data is stored in tables, with integrity constraints to protect the correctness of the data.

You define standard declarative referential, key, and column integrity constraints as part of the CREATE TABLE and ALTER TABLE statements, using an ANSI SQL-92-like syntax. For referential constraints, Oracle supports the RESTRICT (NO ACTION is the corre ct ANSI SQL-92 syntax) and CASCADE options for delete operations on the primary table, but it supports only the RESTRICT option for updates on the primary table. Oracle also supports the MATCH NONE, MATCH FULL, and MATCH PARTIAL options for composite and nullable foreign keys, which few other DBMSs do at this stage.

Alternatively, you can code your own integrity constraints using Oracle's powerful triggers. Oracle's pre-operation and pre-row triggers are an efficient way to check whether an operation will violate a referential-integrity constraint before the operati on is actually performed.

Database Objects

The Oracle Universal Server has integrated support for relational and multimedia types of data, including static images, video, audio, text, spatial, messaging, and analytical data. The Oracle Universal Server is very extendable. You can start with the b asic Oracle7 Release 7.3 database engine and add the options you need for your particular environment: Universal Server has two other options that, although they don't fit into this discussion of extended data types, are also worth a mention. The Oracle OLAP Option (the Oracle Express Server) is for multidimensional OLAP analysis, and the Oracle Messaging Option is for email, documents, calendaring, scheduling, and directory services.

In Oracle, each table can be stored in a default form in a table space, as a cluster, or as a hashed cluster. In a cluster, related tables are stored together in a pre-joined form. When the cluster has a hashed structure, it performs exact-match queries well. Oracle indexes, by default, have B-tree structures when stored in the standard table spaces or when used to index clusters. When an index is used to index a hash cluster, it obviously has a hash structure. Oracle7 Release 7.3 also has bitmapped ind exes, which are better than conventional indexes for columns with a relatively small number of possible values, and are often used in OLAP-type applications.

Oracle lets you define multiple database triggers per table. The triggers can be defined to fire per operation or per affected row, before or after the operation. The triggers are coded in PL/SQL, a powerful 4GL-like language that includes a rich set of functions, user-defined data types (such as temporary tables), and cursors to process single or multiple rows at a time. The triggers for the same event fire in any order, typically in creation order. If you need to enforce a firing order, the code can b e combined in one trigger. An Oracle database trigger can have a when clause, which is used to eliminate unnecessary trigger firing. Database triggers are not stored in a compiled form in Oracle 7.2. However, in Oracle 7.3, database triggers are stored i n a compiled form, similar to that of stored procedures. This makes the implementation of Oracle triggers much more efficient. An Oracle trigger cannot query or perform a manipulation operation on a "mutating" table, where the trigger may see an inconsis tent view of the table, because there is a transaction pending on the table (the firing transaction, in this case).

An Oracle stored procedure or function is a named set of PL/SQL statements that is stored in the database as a database object. You can execute a procedure interactively using an Oracle tool, such as SQL*Plus, or call it explicitly in the code of a datab ase application, such as an Oracle Forms or embedded SQL application, or in the code of another procedure or trigger. When you create a stored procedure, Oracle compiles the procedure, stores the compiled code in memory, and stores the stored procedure i n the database. When you invoke a stored procedure, Oracle verifies the procedure's validity and then executes the procedure. If the procedure is valid and currently in memory, the PL/SQL engine simply executes the procedure's code. If the procedure is v alid and not currently in memory, the PL/SQL engine loads the compiled procedure from disk into memory and then executes it.

Queries

Oracle uses shared and exclusive locks to control concurrency. Each transaction acquires an exclusive data lock for each row it changes through an INSERT, UPDATE, or DELETE statement or a SELECT statement with the FOR UPDATE clause. It acquires a shared lock for each row read by a SELECT statement. Oracle also takes a table-level lock to prevent conflicting database definition changes from interfering with the users' transactions. Oracle never escalates locks; Oracle automatically performs locking to en sure data concurrency, data integrity, and statement-level read consistency. However, you can override the Oracle locking mechanisms per individual table or on an instancewide level - for example, for transaction-level read consistency ("repeatable reads") or transactions requiring exclusive access to specific resources.

The SQL language used in Oracle is compliant with the ANSI SQL-92 Entry Level standard. However, like all of the other DBMSs, it includes many extensions to the language to provide additional commands and additional functionality.

Oracle supports cursors using the ANSI SQL-92 standard syntax. In addition to fetching one row at a time, you can fetch an entire array of data at a time. However, you can move forward only through the cursor.

Oracle supports left and right outer joins using the well-known Oracle outer join syntax. Left and right outer joins are specified by (+) symbols in the join condition of the where clause of the SELECT statement, not in the from clause, as specified in t he ANSI SQL-92 syntax.

Database Administration

Oracle7 Release 7.2 has a whole set of database administration tools that perform the following tasks: In Release 7.3, these features have been extended with a comprehensive toolset that provides a framework for managing the entire Oracle environment, with open interfaces and full integration into the leading SNMP-based network management frameworks. The Oracle Enterprise Manager console, which facilitates GUI-based systems management, is the central point of control for the Oracle environment. It consists of the following: The Oracle Enterprise Manager Performance Pack is an additional set of products that DBAs can use for monitoring, diagnosing, and tuning the performance of large and diverse environments, databases, applications, and other configured events.

For highly secure systems, Oracle7 has the necessary features to enforce the required security policies. Oracle7 enforces data confidentiality through the following mechanisms:

For backup and recovery, the Oracle7 Enterprise Backup Utility works in conjunction with a media management product to help a DBA in two aspects of the backup and recovery process. The media management products offer reliable, high-performance handling o f the backup media devices, and the backup utility ties in closely with the Oracle7 Server. The media management product can utilize multiple backup devices simultaneously by creating multiple data streams while performing compression and buffered I/O to improve the resource utilization. The utility can perform online and partial backup and restore functions.


Editor's note: The Connectivity and Distribution section and the Replication section are online addendums. They did not appear in the printed article due to lack of space.

Connectivity and Distribution

Oracle has several gateways to other DBMSs, which are classified as Oracle Transparent Gateways and Oracle Procedural Gateways. The Oracle Transparent Gateways provide transparent SQL access from applications to virtually any data. The Transparent Gatewa ys are tightly integrated with the Oracle database, so they can be used to access heterogeneous data sources, such as DB2, Informix, CA-Ingres, and Sybase, with complete transparency. The Oracle Procedural Gateways provide programmable access to mainfram e transactions by allowing the mainframe transactions to be initiated from Oracle applications on any platform.

Replication

Oracle supports a broad range of replication models from simple publish and subscribe replication, with a single data owner and multiple readers, to workflow replication, where ownership flows from site to site as the status of the data changes, to updat e-anywhere replication with full conflict detection and resolution.

The Oracle7 Advanced Replication Option is also easy to manage through the GUI-based Oracle Replication Manager. In addition to managing data-level changes, it can also be used to manage schema-level changes. You can define groups of objects, such as tab les, views, and triggers, and manage their replication as a single unit by dragging and dropping it onto the icons of the other databases. The Oracle7 Advanced Replication Option provides two methods of conflict handling, namely primary site ownership an d dynamic ownership. With primary site ownership, the replicated data may only be updated at the site which "owns" it while other sites subscribe to the replicated data. With dynamic ownership, the "right" to update the replicated data may move around, b ut it may only be at one site at a time.


Internet Support

The Oracle Universal Server includes the Oracle WebServer, which lets clients using Web browsers invoke stored procedures to generate dynamic Web documents. The WebServer lets you develop interactive, online applications that can change their behavior as the data in the underlying databases changes and then directly manipulate the data in those underlying databases.

Among the Leaders

While the company is obviously still carrying on with its relentless marketing drive, it seems that Oracle is finally putting its money where its mouth is with the latest Oracle7 release. Oracle7 Release 7.3 (basically Oracle8 without objects) is in line with the other relational DBMS products. There was a time when Oracle 6 technologically lagged behind some of its competitors, despite all its media hype. But with its Web support, partial and parallel database management facilities, high degree of para llelism-awareness, and numerous performance improvements, the Oracle7 releases - and in particular the Oracle Universal Server - are right up there among the technology leaders.


Martin Rennhackkamp is the owner and principal consultant of The Data Base Approach, a corporation specializing in relational and distributed databases, based in Cape Town, South Africa. You can email Martin at mr@dba.co.za.


* Oracle Corp., 500 Oracle Pkwy., Redwood Shores, CA 94065; 800-672-2537, 415-506-7000, or fax 415-506-7200; http://www.oracle.com.

Subscribe to DBMS -- It's free for qualified readers in the United States
November 1996 Table of Contents | Other Contents | Article Index | Search | Site Index | Home

DBMS(http://www.dbmsmag.com)
Copyright © 1998 Miller Freeman, Inc. ALL RIGHTS RESERVED
Redistribution without permission is prohibited.
Please send questions or comments to dbms@mfi.com
Updated January 12, 1998