Principles of Distributed Database Systems