An architecture and implementation for a cooperative database system

Today's database systems can be called uncooperative because they respond only literally to queries. The literal answer alone, however, can be misleading to a user. For database systems to be cooperative, they sometimes must respond with more information. Cooperative answers can help to address when a user's query returns too few answers or no answers at all, or to provide explanation when a query is “unsound” with respect to the database. I present a prototype cooperative database system (CDBS), Carmin. The system extends a relational database system (RDBMS), or a deductive database system, to provide cooperative responses. The Carmin prototype interfaces with INGRES'89 and has been ported for ORACLE-7. I introduce formally the cooperative techniques that Carmin handles—query misconceptions, false presuppositions, query relaxations, and intensional answers—with respect to Datalog and to Datalog¬ (Datalog with default negation). I present an architecture for the system which integrates these behaviors and interfaces with an RDBMS. I show the complexity of false presupposition search, and develop an algorithm capable of accomplishing the search in reasonable bounds. I develop a proof procedure which is efficient and sufficient for determining query misconceptions, and for generating their explanations. Through a fixpoint characterization, I prove that the proof procedure implements the semantics for cooperative response. This thesis offers a proof of concept that an efficient CDBS is possible which works with existing database technology and databases. It offers new complexity analyses of key computational tasks involved in cooperative response, and new algorithms for these types of cooperative response that are much more efficient than previous approaches. It demonstrates that cooperative response can be defined formally, given a semantics on par with other database components.