The ubiquitous usage of databases for managing structured data, compounded with the expanded reach of the Internet to end users, has brought forward new scenarios of data retrieval. Users often want to express non-traditional fuzzy queries with soft criteria, in contrast to Boolean queries, and to explore what choices are available in databases and how they match the query criteria. Conventional database management systems (DBMSs) have become increasingly inadequate for such new scenarios.
Towards enabling data retrieval, we first studied how to fundamentally integrate ranking into databases. We built RankSQL, a DBMS that provides systematic and principled support of ranking queries. With a new ranking algebra and an extended query optimizer for the algebra, RankSQL captures ranking as a first-class construct in databases, together with traditional Boolean constructs. We invented efficient techniques for answering ad-hoc ranking aggregate queries. RankSQL provides significant performance improvement over current DBMSs in processing ranking queries and ranking aggregate queries.
We further studied how to enable retrieval mechanisms beyond just ranking. Our explorative study in this direction is exemplified by two novel proposals– One is to integrate clustering and ranking of database query results; the other is to support inverse ranking queries that provide ranks of objects in query context. Injecting such non-traditional facilities into databases presents non-trivial challenges in both defining query semantics and designing query processing methods. We extended SQL language to express such queries and invented partition- and summary-driven approaches to process them.
The source code of RankSQL is provided as a patch file on PostgreSQL 7.4.3. You need the source code of PostgreSQL 7.4.3 and the "applypatch" program, in order to apply the patch file on PostgreSQL 7.4.3. The source code was developed multiple years ago and is provided as is. Please try your best to make it work. If you do have questions, please send them my way (cli [AT] uta [DOT] edu). I may be able to address them.