To address Challenge II, we initialize and maintain a multidimensional grid data structure for each recommender created using the CREATE RECOMMENDER statement, where each dimension corresponds to one of the attributes. Each grid cell includes a recommendation model that is used to efficiently generate recommendations to users. Materializing a large number of grid cells incurs more recommendation models being stored and maintained, which may preclude system scalability. To remedy this issue, RECATHON adaptively decides, based upon the query/update workload, which recommender cells to maintain in order to reduce the overall recommender storage and maintenance overheard without largely compromising the query execution performance. To query an existing multidimensional recommender (Challenge III), RECATHON users specify the recommender in the FROM clause and the user identifier as a predicate to the WHERE clause of a SQL query. RECATHON executes the query and produces the set of recommended items, along with their scores with respect to the querying user. To reduce query latency, RECATHON optimizes incoming recommendation queries through a set of query execution algorithms that embed the recommendation functionality within other database operations, namely, select, join, and ranking.