We give an axiomatic de nition of the basic structure, called a class dictionary graph, used by object-oriented designers and programmers during the software development process. The contributions of this paper are twofold: An axiomatic foundation for objectoriented data modeling and e cient algorithms for checking whether a given data model satis es the axioms. The presented data model is the foundation of a number of techniques for developing object-oriented systems including, schema abstraction from object examples, schema optimization, planning techniques for system development, application generation from propagation patterns, the Law of Demeter, etc. Keywords and Phrases: Object-oriented data modeling and programming, algorithms and tools for object-oriented design, axioms for data models, style rules for data engineering.