数据库中被视为数据重复的限制在哪里?

时间:2018-08-07 12:05:33

标签: database database-design database-normalization

就数据重复而言,规范化数据时应画什么线?即您是说2个共享相同生日或具有相同轮班时间戳记的员工是数据重复吗?因此应该放在另一个数据表中?

3 个答案:

答案 0 :(得分:1)

出生日期与某人具有完全且非过渡性的依赖关系,这意味着它应存储在与员工保持同一表中,并且符合第三范式(3NF)。

轮班不是员工的属性,这意味着他们是不同的实体,并且与员工实体保持联系。

答案 1 :(得分:0)

对数据进行规范化时没有特定的“限制”,因为为每个关系数据库表提供的主要限制是具有唯一的 parimary键。因此,如果所有其他列都包含相同的数据,但是主键仍然不同,则它是表的不同行。

实际限制有两种形式。一种是编程方法,也可以是系统方法,其中输入哪种数据的限制是从与数据库交互的程序或已为物理管理员分发的已定义脚本中给出的。

其他面向数据库的方法是创建由多列组成的主键。这样,仅当两列的数据都是唯一的时,行才是唯一的。应该注意的是,主键不必与唯一键相同,每个实例都应不同。

答案 2 :(得分:0)

您误解了标准化的作用。

  • 具有相同值的两个属性(即,两个雇员具有相同的生日)不是冗余。
  • 在两个表中具有相同的属性(即两个表具有生日列,因此重复每个员工的生日信息)。

归一化是质量决策,去归一化是性能决策。对于我的学校项目,我的老师建议我至少标准化到3NF。因此这可能是一个很好的指南。