Re: Oracle Features Comparison (cleaned up)

From: George M. Sipe <gsipe_at_atlpyr.ga.pyramid.com>
Date: 9 Mar 93 19:26:18 GMT
Message-ID: <1nir0rINNk7a_at_atlpyr.ga.pyramid.com>


In article <1993Mar9.012833.27081_at_mic.ucla.edu> ddruker_at_agsm.ucla.edu (Daniel Druker) writes:
>
>I received this from a company doing an RDBMS evaluation about 6 months
>ago. It is a little out of date since it talks about Oracle V6 and 7
>both, but I think there is a lot of good information. I am posting this
>in response to numerous recent requests for comparisons of, and documents
>that can be used to facilitate comparisons of the various RDBMS
>products. I hope this helps. - Dan
>
>
>I apologize for the formatting but Uploading from Word on the Mac is
>not so graceful.

I apologize for the repost, but most people may find the document more useful as cleaned up and reformatted below.

SEPTEMBER 1992
ORACLE - THE SQL SOFTWARE CHOICE
TECHNOLOGY ADDENDUM Oracle Version 5 (circa 1987) was Oracle's first database version to support client / server technology. Much effort went into redesign of Oracle V6 (circa 1989) to support an industrial strength transaction processing environment. Oracle Version 7 is currently in the final stages of development, and will support distributed database systems with transparent support for two-phase commit logic, database enforced data integrity as well as other major enhancements.

I. PERFORMANCE Oracle V6 Oracle V7


  1. Row Level Locking Y Y
  2. No Lock Escalation Y Y
  3. No Read Locks Y Y
  4. Multi Server Architecture Y Y
  5. Symmetric Multi-Processor Support Y Y
  6. Support for Loosely Y Y Coupled Systems
  7. Array Interface Y Y
  8. Shared Commits Y Y
  9. Asynchronous I/O Y Y
  10. Shared Log Files Y Y
  11. Non-Blocking Queries Y Y
  12. Clustered Tables and Indexes Y Y
  13. ANSI Standard Cursor Support Y Y
  14. Sequence Generator Y Y
  15. Intelligent Optimizer Y Y
  16. Network Optimization Y Y
  17. Cost Based Optimizer N Y
  18. Stored Procedures in Database N Y
  19. Shared Procedure Cache N Y

II. INTEGRITY Oracle V6 Oracle V7


20. Adherence to Industry Standards	Y		Y
21. Business Rules Logic		Y		Y
22. Database Defined Integrity		Y		Y
23. Database Enforced Integrity		N		Y
      (including declarative referential
       integrity, default support,
       database triggers)
24. Adaptable Datatypes			Y		Y
25. Null Support			Y		Y
26. Shared Procedures in applications	Y		Y
27. Database Triggers			N		Y
28. Before and After Triggers		N		Y
29. Per Row Triggers			N		Y
30. Stored Procedures			N		Y
31. Automatic Procedure			N		Y
      Recompilation


III. DATABASE			Oracle V6	Oracle V7
=============
32. Portable				Y		Y
33. Automatic Database Recovery		Y		Y
34. Multiplexed Log Files		Y		Y
35. Mirrored Databases			Y		Y
36. Dynamic Database Backup		Y		Y
37. Dynamic Log Backup			Y		Y
38. Database Task Control		Y		Y
39. On-Line Software Diagnostics	Y		Y
40. Hot Standby Server			Y		Y
41. Full Cluster Utilization		Y		Y
42. On Line Recovery			Y		Y
43. Multiple Log Files			Y		Y
44. Resource Limiter			N		Y
45. DBA Utilities			Y		Y
46. Database Auditing			Y		Y
47. Standard Database			Y		Y
48. Standard Database Tuning Parameters	Y		Y


IV.  DISTRIBUTED RDBMS		Oracle V6	Oracle V7
======================
49. Distributed Join			Y		Y
50. Heterogeneous Data Support		Y		Y
51. Table Replication			Y		Y
52. Connections to other Databases	Y		Y
53. Transparent Two Phase Commit	N		Y
54. Two Phase Commit to non-Oracle	N		Y
      database
55. Movable Coordinator			N		Y
56. Remote Procedure Calls		N		Y


V.   DATABASE SECURITY		Oracle V6	Oracle V7
======================
57. OS Security Integration		Y		Y
58. Database Auditing			Y		Y
59. User Group Permissions		N		Y
60. Roles				N		Y
61. Mandatory Access Control		N/A		Y
62. Accepted for Evaluation by NCSC	N/A		Y
63. Standard Tools with			N/A		Y
      Trusted Oracle
64. Non-Dedicated Server		N/A		Y


VI.  LANGUAGES & TOOLS		Oracle V6	Oracle V7
======================
65. SQL Procedural Language		Y		Y
66. Text/Image Datatypes		Y		Y
67. Visual Query Language		Y		Y
68. Union Operator			Y		Y
69. NIST Verified Conformance to	Y		Y
     Standards
70. Select for Update			Y		Y
71. CASE Tools - Upper and Lower	Y		Y
72. Graphics Tools			Y		Y
73. Mail Systems			Y		Y
74. Office Automation Tools		Y		Y
75. Bit-Mapped Graphics			Y		Y
76. GUI Transparency Portability	Y		Y
77. Portability of Tools		Y		Y
78. National Language Support		Y		Y
79. Integration of Tools		Y		Y
80. Precompiler Support			Y		Y
81. Bind Variable Support		Y		Y
82. SQL Generator/Editor		Y		Y
83. Application Generator		Y		Y
84. Financial Applications		Y		Y
85. Manufacturing Applications		Y		Y


I. PERFORMANCE


  1. Row Level Locking:

Oracle supports full, unrestricted, row-level locking with no lock escalation and no limit on the number of locks. This minimizes the amount of data contention by locking the smallest level of data when performing data manipulation commands and results in a high performance throughput. This is in contrast to many other databases which perform page-level or block-level locking and therefore unnecessarily lock multiple rows of data. This causes users to wait on other users to free the locked resources and results in slower database performance. Page level locking databases are extremely vulnerable to contention 'Hot Spots' on frequently accessed data, and artificially limit database throughput.

2) No Lock Escalation:

Oracle will never escalate a data lock to a higher level than row and thus cause increased data contention. This results in always having the minimum amount of required data locked and therefore increases performance. Other database have a maximum number of locks that can be supported, and escalate row or page level locks to table level locks when that number has been exceeded. Lock escalation drastically reduces database performance by creating artificial deadlocks and increased resource contention.

3) No Read Locks:

Oracle employs contention free queries which assure consistent answers without any read locks. This allows reporting and ad- hoc queries to be run without affecting on-going insert, update, and delete intensive processing. Oracle's read consistency model ensures that readers will see only valid, committed data as it exists in the database at the time a query is executed. Oracle accomplishes this using special internal data structures, without any locking whatsoever.

Other databases require read locks to provide consistent query capabilities and thus result in poor database performance, or implement unacceptable workaround dirty read modes which allow queries to access invalid data.

4) Multi Server Architecture:

The architecture of the Oracle V6 RDBMS is referred to as a multi-server architecture. This architecture is extremely flexible in that it allows the Oracle RDBMS to exploit a variety of hardware configurations - uniprocessors, symmetric multi- processors (SMP) and even loosely coupled machines that do not share memory (ie VAX clusters). Two primary advantages inherent in this architecture are:

	%  Each client can read, write and commit transactions in
	   parallel on ANY available CPU.

	%  As customers add CPU's, Oracle's transaction throughput
	   increases in a linear fashion.  In essence Oracle takes
	   advantage of approximately 95% of the additional CPU power.

The ability to utilize all CPU's in an SMP and loosely coupled environment has enabled Oracle to achieve the HIGHEST ever recorded TPC-B audited benchmarks at over 600 transactions per second.

Oracle RDBMS V7 extends the lead in OLTP performance by implementing shared context areas (ie. 100 users using the same SQL statement will all share the same copy) and by implementing a multi-threaded/multi-server architecture with a dispatcher that will route transactions to the first available CPU in a processor complex.

5) Symmetric Multi-Processor Support:

