1 Objects.- 2 Actions.- 3 Abstractions.- 5 Environments.- 1 Data and Actions.- 1 Simple Types, Records, and Entity Sets.- 2 Variables, Constants, and Expressions.- 3 Sample Database: Project Management.- 4 The Relational Model of Data.- 5 Simple and Composite Actions.- 6 Arrays.- 7 Small Set Types.- 8 Schema Synthesis Algorithms.- Exercises: Repetitive Structures; Nested Structures; Normal Forms; Integrity Constraints; Action Semantics; Views.- Bibliographical Notes.- 2 Procedures and Modules.- 1 Procedure Declaration and Procedure Call.- 2 Scopes: Local and Global Objects.- 3 Variable and Value Parameters.- 4 Procedure Types and Parameters.- 5 Recursive Procedures.- 6 Modules: Definition and Implementation of Objects.- 7 Levels of Object Type Safety.- 8 Export-Import Rules.- Exercises: Traversal Recursion; Computed Attribute Values; Open Array Parameters and String Handling; Circuit Design; Task Network.- Bibliographical Notes.- 3 Design Methodology.- 1 Abstraction, Localization, Refinement, and Incremental Design.- 2 Sample Object-Oriented Top-Down Design: Project Management.- 3 Action and Transaction Development.- 4 Object-Oriented Versus Relational-Oriented Procedures.- 5 Environments, Submodels, and Access Rights.- 6 Design of Recursive Transactions.- Exercises: Action and Transaction Modeling; Exception Handling; Exceptional Properties; Expert Systems; Optimal Selection; Referential Integrity and Context-Dependent Actions.- Bibliographical Notes.- 4 Standard Abstractions.- 1 Aggregation.- 2 Generalization.- 3 Recursion and Covering.- 4 Sample Database: Assembly of Products.- 5 A Complex Application Module.- Exercises: Aggregation; Generalization; Covering; Molecular Abstraction; Hidden Relational Representation; Opaque Export; Recursion.- Bibliographical Notes.- 5 Input/Output Programming.- 1 Standard Input/Output Programming.- 2 Input Data Validation.- 3 Screen-Oriented I/O.- 4 Sample I/O Programming: Flight-Reservation Application.- 5 Sequential Files.- 6 Files, Images, and Streams.- Low-Level Application-Oriented Programming.- Exercises: Text Files and Character Streams; Access Rights; Nonstandard I/O Devices; Complex Screen Management; Pasteboards and Virtual Displays; File Handlers.- Bibliographical Notes.
The major topic of this book is the integration of data and programming languages and the associated methodologies. To my knowledge, this is the first book on modern programming languages and programming meth odology devoted entirely to database application environments. At the same time, it is written with the goal of reconciling the relational and object-oriented approaches to database management. One of the reasons that influenced my decision to write this book is my dissatisfaction with the fact that the existing books on programming methodology and the associated concepts, techniques, and programming language notation are largely based on mathematical problems and math ematically oriented algorithms. As such, they give the impression that modern program structures, associated techniques, and methodologies, not to speak of the formal ones, are applicable only to problems of that sort. Although important, such problems are of limited applicability and scale. This does not apply to books in which modem concepts, techniques, methodologies, and programming language notation are applied to systems programming. But, even so, this does not demonstrate that in entirely application-oriented problems-those in which modern computer tech nology is most widely used-modern programming methodology is just as important. This book is meant to be a step toward providing a more convincing support of such a claim and, thus, is based entirely on common, what one might call business-oriented, problems in which database technology has been successfully used.
Springer Book Archives