One of the central concepts in the field of object-oriented databases is object identity, which nicely captures mutability, sharing and cyclic structures. Although the concept is intuitively clear, its precise semantics has not yet been well established. This seems to be a major obstacle to achieve a clean integration of object-oriented databases and other paradigms of database programming in a modern type system of a programming language. This paper attempts to establish a mathematical model for object identity in a framework of typed pure functional languages. We argue that the properties of object identity are accurately captured by references as they are implemented in Standard ML. We then present a method to interpret an impure higher-order functional language with references in a typed pure functional language using Moggi’s recent result on the categorical structure of monads. This establishes a precise semantics to the primitive operations for references and allows us to analyze various property of object identity. We investigate the interaction between set data types and object identity. Since the interpretation is shown to preserve all the properties of the existing data structures for databases, it enables us to integrate object identity with various existing data models within a type system of a programming language. We show that object identity and a generalized relational model can be uniformly integrated in a programming language.