Db架构中的日期属性

时间:2014-09-04 18:52:26

标签: database database-normalization

我上次采访时遇到的一个问题:

  

您将获得一份员工详细信息数据库,其中包含加入列的ID和日期。该表是1NF吗?

我想知道是否使用date属性,架构是否可以在1NF中。日期的存在会如何改变答案?

1 个答案:

答案 0 :(得分:0)

问题的整个想法是欺骗你 认为日期不是1NF列。

1NF指定所有属性都存储原子值。 Codd将原子值定义为“不能被DBMS分解为更小的部分”[7]意味着列不应该被分成具有多种数据的部分其中一部分对DBMS的意义取决于同一列的另一部分。

简单地说,单个元组的属性中不应该有2个值。

此表不满足1NF。因为列中有多个电话号码。

Customer ID     First Name  Surname     Telephone Number
------------------------------------------------------------------------------
123             Pooja       Singh       555-861-2025, 192-122-1111
456             San         Zhang       (555) 403-1659 Ext. 53; 182-929-2929
789             John        Doe         555-808-9633

要在1NF中制作给定的表格,我们将电话号码栏分成2个单独的列。

Customer ID     First Name  Surname     Telephone Number1   Telephone Number2
---------------------------------------------------------------------------------
123             Pooja       Singh        555-861-2025       192-122-1111
456             San         Zhang        (555) 403-1659     Ext. 53 182-929-2929
789             John        Doe          555-808-9633   

与第一张表不同,只要您只存储1个日期,在一列中,您的表格将为1NF。