Oracle seeks to put the fear of retribution up rivals with Oracle7 feature preview The razzmatazz and hype that will attend the roll-out of version 7 of Oracle Corp’s eponymous relational database – the company seems to want to call it Oracle7 – has begun in earnest, and today’s blast (Monday’s actually, but who’s checking?) […]
Oracle seeks to put the fear of retribution up rivals with Oracle7 feature preview
The razzmatazz and hype that will attend the roll-out of version 7 of Oracle Corp’s eponymous relational database – the company seems to want to call it Oracle7 – has begun in earnest, and today’s blast (Monday’s actually, but who’s checking?) comes with the announcement that the thing embodies a revolutionary new technology called a co-operative-server database. The company explains this by saying that a co-operative-server database hides the complexity of a computer network by enabling applications to access data located on multiple computers as if all the data were stored on a single computer, thus simplifying application building and – it is hoped – improving decisions by making access to information easier. The mechanism is claimed to address the problem that a first-generation client-server database does not support a standard SQL query or a standard SQL update transaction that accesses data on more than one server. The Oracle7 co-operative-server database has been designed to support SQL query and update transactions that automatically retrieve and modify data on multiple servers, and to enable a group of low-cost servers computers to outperform the largest mainframe, which will not make the thing very popular with IBM Corp, and should offer high reliability because there is no single point of failure. The intention is that users should be able to increase their system capacity and performance simply by adding another server to the network. A group of low cost server computers running the Oracle7 co-operative-server database can easily support thousands of users running thousands of transactions per second, the company claims, in theory making the system infinitely scalable and addressing the market for emerging very large databases that contain image, text, voice and other multimedia data. The company suggests that the following SQL query is used to retrieve the savings and cheque account balances for a depositor, where the the savings data and the cheque account data are on the same computer.
SELECT S_BALANCE, C_BALANCE FROM SAVINGS, CHECKING WHERE DEPOSITOR_NAME = ‘JONES’ AND S_DEPOSITOR = C_DEPOSITOR;
But if the savings data is moved to a computer in Los Angeles while the cheque account remains on a computer in New York, a great deal of additional code must be written around every query and update transaction in every application that accesses the savings and cheque data – but with Oracle7, the statements above would handle the transaction regardless of whether the two accounts were on the same computer or not. A similarly simple set of SQL statements is used to debit one account and credit the other – in other words, the Oracle7 release handles automatic distributed join queries and automatic distributed update transactions with automatic two-phase commit without programmer intervention regardless of the location of the data.
Taking the coding ache out of implementing referential integrity
An early model client-server database’s claim to support server-enforced referential integrity is based on the user’s ability to write triggers and stored procedures to implement referential integrity, the company claims. It says that Oracle7 provides automatic referential integrity using SQL and that all that is required to implement a referential integrity constraint is the addition of four words to the standard SQL create table statement, so that in an employee-department example, the department number field is identified as the primary key of the department table, and as a foreign key in the employee table. Whenever an employee record is entered into the employee table, Oracle7 automatically checks to see if the department number in the new employee record matches (that is, references with integrity) a department number in the department table. If there is no match, Oracle7 rejects the new employee record because it contains an invalid department number without the need for programmer intervention, where in a system with programma
tic referential integrity, a user must write triggers and stored procedures to implement the server-enforced referential integrity function – the company suggests that that would require over 150 lines of code in the database vendor’s proprietary programming language in the employee-department example. And of course a real-world database would have thousands of database tables with thousands of referential integrity constraints requiring hundreds of thousands of lines of code to implement. The biggest impediment to everything working out in practice the way Oracle wants is that there are so many different implementations of SQL: Oracle7’s implementations are implemented in conformance with the SQL standard from the American National Standards Institute and International Standards Organisation and the company claims that Oracle7 was the first database to be tested and certified by the National Institute of Standards to be 100% compliant with the ANSI SQL level 2 SQL standard and the Federal Information Processing Standard, but the competing systems with which it wants to talk may use incompatible SQL versions. The production release is set for early fourth quarter.
Open and programmable gateway alternatives to reach alien systems
Oracle7 does support both database remote procedure calls and programmatic two-phase commit, but only for use with Oracle7’s open gateway and programmable server. Oracle7 provides two types of gateways to non-Oracle data: automatic and programmable. The automatic gateway supports standard SQL operations on many non-SQL systems, such as IBM Corp’s IMS database and Digital Equipment Corp’s RMS file system, as well as most SQL systems, such as IBM’s DB2 and DEC’s Rdb databases, the company says. The programmable gateway supports native access to virtually any data source via database remote procedure calls. The automatic gateway supports automatic distributed queries and automatic distributed transactions that span Oracle and non-Oracle data sources, so that the savings account described above could be moved to a DB2 database on an IBM mainframe in Los Angeles, and the same SQL query and update transactions that worked when all of the data was in an Oracle database will continue to work. As for the programmable gateway, this is designed to be used when there is no automatic gateway available for a specific non-Oracle data source, such as a file system on a microcomputer robot controller. In that case, the application developer should use tools that are provided as a part of the programmable gateway to write a program to access the data in the robot controller. The tool kit includes a database remote procedure call facility to simplify writing the program when the application program and the non-Oracle data source are on different computers. To resolve the problem that most organisations have multiple networks that communicate using different network protocols, the multiprotocol networking software in Oracle7 is designed to enable any client computer to communicate with any server or group of server computers in the network, regardless of network protocol. Oracle says that in the example, the IBM mainframe in Los Angeles could be using the SNA APPC LU6.2 network protocol, while the system in New York could be a Sun Microsystems Inc server using the TCP/IP protocol, and the multiprotocol networking software would enable the same SQL query and update transactions to work with no change. Oracle7 of course remains completely user programmable, supporting stored procedures, triggers and database remote procedure calls. A new programming language, PL/SQL, is built into Oracle7 so that complete database transactions can be stored and executed on the server. These stored procedures can be explicitly invoked by a single message from the client computer, or triggered by an event such as a database update, the Redwood Shores company says.