Oracle RDBMS Version 6 was designed at its lowest internal levels for support of symmetric multi-processing computers. Since Oracle Version 6 became commercially available more than 2 years ago, it has set and continues to hold audited performance records on VMS, Unix, and other operating systems. In the multi-processor environment, each Oracle client can read, write and commit transactions in parallel from any available CPU. As CPUs are added Oracle's transaction rate increases in a linear fashion.

The ability to effectively scale and utilize all CPU's in an SMP environment has enabled Oracle to achieve the highest ever recorded TPC-B benchmarks on a number of different hardware platforms. Oracle is the only database vendor to release benchmarks on fully configured SMP machines, because only Oracle exhibits true scalability. Oracle Version 6 record setting benchmarks utilizing six processors on VAX VMS and 16 processors on Sequent unix prove Oracle's superiority - Other vendors may tout SMP support but don't release benchmarks, or only benchmark on minimal numbers of processors.

6) Support for Loosely Coupled Systems:

Oracle V6.2, the Parallel Server, is a break through technology that includes the capability to access a shared database from several nodes in a VAX Cluster. Users of the Parallel Server can take advantage of all processing power available in the Cluster to do database work. Other database vendors have implemented 'Hot Standby' or 'Companion Servers' in which only a single node in the cluster can access the database, with other nodes acting as standbys in case of failure. The Oracle Parallel Server provides a distinct advantage in that it provides transparent access to a single logical database across multiple nodes. That is, only Oracle can provide both a level of fault tolerance and take advantage of all CPU power available.

Oracle's Parallel Server support for the VAX Cluster permits full distribution of database processing across the processors in the cluster. While one physical database is maintained on the disk array, each processor runs an instance of the database in memory that has full access to all of the data on disk. The database workload can thus be spread across all available CPU's in the cluster. In the event of a failure of a cluster node, the remaining nodes perform database recovery for their lost partner and continue processing as normal. The failed node can be returned to the Shared database at any time. User's work on the remaining nodes will continue uninterrupted; users on the node that failed may log into any of the remaining nodes and continue their work.

In a client/server environment, client database processing can be distributed across all available CPU's in the cluster. In the event of a node failure, appropriately designed client applications may reconnect to the remaining nodes and continue processing transparently to the user.

In the near future, the Oracle Parallel Server will be available on shared disk unix systems from Pyramid and Sequent. The Oracle Parallel server is also the enabling technology for the support of Massively Parallel processors such as nCube. In July 1991, Oracle Version 6.2 was benchmarked at 1075 TPC-B transactions per Second on a 64 processor nCube 2. This was not only the fastest ever benchmark of any relational database system on any hardware, but also the least expensive in terms of dollars per transaction per second.

7) Array Interface:

Oracle has implemented an Array Interface in Version 6 that drastically reduces network operations in client/server computing. With the Array Interface, and application may process 100's or 1000's of rows from the database server in a single request. Contrast this to other database implementations which require one or more network calls for every row processed.

8) Shared Commits:

Oracle Version 6 utilizes Shared or Group commits to write multiple transactions into the redo log in a single physical I/O. This is an advantage over other database systems which require a physical I/O for each individual transaction. This feature is incorporated into Oracle Version 6 with or without the Transaction Processing Option.

Other databases may support shared commits in some modes of operation, but Oracle Version 6 is the only database to support shared commits in both single CPU, SMP, and loosely coupled environments. Other databases are unable to support shared commits on SMP and loosely coupled hardware platforms, reducing transaction performance.

9) Asynchronous I/O:

In Oracle, all processes use asynchronous I/O, if available, to read from the Oracle database files. Because of Oracle's multi- server architecture, performance does not suffer on operating systems that do not provide asynchronous I/O because multiple processes may make requests to multiple devices concurrently, avoiding I/O wait bottlenecks suffered by single process served databases. For writing to database files, the Oracle database writer process (DBWR) is the only component of Oracle affected by the availability of asynchronous I/O on the host operating system. Most operating systems do provide Asynchronous I/O, including VMS, MVS, VM, and unix from Pyramid, and Sequent to name a few. On systems that do not provide asynchronous I/O Oracle implements a multiple DBWR approach. Each DBWR process can then write to disk independently, thus eliminating any bottlenecks that could arise from the lack of asynchronous I/O.

  1. Shared Log Files:

Oracle implements shared logs in a set of operating system files referred to as the Redo Log files. Every change to the database structure is automatically written in a "piggybacked" manner to the Redo Log file. Transactions are piggybacked in a way that one physical write can actually commit several transactions. This is a very efficient way to commit transactions because it requires only a sequential write to an o/s file. This method is also space efficient because only changed bytes are written to the Redo Log files. Once the Redo Log file is full, the system automatically switches to the next log file. Each Oracle database has it's own set of Redo Log files and they are shared by all users of that database. The DBA can create any number Redo Log files, so unlike other databases that only have single logs there is no danger of the log filling up and the database stopping. Redo logs are reused by Oracle in a circular fashion.

If full protection from media failure is required, the archiver process can be started, then as the Redo Logs are filled up they are automatically archived to disk or tape. As soon as the archiver finishes copying a log to the archival destination, the log can be reused by the database system.

  1. Non-Blocking Queries:

Oracle's locking model provides several distinct advantages in maximizing application throughput. Because Oracle's contention free queries do not require database locking, users that are reading from the database do not conflict with users that are writing to the database. In database parlance we say that in Oracle, readers never block writers. Similarly, since a user can read information in Oracle whether or not it is locked by a database writer, it is also said that Oracle writers never block readers. This provides a tremendous throughput advantage for Oracle over other database that require read locks to view accurate information. In other databases, not only do readers and writers block each other, but they can also reach deadlock situations. Oracle's state of the art read consistency mechanisms eliminate reader/writer contention and maximize multi-user performance.

  1. Clustered Tables and Indexes:

Oracles V6 supports clustering of both tables and indexes. Oracle allows the flexibility to cluster data from single or multiple tables. A distinct advantage to Oracle's clustering approach is the ability to cluster data from multiple tables. This allows users to cluster data which is frequently joined, such as master/detail tables. Indexed data is stored using compression in the branch nodes but not in the leaf nodes. This can significantly reduce I/O needed to access single or multiple tables.

  1. ANSI Standard Cursor Support:

Oracle tools support the use of ANSI standard cursors which allow for easily developed multi-window environments. Cursors allow applications to process multiple SQL statements in a single database connection. This is crucial for window-based environments which require multiple SQL statements to be processed at one time with different information being displayed in different windows. This allows multiple windows to be created via a single session and reduces memory utilization requirements. In addition, multiple SQL statements can be encompassed in a single transaction with all internal locking controlled by the kernel.

Cursors are also required to meet ANSI standards, both for SQL compliance and for Pre-Compiler Support.

  1. Sequence Generator:

Oracle provides a multi-threaded non-blocking sequence generator which can be used to generate sequence numbers for rows in tables. Sequence numbers can be used to automatically generate unique primary keys for application data. Sequence generation does not require users to wait for each other to generate and use unique numbers. Oracle also provides the ability to set the number of sequence values that maybe cached in memory at one time. This results in increased transaction throughput and higher performance. Other databases require applications needing unique primary keys to single thread all transactions through a single sequence table, placing an unnecessary limit on database throughput.

  1. Intelligent Optimizer:

Oracle allows the developer and database administrator in- depth control of the way data is organized and accessed. The Oracle V6 query optimizer is rule-based, in which the access path selection is based on the types of predicates in the WHERE clause of the query, the presence of indexes on columns referenced in the query, and the nature of those indexes. While the optimizer will determine a path, it is possible for the developer to direct the RDBMS to employ a different path and achieve higher performance. Oracle provides a tool called EXPLAIN for examining the path chosen by the optimizer. EXPLAIN can be used to verify the proper use of indexes and to fine-tune the performance of production systems.

Oracle V7 also provides an enhanced version of the Oracle rule based optimizer. For V7, the rule based optimizer was enhanced to provide additional intelligence for distributed database environments. Only Oracle gives developers the option of using either method, rule or statistics based optimization, and the tools to support both.

  1. Network Optimization:

