Many real-time database systems (RTDBS) are used to support mission-critical applications such as avionics control systems and defense systems, in which transactions have stringent real-time constraints. In these hard real-time systems, a transaction missing its deadline could lead to catastrophic consequences. The difficulties of providing a guarantee of meeting transaction deadlines in hard RTDBS lie in the problems of priority inversion and deadlocks. The transaction blocking delay due to priority inversion can be unbounded, which is unacceptable in most hard RTDBS. Several priority ceiling protocols have been proposed to solve these two problems. However, they are too conservative in scheduling transactions for the single-blocking and deadlock-free properties, leading to many unnecessary transaction blockings. The main reason for their conservatism is their implicit assumption that if a transaction's operation conflicts with that of another executing transaction, it is presumably unable to preempt the conflicting transaction. In this paper, we propose a new priority ceiling protocol that allows a higher priority transaction to preempt a lower priority transaction on data conflicts by using the notion of dynamic adjustment of serialization order. We devise a worst-case schedulability analysis for the new protocol which provides a better schedulability condition compared to other protocols. The simulation results show that the new priority ceiling protocol outperforms other protocols.