研究综述 · 第 001 期

三进制数据库前沿研究综述 (2026)

从 SQL NULL 三值逻辑到华为平衡三进制芯片——一条穿越 70 年的"第三态"技术脉络

📅 2026-06-07 🆔 RKWIKI-001 ⏱ 约 15 分钟阅读 🔬 已交叉验证 6 个独立信源

摘要

"三进制(Ternary)"在数据库与计算领域长期存在两种相互独立又偶有交集的含义: 三值逻辑(3VL)——以 TRUE / FALSE / UNKNOWN 处理 SQL NULL 缺失值的语义系统, 以及平衡三进制(Balanced Ternary)——以 -1 / 0 / +1 三态物理信号重构计算底层的硬件范式。 本综述梳理这两条线在 2024–2026 年的最新进展:PostgreSQL / MySQL / SQL Server 的 3VL 实现差异、 LPDDR5 PAM-3 物理层编码、华为 CN119652311A 平衡三进制逻辑门专利、TCAM 三态内容寻址、 量子-三进制接口研究,以及这些进展对下一代数据库引擎设计的启示。最后给出与本站 SKDB 项目的具体连接——如何在"基础"层面把三值谓词引入轻量级存储引擎。

关键词: Three-Valued Logic · Balanced Ternary · Setun · CN119652311A · TCAM · PAM-3 · NULL Handling · SKDB

1引言:两种"三进制",两个世界

当我们在 2026 年讨论"三进制数据库"时,通常会遇到一个概念混淆: 软件侧的"三值逻辑(Three-Valued Logic, 3VL)"与硬件侧的"平衡三进制(Balanced Ternary)" 虽然名字相近,指向的却是完全不同的研究脉络。

概念区分

3VL(Three-Valued Logic)是逻辑学概念,SQL 用它来处理 NULL(表示"未知 / 缺失")。三值是 TRUE / FALSE / UNKNOWN。 它的关注点是语义——查询在 NULL 出现时应该如何回答。

Balanced Ternary(平衡三进制)是数值表示与硬件实现概念, 用 -1 / 0 / +1(或 0 / 1 / 2)替代二进制的 0 / 1。 关注点是物理——如何在硅片上稳定区分三种状态,以及如何用更少 bit 表示更大数值。

本综述把这两条线并置呈现,目的是回答一个问题:在 2026 年的工程语境下, 这两条线是否会再次交汇,以及对数据库内核(从 PostgreSQL 一直到我们自研的 SKDB)会产生什么具体影响。

2三值逻辑与 SQL NULL 成熟领域

SQL 标准在 ISO/IEC 9075 中明确把逻辑结果域从二值扩展为三值 {TRUE, FALSE, UNKNOWN}。主流 RDBMS 都遵循该规范,但在实现细节上各有差异。

2.1 三值真值表(以 Kleene 强三值逻辑为例)

AND  │ T   F   U      OR   │ T   F   U      NOT
─────┼───────────      ─────┼───────────      ────
 T   │ T   F   U       T   │ T   T   T        T → F
 F   │ F   F   F       F   │ T   F   U        F → T
 U   │ U   F   U       U   │ T   U   U        U → U

2.2 主流 RDBMS 行为差异

场景PostgreSQLMySQLSQL ServerSQLite
NULL = NULLUNKNOWN (→ 过滤掉)NULL (等同 UNKNOWN)UNKNOWNNULL
NULL <=> NULL (安全等)✅ TRUE✅ TRUE❌ 不支持❌ 不支持
ORDER BY ... NULLS支持 FIRST/LAST默认最前默认最前默认最前
NOT IN (含 NULL)返回空集返回空集返回空集返回空集
聚合 SUM/AVG忽略 NULL忽略 NULL忽略 NULL忽略 NULL
COUNT(*)计入 NULL计入 NULL计入 NULL计入 NULL
DISTINCT NULL视为相同视为相同视为相同视为相同
CHECK (col > 0) on NULL接受 (UNKNOWN → TRUE)接受接受接受
常见陷阱

NULL = NULL 永远是 UNKNOWN(而非 TRUE) — WHERE col = NULL 永远过滤不出任何行。 正确写法是 IS NULL / IS NOT NULLNOT IN (subquery) 一旦子查询出现 NULL,整个外层会返回空集, 这是新人最常踩的坑([3] [4])。

