A study is made of the issues in parallelizing database production systems. Various kinds of parallelism possible in production systems are classified. Parallel execution of production systems leads to some subtle problems which, if not handled carefully, can cause altered execution semantics. The precise conditions that any parallel implementation of production systems must fulfill in order to be semantically consistent are identified. A mechanism that guarantees the semantic consistency of parallel execution and proves its correctness is presented. It is based on a novel locking mechanism that provides more parallelism than conventional two-phase locking. The various factors that can affect the actual speedup of a database production system are discussed.