I am confused about the definition of a strict transaction. What is the difference between a transaction that is strict and a transaction that is both strict and 2 phase?
1 Answer
Strictness Strictness ($\textsf{ST}$) is related to recoverability. Serializability ($\textsf{SR}$) is one of many consistency conditions of transactions, which is somewhat orthogonal to recoverability. 2PL is a protocol usually used to ensure serializability.
First, I don't think the term "strict transaction" is proper. Strictness, just like serializability, is defined over executions (also called histories or schedules) of transactions.
Secondly, strictness is incomparable to serializability (there are various versions of serializability. I suppose you are referring to CSR --- conflict serializability).
Finally, your question "Can there be a strict transaction that is not 2Phase?" should be
"Is there any execution which is strict but not serializable?"
The answer is "Yes". For example, $e = r_1(x) \; w_2(x) \; w_2(y) \; c_2 \; r_1(y) \; c_1$. You can check that $e \in \textsf{ST} \land e \notin \textsf{SR}$.