Browse Prior Art Database

Access Independent Query Definition in IBM DL/I

IP.com Disclosure Number: IPCOM000062542D
Original Publication Date: 1986-Dec-01
Included in the Prior Art Database: 2005-Mar-09
Document File: 5 page(s) / 22K

Publishing Venue

IBM

Related People

Larner, A: AUTHOR

Abstract

An implementable mapping between DL/I data bases by means of a simple conceptualization of their structure associates together the set of paths defined in various data bases and having a common query structure; that is to say, any one of the set may be used to execute a query defined on any of the others. Membership of this set is both a necessary and a sufficient condition for access equivalence with any other member of the set and allows a query system the widest possible domain of effective paths from which its access optimization routines may select the most efficient. The definition of these domains, each associated with a segment selectable for a query, may efficiently be performed once only, before online query execution.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 19% of the total text.

Page 1 of 5

Access Independent Query Definition in IBM DL/I

An implementable mapping between DL/I data bases by means of a simple conceptualization of their structure associates together the set of paths defined in various data bases and having a common query structure; that is to say, any one of the set may be used to execute a query defined on any of the others. Membership of this set is both a necessary and a sufficient condition for access equivalence with any other member of the set and allows a query system the widest possible domain of effective paths from which its access optimization routines may select the most efficient. The definition of these domains, each associated with a segment selectable for a query, may efficiently be performed once only, before online query execution.

IBM's Data Language, DL/I, supports hierarchically structured data in such a way that a DL/I application is provided with a number of hierarchies, expressed as Program Communication Blocks (PCBs), against which it accesses its data. A PCB expresses both a hierarchical structure and a way of accessing that structure, namely, by accessing instances of the PCB's root sensitive segment (SENSEG) and thereafter accessing any child SENSEG within its present SENSEG. Various refinements to this scheme are available, but in essence the principle holds that PCB structure determines access sequence. Where an application is planned in advance, its optimal accessing sequence can be ascertained and appropriate PCBs generated, if necessary, along with their underlying logical data bases and indexes. When, however, a system to answer ad hoc queries on DL/I data bases is constructed, this optimization becomes more difficult. One option is to require that the user of such a system, as part of the definition of his query, specifies the PCB that should be used. This results, however, in considerable added complexity for the user and may result in highly inefficient execution of the query, for the user tends to select a PCB that gives him an intuitively acceptable view of his data rather than optimal efficiency of execution. It is desirable, however, that, despite the user quite properly taking his own view of his data, the query system should use that PCB which provides for efficient execution. Once a query has been ambiguously defined, a number of access paths, as defined in PCBs, may be appropriate for execution of the query (that is, they would all give the same result - assuming that the sequence of records comprising the result may be sorted if necessary before presentation to the user, and, for the sake of simplicity, that a single PCB is adequate for the query, but the approach is applicable to queries involving more than one PCB). A collection of PCBs having in common the property of appropriateness for a given query may be said to have a common structure, which may be termed the 'query structure'. This query structure is also possessed by the query as defined by the user...