Oracle V6 and SQL*Net provide extensive Network optimization and performance in client / server configurations. V6 and SQL*Net utilize a number of advanced features for lowering network traffic, reducing the number of calls to the database engine and increasing performance. Oracle V6 uses ANSI standard cursors for interaction with the database, providing a foundation for database communications. In addition, Oracle V6 implements an Array Interface for reducing network traffic. With the Array Interface, an application may transfer many rows from the database server in a single network request. PL/SQL allows SQL statements to be bundled together in the form of PL/SQL blocks and sent to the Oracle RDBMS in a single call. The Oracle PL/SQL engine inside the database will then process the block of statements without additional network overhead.

At a lower level, Oracle V6 implements a set of database library routines that reduces the amount of client to database communication required by 3GL pre-compiler programs. These routines maintain parse and bind information in local structures until the actual execution of the SQL statement, when everything is sent to the RDBMS Kernel in a single network message. This provides a reduction in network overhead. In a typical RDBMS an INSERT statement might require 6 messages to the Database Kernel (1 for parsing, 3 to bind, 2 for execution). With Oracle V6 and SQL*Net, this processing is reduced to a single network message.

Oracle V7 goes further with stored RDBMS procedures. Associated with Oracle V7, SQL*Net Version 2 further removes the network as a potential application bottleneck by providing asynchronous network communications for multi-threaded Oracle shared servers. This allows the database servers to make better use of CPU and I/O resources on the Database server. Servers are able to communicate with clients asynchronously and thus better utilize valuable cycles rather than waiting for the network to process requests.

  1. Statistics Based Optimizer:

In addition to the intelligent rule based optimizer in Oracle V6, Oracle will provide a Cost Based Optimizer in V7. Through the new ANALYZE STORAGE commands, the database will gather and store comprehensive statistics about database structures. The database can be instructed to perform exact storage calculations, or to provide intelligent estimates for the use of the optimizer. The Oracle statistics based optimizer will choose the most efficient access paths to data based on the information gathered in the ANALYZE operation. Oracle V7 also provides the ability for applications programmers to include hints for the optimizer, when external factors may be important to database performance.

  1. Stored Procedures in the Database:

PL/SQL, available both with the Oracle Version 6 RDBMS engine and in the application development tools, provides a rich environment for the development of SQL database procedures. In PL/SQL, the programmer can include SQL statements, procedural logic, global and local variables, powerful exception handlers, and event processing. PL/SQL programs, or blocks, are sent to the database engine in a single network call, where they are compiled once and can be re-used with no overhead in the user session.

Oracle V7 allows PL/SQL procedures and functions to be stored in shared, compiled format within the database engine. PL/SQL stored procedures can be called by applications, by other stored procedures, or by database triggers. Oracle V7 provides full dependence tracking and will automatically recompile stored procedures when objects upon which they depend change.

  1. Shared SQL Cache:

Oracle V6 uses state of the art ANSI standard cursors for processing SQL and PL/SQL statements. Within a user session, SQL and PL/SQL procedures need only be parsed and compiled once; Cursors may be re-bound and re-referenced without the need for re-compilation. In Pro* Pre-Compilers and in SQL*Forms, PL/SQL blocks are compiled at application generation time, further reducing resource requirements on the server.

Oracle V7 stores database procedures, database triggers, and even user SQL statements in shared cache memory. All users share cached, compiled versions of procedures, triggers, and SQL statements. With its unique shared server architecture, Oracle V7 allows even ad-hoc SQL statements to be shared among multiple users. In V7, shared data structures and cursors are moved from the Private Global Area (PGA) into the Shared Global Area (SGA). Oracle shared servers recognize when a client requests the execution of a SQL statement already in the shared cache, and can use the already parsed and compiled representation already in memory. In testing, Oracle has seen up to a 90% reduction in application memory usage through this technology.

II. INTEGRITY


20) Adherence to Industry Standards:

The NIST has tested Oracle V6 and V7 against the federal government FIPS 127 standards for SQL. These include both the ANSI SQL and SQL2 standards. Version 6 is audited at 96% compatibility with FIPS 127, for both interactive SQL and imbedded SQL.

Oracle V7 is 100% compatible with FIPS standards and 100% compatible with all extensions as tested by the NIST. No other database vendor has passed the base standards at 100%, and no other vendor has attempted the extensions. These tests included both the mandatory and the optional Declarative referential and entity integrity test. This shows Oracle's commitment to standards and to independently audited testing of standards compatibility.

21) Business Rules Logic:

For complex business rules (ie. automatically reorder a part when inventory falls below a predefined level) Oracle V6 provides the ability to create shared procedures in PL/SQL (Procedural Language SQL). These procedures can be written one time and then all SQL*Forms applications can share them. If a change has to be made, it is done only once and all applications will reflect the change. This greatly reduces maintenance costs. The ability to create sophisticated shared procedures is available today in V6.

In Oracle Version 7, complex business rules can be stored and enforced inside the database engine through the use of stored database triggers and procedures. Oracle database triggers can fire before or after an insert, update or delete to a table. Oracle database triggers can fire once per statement, or can execute once for each row affected by the statement. Oracle database stored procedures are shared pieces of PL/SQL code which are compiled and automatically maintained by the database engine.

22) Database Defined Integrity:

Oracle V6 provides full support for ANSI standard syntax for database defined integrity rules, known as Declarative Referential Integrity. Today in V6 declarative integrity rules are stored in the RDBMS and can be automatically enforced by Oracle's application development tools (SQL*FORMS and CASE Generator). This includes full support for declarative referential integrity, default values and domain support. The ANSI declarative approach greatly simplifies the process of providing database enforced integrity and offers the following advantages over the trigger or stored procedure approach used by other vendors:

	$%  Full ANSI compliance
	$%  No programming required
	$%  No maintenance required
	$%  Superior performance

23) Database Enforced Integrity:

Oracle V7 provides database enforced integrity by enforcing the declarative integrity rules (that can be defined in V6) at the database level. Oracle's implementation of referential integrity uses the ANSI standard declarative model which requires only a few key words to implement per relation and is less arduous to code and maintain than the procedural model. Since the declarative model requires no procedural code, there is no code to debug and results in fewer coding errors.

Any integrity rules defined in V6 can be automatically enforced in V7 with no additional coding required. Oracle Version 7 also provides comprehensive support for stored database triggers and procedures for enforcing any complex business rules not possible with the declarative method.

In Oracle Version 7, declarative referential integrity constraints can be enabled and disabled by the DBA. When a constraint is first enabled, the database checks all rows in the table to make sure they are valid. Rows which do not meet the constraint are placed in an exceptions table, where the DBA may then take appropriate action. Future modifications to the tables are automatically protected by the newly enable constraints. Constraints may be disabled as well, for example to speed performance during a database load. Re-enabled constraints go through the same checking process as new constraints.

24) Adaptable Datatypes:
In Oracle's PL/SQL the %TYPE variables can be used to declare a variable that has the same structure as the columns or rows in a table or a view. If the datatype of any of the columns in the table changes, any variables declared as %TYPE will automatically change as well. If the variables are in a stored procedure or trigger, they will be automatically recompiled by the database engine, transparently to the user. The %TYPE functionality provides considerable maintenance savings and is a feature unique to Oracle. Other database vendors claim provide limited functionality for user-named datatypes, but require that developers manually recompile all applications whenever the data model changes.

With Oracle's CASE version 5, the application developer has the option to define multiple complex user datatypes in addition to the standard types available for application entities. This allows complex or unique datatypes to be standardized across all corporate entities. The CASE Dictionary stores the specification for the user defined datatype, and on an enterprise wide level all applications that utilize that datatype will be automatically kept in synch with the master declaration.

25) Null Support:

In Oracle's V6 the DBA can create a table and specify whether or not NULL values can exist in each column. Oracle's SQL provides the NVL function that will determine whether the value in the column is null or not. This feature is useful when performing arithmetic operations and outer joins. In SQL*Plus, the user has an option to view NULL fields as blanks, or to substitute some standard text such as 'NULL' to ease in the differentiation of NULL fields with those containing spaces. Oracle support for NULL columns is comprehensive and exceeds the ANSI requirements for functionality.

