Database Management Systems
A relational database stores both data and the relationships between the data, which is the most widely used type of databases. The core of a relational database is the database engine which processes the input SQL language statements called database queries. My research projects cover two major topics, namely query processing and query optimization.
SQL statements are referred as queries in a database. The major forms of computation supported by SQL are tuple-level computations and aggregate computations. Tuple-level computations are defined by expressions on variables in calculus expressions or on values of each tuple of a relation in algebraic expressions, whereas aggregate computations apply aggregate functions, such as minimum, maximum, average, count, etc., on sets of tuples. Unfortunately, SQL does not include set computations, which involve comparisons on sets of tuples.
We proposed a set of set comparison operators to enhance the usability of SQL. These operators allow users to formulate conventionally difficult queries in an easier way, greatly enhancing the user-friendliness of SQL.
For each query given to database, there are many alternative ways for execution which are called query plans. The number of all possible query plans depends on both on how many tables are included and the operators in it. With a few tables and operations, this number can be very large. The process intending to find the best or optimal plan for query execution is referred as query optimization. The most difficult problem of query optimization is to find the optimal plan for join queries, which is referred as the join ordering problem.