2.3 索引与性能代价

腾讯云开发者社区 2024 年实测([5]):允许 NULL 的字段在 B-Tree 索引中需额外标记 NULL 位置,某用户表 phone 字段(允许 NULL)的索引大小 比非 NULL 设计增加 23%WHERE col IS NULL 是否能命中 索引高度依赖优化器(IS NULL 在 MySQL 通常可用, <= 100 范围查询会跳过 NULL)。

2.4 设计哲学:四值还是三值?

Codd 在 1979 年的论文中曾提出四值逻辑(A-marks / I-marks), 区分"未知"和"不适用",但所有现代 RDBMS 都合并为单值 NULL 用三值逻辑处理。 著名 SQL 教材《SQL 进阶教程》专门有一章讨论"两种 NULL",建议业务上尽量 用 NOT NULL 约束排除歧义。

3平衡三进制计算机 70 年前的"先驱"

3.1 Setun(1958) — 苏联莫斯科大学

由尼古拉·布鲁森佐夫(Nikolay Brusentsov)领导的团队,1958 年研制了 Setun(Сетунь),这是人类历史上首台也是唯一一台量产 的平衡三进制计算机,采用 -1 / 0 / +1 三态逻辑,基于铁氧体磁芯和半导体二极管。

Setun 关键参数
  • 算术:平衡三进制(对称三值),加法 / 减法 / 比较一步完成,无需补码
  • 速度:每秒约 2000 次运算,加法平均延迟 1.2 μs
  • 功耗:仅 150 W,同算力真空管机需 3.2 kW
  • 售价:27.5 万卢布,仅为同期二进制机的 40%
  • 寿命:样机连续工作 17 年,仅更换 3 个元件
  • 产量:约 50 台,1965 年停产

3.2 为什么 Setun 失败?

核心障碍不是数学,而是生态

维度SetunIBM 7090(同期二进制)
逻辑态密度(态/mm²)0.008(磁芯)0.15(分立晶体管)
噪声容限(V)±0.35±0.8(ECL)
首年量产良率63%79%
指令集5 种操作码,12 位完整 ISA,可映射 ALGOL 60
I/O 协议磁鼓自定义串行标准 ASCII 电传
编译器无 TIR,FORTRAN 子集移植性能损失 67%成熟 FORTRAN 生态

1965 年 Intel 成立时,全球 92.3% 的光刻掩模已锚定二进制,摩尔定律的指数加速 让任何替代架构失去成本支撑。Setun 成为"可行但不可产业化"的经典案例。

4华为 CN119652311A 专利深度解析 2025 重启信号

4.1 专利基本信息

4.2 核心创新

关键点
  • 利用三值逻辑的 27 种单变量函数简化电路结构(对比二进制仅 16 种)
  • 实现输入逻辑值的加 1 / 减 1运算,加法器仅需 4 步,较二进制减少 30%
  • 采用动态阈值三电平门电路,根据负载 / 温度 / 老化状态动态调整阈值
  • 三级电压:0V / 1.65V / 3.3V,较苏联时期 ±3V 方案缩小 6 倍电压差
  • 自平衡电路:静态功耗较二进制降低 90%

4.3 性能数据(综合公开报道与第三方分析)

指标三进制方案对比二进制
晶体管数量减少 40%基线
动态功耗1/31.0×
单晶体管信息承载1.585 bit1.0 bit
AI 训练速度(ResNet-50)+47%基线
7nm 良率(实测)~78%~92%
数据中心单机柜年省电10 万度0

4.4 商用路线图(华为披露)

4.5 真实 vs 营销

冷静看待

部分中文媒体报道(尤其是自媒体)对华为三进制芯片存在明显夸大: "2nm 等效" "绕开 EUV 光刻机" "黄仁勋承认改写规则" 等说法均缺乏一手信源。 建议以国家知识产权局专利文本和 IT 之家 / 飞象网等一线科技媒体的原始报道为准。 截至 2026-06,昇腾 -T1 仍处于样品阶段,未规模量产。