26) Shared Procedures in Applications:

SQL*Forms Version 3.0, SQL*Menu Version 5.0, and Oracle*Card Version 1.0 allow application developers to develop shared libraries of application objects. The objects include SQL and PL/SQL statements, triggers, procedures, screens, and code segments. Objects can be written one time and then all applications can share them. In SQL*Forms, and application developer may include a shared object in his application by copying it from a central object store. In Oracle*Card, developers create library stacks which contain pieces of commonly used code. If a change has to be made to a centrally referenced object, it is done only once and all applications that use the object will reflect the change. This greatly reduces maintenance costs. The ability is part of the application tools and is available with both Version 6 and Version 7 of the database.

27) Database Triggers:

Oracle Version 7 supports database stored procedures and database event triggers which can execute at either the statement or row level. Triggers are associated with tables and are fired implicitly when data is modified in this table. Trigger logic supports conditional logic such as a WHEN clause. The DBA or application designer can extend the Oracle standard error codes to include shared application specific error messages. This reduces the amount of code programmers need to write to handle logic errors.

28) Before/After Triggers:

Event triggers can be defined to execute before and/or after database events such as inserts, updates, etc. This means in Oracle we can prevent an illegal million row update from happening at all; other vendors only provide triggers to invalidate and roll back such a transaction after it has already happened. Triggers are related to specific tables and when fired affect the related table at either the statement or row level. This permits fine control over event logic.

29) Per Row Triggers:

In Oracle Version 7, database triggers may fire once per statement or once for every row affected by a statement. For example, to prevent all changes to a certain table on weekends it is appropriate to declare a pre-update, delete, insert trigger that fires once per statement and checks that today is not Saturday or Sunday. For value based auditing, a developer would use a post-insert, update, delete trigger that fired for each row affected by the statement, and wrote the new and old values of each row into an audit table.

The ability for triggers to fire on a per row affected basis has many applications besides value based auditing. Synchronous table replication, recursive value checking, and multi-row transaction management are only a few possibilities. Per row operations give Oracle a tremendous advantage over other database that only offer per-statement triggers.

30) Stored Procedures:

Oracle V7 provides robust support for stored, compiled database procedures. In V7, recompilation of procedures are automatic, based on a change to a referenced object. This ensures lower maintenance costs for the life cycle of the application.

Oracle Version 7 allows PL/SQL procedures and functions to be stored in shared, compiled format within the database engine. PL/SQL stored procedures can be called by applications, by other stored procedures, or by database triggers. Oracle Version 7 provides full dependence tracking and will automatically recompile stored procedures when objects upon which they depend change.

Oracle Version 7 also supports stored packages and functions. Oracle stored packages, based on ADA package specifications, are made up of header information with the specifications for calling the package, and body definitions which contain the code of the actual procedures making up the package. Oracle also provides stored functions and shared global variables.

31) Automatic Procedure Recompilation:

Oracle V7 maintains extensive dependency tracking information which allows it to automatically recompile all objects in a dependency chain whenever code is changed. The Oracle kernel will recompile all procedures, functions, triggers, and packages necessary when dependant structures are modified. Oracle is also capable of resolving dependencies of modified procedures on remote nodes.

III. DATABASE


32) Portability:

Oracle is by far the most portable database system in the world. Oracle currently runs on over 20 different operating systems and approximately 120 different computer platforms. Oracle provides 3-tier portability through installations on microcomputers, minicomputers and mainframes. In addition, Oracle is the only RDBMS to run on super computers and massively parallel computers.

Oracle tools and applications developed on one environment are easily run on others. You can run application on Block Mode, character mode and many various graphical workstations (Macintosh, Sun, Apollo, Pyramid, Vaxstation, etc.). The Oracle*Toolkit allows applications to automatically adapt to the native look and feel of the GUI without changes to the application code.

33) Automatic Database Recovery:

Oracle groups database failures into several loose groups. Instance failure, the most common failure, occurs when the machine running the database server crashes, with no losses on the database disks. Media failure occurs when a disk containing database information fails.

In Oracle V6 and V7 all of the steps required for database recovery in case of instance failure are performed automatically by simply restarting the database instance. Oracle rolls back any transactions that were pending but not committed at the time of failure, and ensures the integrity of all committed transactions. The time to recover from instance failure is configurable by the DBA.

Recovery from media failure can also be performed in automatic, semi-automatic, or manual modes. In all cases, recovery from media failure requires that a backup of the lost files at some point in time is available, along with all database logs since that point in time. Oracle will then proceed to recover the lost file to the point in time at which failure occurred, after which the new file becomes available to all database users. A unique feature of Oracle is that Media recovery can be performed while the database is up and running; that is users not needing access to the data being recovered can continue their operations unhindered.

34) Multiplexed Log Files:

On all platforms, Oracle Version 6 supports hardware mirroring of redo log and database files. On mainframe platforms, Oracle V6 provides the capability to multiplex log writes to multiple redo log files as a feature of the database engine.

Oracle V7 will support groups of multiplexed redo logs on all platforms. Additional files can be dynamically added to the groups, which can be striped across disks. This provides added protection in case of any system failure to protect your data in a production transaction processing environment.

35) Mirrored Databases:

In Oracle V6, the Oracle RDBMS can perform software disk mirroring of the database files in some operating systems. In addition, separate log files are used to record all database activity, and a second copy of these can be archived to disk or to tape. Oracle also supports hardware disk mirroring where available.

36) Dynamic Database Backup:

In Oracle V6, DBA's can make an online backup of the entire database or a particular tablespace at any time. This can be accomplished while the database is up, all tablespaces are online and users are active. Unlike other databases, running online backups in Oracle has little or no effect on database performance.

37) Dynamic Log Backup:

For additional protection, the DBA may choose to automatically archive filled database logs to secondary storage on disk or tape. When the automatic archive facility is enabled, the Oracle database provides protection from media failure as well as instance failure. These archiving features as well as online backup and recovery are crucial elements for implementing mission critical applications requiring 24 hour availability. Oracle differs from other databases in that running the database in online backup and recovery mode adds little overhead to database transactions. Other databases may exact a 20% or greater performance penalty when running in online backup mode.

38) Database Task Control:

The architecture of the Oracle V6 RDBMS is referred to as a multi-server architecture. This means that each database user is associated with a database server process, which may be the user's own process in single task architecture systems such as VMS, or may be a separate shadow process on unix. Oracle's multi-server architecture has many advantages over single- server database architectures.

With the Oracle multi-server architecture, the operating system is able to appropriately schedule CPU usage for database and non-database users. The load of database operations is spread evenly across all O/S processes. In single-server databases, all database users are dependant on the single-server getting adequate CPU resources to serve all of their requests. This causes severe problems on systems where the database resides on a non-dedicated server machine, and causes load balancing problems for many operating systems. This restriction leads to single- server database vendors recommending that hardware be dedicated to database processing, which is not usually practical in today's computing environments.

Oracle's multi-server architecture also facilitates the use of Symmetrical Multi-Processing computers. Because Oracle allows the operating system to schedule database processes, the Operating systems can spread that work across multiple CPU's. The ability to utilize all CPUs in an SMP and loosely coupled environment has enabled Oracle to achieve the HIGHEST ever recorded TPC-B audited benchmarks at over 600 transactions per second. Single-Server database cannot use more that one processor at a time in an SMP machine and are limited in performance.

Oracle RDBMS V7 extends the lead in OLTP performance by implementing shared context areas (ie. 100 users using the same SQL statement all share the same copy) and by implementing a multi-threaded/multi-server architecture with a dispatcher that will route transactions to the first available CPU. This architecture allows Oracle V7 low overhead on single CPU machines, and outstanding performance on multiprocessors.

39) Online Software Diagnostics:

