述語ロックは実装困難
#述語ロック_Predicate_Locks
述語ロック
$ R(A_1,A_2,...,A_n)
をリレーションとする
$ R
で許容される述語
$ P(t|t \in {\rm dom}(A_1) \times {\rm dom}(A_2) \times {\rm dom}(A_n) )
とは任意の
$ t
に対して
$ P(t)
がTRUEまたはFALSEに常に決まる
述語ロックは三項組
$ (R,P,a)
aはアクセスモード(read or write)
一般に
$ R
上に
$ P(t)
と
$ P^{\prime} (t)
が与えられたとき
$ P \wedge P^{\prime} (t)
が真となるタプルtが存在するかどうかという
SAT問題 satisfiability problem
は容易ではない(
NP完全問題 NP-complete problem
)
$ P
と
$ P^{\prime}
が
原始述語 atomic predicate
であれば比較的容易に解けるので実装に問題はない
? どういうSQLがだめなのか調べる
サブクエリとか?