add note for duality

This commit is contained in:
Jerry Lee
2015-08-31 22:33:47 +08:00
parent ff9d3650e3
commit 50dd2e2f0d

View File

@@ -129,6 +129,15 @@
基于此,你就可以清楚的理解表与事件的二象性: 表支持了静态数据而日志记录了变更。日志的魅力就在于它是变更的_完整_记录它不仅仅包含了表的最终版本的内容
而且可以用于重建任何存在过其它版本。事实上,日志可以看作是表**_每个_**历史状态的一系列备份。
> **_【译注】_** 关于『二象性(`duality`)』:
>
> 二象性(`duality`)是个冷门词汇。我唯一在『光的[波粒二象性(`wave-particle duality`](https://zh.wikipedia.org/zh-cn/%E6%B3%A2%E7%B2%92%E4%BA%8C%E8%B1%A1%E6%80%A7)』一词中有接触,是指光(电磁波)有时会显示出波动性(这时粒子性较不显著),有时又会显示出粒子性(这时波动性较不显著),在不同条件下分别表现出波动或粒子的性质。
> 波动性/粒子性是人们对光的认识、理解或描述方式。类似的,数据表现出了表与事件的二象性,表与事件是数据在不同条件/场景下数据的性质,是对人们对数据的认识、理解或描述方式。
>
> 如果上面描述你觉得『二象』一词还是很难理解,你可以理解成『对偶』、『互通』、『对称』或『可逆』,即数据表 和 数据事件之间可以互相转化。
>
> 多谢[@foreach-break](http://www.cnblogs.com/foreach-break)的解释和评注。
这可能会让你想到源代码的版本控制(`source code version control`)。源码控制和数据库之间有着密切的关系。
版本管理解决了一个和分布式数据系统要解决的很类似的问题 —— 管理分布式的并发的状态变更。
版本管理系统建模的是补丁序列(`the sequence of patches`),实际上这就是日志。