An efficient way to improve the performance of database systems is the distributed processing. Therefore, the functionality of any distributed database system is highly dependent on its proper design in terms of adopted fragmentation, allocation, and replication methods. As a result, fragmentation, its allocation and replication is considered as a key research area in the distributed environment. The cloud computing is an emerging distributed environment that uses central remote servers and internet to maintain data and applications. In this paper, we present a dynamic distributed database system over cloud environment. The proposed system allows fragmentation, allocation, and replication decisions to be taken dynamically at run time. It also allows users to access the distributed database from anywhere. Moreover, we present an enhanced allocation and replication technique that can be applied at the initial stage of the distributed database design when no information about the query execution is available.