Discovering and using database user access patterns

In this dissertation, I present a series of methods for discovering database user access patterns from database traces. I use user access patterns to describe how a client application or a group of users accesses the data in a database system. A user access pattern includes a set of user access events that represent the types of queries and a set of user access graphs that represent query execution orders. In order to learn user access patterns from database traces, I propose several data mining algorithms for identifying user sessions, clustering user sessions and modeling sessions. These algorithms are based on well-known theories, such as statistical language modeling, Markov modeling, sequence alignment, and co-training. Efficient finding and using of user access patterns can greatly improve the performance of a database system. I suggest ways to use the discovered user access patterns to improve system performance by rewriting queries and prefetching query results.