Sid*_*qui 7 normalization interview-question
我已经阅读了 1NF 的定义,即“如果关系的每个属性都是原子的”。请告诉我什么是原子。
Mik*_*ll' 15
1NF 要求每个关系中每个元组中的每个属性位置都包含一个适当类型的单个值。类型可以是任意复杂的。事实上,类型可以是关系。(CJ Date 的书深入数据库:从业者的关系理论以一种很容易理解的方式处理这个问题。)
“原子”从未真正意味着“不可分割”,这就是该术语最终失宠的原因。粗略地说,“原子”意味着如果一个值有组成部分,dbms 要么忽略这些部分的存在,要么提供操作它们的函数。例如,时间戳值具有这些部分。
这种值显然是可分的,所有数据库管理系统都提供操作这些部分的功能。它们还提供了一种选择时间戳作为单个值的方法。(当然,这是。)
“原子”指的是 Codd 1969 年的原始概念,即关系中每个元组中的每个属性都应该由单个值组成,并且不允许像 CODASYL 模型这样的数据库支持的那种多值结构。
在现代 SQL DBMS 中,原子性并不是真正的问题。SQL 表不允许多值列并且值始终是“原子的”。