ahe*_*ang 17 database database-normalization functional-dependencies
我正在努力寻找一个很好的资源来研究功能依赖和规范化.
任何人都知道我应该在哪里看?我难以区分FD是1NF,2NF还是3NF?
我一直在阅读维基百科,并使用谷歌搜索找到了很好的研究,但找不到任何简单的解释.
也许你们都可以分享你在生活中学习FD和正常化的方式.
Nea*_*alB 34
功能依赖性定义属性之间的功能关系.例如:PersonId功能确定BirthDate(通常写为PersonId -> BirthDate).另一种说法是:对于任何给定的人的实例,只有一个出生日期.注意,反过来可能是也可能不是.很多人可能是在同一天出生的.鉴于BirthDate我们可能会发现许多人PersonId共享该日期.
可以使用多组函数依赖来合成关系(表).包括Boyce Codd Normal Form(BCNF)在内的前3种常规形式的定义是根据给定的一组关系如何表示功能依赖性来陈述的.第四和第五范式涉及多值依赖(另一个鱼的水壶).
以下是一些有关功能依赖性,规范化和数据库设计的免费资源.在学习这些材料时,要准备好锻炼你的大脑和数学技能.
以下是各学术网站的"幻灯片放映"......
以下是学术论文.阅读较重但值得付出努力.
如果你对这个主题非常感兴趣,我建议你拿出现金,找一本关于关系数据库设计主题的好书.例如:CJ Date的数据库系统简介
函数依赖是表的列之间的约束.例如在表格中:
SSN | Name | Date of birth | Address | Phone number ------------------------------------------------------------------------ 123-98-1234 | Cindy Cry | 15-05-1983 | Los Angeles | 123-456-7891 121-45-6145 | John O'Neill | 30-01-1980 | Paris | 568-974-2562 658-78-2369 | John Lannoy | 30-01-1980 | Dallas | 963-258-7413
此处,列SSN(社会安全号码)中的值确定列名称,出生日期,地址和电话号码中的值.这意味着如果我们在SSN列中有两行具有相同值,则列名,出生日期,地址和电话号码中的值将相等.SSN 123-98-1234的人总是被称为Cindy Cry,出生于15-05-1983,依此类推.这种情况称为功能依赖.
函数依赖的概念用于定义第二和第三范式,以及Boyce-Codd范式(BCNF).
要阅读有关功能依赖性和规范化的更多信息,您可以访问当时众所周知的学术着作,如CJ Date的数据库简介,或H. Garcia-Molina,J.Ullman,J.Widom三重奏的任何书籍.
如果您想要一种不太正式的方法,我们将在公司博客上发布一系列关于数据规范化的帖子.