Oracle has a robust offering of online diagnostic tools such as SQL*DBA for administrators, TRACE and EXPLAIN PLAN for application developers and various other utilities and functions such as ANALYZE, MONITOR, VERIFY and VSIZE. In Oracle V7 the SQL*DBA utility will be enhanced with a fully menu driven front end. All Oracle diagnostic tools are provided with or without purchase of the Transaction Processing Option.

40) Hot Standby Server:

Oracle Version 6 provides the capability to restart the database on a backup machine in the case of hardware failure. This capability is provided on hardware platforms that support shared disks between multiple computers, such as the DEC VaxCluster. Upon sensing that the primary computer has gone down, a utility on the second machine can then automatically start the backup Oracle engine. Oracle will recover any outstanding transactions from the failed machine, and then will go into standard operation. 3GL applications can be programmed to notice the failure of the primary server, and automatically reconnect to the backup machine.

Oracle Version 6.2 greatly improves on this fail-over capability by providing support for multiple machines in a clustered environment to have shared access to a single logical database. This configuration, the Oracle Parallel Server, allows full utilization of all available CPU resources at all times, as well as fast automatic recovery and maximum fault resistance.

41) Full Cluster Utilization:

Oracle Version 6.2 includes the capability to run a single database on multiple machines in a shared disk environment. This is an advantage over other database systems that only have 'hot standby' or 'companion server' capabilities. In Oracle 6.2, applications can take advantage of the processing power of all machines, not just a single computer at a time. Oracle 6.2 provides automatic fail over reconciliation when nodes do fail, and applications can be written to automatically reconnect to the database if the node to which they are attached fails.

42) On-Line Recovery:

Oracle V6 provides for recovery of subsets of the database while the rest of the database is up and on-line. The database does not need to be taken offline during recovery of a data file. Users that do not require access to failed areas of the database will remain unaware that failure ever happened. Users that do attempt to access damaged files will receive an appropriate error message, and will be able to access the file as soon as recovery is complete. Other databases require that the entire database be taken off line for recovery from media failure, with provides greater availability for true 24 hour environments.

43) Multiple Log Files:

Oracle Version 6 provides the DBA the ability to provide multiple Redo Log files. Once a Redo Log file is full, the system automatically switches to the next log file. Each Oracle database has it's own set of Redo Log files and they are shared by all users of that database. The DBA can create any number of Redo Log files, so unlike other databases that only have single logs there is no danger of the log filling up and the database stopping. Redo logs are reused by Oracle in a circular fashion.

44) Resource Limiter:

Oracle V7 includes a resource limiter (Governor) that evaluates the impact of database requests and restricts them according to limits for each of the roles and users that access the database. The resource limiter follows user resource profiles associated with the privilege role of the user. Users can be limited to CPU usage, direct I/O, logical I/O, and wall time per statement or cumulatively per session. The Governor can also log users off the database automatically after specified idle periods.

45) DBA Utilities:

Oracle's SQL*DBA provides Database Administrators with the ability to perform the following:

	%  start and stop and Oracle instance.
	%  mount, dismount, open, and close an Oracle database.
	%  real-time monitoring of database use and performance.
	%  backup and recovery of database logs and data.
	%  execution of SQL statements.

In Oracle V7, the entire SQL*DBA utility is menu driven.

46) Database Auditing:

Auditing in the Oracle RDBMS Version 6 is primarily a security feature for monitoring user activity on a database. It does not journal or duplicate data that has been inserted, deleted or updated into the database. In Version 6, the DBA has the ability to enable auditing of the following:

  • Successful and/or unsuccessful attempts to connect/disconnect from the database.
  • Granting or Revoking of privileges.
  • Enable or disable writing to the audit trail table.
  • Setting default auditing options for any database tables.

Oracle Version 7 expands on already robust auditing mechanisms, including provisions for auditing any of the above and additional events by individual user. Through database triggers, Oracle Version 7 supports value based auditing, and full journaling of modified data.

47) Default Database:

A default database is created as part of the Oracle installation procedures. This default database can be utilized as is to create a working database, or can be modified to suit specific needs of the environment before being used during the install. The specifications for the database are stored so they can be reused or modified for creation of other databases.

Oracle also provides an import/export utility which allows you to model both the database and, optionally, the data based on an existing database.

48) Default Database Tuning Parameters:

The Oracle RDBMS comes complete with models of tuning parameters for various types of database models. These model tuning parameters can be used in their original form or can be customized for specific database requirements. All model tuning parameters are saved and available for use when configuring any new databases.

IV. DISTRIBUTED RDBMS


49) Distributed Join:

Oracle's implementation of distributed database in V6 provides two necessary mechanisms that provide a foundation for a distributed database, location transparency and distributed query. Oracle provides the capability of joining two tables in a select statement that are on different machines, transparently to the user and to the application program. The query is exactly the same as if the tables resided on the same machine.

Example:

	SELECT ENAME, DEPTNAME FROM EMP, DEPT
	WHERE EMP.DEPTNO=DEPT.DEPTNO;

50) Heterogeneous Data Support:

Oracle Version 6 provides the Oracle Call Interface and the Oracle Precompiler interfaces into the database for third party software vendors. This is an open API specification that many, many software partners have been using to access the Oracle database.

The SQL*Net Version 2 product provides a transparent API so that applications can be built to access remote databases without regard for the type of network protocol.

Oracle provides a series of SQL*Connect gateways that allow transparent access to non-Oracle data from within an Oracle system. SQL*Connect allows Oracle applications and users to read and update both relational and non-relational databases. Supported databases include DB2, SQL/DS, IMS, RMS, Turbo- Image, and Non-Stop SQL.

With Version 7, Oracle will also provide a remote open gateway to allow Oracle applications to access non-database code. The Oracle open gateway allows remote procedure calls among database servers to execute pieces of user defined code on the Oracle open gateway server.

51) Table Replication:

Oracle has a table replication service available on several platforms with Oracle Version 6. Table replications allow the distribution of updates from a single master to several slave nodes.

Oracle Version 7 contains built in synchronous and asynchronous replication facilities. In Version 7, database updates can be transmitted synchronously to multiple nodes, protected by two phase commit. Oracle V7 also provides database snapshot capabilities for asynchronous replications. Table snapshots are transmitted to the client and are automatically refreshed at specified intervals.

52) Connect to Non-Oracle Databases:

Oracle provides a series of SQL*Connect gateways that allow transparent access to non-Oracle data from within an Oracle system. SQL*Connect allows Oracle applications and users to read and update both relational and non-relational databases. Supported databases include DB2, SQL/DS, IMS, RMS, Ingres, rdb, Turbo-Image, and Non-Stop SQL.

In Oracle V6, multiple SQL*Connected databases can participate in distributed Oracle queries. V6 also supports update to a single connect database at a time. With Oracle Version 7, SQL*Connect supported databases can take part in distributed update transactions, fully protected by Oracle's transparent two phase commit.

53) Transparent Two Phase Commit:

Oracle V7 supports transparent two phase commit is a mechanism for managing distributed update capabilities in a distributed database. An example of this is below:

	UPDATE EMP...;	(EMP is on Node A)
	UPDATE DEPT...;	(DEPT is on Node B)
	COMMIT;

THAT'S IT !! In Oracle's implementation of two phase commit, the commit logic is transparent to the user and to the application programmer. That means that data can be distributed and re- distributed without changes to the application programs. Also, Oracle builds in an enormous amount of logic necessary to catch all the situations that can arise if one of the participating nodes fails. Version 7 provides all of that behind the single COMMIT statement.

Oracle's database manages the error checking and recovery, and it lets the programmer concentrate on developing business applications. This means your code has fewer lines, is less error prone, and is easier to maintain.

54) Commit to Foreign Database:

In Oracle Version 6, multiple SQL*Connect supported and Oracle databases can be simultaneously accessed via a distributed join. With Oracle Version 7, SQL*Connect supported databases can participate fully in distributed transactions, including protection of atomic transactions by Oracle's transparent two phase commit.

55) Movable Coordinator:

In a distributed update on V7, one of the databases acts as the coordinator of each transaction. This task can be assigned according to network resources and machine capabilities as required for each transaction. This protects resources on your most critical database servers. Oracle automatically chooses the transaction coordinator, also known as the commit point, based on pre-defined server criticalities. The commit point need not prepare for a two-phase commit transaction, so if a failure occurs no resources on the transaction coordinator are held for in-doubt recovery.

