On the Formal Specification and Derivation of Relational Database Applications

Abstract The development of database applications is usually carried out informally. The derivation of database programs directly from formal specifications is a well known and unsolved problem. Most of the previous work on the area either tried to solve the problem too generally or was restricted to some trivial aspects, for example deriving the database structure and/or simple operations. However difficult in general, deriving relational database applications directly from Z specifications satisfying a certain set of rules (the method) is not arduous. With appropriate tool support, writing formal specifications according to the method and deriving the corresponding relational database programs can be straightforward. Moreover, it should produce code which is standardized and thus easier to understand and maintain. This paper summarizes material from my Ph.D. thesis [4]. Therefore, it is a pleasure to thank again my supervisors, Ray Welland and David Harper. The financial support for the Ph.D. course was provided by CAPES (Brazilian Federal Agency for Postgraduate Education) and by UFPE (Federal University of Pernambuco).

[1]  Carroll Morgan,et al.  Programming from specifications (2nd ed.) , 1994 .

[2]  C. J. Date Null Values in Database Management , 1982, BNCOD.

[3]  Darrel C. Ince An introduction to discrete mathematics and formal system specification , 1988 .

[4]  John Mylopoulos,et al.  A language facility for designing interactive database-intensive applications , 1978, SIGMOD '78.

[5]  Hartmut Ehrig,et al.  Equations and initial semantics , 1985 .

[6]  Douglas T. Ross,et al.  Structured Analysis for Requirements Definition , 1977, IEEE Transactions on Software Engineering.

[7]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[8]  Anthony Hall,et al.  Seven myths of formal methods , 1990, IEEE Software.

[9]  Jack Minker,et al.  Logic and Databases: A Deductive Approach , 1984, CSUR.

[10]  Florian Matthes,et al.  The DBPL Project: Advances in Modular Database Programming , 1994, Inf. Syst..

[11]  Dan Craigen,et al.  An International Survey of Industrial Applications of Formal Methods , 1992, Z User Workshop.

[12]  Roberto Souto Maior de Barros,et al.  Deriving Relational Database Programs from Formal Specifications , 1994, FME.

[13]  I. Hayes Applying formal specification to the development of software in industry , 1985 .

[14]  Jeannette M. Wing A specifier's introduction to formal methods , 1990, Computer.

[15]  H. W. Buff Why Codd's Rule No. 6 Must be Reformulated , 1988, SIGMOD Rec..

[16]  Raymond Turner,et al.  An Introduction to the Formal Specification of Relational Query Languages , 1985, Comput. J..

[17]  Douglas T. Ross,et al.  Software design using: SADT , 1977, ACM Annual Conference.

[18]  Augusto Sampaio,et al.  Modular Extensions to Z , 1990, VDM Europe.

[19]  Antonio L. Furtado,et al.  Updating Relational Views , 1985, Query Processing in Database Systems.

[20]  N. Plat,et al.  Experiments with Formal Methods in Software Engineering , 1993 .

[21]  Florian Matthes,et al.  The Database Programming Language DBPL Rationale and Report , 1992 .

[22]  Patrick J. McParland Software tools to support formal methods , 1989 .

[23]  Xiaolei Qian,et al.  The deductive synthesis of database transactions , 1993, TODS.

[24]  Joseph M. Morris,et al.  A Theoretical Basis for Stepwise Refinement and the Programming Calculus , 1987, Sci. Comput. Program..

[25]  Shamkant B. Navathe,et al.  Conceptual Database Design: An Entity-Relationship Approach , 1991 .

[26]  Frank Waters,et al.  The B Book , 1971 .

[27]  John Fitzgerald Modularity in model-oriented formal specifications and its interaction with formal reasoning , 1991, Technical report series : UMCS.

[28]  A. W. Wood The Sword Model of Multilevel Secure Databases , 1990 .

[29]  Joan Antoni Pastor,et al.  Deriving Consistency-preserving Transaction Specifications for (View-)Updates in Relational Databases , 1992, DAISD.

[30]  C. J. Date A guide to DB2 , 1984 .

[31]  John Elder,et al.  Introduction to Modula-2 , 1987, Prentice Hall International Series in Computer Science.

[32]  Debora Weber-Wulff,et al.  Selling Formal Methods to Industry , 1993, FME.

[33]  Steve King,et al.  CICS Project Report: Experiences and Results from the use of Z in IBM , 1991, VDM Europe.

[34]  Ramez Elmasri,et al.  Fundamentals of Database Systems , 1989 .

[35]  A. W. Wakelin,et al.  Algebraic Specification of Databases - A Survey from a Database Perspective , 1992, Specifications of Database Systems.

