我在上次面试中遇到的一个问题:
您将获得一个包含id和加入日期列的员工详细信息数据库。这张桌子在1楼吗?
我想知道如果有date属性,模式是否可以在1NF中。日期的存在将如何改变答案?
这个问题的整个想法是欺骗你让你认为日期不是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中的给定表格,我们将电话号码列分为两列。
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
与第一个表格不同,只要您在一列中只存储一个日期,您的表格将为1NF