56) Remote Procedure Calls:

Oracle Version 6 provides many of the capabilities of Client/Server computing and distributed database that would require remote procedure calls in other vendors implementations. Version 6 does not provide an explicit remote procedure call because many of those functions are built in to the database and SQL*Net. For example, distributed joins are implemented transparently and automatically in Oracle Version 6. Other database use cumbersome remote procedure call operations to perform this same functionality.

Oracle Version 7 provides full support for distributed transactions, including remote procedure calls. In Version 7, stored procedures may be called from remote nodes without restriction. Furthermore, remote procedure calls are fully protected by two-phase commit.

V. DATABASE SECURITY


57) O/S Security Integration:

Oracle Version 6 gives DBA's the ability to specify that database logins will be validated by the operating system. That is, each Oracle database account maps on a one to one basis with operating system login identifiers. On IBM systems, Oracle furthers operating system interactive security though integration with the host security management system (RACF, ACF2 and others)

Oracle Version 7 adds further integration with operating system managed security. In Version 7, not only user information but privilege information as well can be maintained by the operating system. For example, on VMS process rights identifiers are used to specify the default and allowable rolls for each user. In unix, groups are used for role specification. Oracle Version 7 was designed to be C2 compliant, and is currently undergoing evaluation as such.

58) Database Auditing:

Auditing in the Oracle RDBMS Version 6 is primarily a security feature for monitoring user activity on a database. It does not journal or duplicate data that has been inserted, deleted or updated into the database. In Version 6, the DBA has the ability to enable auditing of the following:

  • Successful and/or unsuccessful attempts to connect/disconnect from the database.
  • Granting or Revoking of privileges.
  • Enable or disable writing to the audit trail table.
  • Setting default auditing options for any database tables.

Oracle Version 7 expands on already robust auditing mechanisms, including provisions for auditing any of the above and more events by individual user. Through database triggers, Oracle Version 7 supports value based auditing, and full journaling of modified data.

59) User Group Permissions:

Oracle V6 allows the DBA to create scripts for granting complex security access to users, but it does not provide a kernel level group permission feature.

V7 provides the roles security feature as defined by Oracle under contract to NIST. NIST is incorporating Oracle's role security feature as a standard for SQL 3. All database vendors will need to redesign their implementation of security roles to this standard in order to be ANSI compliant.

This allows the DBA to create complex security accesses and grant them to a role. Then, users are simply defined as having certain roles. This speeds up the maintenance functions for user security.

Oracle V6 has an option to yield identification and verification to the host operating system's security system. This provides the convenience of a single sign-on for users while maintaining the Oracle security of data down to the field level.

60) Roles:

Oracle Version 6 can support application permissions through the use of roles in SQL*Menu. Authorization to use menu items is granted to various role categories by the Menu administrator. Each user can be a member of one or more roles. Your role membership determines which items are available to you and which items are suppressed.

Oracle Version 7 has granularized a comprehensive set of over 80 separate permissions to control database access and maintenance. In version 7, the System Security Officer may create a privilege groups, or roles. For example, a role called clerk would be defined as as a set of access privileges on tables, along with execution privileges on certain stored procedures, and finite resource quotas. Rather than granting all of these rights separately to each application user, the Security officer need only assign a user access the the role. Users may be granted several rolls, and can switch back and forth between roles in a session. Users can also enable and disable specific privileges within the role they are in.

NIST is incorporating Oracle's role security feature as a standard for SQL 3. All database vendors will need to redesign their implementation of security roles to this standard in order to be ANSI compliant.

61) Trusted Oracle / Mandatory Access Control:

Oracle will release Trusted Oracle shortly after the release of the RDBMS Version 7. Being built on the V7 technology, Trusted Oracle will give the users V7 functionality and enhancements under two run-time modes: OS MAC and DBMS MAC. The operating system mandatory access control (MAC) mode allows the operating system to enforce MAC on database objects by running the RDBMS untrusted with respect to the operating system.

This provides high assurance of MAC enforcement on platforms rated above B1. The DBMS MAC mode allows the database system to enforce MAC on database objects using security labels stored in the database at the row level, while also providing extensive options for declarative integrity enforcement across security levels.

This flexibility of security policy enforcement is provided uniquely by Oracle, and it allows users to configure secure databases in the manner that best meets their needs.

In a secure database environment, the user has to make a decision whether to favor data security or integrity across multi-level security classes. This is a fundamental, vendor independent problem in the secure database environment.

Trusted Oracle V1 addresses these issues by giving the user the choice of running a very secure system with compromised integrity (OS MAC) or a system with data integrity across multiple security levels (RDBMS MAC). The option of enforcing multilevel integrity does introduce some minor covert channels, all of which are audited so that a system manager detects any exploitation which would compromise system security. The user can run several instances of each mode on one system.

62) Accepted for Evaluation by the NCSC:

On July 2, 1991,Oracle Corporation announced that the upcoming release of ORACLE Relational Database Management System (RDBMS) Version 7.0 and Trusted ORACLE RDBMS Version 1.0, have been selected for the Trusted Product Evaluation Program (TPEP) of the U.S. Government's National Computer Security Center (NCSC). These products were submitted by Oracle for official government evaluation, targeted at Class C2 and Class B1, respectively, of the Trusted Database Interpretation (TDI) of the Department of Defense's Trusted Computer System Evaluation Criteria (TCSEC or "Orange Book").

Participation in this program is an involved process in which the functionality and security of the product is evaluated against computer security criteria published by the government. A product must meet the functional requirements of the target evaluation class, and the implementation of security features is tested to assure correct design and functions. There are seven classes of evaluation ratings, ranging from A1 (most secure) through B3, B2, B1, C2, C1 to D (minimal security). Once a product passes evaluation at the target rating class, it is placed on the NCSC's Evaluated Products List.

63) Standard Tools with Trusted Oracle:

Trusted Oracle V1, which is based on the Oracle RDBMS V7, uses the standard Oracle tools set. No additional tools training will be required for developers to switch from V7 to Trusted Oracle applications. Secure databases do, however, require a different database and application design to accommodate the demands of multi-level secure applications.

64) Non-Dedicated Server:

Trusted Oracle Version 1 does not compromise the security of the host machine on which it is running. Trusted Oracle works with the trusted operating systems to control access to secure data. Other vendor's implementations of Secure Databases require that the database server is the only program running on the host computer.

VI. LANGUAGES & TOOLS


65) SQL Procedural Language:

The PL/SQL language of Oracle Version 6 is a powerful procedural extension to SQL that is integrated with the Oracle data dictionary. Because it is closely integrated with the database, it is available on platforms that can run the database. One of the great advantages of developing with PL/SQL is the performance improvements of processing multiple rows in a query and reducing the network traffic in a distributed environment.

The stored procedures of Oracle Version 7 support PL/SQL, so they are much more integrated with the database than other vendor implementations of stored procedures.

66) Text/Image Datatypes:

Oracle V6 provides the capability of storing text and binary fields up to 64K in size. The SQL*TextRetrieval product is an enhancement to the database engine that provides powerful lexical scanning and storage that provide queries complex enough to support the needs of text retrieval services.

Oracle V7 supports binary and text data up to 2 gigabytes with no limitations on the number of these fields in an Oracle database, or on the size of an Oracle database.

67) Visual Query Language:

Oracle provides several products which facilitate end user access to the database. The Easy*SQL product allows users to look at the database without having to remember SQL syntax. SQL*QMX provides end user access with the interface that users of IBM Mainframes know in the QMF product. Oracle for 1-2-3 provides shared database access for Lotus 1-2-3 users. Oracle's SQL*Calc is a spreadsheet program that is also integrated with the database. On the Macintosh, Hyper*SQL (for HyperCard and SuperCard) and Oracle for 4th Dimension all provide access for end users of those products. For users of Microsoft Windows 3.0 and the Macintosh, Oracle*Card provides a native graphical development environment.

68) Union Operator:

