A database management method for a database system including a plurality of master nodes (MS101, MS201...MS20n, MS301...MS30n), the plurality of master nodes comprising at least one higher level master node for detecting contention between an update to be executed based on a write set and an update executed based on a different write set, and a plurality of lower-level master nodes (MS201...MS20n, MS301...MS30n) for generating write sets, the lower-level master nodes being hierarchically provided below the higher-level master node in the database system, each master node comprising a database and each database comprising tuples with respective row numbers, wherein the databases can be updated by giving a deletion pointer to a tuple to be rewritten and adding a new tuple having a new row number for storing a new value, the method comprising: a step of a database processing unit of any one of the lower-level master nodes generating a write set expanded in its own memory when an update instruction for rewriting the tuple with the new value in the database of the lower-level node is issued in the lower-level master node, the write set including a shadow copy of the database of the lower-level master node and a heap tuple map, wherein the shadow copy contains the new value, and a row number of the tuple to be rewritten based on the update instruction and an identifier which is used for identifying the new value contained in the shadow copy are associated and registered in the heap tuple map, a step of sending the write set to the higher-level master node before the database of the lower-level master node is updated, for causing the higher-level master node to detect contention by comparing the heap tuple map in the write set received from the lower-level master node with the database of the higher-level master node and verifying whether the tuple to be rewritten based on the update instruction, said tuple being contained in the database of the higher-level master node and specified by its row number in the heap tuple map, has been rewritten by the different write set, to abort the processing of the write set if the tuple has been rewritten by the different write set, to update the database of the higher-level master node if the tuple has not been rewritten by the different write set by giving a deletion pointer to the row number of the tuple to be rewritten and writing the new value contained in the shadow copy to a new tuple having a new row number, to generate a record of this update as a transaction log, and to distribute the transaction log to the lower-level master nodes including the lower-level master node which has sent the write set; and a step of a transaction log processing unit of each lower-level master node updating, upon receiving the transaction log, its own database based on the received transaction log. a step of a database processing unit of any one of the lower-level master nodes generating a write set expanded in its own memory when an update instruction for rewriting the tuple with the new value in the database of the lower-level node is issued in the lower-level master node, the write set including a shadow copy of the database of the lower-level master node and a heap tuple map, wherein the shadow copy contains the new value, and a row number of the tuple to be rewritten based on the update instruction and an identifier which is used for identifying the new value contained in the shadow copy are associated and registered in the heap tuple map, a step of sending the write set to the higher-level master node before the database of the lower-level master node is updated, for causing the higher-level master node to detect contention by comparing the heap tuple map in the write set received from the lower-level master node with the database of the higher-level master node and verifying whether the tuple to be rewritten based on the update instruction, said tuple being contained in the database of the higher-level master node and specified by its row number in the heap tuple map, has been rewritten by the different write set, to abort the processing of the write set if the tuple has been rewritten by the different write set, to update the database of the higher-level master node if the tuple has not been rewritten by the different write set by giving a deletion pointer to the row number of the tuple to be rewritten and writing the new value contained in the shadow copy to a new tuple having a new row number, to generate a record of this update as a transaction log, and to distribute the transaction log to the lower-level master nodes including the lower-level master node which has sent the write set; and a step of a transaction log processing unit of each lower-level master node updating, upon receiving the transaction log, its own database based on the received transaction log.