[36]  Jonathan P. Bowen,et al.  Seven More Myths of Formal Methods , 1995, IEEE Softw..

[37]  Alan R. Simon,et al.  Understanding the New SQL: A Complete Guide , 1993 .

[38]  Serge Abiteboul,et al.  A transaction-based approach to relational database specification , 1989, JACM.

[39]  David J. Harper,et al.  Formal Development of Relational Database Applications , 1992, Specifications of Database Systems.

[40]  Matthew K. O. Lee,et al.  The B-Method , 1991, VDM Europe.

[41]  Dan Craigen,et al.  Formal Methods Reality Check: Industrial Usage , 1993, IEEE Trans. Software Eng..

[42]  Kees M. van Hee,et al.  A Formal Semantics for Z and the Link between Z and the Relational Algebra , 1990, VDM Europe.

[43]  E. F. Codd,et al.  A relational model of data for large shared data banks , 1970, CACM.

[44]  James F. Stay HIPO and Integrated Program Design , 1976, IBM Syst. J..

[45]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[46]  Michael J. Maher,et al.  Foundations of Deductive Databases and Logic Programming , 1988 .

[47]  J. E. Nicholls,et al.  Understanding the differences between VDM and Z , 1994, SOEN.

[48]  Thomas Reps,et al.  The Synthesizer Generator: A System for Constructing Language-Based Editors , 1988 .

[49]  Klaus-Dieter Schewe,et al.  Towards a Structured Specification Language for Database Applications , 1992, Specifications of Database Systems.

[50]  David W. Stemple,et al.  Automatic verification of database transaction safety , 1989, ACM Trans. Database Syst..

[51]  B. P. Collins,et al.  Introducing formal methods, the CICS experience , 1989 .

[52]  John Mylopoulos,et al.  A language facility for designing database-intensive applications , 1980, TODS.

[53]  Zohar Manna,et al.  The logical basis for computer programming , 1985 .

[54]  E. F. Codd,et al.  Extending the database relational model to capture more meaning , 1979, ACM Trans. Database Syst..

[55]  Jonathan Jacky Specifying a Safety-Critical Control System in Z , 1993, FME.

[56]  F. E. A Relational Model of Data Large Shared Data Banks , 2000 .

[57]  Robin E. Bloomfield,et al.  The application of formal methods to the assessment of high integrity software , 1986, IEEE Transactions on Software Engineering.

[58]  Cliff B. Jones,et al.  Modularizing the Formal Description of a Database System , 1990, VDM Europe.

[59]  Ian J. Hayes CICS message system , 1987 .

[60]  Klaus-Dieter Schewe,et al.  Specification and Refinement in an Integrated Database Application Environment , 1991, VDM Europe.

[61]  Cliff B. Jones,et al.  Systematic software development using VDM (2. ed.) , 1990, Prentice Hall International Series in Computer Science.

[62]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[63]  Georg Gottlob,et al.  Normalization of relations and PROLOG , 1986, CACM.

[64]  Jack Minker Foundations of deductive databases and logic programming , 1988 .

[65]  Robert S. Boyer,et al.  A computational logic handbook , 1979, Perspectives in computing.

[66]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[67]  M. A. Jackson,et al.  Structured Systems Analysis: Tools and Techniques , 1980 .

[68]  Trevor King,et al.  Formalising British Rail's Signalling Rules , 1994, FME.

[69]  Paul Smith,et al.  The Formal Development of a Secure Transaction Mechanism , 1991, VDM Europe.

[70]  Tapan P. Bagchi,et al.  Interactive Relational Database Design , 1989, Lecture Notes in Computer Science.

[71]  E. F. Codd,et al.  The Relational Model for Database Management, Version 2 , 1990 .

[72]  Anthony Boswell,et al.  Specification and Validation of a Security Policy Model , 1993, IEEE Trans. Software Eng..

[73]  Antoni Olivé,et al.  An Approach to the Synthesis of Update Transactions in Deductive Databases , 1994 .

[74]  Robin Milner,et al.  Definition of standard ML , 1990 .

[75]  Niklaus Wirth,et al.  Programming in Modula-2 , 1985, Texts and Monographs in Computer Science.

[76]  Rod M. Burstall,et al.  HOPE: An experimental applicative language , 1980, LISP Conference.

[77]  Klaus-Dieter Schewe,et al.  On the Derivation of Executable Database Programs from Formal Specifications , 1993, FME.

[78]  Cliff B. Jones,et al.  Case studies in systematic software development , 1990 .

[79]  M. Gordon,et al.  Introduction to HOL: a theorem proving environment for higher order logic , 1993 .