<p>Conceptual clustering techniques based on current theories of categorization provide a way to design database schemas that more accurately represent classes. An approach is presented in which classes are treated as complex clusters of concepts rather than as simple predicates. An important service provided by the database is determining whether a particular instance is a member of a class. A conceptual clustering algorithm based on theories of categorization aids in building classes by grouping related instances and developing class descriptions. The resulting database schema addresses a number of properties of categories, including default values and prototypes, analogical reasoning, exception handling, and family resemblance. Class cohesion results from trying to resolve conflicts between building generalized class descriptions and accommodating members of the class that deviate from these descriptions. This is achieved by combining techniques from machine learning, specifically explanation-based learning and case-based reasoning. A subsumption function is used to compare two class descriptions. A realization function is used to determine whether an instance meets an existing class description. A new function, INTERSECT, is introduced to compare the similarity of two instances. INTERSECT is used in defining an exception condition. Exception handling results in schema modification. This approach is applied to the database problems of schema integration, schema generation, query processing, and view creation.</p>