#はじめに
達人に学ぶSQL徹底指南書の 「1-8 EXISTS述語の使い方」がとても勉強になったので頭を整理するため重要だと思ったことの覚書を箇条書きにする。
#覚書の箇条書き
1.EXSITSは「量化(quanification)」という述語論理の機能を実現する。
2.述語は戻り値が真理値となる関数
3.戻り値は(true,false,unknown)のいずれか※SQLは3値論理
4.データベースは、実はデータではなく文を集めたものと言える。
5.WHERE句は、述語を組み合わせて一つの述語を作っていると見なせる。
6.WHERE句の戻り値が真になる命題のみが、テーブル(命題集合)から選択される。
7.EXISTSの特異性は入力レベルにあり。「=」や「BETWEEN」などの単一の値、スカラ値を入力とする述語を「一階の述語」EXISTSのように行の「集合」を入力とする述語を「二階の述語」と言う。出力は、どちらも真理値。
8.EXISTSは高階関数と行って良い。
9.全称量子化と存在量子化は、片方が定義できれば、もう片方をそれによって表現できる(同値変形の規則 a.k.a ド・モルガンの法則)
10.存在量子化→EXISTS 全称量子化→NOT EXISTS