Data Structure Design

Publisher Summary This chapter focuses on data structure design. Many data structures designers realize that data should be specified at two levels: (1) the abstract, user-oriented information structure, and (2) the concrete, machine-oriented storage structure. The design methodology is based on five views of data: (1) data reality, (2) data abstraction, (3) information structure, (4) storage structure, and (5) machine encoding. The design of a data structure should proceed through successive levels, binding only those aspects which are necessary to specify each level. Top management must be able to consider all aspects of data reality. For example, managers in a credit card company care about the availability of plastics for the cards, the appeal of the design of the cards' faces, and other aspects which are probably “irrelevant” in the view of computer personnel dealing with the data. Therefore, such information must be included as a part of the first view of data. Translating an application from the reality into an abstraction is the interface at which data managers decide which aspects of data are relevant to the model—possibly by enumerating the types of queries and updates that may be applied to the data.

[1]  Douglas T. Ross,et al.  Uniform Referents: An Essential Property for a Software Engineering Language , 1970 .

[2]  Vincent Y. Lum,et al.  Key-to-address transform techniques: a fundamental performance study on large existing formatted files , 1971, CACM.

[3]  William L. Honig Bringing data base technology to the programmer , 1974, SGMD.

[4]  Charles W. Bachman Summary of current work ANSI/X3/SPARC/study group: database systems , 1974, SGMD.

[5]  Frank Wm. Tompa Choosing an Efficient Internal Schema , 1976, VLDB.

[6]  Stephen N. Zilles,et al.  Specification techniques for data abstractions , 1975 .

[7]  Joseph Weizenbaum Symmetric list processor , 1963, CACM.

[8]  William A. McCuskey On automatic design of data organization , 1970, AFIPS '70 (Fall).

[9]  Edsger W. Dijkstra,et al.  Notes on structured programming , 1970 .

[10]  John V. Guttag,et al.  The specification and application to programming of abstract data types. , 1975 .

[11]  Jürg Nievergelt,et al.  Binary Search Trees and File Organization , 1974, CSUR.

[12]  John McCarthy,et al.  Recursive functions of symbolic expressions and their computation by machine, Part I , 1960, Commun. ACM.

[13]  C. C. Gotlieb,et al.  A TOP-DOWN ALGORITHM FOR CONSTRUCTING NEARLY OPTIMAL LEXICOGRAPHIC TREES , 1972 .

[14]  Barry W. Boehm,et al.  Some Steps Toward Formal and Automated Aids to Software Requirements Analysis and Design , 1974, IFIP Congress.

[15]  Sakti P. Ghosh,et al.  A search path selection algorithm for the Data Independent Accessing Model (DIAM) , 1974, SIGFIDET '74.

[16]  E. SenkoM.,et al.  Data structures and accessing in data-base systems , 1973 .

[17]  Behrooz Parhami,et al.  Associative memories and processors: An overview and selected bibliography , 1973 .

[18]  Robert Balzer Dataless programming , 1967, AFIPS '67 (Fall).

[19]  Jay Earley,et al.  Toward an understanding of data structures , 1971, SIGFIDET '70.

[20]  Stephen N. Zilles,et al.  Programming with abstract data types , 1974 .

[21]  Michael E. Senko,et al.  Data Structures and Accessing in Data-Base Systems. I: Evolution of Information Systems , 1973, IBM Syst. J..

[22]  M. E D'Imperio Data structures and their representation in storage , 1969 .

[23]  William M. Waite The mobile programming system: STAGE2 , 1970, CACM.