Abstract:
In modern relational database technologies, views implement the external layer of the ANSI-SPARC architecture, which encapsulates details of the database conceptual structure from end-users. However, when using views, we need to solve the problem of correct view updating: DBMS must execute insertion, deletion, and updating tuples of the view while providing correct modifications of corresponding target relation(s) of this view. To solve this problem, the SQL standard introduces a strict restriction: only one tuple in the target relation can correspond to the modified tuple in the view. In addition, triggers are not a satisfactory solution of this problem because of necessity of such a trigger for each view of the database, and unpredictable sequence in execution of triggers that belong to the same view, etc. The paper presents an approach to solve the problem of correct view updating based on the commutative database transformations. This does not limit the tuple uniqueness in the target relation that corresponds to the updated tuple in the view. We describe the DBMS Coprocessor, which is deployed on the client computer and provides commutative transformations in the database relations stored on the server side. The coprocessor generates a transaction's script that implements commutative transformations and runs the transaction on the server. We present implementation of the Coprocessor for the PostgreSQL open-source DBMS. Experimental evaluation confirms the effectiveness of the proposed approach in OLAP and OLTP applications.