Hi Dieter
I must admit that I've never understood when people say that DB2 on IBM
i is not relational. Then they will say it is ISAM, as if that is not
relational.
I do not say that this is exactly what you are saying. But I do hear you
say that ISAM is to be used only for small tables.
So I went looking for more about ISAM - there is a Wikipedia article on
this at
Here is one use of the term ISAM as this article puts it - the article
lists 4 ways people use the term these days, which might not be the
strict, original meaning, I suppose.
"An indexing algorithm that allows both sequential and keyed access to
data.^[3] <
https://en.wikipedia.org/wiki/ISAM#cite_note-3> Most
databases use some variation of the B-Tree
<
https://en.wikipedia.org/wiki/B-Tree> for this purpose, although the
original IBM ISAM and VSAM <
https://en.wikipedia.org/wiki/VSAM>
implementations did not do so."
I believe that IBM Rochester say that B-Tree (or some variation) is the
indexing methodology used for indexing on IBM i - the above statement
feels familiar and also relates to RLA in RPG and COBOL and the like. I
saw also that there are ISAM APIs that provide ways to get to data in an
ISAM setup. Do we mean like CHAIN, READ, READE, etc.? And C/C++ on IBM i
has equivalents to those, and an even more complete set of functions to
provide record-level access.
The same article makes this assertion - "Relational databases
<
https://en.wikipedia.org/wiki/Relational_database_management_system>
can easily be built on an ISAM framework with the addition of logic to
maintain the validity of the links between the tables. "
That statement suggests something I've felt all along - that the terms
"relational database" and "ISAM" are at different levels - an RDBMS can
be built over any of several database frameworks, with, I suspect,
varying levels of difficulty in that implementation. ISAM is one of
those several frameworks.
So I suggest that statements that seem to say that an underlying
framework that is ISAM does not mean we don't have an RDBMS there. PC
Magazine, for example, has this as the definition of "System/38" - "A
minicomputer from IBM that included an operating system with an
integrated relational database management system."
I don't know that my thoughts here are an answer to a question that
wasn't asked, or if it rebuts anything said - I just present the
thoughts for consideration.
I do believe that we do have an ISAM framework and an RDBMS over it. Any
distinctions of those 2 concepts, these 2 different levels of
abstraction, are not very important, to my way of thinking.
Cheers
Vern
On 1/13/2017 2:02 AM, D*B wrote:
RPG would be my preference on IBM i. But what if your DBMS is Oracle
or MS
SQL Server? Developers might use SQL stored procedures, which do run
in the
same address space as the DBMS although my point about "direct
access" is
debatable. I'm not sure if Oracle and MS SQL Server provide RLA in
addition
to SQL.
.. what you are naming direct access is ISAM and was developed in the
1960s, before relational DBMS came up. DB2/400 is the only DB2 dialect
providing ISAM, IBM Host (/360, /370, z-series) has ISAM and VSAM for
this, DB2 is only accessable by SQL. Unix has Informix and C-ISAM.
Good practice is to use ISAM only for small Tables for large Tables
and high transaction throughput RDBMS and SQL is faster and scales
better.
@business logic - business rules: maybe my knowledge of enhlish
language is not good enough, in my understanding business logic
implements the business rules (what else should it do?)
D*B
As an Amazon Associate we earn from qualifying purchases.