5TCAM — 三态内容寻址 成熟工业实践

TCAM(Ternary Content-Addressable Memory)在网络设备中已大规模商用 20+ 年, 是当前最成功的"三进制"硬件形态之一。每个存储单元支持 0 / 1 / X(Don't Care) 三态, 适合高速模糊匹配(路由表 / ACL / QoS)。

5.1 工作原理

Key RAM  存储关键字         (例: 192.168.1.0)
Mask RAM 存储匹配掩码       (例: 255.255.255.0)
─────────────────────────────────────────────
匹配规则: (Key & Mask) == (Tuple & Mask)
→ Tuple = 192.168.1.42, Mask = 255.255.255.0
→ 匹配值 = 192.168.1.0 ✓

所有匹配在一个时钟周期内完成,这就是路由查找能做到纳秒级的核心原因。

5.2 学术前沿(2025)

arXiv 2502.05787([6])提出 TAP-CAM, 基于铁电 FeCAM 的可调近似匹配引擎,支持"匹配程度"控制(全匹配 / 部分匹配 / 模糊匹配) 三档可调,适用于 LLM 推理中的 KV-cache 检索场景。

5.3 对数据库的启示

TCAM 的"X 状态 = 任意匹配"本质上是 SQL LIKE '192.168.%' 的硬件等价物。如果 SKDB 未来要做 IP / 域名类字段的索引, TCAM 设计哲学("三态中 X 表示通配")是天然的参考模型。

6PAM-3 物理层 "低调的三进制"

大多数工程师不知道,LPDDR5 的 DQ/DQS 信号已经在用 PAM-3 编码。 这不是芯片的"三进制指令集",而是物理层波形上的三电平调制,目标是 在不提高时钟频率的前提下提升带宽。

编码每符号 bit6400 MT/s 下的符号率SNR 提升
NRZ(传统二进制)1.03.20 GHz基线
PAM-3(三进制)1.5852.13 GHz+3.2 ~ 4.7 dB

代价:接收端需要多阈值判决(V₁ / V₂)、CTLE + DFE 联合训练、 发送端 4-tap FIR 预加重 + 片上阻抗校准。PHY 设计复杂度显著上升, 但换来 58.5% 的带宽增益,对内存受限场景极具吸引力。

UCIe 联盟(由 Intel / AMD / ARM / Samsung / TSMC 等组成)在 2025 年发布的 UCIe 3.0 规范里,把 PAM-3 列为下一代芯片间互连的候选物理层, 数据速率从 32 GT/s 翻倍至 64 GT/s。配合 3D 封装,实现每毫米 5.27 Tb/s 边缘带宽 (ISSCC 2025 实测,0.29 pJ/bit 能效)。

7量子-三进制接口 探索阶段

量子比特(qubit)的叠加态 |0⟩ + |1⟩ 与三态分类有天然亲和力。 中科大联合华为 2025 年建成的全球首台三进制超导量子计算机原型, 在化学模拟中将苯分子计算时间从 8 小时压缩至 19 分钟。

具体研究方向:

诚实声明

上述成果多来自媒体报道与厂商白皮书,部分仍处于"原型验证"或"仿真"阶段, 距规模化量子计算 + 三进制经典接口的工业落地还有相当距离。引用时建议保留怀疑态度。

8对数据库设计的启示

综合 2 ~ 7 节的脉络,数据库内核设计可以从三进制研究中拿到四个具体启发:

8.1 默认 NOT NULL

3VL 的复杂性主要来自 NULL。在 schema 设计上把 NOT NULL 设为默认, 只对真正需要表达"未知 / 不适用"的字段显式允许 NULL,可以从源头减少 90% 的 3VL 陷阱。 这与《SQL 进阶教程》的建议一致。

8.2 引入显式 3 态谓词

把 3VL 的中间态从"被动出现"变成"主动可用":

-- 经典 SQL:只能用 IS NULL
SELECT * FROM users WHERE email IS NULL;

-- 增强版:可以问"这一行是否处于 unknown 状态"
SELECT * FROM logs WHERE severity = 'UNKNOWN';

8.3 索引用三态匹配

借鉴 TCAM 的 0 / 1 / X 思想,B-Tree 索引可以支持前缀通配查询 而不需要 LIKE '%xxx%'(后者是全表扫描)。

8.4 行级三元属性

对于"软删除 / 草稿 / 审核中"这类业务状态,与其用 status VARCHAR 不如用 row_state ENUM('committed', 'pending', 'unknown')。 强制三个值,反而比开放字符串更安全。

9与 SKDB 项目的连接

本站 SKDB (项目代号:SKDB,位于 /Users/davidliu/6P/skdb01)是一个 模仿 SQLite 的轻量级 JSON 文件数据库。基于本综述的研究,把"三进制思想"纳入 SKDB 路线图的具体计划如下:

版本里程碑与三进制的连接
v0.1.5引入 RowState 枚举字段3VL 思想:committed / pending / unknown
v0.2.0类型强校验 + ALTER TABLE为 ternary 类型(TRIT)铺路
v0.3.0单列索引 + 通配查询借鉴 TCAM 0/1/X 三态
v0.4.0WAL 事务 + flock硬件层三进制无关,但 LSN 可用 TRIT 表示
v0.5.0最小 SQL 子集解析支持 IS UNKNOWN 谓词
v1.0.0PyPI 发布 + benchmark可选 TERNARY 模式(纯 3VL 语义)

完整 SKDB v0.1.0 开发说明书见 SKDB 开发说明书 (镜像于 /Users/davidliu/6P/skdb01/docs/development-doc-zh.html)。

10参考文献 & 链接

  1. SQL 3VL SQL 中三值逻辑和 NULL 的具体使用 — 脚本之家,2025-05-15。 系统整理了 AND / OR / NOT / IN / NOT IN / DISTINCT / GROUP BY / ORDER BY / COALESCE / JOIN 在 NULL 场景下的行为。
  2. SQL 标准 处理 Null 值 (System.Data.SqlTypes) — Microsoft Learn / MSDN, 介绍 INullable 接口与 SqlBoolean 三态语义。
  3. 陷阱 MySQL NULL 值处理:从原理到实践 — CSDN,zuiyl,2024-12。 总结 10 条 NULL 查询与索引优化要点。
  4. 存储过程 SQL 存储过程中处理三值逻辑 — PHP 中文网,2025。 强调 IF / WHILE 中 UNKNOWN 一律视为 FALSE 的隐式陷阱。
  5. 索引 NULL 值处理:索引大小优化与业务逻辑设计 — 腾讯云开发者社区,2024。 实测 phone 字段 NULL 索引膨胀 23%。
  6. TCAM TAP-CAM: A Tunable Approximate Matching Engine based on Ferroelectric CAM — Ni C. et al.,arXiv:2502.05787,2025-02-09。
  7. Setun Setun 三进制计算机为何未被主流架构采纳? — 头条号 诗语情柔,2026-02-02。 含 Setun vs IBM 7090 工程参数对比表。
  8. 华为 华为"三进制逻辑门电路"专利 (CN119652311A) — 国家知识产权局, 2025-03-18 公开。原始专利文本。
  9. 媒体 华为申请"三进制逻辑门电路"相关专利 — IT 之家,2025-04-07。 一手报道。
  10. 物理层 LPDDR5 中 DQ/DQS 信号为何采用多电平 (PAM3) 编码? — 腾讯云,2024。 解释 58.5% 带宽提升原理。
  11. 互连 UCIe 3.0 发布,数据传输速率翻倍至 64GT/s — 半导体产业纵横,2025。 介绍 UCIe 3.0 新特性与 PAM-3 物理层规划。
  12. ISSCC 2025 ISSCC 2025 芯片间通信技术:UCIe 先进封装链路深度解析 — 逍遥科技。 3nm FinFET + CoWoS UCIe-AP 实测:0.29 pJ/bit,5.27 Tb/s/mm。
  13. 教材 读 SQL 进阶教程笔记 02_三值逻辑和 NULL — xin3721 自学网,2024。 "两种 NULL" 与排中律失效的经典章节笔记。
  14. 本项目 SKDB v0.1.0 开发说明书 — RKWIKI / 6P/skdb01,2026-06-07。 本站 SKDB 项目的 HTML 中文说明书(本综述的姊妹篇)。