Oracle V6 supports the ANSI standard UNION operator to combine tables, including tables in different databases. Standard union combines multiple tables and eliminates duplicate rows.

Oracle V7 adds the UNION ALL operator, which does not eliminate table duplicates and is useful for horizontal partitioning of data.

69) NIST Verified conformance to Standards:

During the week of 18-Mar-91, representative of the National Institute of Standards and Technology (NIST) observed successful SQL conformance testing of ORACLE RDBMS Version 7.0 and RDBMS 6.0 on a DEC VAX 6560 running the VMS operating system from six different environments (Embedded C, Embedded COBOL, Embedded FORTRAN, Embedded Pascal, Interactive SQL, and Embedded ADA.) The results of this testing will be published in the April issue of NIST's Validated Processor List. (The ADA results will not be published because NIST's ADA test suite is Beta.)

The test results are as follows:

RDBMS PCC Components Tested Score

V 7.0	V 1.5		Base, FIPS Flagger	100% of nearly 400 tests				Default Sizing		from all five environments:
			Integrity Enhancements 	C, COBOL, FORTRAN, Pascal,
						and Interactive SQL

V 6.0	V 1.4		Base, Default Sizing	11 nonconformities out of
						nearly 300 tests from								COBOL FORTRAN, and Pascal;
						14 from C; and 9 from
						SQL*Plus and SQL*DBA.

For verification of these results, call Joan Sullivan of NIST at (301) 975-3258.

What does this mean ? A pre-release version of Oracle RDBMS Version 7.0 is now the first RDBMS to successfully pass ALL of the mandatory and all of the optional tests for FIPS PUB 127-1 conformance. No other RDBMS vendor has tested all of the mandatory and optional components of the test suite including: the Base test, the FIPS flagger test, the Default Sizing test, and the Integrity Enhancement test (declarative referential integrity and entity integrity) And no other RDBMS vendor has tested from the breadth of environments - COBOL, C, FORTRAN, Pascal, ADA, and Interactive SQL.

70) Select for Update:

Oracle Versions 6 and 7 provide comprehensive support for the SELECT... FOR UPDATE clause of ANSI standard SQL. In Oracle, SELECT... FOR UPDATE is useful for obtaining row locks on desired rows and can be used if REPEATABLE READ functionality is required.

71) CASE Tools:

Oracle's integrated CASE architecture provides a family of products that help companies move from business needs to business solutions. CASE*Method is a proven, worldwide methodology that guides projects to completion through the practical application of rigorous systems development techniques. CASE*Method maximizes the benefits of CASE technology by providing an important missing link: a structured framework to guide and control productive development through the entire systems life cycle.

CASE*Method revolves around a structured Top-Down approach for application design, implementation, and deployment. CASE*Method fosters communication between users and developers as systems are designed from a strategic point of view. Based on the information engineering model, CASE*Method combines Top-Down information collecting with bottom-up cross checking techniques to improve quality at every stage. CASE*Method is supported by the entire Oracle family of CASE tools; CASE*Dictionary, CASE*Designer, and CASE*Generator.

CASE*Dictionary is Oracle's multi-user repository for information models, functional requirements, and design decisions. All definitions in the repository are consistent and immediately accessible to the entire development team. Information can be added through CASE*Dictionary's forms based interface, or the powerful diagramming tools in CASE*Designer, Oracle's graphical CASE workbench. CASE*Dictionary's multiuser database lets different members of the development team concurrently access and edit overlapping information. The underlying Oracle RDBMS eliminates the need for tedious download, upload, and consolidation procedures required by other products. CASE*Dictionary generates over 70 reports, including cross references, impact analyses, and exceptions reports. CASE*Dictionary automatically generates a normalized database from high level information models. This design can then be tuned, and then automatically implemented in either Oracle or DB2.

CASE*Designer is a sophisticated, highly graphic user interface which maintains graphic models consistent with the information stored in CASE*Dictionary. As models are drawn or modified, CASE*Designer immediately updates CASE*Dictionary either locally or on a remote node, without any loss of concurrency. CASE*Designer is portable across a wide range of graphic environments, such as X Windows, DEC Windows, and Presentation Manager. CASE*Designer includes an Entity- Relationship Diagrammer, a Function Hierarchy Diagrammer, a Dataflow Diagrammer, and a Matrix Diagrammer for comprehensive application modelling based on the CASE*Dictionary.

The CASE*Generator family of products supports automatic generation of advanced, working applications based on design specifications in CASE*Dictionary. CASE*Generator for SQL*Forms generates high quality SQL*Forms applications with all the code needed to enter, edit, and retrieve information from the Oracle database. Generated applications include logic to enforce all business rules defined in CASE*Dictionary, automatically handling complex integrity and validation situations.

Currently in Beta test availability, Oracle's third generation of CASE products are poised to dramatically improved productivity and performance over an already robust CASE offering. CASE*Dictionary Version 5 provides extended support for full declarative referential integrity, with exploitation of all features of Oracle Version 6 and DB2 Version 2.1. CASE*Dictionary V5 also support full user extensibility, allowing the addition of new properties to existing repository types.

CASE*Generator Version 2.0 provides dramatically increased lower CASE functionality, including application generators for SQL*Forms Version 3.0, SQL*Menu Version 5.0, SQL*ReportWriter Version 1.1, and SQL*Plus Version 3.0. CASE*Generator Version 2 also provides complete regeneration and reverse engineering of changes made to applications made outside of CASE but within within the Oracle application development environment.

Under development in Oracle's UK technology labs are CASE*Generator facilities for C, COBOL, and ADA. Also under development is CASE*Exchange, a facility for the bi-directional exchange of information from Oracle's CASE*Dictionary to most of the industries most popular Repositories, for a true enterprise wide application modelling and development solution.

72) Graphics Tools:

Oracle*Graphics enables the user to create dynamic, database- driven pictures that turn data into information. Oracle*Graphics provides the ability to create over 50 different types of charts, including bar, line, pie, and high-low-close charts. The user has control over 60 different display parameters including; axis location, grid intensity, label formatting, color, fill patterns, etc. Oracle*Graphics supports a bit-mapped point-and-click interface enabling you to develop and maintain highly formatted charts quickly and easily. Oracle*Graphics' open architecture supports industry standard graphics such as Encapsulated PostScript and CGM. You can export images to document programs such as PageMaker, Ventura Publisher and FrameMaker.

Oracle*Graphics, like all Oracle bit-mapped products, is based on Oracle's object-oriented user interface, Oracle Toolkit, so applications automatically adopt the native look and feel of your host environment.

73) Mail Systems:

Oracle*Mail is portable enabling you to use the same electronic mail system on more than 80 different platforms. Oracle*Mail treats separate mail servers as a single, logical mail system, which eliminates the need for users to know the location, operating system, or network routing of a recipient's server. Features included in Oracle*Mail are; message templates, return and delivery receipts, expiration dates, host editor support, the ability to attach any type of file to messages, etc.

Oracle*Mail is an open system that offers communication gateways to other major mail products including VMSmail, UNIX Mail, and DG's CEO Mail. Oracle*Mail also supports industry standards such as X.400. Additional gateways available soon include DEC ALL-IN-1, Wang Office and SoftSwitch.

Exception reports can be triggered automatically in Oracle*Mail when certain database conditions arise via Oracle Alert.

Oracle*Mail optimizes disk space by storing only a single copy of a mail message regardless of the number of recipients. It also minimizes network traffic by only transmitting one copy of a message to any foreign servers.

74) Office Automation Tools:

Oracle provides a full suite of office automation tools. These include tools like Oracle*Mail, SQL*QMX, Oracle database add-in for Lotus 1-2-3, Oracle for 1-2-3 DataLens, Easy*SQL, SQL*Calc and others.

Oracle Data Browser is a graphical data access client that enables non-programmers to easily locate, query and display information stored in networked distributed databases. Oracle Data Browser is currently available for demonstration, but is not yet production software.

Oracle Book Viewer is a Hyper-Media document display and retrieval systems allowing the dynamic viewing and interaction with on-line reference materials, including CALS documents, SGML Documents, Images, Charts, and Audio Annotations. Oracle Book Viewer is currently available for demonstration, but is not yet production software.

