This Article 
 Bibliographic References 
 Add to: 
Including Scalars in a Programming Language Based on the Relational Algebra
November 1989 (vol. 15 no. 11)
pp. 1437-1443

Scalars, arrays, and records, together with associated operations and syntax, have been introduced as special cases of relations into the relational programming system, relix. This permits all of these data types, as well as relations, to be stored persistently. The requirement in most languages that array elements and record fields can be assigned to leads in this case to the general implementation of QT-selectors as l-expressions, with, in particular, systematic interpretations of assignment to projections and selections of relations. The authors discuss the principles and the implementation of this extension to the relational algebra. They take advantage of the very specialized syntax of array access to build a tuned access method, using B-trees and Z-order. The performance results show the advantage of this implementation over the slower implementation required for general QT-selectors.

[1] M. P. Atkinson, P. J. Bailey, K. J. Chisholm, P. W. Cockshott, and R. Morrison, "An approach to persistent programming,"Comput. J., vol. 26, no. 4, pp. 360-365, 1983.
[2] M. P. Atkinson and O. P. Buneman, "Types and persistence in data-base programming languages,"ACM Computing Surveys, vol. 19, pp. 105-190, June 1987.
[3] R. Bayer and E. M. McCreight, "Organization and maintenance of large ordered indices,"Acta Inform., vol. 1, no. 3, pp. 173-189, 1972.
[4] R. Bayer and K. Unterauer, "Prefix B-Trees,"ACM TODS, vol. 2, no. 1, pp. 11-26, Mar. 1977.
[5] C. F. Gerald and P. O. Wheatley,Applied Numerical Analysis. Reading, MA: Addison-Wesley, 1984.
[6] B. Gunnlaugsson, "Concurrency and sharing in Prolog and in a picture editor for Aldat," Master's thesis, School Comput. Sci., McGill Univ., May 1987.
[7] D.M. Harland,Polymorphic Programming Languages: Design and Implementation, Ellis Horwood, Chichester, England, 1984.
[8] C.A.R. Hoare,Communicating Sequential Processes, Prentice Hall, Englewood, N.J., 1985.
[9] E. Horowitz,Fundamentals of Programming Languages. Rockville, MD: Computer Science Press, 1984.
[10] T. H. Merrett, "Experience with the domain algebra," inProc. 3rd Int. Conf. Data and Knowledge Bases Improving Usability and Responsiveness, C. Beeri, U. Dayal, and J. Schmidt, Eds. San Mateo, CA: Morgan Kaufmann, July 1988, pp. 335-346.
[11] T. H. Merrett, "Persistence and Aldat," inData Types and Persistence, M. P. Atkinson, P. O. Buneman, and R. Morrison, Eds. Berlin Springer-Verlag, 1988, pp. 173-188.
[12] T. H. Merrett, "The relational algebra as a typed language for logic programming," inProc. First Int. Workshop Expert Database Systems, vol. 2, L. Kerschberg, Ed., Kiawah Island, SC, Oct. 1984. pp. 735-739.
[13] T. H. Merrett,Relational Information System. Reston, VA: Reston Publishing, 1984.
[14] T. H. Merrett, N. Laliberté, B. Gunnlaugsson, M. Tsakalis, and A. Chong, "Relix--First steps to an operating language," School Comput. Sci., McGill Univ., Tech. Rep. TR-SOCS-88.1, Jan. 1988.
[15] T. H. Merrett and E. J. Otoo, "Dynamic multipaging a storage structure for large shared data banks," inImproving Database Usability and Responsiveness, P. Scheuermann, Ed. New York: Academic, 1982, pp. 237-256.
[16] J. A. Orenstein and T. H. Merrett, "A class of data structures for associative searching," inProc. SIGACT-SIGMOD, Waterloo, Ont., Canada, Apr. 2-4, 1984, pp. 181-190.
[17] J. E. Stoy,Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory. Cambridge, MA: MIT Press, 1977.
[18] C. Strachey, "Fundamental concepts of programming languages," Oxford Univ. Programming Research Group, Aug. 1967.

Index Terms:
scalars; programming language; relational algebra; records; syntax; relations; relational programming system; relix; data types; QT-selectors; l-expressions; systematic interpretations; projections; array access; tuned access method; B-trees; Z-order; data structures; database theory; high level languages; relational databases
T.H. Merrett, N. Laliberte, "Including Scalars in a Programming Language Based on the Relational Algebra," IEEE Transactions on Software Engineering, vol. 15, no. 11, pp. 1437-1443, Nov. 1989, doi:10.1109/32.41335
Usage of this product signifies your acceptance of the Terms of Use.