Distributed query and transaction processing
a. Construct a query around any one of the functional divisions you made in 4a such that if executed in the distributed design of 4 would require reconstruction of at least two horizontal and two vertical fragments, as well as a choice of one replica.
b. Using the centralised schema of 3, show an optimum query plan for your query.
c. Show two distributed query plans for your query. One assumes all data is transported to another site. The other plan achieves close to minimum data transport and use of at least one semijoin. Using the quantitative analysis of 2 and assumptions based on 3 and 4, estimate the cost of each plan in terms of bytes of data transmitted. Show your working.
d. Sketch a process to update the product catalogue. The process will have a coordinating transaction and subtransactions responsible for the product table, outlet table and the shopping cart. At least part of the product table will be replicated, so there will be a separate process for each replica. Use a synchronised replication protocol. The process will detail the messages sent from process to process and the read-item and write-item for each database access. Other aspects of the process can be briefly described in English. Annotate the process with resource lock/unlock commands corresponding to a twophase locking protocol. Justify your claim that the protocol is two-phase locking in your specific case.