HPlogo Up and Running with ALLBASE/SQL: HP 3000 and HP 9000 Computer Systems > Chapter 7 Comparing ALLBASE/SQL with TurboIMAGE

Differences in Accessing Databases

» 

Technical documentation

Complete book in PDF
» Feedback

 » Table of Contents

 » Index

TurboIMAGE and ALLBASE/SQL both offer a variety of tools for accessing databases, and both provide techniques for concurrency control, to regulate access by more than one user at a time.

Interactive Access

TurboIMAGE interactive access is through Query/V, which lets you find database entries and report on them using the Query command language. In ALLBASE/SQL, the interactive interface is known as ISQL, which uses Structured Query Language (SQL) to access the database and display query results.

For sophisticated reporting, Business Report Writer supports both TurboIMAGE and ALLBASE/SQL databases.

Programmatic Access

A major difference between TurboIMAGE and ALLBASE/SQL is in the programmatic interface. TurboIMAGE uses a set of intrinsics which you use in application programs to open databases, obtain locks, retrieve data, unlock data items and data sets, and close a database.

ALLBASE/SQL uses embedded SQL programming. You insert standard SQL statements in an application program, then you preprocess the program to convert the SQL statements into valid procedure calls in the language you are using. The converted code is compiled and linked with a library of ALLBASE/SQL routines. The use of embedded SQL means that you can prototype and test your queries in ISQL before running them in an application, thus saving development time. Embedded SQL also includes a set of dynamic statements which let your end users perform ad hoc queries through your applications.

4GL

You can use ALLBASE/4GL as a programming tool to create applications that can access both TurboIMAGE and ALLBASE/SQL databases--even at the same time. Simply define the appropriate data sets and/or tables in ALLBASE/4GL's dictionary, then create screens and menus. As a fourth-generation tool, ALLBASE/4GL lets you avoid tedious and repetitive coding.

Differences in Concurrency Control

Concurrency control is needed to protect the consistency of a database when it is in multiuser operation. TurboIMAGE permits concurrent access through a mechanism known as access mode. You choose one of the eight modes of access as you open the database. These modes offer a wide range from very restrictive single user exclusive access to multiuser access with updates permitted by different users. Some access modes enforce the application's locking of data sets; others do not.

ALLBASE/SQL uses two DBEnvironment access modes: SINGLE and MULTI user mode, which you set when you create the DBEnvironment. (You can also change modes using SQLUtil.) In addition, tables have an access mode, which you specify when you create them. Tables may be PUBLIC, PUBLICREAD, or PRIVATE, as follows:

PUBLIC

may be read or updated by anyone who has authority to CONNECT to the DBEnvironment.

PUBLICREAD

may be read by anyone but only updated by one user at a time.

PRIVATE

may only be read or updated by a single user at a time.

Locking Mechanisms

In TurboIMAGE, you use the DBLOCK intrinsic in certain access modes to provide locking at the database level, the data set level, or the data item level. Locking must be explicitly requested by the user; it is required for concurrent updates. You can request locks conditionally in TurboIMAGE, which means that the call returns if the lock request fails.

ALLBASE/SQL provides automatic locking for all data manipulation statements--reads and writes. Locking is unconditional, and it applies at the level of the table or the data page; row level locking is not supported. You can also use the explicit LOCK TABLE statement. Further, you can specify an isolation level, which determines the kinds of locks obtained by ALLBASE/SQL. Isolation level applies to transactions, which are bounded by the SQL BEGIN WORK and COMMIT WORK statements. Four isolation levels are possible:

RR

Repeatable Read. The strongest locks are used to assure continuity of data from one read to another within the same transaction.

CS

Cursor Stability. Weaker locks are obtained and released as needed during the scan of a particular database table.

RC

Read Committed. Weaker locks are obtained but released even sooner during the scan of a particular database table.

RU

Read Uncommitted. No locks are obtained.

For complete information about these isolation levels, refer to the chapter "Concurrency Control Through Locks and Isolation Levels" in the ALLBASE/SQL Reference Manual.

Concurrency control is complex, and no exact mapping between the two systems is possible.

Feedback to webmaster