Input: $R\left({A}_{i},{A}_{2},\cdots ,{A}_{m}\right)$ : The relation; $Q=\left\{{Q}_{1},{Q}_{2},\cdots ,{Q}_{n}\right\}$ : The set of user queries that will run on R; cut-off: Cut-off Average Similarity . Output: C: The set of materialized views. Step 1: Construct the m × n Attribute Usage Matrix where m is the number of attributes and n is the number of queries. Step 2: Construct the n × n Attribute Similarity Matrix from the Attribute Usage Matrix. /* In step 3 the Graphs & the corresponding clusters are constructed */ Step 3: ∀ (Ai, Aj) ∈ Attribute Similarity Matrix, identify the attribute pair similarity values so that J (Ai, Aj) ≥ cut-off. Store these values in a list L in descending order. Store the number of elements in L into a variable count. a) If count = 0 then go to step 5. /* The algorithm fails to draw any graph. Therefore, no materialized view can be constructed */ b) If count > 0 then Repeat until list L is empty i) Pop the ith (1 ≤ I ≤ count) element from L. Store the value of the element into avariable x (0 ≤ x ≤ 1). ii) ∀ Attribute pairs (Ai, Aj) ∈ Attribute Similarity Matrix If J (Ai, Aj) = x, then Gi ← Gi ∪ Ai ∪ Aj /* Pair of attributes is inserted in Gi, where Gi represents the ith graph for ith highest similarity value. */ iii) Ci← Gi /*Ci represents the ith cluster for ith highest similarity value. */ iv) C ← C ∪ Ci /* Each cluster Ci is added to the set of clusters C */ /* In step 4 the clusters are validated and materialized views are formed*/ Step 4: ∀ Ci ∈ C, Calculate (Ci)avg by equation: ${\left({C}_{i}\right)}_{avg}=\frac{{\sum }_{i=1}^{\left(\begin{array}{c}n\\ 2\end{array}\right)}J\left({A}_{i};{A}_{j}\right)}{\left(\begin{array}{c}n\\ 2\end{array}\right)}$ where i # j If ((Ci)avg < cut-off then C ← C − Ci /* C represents the set of materialized views where each cluster Ci represents a valid materialized view */ Step 5: End.