Query personalization is the process of dynamically enhancing a query with related user preferences stored in a user profile with the aim of providing personalized answers. The underlying idea is that different users may find different things relevant to a search due to different preferences. The interest in the database context, as far as the preference topic is concerned, focuses on the notion of top-k preference queries and on the development of efficient methods for computing the answer of these queries. A top-k preference query returns k data objects which are the most preferred according to the user's preferences. In this project we focus on three main topics: the design and implementation of automated methods for preference elicitation; the introduction of formalisms to express a wide class of user’s preferences as well as methods to automatically deduce new preferences relations from the compact information provided by the user; the design and implementation of new operators to be incorporated into the standard query language SQL allowing the user to formulate top-k preference queries.