Additional office automation tools are scheduled for release in the near future. Examples of these tools include; Oracle Office Mail Version 2, Oracle Office Scheduler, Oracle Co-Author, Oracle Directory Service, Oracle Document Manager, and Oracle Word Processor.

75) Bit-Mapped Graphics:

Oracle V6 supports bit-mapped graphics workstations.

Oracle supports Bit mapped graphics in it's Case*Designer, SQL*Forms and SQL*Menu applications development tools. Oracle*Graphics provides comprehensive support for bitmapped data presentation. Bit mapped graphic's are also supported on the Macintosh and the PC via the Oracle*Card and Hyper*SQL development tools.

The next version of the Oracle Toolkit, Version 2.0 will increase support for bit-mapped workstations by including portable widgets for images, sound, and other multi-media datatypes. Also the next releases of Oracle's SQL*Reportwriter, Oracle*Mail and other tools will be based upon Oracle Toolkit 2 and therefore include full support for bit-mapped environments.

76) GUI Transparency:

Oracle V6 supports bit-mapped GUI transparency.

The Oracle Toolkit Version 1 allows Oracle applications to automatically adapt to the native look and feel of the GUI without changes to the application code. Therefore applications running on a Macintosh will appear like Macintosh applications while the same application running under MS-Windows will look and feel like a typical Windows application. Some supported GUIs include: MS-Windows, DEC Windows, Presentation Manager, OpenLook, Macintosh, OSF/Motif, Next Step, Character Mode, and Block Mode.

Oracle Toolkit Version 2 increases support for bit-mapped GUI transparency, including support for portable sound and image datatypes. In addition to building all Oracle products on top of Toolkit 2 technology, Oracle Corporation is making Toolkit 2 technology available to customers for developing their own GUI portable 3GL applications.

77) Portability:

Oracle V6 provides portability of software on all its platforms.

Oracle is by far the most portable database system in the world. Oracle currently runs on over 20 different operating systems and approximately 100 different computer platforms. Oracle provides 3-tier portability through installations on microcomputers, minicomputers and mainframes. In addition, Oracle is the only RDBMS to run on super computers and massively parallel computers.

Oracle tools and applications developed on one environment are easily run on others. You can run application on Block Mode, character mode and many various graphical workstations (Macintosh, Sun, Apollo, Pyramid, Vaxstation, etc.). The Oracle Toolkit allows applications to automatically adapt to the native look and feel of the GUI without changes to the application code.

78) National Language Support:

Oracle supports all single byte (7 and 8 bit) character sets used for European languages such as French, German, Spanish, etc. A special release of Oracle Version 6 supports Arabic, Hebrew, and Kanji.

Oracle V7 will also provide generic support for European and Asian languages, with full support for up to 16 bit characters.

79) Integration:

Oracle V6 provides integrated front end products.

Oracle's SQL*Forms and SQL*Menu are both built upon the Oracle Toolkit which provides common look and feel when utilizing each product. Oracle also includes Oracle*Terminal which allows you to easily modify the look and feel of each tool based on the Oracle Toolkit. Other Oracle products such as SQL*Plus and SQL*Reportwriter can be invoked either separately or from within products such as SQL*Forms and SQL*Menu. SQL*Plus, SQL*Forms and SQL*Menu all provide the ability to create and store PL/SQL procedures within the database. All Oracle tools provide the flexibility to access them separately from the operating system or via other Oracle tools.

All Oracle products are tightly integrated with one another, but are packaged separately to allow the user to pick and choose the particular product to suit their needs. This also prevents the purchase of unneeded or unwanted software.

80) Precompiler Support:

Oracle V6 supports ANSI standard precompilers.

Oracle provides the PRO*Oracle precompilers which allow you to integrate non-Oracle applications with the Oracle tools. All Oracle precompilers also provide both syntactic and semantic checking for increased programmer productivity. Precompiler support is a key component of the ANSI SQL standard as well as the federal governments new NIST SQL compliance test. Oracle provides Pro* precompilers for ADA, Assembler, C, Cobol, Fortran, Pascal, PL/1 and Rexx.

Oracle Version 7 provides additional support for SQL*Module, and ANSI standard pre-compiler module language. SQL*Module allows 3GL programmers to completely isolate 3GL code from SQL database calls, and is required for full compliance with the FIPS-127 SQL standard.

81) Bind Variable Support:

Oracle supports bind variables, thereby reducing the amount of parsing, network traffic and datatype conversion. Bind variables allow applications to execute a SQL statement multiple times with different values for the bind variables without reparsing the SQL statement. This leads to dramatic performance improvements in applications requiring repetition of SQL statements.

82) SQL Generator and Editor:

Oracle provides the ability to save individual SQL statements through the SAVE command in SQL*Plus. The user may also save entire SQL sessions through the use of spooling in SQL*Plus. These statements along with their results can be stored in operating systems files, edited using familiar operating system editors and re-executed all from within SQL*Plus. The SQL statements can also be modified, re-executed or printed from other Oracle products.

Oracle end-user tools also provide the capability to graphically create, store and execute SQL statements. Oracle*Card Query Builder, Oracle DDE Manager, and SQL*QMX all provide these features.

83) Application Generator:

SQL*Forms can be used to build fully functioning forms complete with menus using a point and click interface. These forms can query, insert, delete, update across multiple tables and even databases. These forms have fully functioning row- level locking features for read consistency and full database integrity. Additional features such as popup-windows and list- of-values can be easily included. The form can be used as a standalone application or easily incorporated into a multiform / multitool large application. The form can also be moved to another environment and will take on the terminal characteristics of that environment without any modification. SQL*Forms gives the designer the option of saving the form in the database or in an operating system file. When stored in the database, the form's design and function can be referenced or copied by any other generated form.

84) Financial Applications:

Oracle Financials is a complete, tightly integrated family of cross industry accounting, management, and human resources applications. Built on the Oracle RDBMS using the Oracle application development tool set, Oracle Financials are unusually flexible, adaptable, and extensible. Oracle Financials facilitate decentralized accounting and provide a high productivity solution to today's accounting needs.

The Oracle financials product suite is made up of the following applications: General Ledger, Payables, Purchasing, Receivables, Revenue Accounting, Sales Analysis, Order Entry, Fixed Assets, Inventory, Personnel, Payroll, and Oracle*Alert. Oracle also provides a separate line of financials addressing the special accounting needs in the federal sector - Oracle Government Financials.

Worth special mention because of its unique capabilities, Oracle*Alert is an exception reporting solution that, with Oracle*Mail, instantly notifies users of important or unusual business events. It reduces paper flow, measures employee and departmental performance, and increases competetiveness and productivity.

84) Manufacturing Applications:

Oracle corporation is developing a whole suite of application to support the manufacturing environment. Currently in use at a number of development partners, Oracle manufacturing includes modules supporting the full breadth of modern MRP II requirements. Oracle Manufacturing systems include: Master Scheduling Inventory, Bill of Materials, Work in Process, Material Requirements Planning, Capacity Planning and Scheduling, Order Entry, and Purchasing. Oracle Manufacturing is fully integrated with the Oracle Financials applications, and is built entirely on the Oracle RDBMS using the Oracle Application development tools.

For other manufacturing needs, Oracle offers a wide range of off-the-shelf CIM applications built by dozens of our proven Value-Added Relicensors. Many leading CAD/CAM vendors provide interfaces between their packages and Oracle, giving engineers complete access to manufacturing, quality, shop floor, and cost databases. Also available is a complete spectrum of Group Technology, Computer Aided Process Planning, Configuration and Change Management, and Document Storage and Retrieval applications.

-- 
		-=---------	George M. Sipe
	      ---===-------	Manager of Strategic Services
	    -----=====-----	Pyramid Technology Corporation
	  -------=======---	2970 Clairmont Road, Suite 850
	---------=========-	Atlanta, GA  30329

	Phone:  (404) 728-8977	E-mail:  George_Sipe_at_Pyramid.com
Received on Tue Mar 09 1993 - 20:26:18 CET

Original text of this message