On Database Theory and XML

Over the years, the connection between database theory and database practice has weakened. We argue here that the new challenges posed by XML and its applications are strengthening this connection today. We illustrate three examples of theoretical problems arising from XML applications, based on our own research. 1 On Database Theory The eld of relational databases is the product of a theoretician, E.F. Codd, from the early 70s. Relational databases had to struggle for a while against the industry proposal CODASYL [58], but then became universally adopted and today we have both a strong industry and a ourishing research eld. The end of 70's and early 80's were golden years for database theoreticians. Theory had two principal threads [61], relational database theory (dependency theory, universal relation theory, acyclic hypergraph theory), and transaction processing. Many contributions of this period in uenced database systems and the industry. Papers from that time analyzing the state of theoretical database research and its relationship to database systems concluded that the eld was in a healthy state [61, 52]. Over time, however, theoretical research became less connected to database systems. New elds, like deductive databases (recursive queries) [60, 7, 8], nested relations [1, 32, 51] theory of object-oriented query languages [35, 36, 2, 3, 4], ended up having little or no in uence on the industry, despite their practical motivation and excellent results. Other areas, especially in the 90s, where directly motivated by theoretical questions and were totally ignored by practitioners: query languages and complexity classes [63, 30, 31, 59], topics in nite model theory [57, 10], topological and constraint databases [34, 47, 45]. In 1995 Christos Papadimitriou wrote a thought provoking essay entitled Database Metatheory: Asking the Big Queries [46], analyzing the state of database theory at that time. Two of its ideas are especially relevant to our discussion. The rst is that theory in Computer Science is inevitable. Unlike traditional natural sciences which study an objective world, Computer Science is a science of the arti cial, studying artifacts that only exists as a result of scienti c activity. The second is to adapt Kuhn's paradigm principle for natural sciences to Computer Science. Under this principle, a science evolves in a cycle consisting of three states: from normal science to crisis, to revolution, then back to normal science. In Kuhn's theory the crisis occurs when new observations and measurements about the objective reality fail to agree with the the science's accepted paradigm; during a revolution a new paradigm is developed, consistent with the new observations. Clearly, this de nition of a crisis does not apply to a eld of Computer Science, since there is no real world to observe. Instead, Papadimitriou suggest another de nition. Consider the graph of all research units in a given eld. An edge from x to y represents the fact that x in uenced y. Normal science is de ned by a graph which is multiply connected (i.e. remains connected even if several nodes are removed); a science in crisis is de ned by one which is almost disconnected, with two major connected components corresponding to theoretical and applied projects respectively. This de nition is interesting for two reasons. First, it should be possible to automatically monitor the healthiness of our research eld, e.g. by using the DBLP bibliography database [41]. Second, it reinforces our general belief that our science is healthy if theory and practice are strongly connected: the general feeling in the mid 90's was that this connection was weakening. What caused this rift in a eld which started with theoreticians and practitioners working so closely ? While there are probably a large number of reasons that we don't claim to know, there is one in particular that is of importance to our discussion: the tension between the theoreticians' quest to explore new avenues, branching out of Codd's pure relational framework, and the practitioners' need to improve systems in the existing framework (relational/SQL) and for existing applications (client/server). Theoreticians explore new query languages (e.g. with recursion [60]), new data models [51], new usages of data (e.g. incomplete information [29]), or entirely new frameworks (e.g. constraint databases [34]). Practitioners improve the execution of relational operators [24] or improve relational optimizers [53, 25, 26, I.e. projects, papers, group { Papadimitriou leaves purposedly the term unde ned.