我上次采访时遇到的一个问题:
您将获得一份员工详细信息数据库,其中包含加入列的ID和日期。该表是1NF吗?
我想知道是否使用date属性,架构是否可以在1NF中。日期的存在会如何改变答案?
答案 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。