Report Number: CS-TR-79-722
Institution: Stanford University, Department of Computer Science
Title: A structural model for database systems
Author: Wiederhold, Gio
Author: El-Masri, Ramez A.
Date: February 1979
Abstract: This report presents a model to be used for database design. Because our motivation extends to providing guidance for the structured implementation of a database, we call our model the 'Structural Model.' We derive the design using criteria of correctness, relevance, and performance from semantic and operational specifications obtained from multiple sources. These sources typically correspond to prospective users or user groups of the database. The integration of such specifications is a central issue in the development of an integrated structural database model. The structural model is used for the design of the logical structures that represent a real-world situation. However, it is not meant to represent all possible real-world semantics, but a subset of the semantics which are important in database modelling. The model uses relations as building blocks, and hence can be considered as an extension of Codd's relational model [1970]. The main extensions to the relational model are the explicit representation of logical connections between relations, the inclusion of insertion-deletion constraints in the model itself, and the separation of relations into several structural types. Connections between relations are used to represent existence dependencies of tuples in different relations. These existence dependencies are important for the definition of semantics of relationships between classes of real-world entities. The connections between relations are used to specify these existence dependencies, and to ensure that they remain valid when the database is updated. Hence, connections implicitly define a basic, limited set of integrity constraints on the database, those that identify and maintain existence dependencies among tuples from different relations. Consequently, the rules for the maintenance of the structural integrity of the model under insertion and deletion of tuples are easy to specify. Structural relation types are used to specify how each relation may be connected to other relations in the model. Relations are classified into five types: primary relations, referenced relations, nest relations, association relations, and lexicon relations. The motivation behind the choice of these relation types is discussed, as is their use in data model design. A methodology for combining multiple, overlapping data models - also called user views in the literature - is associated with the structural model. The database model, or conceptual schema, which represents the integrated database, may thus be derived from the individual data models of the users. We believe that the structural model can be used to represent the data relationships within the conceptual schema of the ANSI/SPARC DBMS model since it can support database submodels, also called external schema, and maintain the integrity of the submodels with respect to the integrity constraints expressable in the structural model. We then briefly discuss the use of the structural model in database design and implementation. The structural model provides a tool to deal effectively with the complexityu of large, real-world databases. We begin this report with a very short review of existing database models. In Chapter 2, we state the purpose of the model, and in Chapter 3 we describe the structural model, first informally and then using a formal framework based on extensions of the relational model. Chapter 4 defines the representations we use, and Chapter 5 covers the integration of data models that represent the different user specifications into an integrated database model. Formal descriptions and examples of the prevalent cases are given. The work is then placed into context first relative to other work (Chapter 6) and then briefly within our methodology for database design (Chapter 7).
http://i.stanford.edu/pub/cstr/reports/cs/tr/79/722/CS-TR-79-722.pdf