Abstract
We describe how to express constraints in a functional (semantic) data model, which has a working implementation in an object database. We trace the development of such constraints from being integrity checks embedded in procedural code to being something declarative and self-contained, combining data access and computation, that can be moved around into other contexts in intelligent distributed systems. We see this as paralleling and extending the original vision of functions as values in functional programming systems. It is greatly helped by using a referentially transparent functional formalisation. We illustrate these ideas by showing how constraints can move around within database systems (Colan & Angelic Daplex), being transformed for various uses, or even moved out into other systems and fused into a specification for a configuration problem. We look forward to future directions involving Agents.
Similar content being viewed by others
References
Atkinson, M., Bancilhon, F., DeWitt, D., Dittrich, K., Maier, D., and Zdonik, S. (1989). The Object-Oriented Database System Manifesto. In W. Kim, J.-M. Nicolas, and S. Nishio (Eds.), Proceedings of 1st International Conference on Deductive and Object-Oriented Databases. Kyoto, Japan: North Holland. Elsevier Science, pp. 223–240.
Bassiliades, N. and Gray, P. (1994). CoLan: A Functional Constraint Language and its Implementation. Data and Knowledge Engineering, 14, 203–249.
Buneman, P. and Frankel, R. (1979). Fql—A Functional Query Language. In P. Bernstein (Ed.), SIGMOD 79 Conference. Boston. ACM Press, pp. 52–58.
Buneman, P., Libkin, L., Suciu, D., Tanen, V., and Wong, L. (1994). Comprehension Syntax. SIGMOD Record, 23(1), 87–96.
Cattell, R. (Ed.) (1995). The Object Database Standard: ODMG-93, Release 1.2, Morgan Kaufmann.
Chang, C. (1978). DEDUCE 2: Further Investigations of Deduction in Relational Data Bases. In H. Gallaire and J. Minker (Eds.), Logic and Databases. Plenum Press, pp. 201–236.
Davidson, S. and Kosky, A. (1997). WOL: A Language for Database Transformations and Constraints. In W. Gray and P. Larson (Eds.), Proceedings of the Thirteenth International Conference on Data Engineering (ICDE). Birmingham, UK: IEEE Computer Society, pp. 55–65.
Eaton, P., Freuder, E., and Wallace, R. (1998). Constraints and Agents: Confronting Ignorance. AI Magazine, 19(2), 51–65.
Embury, S. (1995). A Formal Semantics for the Daplex Language. Technical Report AUCS/TR9504, University of Aberdeen, Department of Computing Science, King' College, Aberdeen, Scotland, U.K.AB243UE. Accessible as http://www.csd.abdn.ac.uk/»pfdm/postscript/embury.1995b.ps.
Embury, S. and Gray, P. (1995a). Compiling a Declarative, High-Level Language for Semantic Integrity Constraints. In R. Meersman and L. Mark (Eds.), Proceedings of 6th IFIP TC-2 Working Conference on Data Semantics. Atlanta, USA: Chapman and Hall, pp. 188–226.
Embury, S. and Gray, P. (1995b). Planning Complex Updates to Satisfy Constraint Rules Using a Constraint Logic Search Engine. In T. Sellis (Ed.), '95). Lecture Notes in Computer Science 985, Glyfada, Athens, Greece: Springer-Verlag, pp. 230–244.
Embury, S. and Gray, P. (1995c). The Declarative Expression of Semantic Integrity in a Database of Protein Structure. In A. Illaramendi and O. Diaz (Eds.), Data Management Systems: Proceedings of the Basque InternationalWorkshop on Information Technology (BIWIT 95). San Sebastían, Spain: IEEE Computer Society Press, pp. 216–224.
Embury, S. and Gray, P. (1996). A modular compiler architecture for a data manipulation language. In Proceedings of 14th British National Conference on Databases (BNCOD 14) (pp. 170–188). Edinburgh, Scotland: Springer-Verlag.
Erwig, M. and Lipeck, U. (1991). A functional DBPL revealing high level optimizations. In P. Kanellakis and J. Schmidt (Eds.), Proceedings of the Third InternationalWorkshop on Database Programming Language—Bulk Types and Persistent Data. Nafplion, Greece: Morgan Kaufmann, pp. 306–321.
Floyd, R. (1967). Nondeterministic Algorithms. Journal of the ACM, 14(4), 636–644.
Gray, P. (1994). Knowledge Reuse Through Networks of Large KBS. In D. Bowers (Ed.), Proceedings of 12th British National Conference on Databases, LNCS 826. Springer-Verlag, pp. 13–22.
Gray, P., Cui, Z., Embury, S., Gray, W., Hui, K., and Preece, A. (1998). An Agent-Based System for Handling Distributed Design Constraints. In M. Boddy and M. Gini (Eds.), Proceedings of Agents'98 Workshop on Agent-Based Manufacturing, Minneapolis, USA. Dept. of Comp. Science and Eng., Univ. of Minnesota.
Gray, P. and Kemp, G. (1994). Object-Oriented Systems and Data Independence. In D. Patel, Y. Sun, and S. Patel (Eds.), Proc. 1994 International Conference on Object Oriented Information Systems. London: Springer-Verlag, pp. 3–24.
Gray, P., Kulkarni, K., and Paton, N. (1992). Object-Oriented Databases: A Semantic Data Model Approach, Prentice Hall Series in Computer Science, Prentice Hall International.
Gray, P., Moffat, D., and Paton, N. (1988). A Prolog Interface to a Functional Data Model Database. In J. Schmidt, S. Ceri, and M. Missikoff (Eds.), Extending Database Technology Conference. Springer-Verlag, pp. 34–48.
Gray, P., Preece, A., Fiddian, N., Gray, W., Bench-Capon, T., Shave, M., Azarmi, N., Wiegand, M., Ashwell, M., Beer, M., Cui, Z., Diaz, B., Embury, S., Hui, K., Jones, A., Jones, D., Kemp, G., Lawson, E., Lunn, K., Marti, P., Shao, J., and Visser, P. (1997). KRAFT: Knowledge Fusion from Distributed Databases and Knowledge Bases. In R. Wagner (Ed.), Proceedings of the Eighth International Workshop on Database and Expert Systems Applications. Toulouse, France: IEEE Computer Society Press, pp. 682–691.
Grufman, S., Samson, F., Embury, S., Gray, P., and Risch, T. (1997). Distributing Semantic Constraints Between Heterogenous Databases. In W. Gray and P. Larson (Eds.), Proceedings of the Thirteenth International Conference on Data Engineering (ICDE). Birmingham, UK: IEEE Computer Society, pp. 33–42.
Grust, T., Kroger, J., Gluche, D., Heuer, A., and Scholl, M. (1997). Query Evaluation in Croque Calculus and Algebra Coincide. In C. Small, P. Douglas, R. Johnson, P. King, and N. Martin (Eds.), Advances in Databases: Proceedings of 15th British National Conference on Databases (LNCS 1271). London, UK: Springer Verlag, pp. 84–100.
Jagadish, H. and Qian, X. (1992). Integrity Maintenance in an Object-Oriented Database. In L.-Y. Yuan (Ed.), Proceedings of the 18th VLDB Conference. Vancouver: Morgan Kaufmann, pp. 469–480.
Jiao, Z. and Gray, P. (1991). Optimisation of Methods in a Navigational Query Language. In C. Delobel, M. Kifer, and Y. Masunaga (Eds.), Second International Conference on Deductive and Object-Oriented Databases. Munich: Springer-Verlag, pp. 22–42.
Kemp, G., Iriarte, J., and Gray, P. (1994). Efficient Access to FDM Objects Stored in a Relational Database. In D. Bowers (Ed.), Directions in Databases: Proceedings of the Twelfth British National Conference on Databases (BNCOD 12). Springer-Verlag, pp. 170–186.
Kerschberg, L. and Pacheco, J. (1975). A Functional Database Model. Universidade Catolica Rio de Janeiro.
Kulkarni, K. and Atkinson, M. (1986). EFDM: Extended Functional Data Model. The Computer Journal, 29(1), 38–46.
Landers, T. and Rosenberg, R. (1982). An Overview of Multibase. In H.-J. Schneider (Ed.), Distributed Data Bases. North-Holland.
Nicolas, J.-M. (1982). Logic for Improving Integrity Checking in Relational Databases. Acta Informatica, 18, 227–253.
Paton, N. (1989). ADAM: An Object-Oriented Database System Implemented in Prolog. In M. Williams (Ed.), Proceedings of 7th British National Conference on Databases. British Computer Society Workshop Series, Heriot-Watt University, Edinburgh: Cambridge University Press, pp. 147–162.
Paton, N. and Gray, P. (1990). Optimising and Executing Daplex Queries Using Prolog. The Computer Journal, 33, 547–555.
Reddi, S. (1993). Integrity Constraint Enforcement in the Functional Database Language PFL. In M. Worboys and A. Grundy (Eds.), Proceedings of the 11th British National Conference on Databases. Keele, UK: Springer-Verlag, pp. 238–257.
Shepherd, A. and Kerschberg, L. (1984). Prism: A Knowledge Based System for Semantic Integrity Specification and Enforcement in Database Systems. In B. Yormark (Ed.), SIGMOD 84 Conference. Boston: ACM Press, pp. 307–315.
Shipman, D. (1981). The Functional Data Model and the Data Language DAPLEX. ACM Transactions on Database Systems, 6(1), 140–173.
Simon, E. and Kotz-Dittrich, A. (1995). Promises and realities of active database systems. Proceedings of the 21st Int'l Conf. on Very Large Databases, VLDB'95.
Singh, N. (1998). Unifying Heterogeneous Information Models. Communications of the ACM, 41(4), 37–44.
Söndergaard, H. and Sestoft, P. (1992). Non-Determinism in Functional Languages. The Computer Journal, 35(5), 514–523.
Stonebraker, M., Rowe, L., Lindsay, B., Gray, J., Carey, M., Brodie, M., Bernstein, P., and Beech, D. (1990). Third-Generation Database System Manifesto—The Committee for Advanced DBMS Function. In R. Meersman, W. Kent, and S. Khosla (Eds.), Proceedings of the IFIP TC2/WG 2.6 Working Conference on Object-Oriented Databases: Analysis, Design & Construction (DS-4). Windermere, UK: North-Holland, pp. 495–511.
Turner, D. (1985). Miranda: A Non-Strict Functional Language with Polymorphic Types. In J.-P. Jouannaud (Ed.), Proceedings of the IFIP Int. Conf. on Functional Programming Languages and Computer Architecture, Lecture Notes in Computing Science. Nancy, France: Springer-Verlag, vol. 201, pp. 1–16.
Urban, S. (1989). ALICE: An assertion language for integrity constraint expression. Proceedings of Conference on Computer Software Applications.
Van Gelder, A. and Topor, R. (1991). Safety and Translation of Relational Calculus Queries. ACM Transactions on Database Systems, 16, 235–278.
Van Hentenryck, P. (1989). Constraint Satisfaction in Logic Programming, MIT Press.
Yoon, J. and Kerschberg, L. (1997). Semantic Update Optimization in Active Database. Database Applications Semantics. Chapman & Hall, pp. 253–269.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Gray, P.M., Embury, S.M., Hui, K.Y. et al. The Evolving Role of Constraints in the Functional Data Model. Journal of Intelligent Information Systems 12, 113–137 (1999). https://doi.org/10.1023/A:1008748808699
Issue Date:
DOI: https://doi.org/10.1023/A:1008748808699