## 2 Literature Review
### Partitioning-Based Techniques  
In database systems, the size of the stored data may reach a huge size, which makes the partitioning process a fundamental operation in such systems. The aim of such an operation is to divide the database either horizontally or vertically thus enhancing the performance of the query processing. The authors of ref. [15] presented a novel relative-based fragmentation method that analyses the attributes of the data within a relative architecture to improve query performance by enhancing speed and accuracy. The method aims to enhance query performance in distributed systems by utilizing a novel relative-based fragmentation approach and to improve the speed and accuracy of data retrieval. Although it achieved relevance, the proposed method caused increased computational overhead and was not suitable for diverse environments. The authors of ref. [16] presented an enhanced dynamic distributed database system designed for a cloud environment that enables dynamic decision-making for fragmentation, allocation, and replication at runtime, allowing for flexibility and adaptability. The method allows the enhancement of the functionality and performance of distributed database systems in a cloud environment by enabling runtime decisions for fragmentation, allocation, and replication. However, the scalability issues or the impact of dynamic decisions on overall system performance were not mentioned and the flexibility of the system is uncertain. The authors of ref. [17] proposed a decision support system for record clustering in distributed databases by combining genetic network programming (GNP) and standard dynamic programming to solve the knapsack problem (KP) that was related to fragment allocation with storage capacity limitations in distributed databases. Additionally, a partial random rule extraction method was introduced within GNP to discover frequent patterns in the database. However, the computational complexities of the method, particularly with large-scale databases that require further optimization for practical implementation. The authors of ref. [18] proposed a proactive framework called PROADAPT (proactive framework for adaptive partitioning) to address the challenge of workload changes in big data warehouses. DBMSs are quickly stressed by workload changes, especially in business analytics applications; therefore, they introduced an AI-inspired methodology that utilizes a Genetic Algorithm within their PROADAPT framework. The method provides high performance for dynamic workloads by considering the interaction among workload queries. However, the scalability and applicability of PROADAPT to different big data warehouse environments fails to ensure its practicality and effectiveness in real-world scenarios. The authors of ref. [19] developed class fragmentation and allocation techniques in distributed object-oriented database systems to improve their performance by reducing unnecessary data access and minimizing the cost of data transmission. The method involves splitting a class into smaller pieces in distributed databases, while allocating the fragmented classes into sites within a connected network. The proposed algorithm shows more efficient and effective distribution of classes across sites, resulting in improved performance of the distributed object-oriented database system. However, the method poses increased computational complexity and overhead. The authors of ref. [20] proposed a simple greedy algorithm that aims to optimize the total transmission cost of site-fragment dependencies and inner-fragment dependencies to address and optimize the allocation of data fragments to sites in order to minimize execution time and the transaction costs of queries. The algorithm determines the best allocation strategy to minimize costs by considering these strategies. However, the greedy algorithm may not always guarantee finding the globally optimal solution. The authors of ref.