在进行数据库规范化的时候,我们有一系列的步骤需要遵循。我们把这些步骤称作范式,即Normalisation Form(NF),其中包括第一范式、第二范式、第三范式、第四范式以及第五范式(1NF、2NF、3NF、4NF、5NF)。通常情况下,我们通过第三范式就能够满足大部分的数据库表的规范化,但也有些时候,我们需要更高的NF。
以下就是进行数据库规范化时的步骤:
第一步:首先我们将数据源转化成未规范化范式(UNF)
第二步:将未规范化的数据转化为第一范式(1NF)
第三步:将1NF转化为2NF
第四步:将2NF转化为3NF在完成3NF之后,如果数据源仍然处于未规范化状态,那么我们还需要进行以下几步:
第五步:将3NF转化为BC范式(Boyce-Code Normal Form,BCNF)
第六步:将BCNF转化为4NF
第七步:将4NF转化为5NF
数据库规范化是一个自下而上的数据库设计技术,它通常使用于现有系统当中。
1NF: 属性不可分
第二范式(2NF):符合1NF,并且非主属性完全依赖于码。(更通俗说有主键ID))
第三范式(3NF):符合2NF,并且,消除传递依赖。(3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余)
部分函数依赖是指如果X→Y,并且存在X的一个真子集X0,使得X0→Y,则称Y对X部分函数依赖
完全函数依赖是指指如果X→Y,并且不存在任何一个X的一个真子集X0,使得X0→Y,则称Y对X完全函数依赖。
如果非主属性B函数依赖于主属性A,而且A的任何一个真子集不能->B,则称B完全函数依赖于A;反之,若A的存在一个真子集能->B,则称B完全函数依赖于A。
例:成绩表(学号,课程号,成绩)关系中,
完全函数依赖:(学号,课程号)→ 成绩,学号 -\→ 成绩,课程号 -\→ 成绩,所以(学号,课程号)→ 成绩 是完全函数依赖
In Database Management System, a transitive dependency is a functional dependency which holds by virtue of transitivity. A transitive dependency can occur only in a relation that has three or more attributes. Let A, B, and C designate three distinct attributes (or distinct collections of attributes) in the relation. Suppose all three of the following conditions hold:
Then the functional dependency A → C (which follows from 1 and 3 by the [axiom of transitivity]) is a transitive dependency.
In database normalization, one of the important features of third normal form is that it excludes certain types of transitive dependencies. E.F. Codd , the inventor of the relational model , introduced the concepts of transitive dependence and third normal form in 1971.
A transitive dependency occurs in the following relation:
The functional dependency {Book} → {Author Nationality} appliesthat is, if we know the book, we know the author's nationality. Furthermore:
Transitive dependency occurred because a non-key attribute (Author) was determining another non-key attribute (Author Nationality).
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)