我目前在系统分析类,我想更好地理解使用规范化。对于3NF,如果我在包含学生ID,姓名,电话号码和专业的表上工作。我只能使用学生证和专业证书,因为学生姓名和电话号码都可以通过ID找到。我理解这个权利吗?了解3NF
Q
了解3NF
1
A
回答
5
让我们从这个开始。 。 。
student_id name phone major
--
1 Darcy Sailer 000-111-2345 Mathematics
2 Lonnie Seman 000-111-3456 Fine Art
3 Mathew Bradburn 000-112-9086 Education
4 Edwina Loflin 000-111-2345 Psychology
5 Clinton Rosebrook 000-111-1000 Chemistry
6 Lonnie Seman 000-113-2975 Chemistry
唯一的候选键是student_id。这意味着名称不是唯一的,手机不是唯一的,专业不是唯一的。
为了使表格在3NF中,它必须满足这些要求。
- 它在2NF。
- 每个非素数属性都直接依赖于每个候选键 。 (无传递依赖)
此表格在2NF。 (证明留给读者。)有三个非素数属性;所有都直接依赖唯一的候选键。这意味着,
- 名称没有确定手机,
- 名称没有确定专业,
- 手机没有确定专业,
- 手机没有确定名称,
- 大不确定名称,并且
- 主要不确定电话。
所以它在3NF。
在标识两列之间的依赖关系时,您试图回答以下问题:“给定第一列的一个值时,是否总是为第二列找到一个且只有一个值?例如,要确定“name”和“major”之间是否存在依赖关系,可以问“给定'name'的一个值,我是否总是找到'major'的唯一一个值? “答案是“否”。鉴于'朗尼塞曼'的名字,你会发现两个专业 - 美术和化学。
这并不重要,在现实世界中,一个人可以有多个电话号码和多个专业。选择每个人只记录一个电话号码还是每个人只有一个主要电话号码是数据库设计的重要组成部分,但它与规范化无关。
这并不重要,在现实世界中,你很少从具有代表性的样本数据开始。数据库设计人员应该知道的东西,如
- 两个人可以有相同的名称。
- 两个人可以有相同的电话号码。
- 两个人可以有相同的专业。
- 一个人可以有两个或更多的电话号码。
- 一个人可以有两个专业。
相关问题
- 1. 试图了解数据库规范化 - 3NF
- 2. 如何将模式分解为3NF?
- 3. 正常化3NF
- 4. 正常化3NF
- 5. sql 3NF标准化
- 6. 归一化为3NF?
- 7. 3NF中的关系?
- 8. 规范化 - SQL - 3NF
- 9. 规范化和3NF
- 10. 标准化 - 2NF与3NF
- 11. 2NF和3NF的关系
- 12. 规范化3NF和BCNF
- 13. 是我的表在3NF
- 14. 实现SQL 3NF规范化
- 15. 将关系分解为3NF,如何区分关系?
- 16. 了解
- 17. 3NF的定义是否相等?
- 18. 来自3NF的星型模式设计
- 19. 数据库规范化(1NF到3NF)
- 20. 将表格规范化为3NF
- 21. 3NF数据库规范化(Erwin)
- 22. 3NF和关系,函数依赖
- 23. 数据库规范化(1NF 2NF 3NF)
- 24. 3NF中的循环依赖关系
- 25. 关联数据库设计中的3NF
- 26. 了解JWT
- 27. 了解#includes C++
- 28. 了解JNDI
- 29. 了解类图
- 30. 了解类
Waht你的意思是'使用'?也可以仅使用学生ID找到专业。 – idstam
为什么学生证不能找到Major? – Jan
我在想,因为有不同的专业,但一个学生拥有一个ID – Thomas