a variety of these ways have been tried for storing objects in a database. some products have approached the problem from the application programming end, by making the objects manipulated by the program persistent. this typically requires the addition of some kind of query language, since conventional programming languages do not have the ability to find objects based on their information content. others have attacked the problem from the database end, by defining an object-oriented data model for the database, and defining a database programming language that allows full programming capabilities as well as traditional query facilities.