NETUL(ID:5599/net006)


for Navigational Easy To Use Language

Querying and browsing language


References:
  • Subieta, K. "Linguistic approach to database theory: DDLs for a hierarchical model" Inf. Syst.3,3 (1978), 203-208. view details
  • Subieta, K. "High-level navigational facilities for network and relational databases" In Proceedings 9th International Conference on VLDB (Florence, 1983),380-386. view details
  • Subieta, K. "Navigational facilities for a relational database" Inf. Syst. 8, 1 (1983), 29-36 view details
  • Subieta, K., and Karczewski, J. "NETUL: An integrated end-user interface for CODASYL databases" Polish Academy of Sciences, Institute of Computer Science Rep. 539, Mar. 1984. view details
  • Subieta, Kazimierz "Semantics of query languages for network databases" view details Abstract: Semantics determines the meaning of language constructs; hence it says much more than syntax does about implementing the language. The main purpose of this paper is a formal presentation of the meaning of basic language constructs employed in many database languages (sublanguages). Therefore, stylized query languages SSL (Sample Selection Language) and J (Joins) are introduced, wherein most of the typical entries present in other query languages are collected. The semantics of SSL and J are defined by means of the denotational method and explained informally. In SSL and J, four types of expressions are introduced: a selector (denotes a set of addresses), a term (denotes a set of values), a formula (denotes a truth value), and a join (denotes a set of n-tuples of addresses or values). In many cases alternative semantics are given and discussed. In order to obtain more general properties of the proposed languages, a new database access model is introduced, intended to be a tool for the description of the logical access paths to data. In particular, the access paths of the network and relational models can be described. SSL and J expressions may be addressed to both data structures. In the case of the relational model, expressions of J are similar to SQL or QUEL statements. Thus J may be considered a generalization of relational query languages for the network model. Finally, a programming language, based on SSL and J, is outlined, and the issues of SSL and J implementation are considered. Extract: Description
    Recently, we have developed NETUL (Navigational Easy To Use Language), which is a syntactic embodiment of the presented J and P languages for CODASYL databases. NETUL is being implemented for PSA DBMS (a restricted version of DBTG71) on computers EC RIAD or the IBM 360/370. The implementation technique is somewhat different from the technique used in LINDA. We have removed from user perception all concepts related to physical organization, such as AREA, LOCATION MODE, SEARCH KEY. Neither do we make a distinction between main storage objects and secondary storage objects; that is, we introduce no equivalent for a user working area and no kind of the GET instruction. Addresses are defined as some tuples (e.g., a record address is a pair (database-key, record-name), an item address is a triple (database-key, record-name, item-name), a set address is a triple (database-key, record-name, set-name)). As previously, the language engine contains two stacks: stack E, as defined in Section 5, and the result stack, where meanings of joins are accumulated. The result stack is used for all operations implied by the language constructs, in particular; besides the meanings of joins, it also stores the truth values of formulas and counters of loops implied by operators where, with, order by, closed by, and quantifiers.

    The size of stacks and the volume of their elements may vary greatly; for example, the selector [EMPLOYEE] may return, say, 100,000 addresses, while selector [EMPLOYEE where E# = ‘E765’1 returns a single address. We provide some methods of coding typical sequences of addresses (e.g., the sequence returned by selector [[EMPLOYEE] may be coded as a few symbols). In our implementation, stacks are stored in main memory; for large applications, however, it may be necessary to store them partially in secondary storage.

    The execution of NETUL queries (or programs) is subdivided into two stages. In the first stage a top-down, LL(1) compiler generates the intermediate code. In the second stage this code is interpreted by a special program. The intermediate code contains high-level instructions like Find the ith tuple from the list on the top of the result stack, create subordinated elements from this tuple, and push them to the top of stack E.



          in Transactions on Data Systems 10(3) Sept 1985 view details