「論理的に考える」は本当?SQL(NULL)とAIに見る正しさの再定義
作成日:2025-05-02
更新日:2025-05-04

「どの論理」で
考えてる?

どの論理って?

まずは「論理」を整理してみよう
論理にひそむもの
The concept of a (relational) key is central to RDBMS,
Joe Celko’s SQL for Smarties: Advanced SQL Programming
but it tactfully goes back to a fundamental law of logic
known as the Law of Identity.
データベース理論って、実はこっそり古代哲学とつながってる

技術って
さりげなく古代哲学ってこと
- tactfully goes back
- 気を利かせて昔の話に戻っている
- 「さりげなく(でも賢く)」昔の話とつながっている

古代なの?

「古典論理」を見てみよう
Classical Logic|アリストテレスの古典論理
論理の3大原則
- 同一律
- A is A.(AはAである)
- 無矛盾律
- A is not not-A.(AはAであって、Aでないものではない)
- 排中律
- A is either A or not-A.(AかAでないか、どちらかである)
同一律(Law of Identity)
- 私は私である
- 以上。(証明の必要なし)
- SQLでの例
- 主キーの役割
- (これが私。存在の主張)

要は
ID(Identity)の法則
無矛盾律(Law of Non-Contradiction)
- 矛盾は無し!
- NG例)私は私、そして私はあなた。✗
- SQLでの例
- ユニーク制約
- (唯一の私)

Contradiction(矛盾)は無しよ
の法則
排中律(Law of Excluded Middle)
- YesかNoかの二択!白黒はっきり!
- NG例)グレー。✗
- SQLでの例
- (実は、排中律を破っている)

Excluded Middle
中間は排除するわよの法則

SQLには第3の値があるため
この論理から、はみ出るのよ
SQLに存在する第3の存在|Three-Valued Logic
三値論理
- True
- False
- UnKnown ← 3つ目!
c1 | c2 | c1 = c2 |
---|---|---|
1 | 1 | TRUE |
1 | 2 | FALSE |
1 | NULL | UNKNOWN |
NULL | NULL | UNKNOWN |

なぜ3つ?

Yes か No かだけではないのが
現代社会だから
NULL = 現実の曖昧さを見逃さない
空欄があった場合
- 入力忘れ?
- まだ不明ってこと?
- それとも何?
- 配達日の空欄
- 配達済か未配達か、わからない
- 数値が空欄
- 在庫0 と在庫不明は異なる

SQLは、SQLの論理で動いている

つまり
論理は1つじゃないってこと
論理は1つじゃない|Classical Logicだけではない現代の論理

昔の論理だけでは
対応しきれないから
いろんな論理
論理 | 特徴 |
---|---|
古典論理 Classical Logic | 真か偽。中間は無し! 代表例)数学、デジタル回路 |
多値論理 (3値以上) | 真・偽・それ以外 代表例)SQLのNULL |
ファジィ論理 Fuzzy Logic | グレーがある 代表例)AIのファジィ制御 |
直観主義論理 Intuitionistic logic | 証明が必要 (第三の可能性は保留) 代表例)計算機の形式検証や型理論 |
非単調論理 non-monotonic logic | 真か偽 (結論は撤回可能) 代表例)AIの推論、法律論理 |

たとえば、AIもこんな感じ
ちょっとだけ正しい(ファジィ論理)
- Fuzzy = 曖昧
- 「たぶん正しい」「60%ぐらい正しい」で答えを出す
あとで変わるかも(非単調論理)
- 情報が増えると答えが変わる
- 「申し訳ありません。正しくは〜でした」とすぐ撤回する

AIは、AIの論理で動いている
どの論理を選ぶ?|どの論理を使ってる?
曖昧さを受け入れる
- 現代は「曖昧」「不明」「変わるかも」がいっぱい
- 曖昧性・不確実性
- 必ずしも「YESかNOか」だけではない
状況によって使い分けがある
- デジタルの世界ではカチッとした二値論理
- 人間らしさを考えるときはファジィ論理
- 知らないことが多いときは非単調論理
選択基準 | 昔の論理 | 今の論理 |
---|---|---|
「正しいor間違い」だけ? | ○ | ✗(三値論理) |
グレーな考えはある? | ✗ | ○(ファジィ論理) |
あとから考えを変えてもいい? | ✗ | ○(非単調論理) |

答えは、ひとつじゃない

SQLにはSQLの論理
そこを理解しないと、苦しむ
- 自分が考えるとき
- どの論理を選択するかを考える
- 相手を理解するとき
- 相手の論理は、どの論理かを把握する
参考文献
- Joe Celko’s SQL for Smarties: Advanced SQL Programming
- 達人に学ぶ SQL徹底指南書(ミック)
- 達人に学ぶDB設計徹底指南書(ミック)
その他参照源
- 論理学一般
- ファジィ論理
- データベースと三値論理
- 社会における論理の限界

「論理的に考えろ」って言われたら
思い出そう
どの論理?

To be continued…
【Notes for “Three-Valued Logic” Article】
#Structure Intent
This article aims to introduce the concept of three-valued logic by connecting it with how SQL handles NULL
. The flow begins with classical logic principles, moves into the practical limitations encountered in SQL, and finally invites a deeper reflection on what it means to think logically in today’s data-driven world.
#Writing Design
The structure uses short paragraphs, dialogic prompts, and rhetorical questions to maintain engagement. It balances abstract philosophy with practical examples, using casual interjections to soften dense ideas. The transition between philosophy and technical explanation is designed to feel intuitive rather than forced.
#SEO Awareness
Keywords such as “SQL”, “NULL”, “three-valued logic”, and “classical logic” are included in titles and subheadings naturally. The post avoids keyword stuffing, opting instead for a conversational tone that likely captures long-tail queries. Headings formulated as questions may also boost search visibility by matching user queries more directly.
This post captures a rare intersection between logic and code.
A small yet honest attempt to bring depth into the everyday.
2025-05-02
編集後記:
この記事の内容がベストではないかもしれません。
記事一覧
-
Testableは検証可能 プログラミングのテストの意義を深掘る|What is testable is also verifiable. -
メモリとストレージ 【メモリとストレージ】プログラミングに必要な保存と計算の区別 -
戻り値をまとめたい コレクションで戻り値を集めるコレクティングパラメータ|Collecting Parameter -
Optimization最適化 最適化|optimizationを深堀る -
[OpenAI]temperature OpenAIのtemperature|出力方法のパラメータ -
Evaluation評価(答えを出す) プログラミング用語|Evaluationは答えを出すこと