Object-oriented data models are receiving wide attention since they provide expressive ionmechanismsto model naturally and directly both structural and behavioral aspectsof complex databasesapplications. In an objectoriented data model, a databaseis modeled in terms of objects grouped in classes,organized into subclasses hierarchies. Moreover, associations between entities are modeled by defining propertiesof objects whosevalue is the related object. However this way of modeling associationshas several limitations which make the description of someaspectsof associations unnatural. To overcome these limitations an object-relationshipdatamodelis proposedwhich supports both the mechanisms of an objectorienteddatamodelanda separatemechanismto model explicitly associations and to express declaratively common constraints on them. Constructs to support this model for a statically and strongly typed object-oriented database programminglanguagearedefined.