技术文章和资源

技术文章(时间排序)

热门类别

Python PHP MySQL JDBC Linux

第三范式 (3NF)

dbmsdatabasemysql

什么是 3NF?

规范化的第三步是 3NF。

只有当关系符合 2NF 且没有传递函数依赖关系时,表才符合 3NF

让我们看一个例子 −

示例(表违反 3NF)

<MovieListing>

Movie_ID
Listing_ID
Listing_Type
DVD_Price ($)
0089
007
Comedy
100
0090
003
Action
150
0091
007
Comedy
100


上表不属于 3NF,因为它具有传递函数依赖性 −

Movie_ID -> Listing_ID
Listing_ID -> Listing_Type

因此,Movie_ID -> Listing_Type,即传递函数依赖。

示例(转换为 3NF 的表)

要以 3NF 形式形成,您需要拆分表并删除传递函数依赖。

<Movie>

Movie_ID
Listing_ID
DVD_Price ($)
0089
007
100
0090
003
150
0091
007
100

<Listing>

Listing_ID
Listing_Type
007
Comedy
003
Action
007
Comedy

让我们再次看看结果,这是一个符合 3NF 的表 −


相关文章