第五范式

关系数据库设计的第五范式 (5NF)，又称投影-连接范式（project-join normal form，PJ/NF）是数据库规范化的一个级别，以去除多个关系之间的语义相关。一张表满足第五范式当且仅当它的每个可由候选键推出。

R于 *{A, B, … Z}，定义为A, B, … Z都是R的属性的子集，且A, B, … Z的连接（join）等于R。R上的 *{A, B, … Z}可由R的候选键推出，当且仅当A, B, …, Z的每一个都包含了R的超键。

表T满足第五范式意味着它不能被无损分解为几个更小的表。分解后的每个小表与表T拥有相同的候选键的情形被排除不予考虑（作为平凡情形）。

第五范式于1979年由在会议论文Normal forms and relational database operators中首次提出。

例子
考虑下例：

 + Traveling Salesman Product Availability By Brand（上门推销员的商品品牌与类型）
   Traveling Salesman（上门推销员）
  Brand（品牌）
  Product Type（产品类型）
   Jack Schneider
  Acme
  Vacuum Cleaner
   Jack Schneider 
  Acme 
  Breadbox
   Mary Jones
  Robusto
  Pruning Shears
   Mary Jones
  Robusto
  Vacuum Cleaner
   Mary Jones
  Robusto
  Breadbox
   Mary Jones
  Robusto
  Umbrella Stand
   Louis Ferguson
  Robusto
  Vacuum Cleaner
   Louis Ferguson
  Robusto
  Telescope
   Louis Ferguson
  Acme
  Vacuum Cleaner
   Louis Ferguson
  Acme
  Lava Lamp
   Louis Ferguson
  Nimbus
  Tie Rack

三列共同组成了主键。该表也满足第四范式，因为不存在多值依赖：没有列（显然该列自身不是候选键）可由其它两列确定。 

如果没有任何规则限制上门推销员、品牌、产品类型的组合，那么上述三个属性的表对描述这些数据是必须的。但是，如果假定存在下述规则：如果上门推销员经营某个品牌与某个产品类型，那么该推销员必须经营该品牌制造的该产品类型的商品。这种情形下，可以把上表分为三个表：

 + Product Types By Traveling Salesman（上门推销员的产品类型）
   Traveling Salesman（上门推销员）
  Product Type（产品类型）
   Jack Schneider
  Vacuum Cleaner
   Jack Schneider
  Breadbox
   Mary Jones
  Pruning Shears
   Mary Jones
  Vacuum Cleaner
   Mary Jones
  Breadbox
   Mary Jones
  Umbrella Stand
   Louis Ferguson
  Telescope
   Louis Ferguson
  Vacuum Cleaner
   Louis Ferguson
  Lava Lamp
   Louis Ferguson
  Tie Rack

 + Brands By Traveling Salesman（上门推销员的品牌）
   Traveling Salesman（上门推销员） 
  Brand（品牌）
   Jack Schneider
  Acme
   Mary Jones
  Robusto
   Louis Ferguson
  Robusto
   Louis Ferguson
  Acme
   Louis Ferguson
  Nimbus
 + Product Types By Brand（品牌生产的产品类型）
   Brand（品牌）
  Product Type（产品类型）
   Acme
  Vacuum Cleaner
   Acme
  Breadbox
   Acme
  Lava Lamp
   Robusto
  Pruning Shears
   Robusto
  Vacuum Cleaner
   Robusto
  Breadbox
   Robusto
  Umbrella Stand
   Robusto
  Telescope
   Nimbus
  Tie Rack

在这种情形下，上门推销员Louis Ferguson不可能拒绝销售由ACME制造的真空吸尘器（Vacuum Cleaner），如果他推销Acme的其它类型的产品也推销其它品牌的真空吸尘器。

注意这种方式是如何去除数据冗余。假设经营与真空吸尘器的上门推销员Jack Schneider开始新增销售Robusto品牌。在最初的那张表中，需要增加两行： (<Jack Schneider, Robusto, Breadboxes>, <Jack Schneider, Robusto, Vacuum Cleaners>)。而在分解后的三张表的设计中，仅需要在表“Brands By Traveling Salesman”中增加一行：(<Jack Schneider, Robusto>)。

用途
仅在很少情况下满足第四范式的表可能会不满足第五范式。这发生在复杂的真实世界的约束限定了属性的有效组合，但不能在满足第四范式的表的结构中体现出来。这种表如果不能规范化为第五范式，就需要应用程序通过插入、修改、删除等操作来维护表中的数据的逻辑一致性。相反，满足第五范式的表的设计排除了这种不一致性。

参见

参考文献

进一步阅读

Kent, W. (1983) A Simple Guide to Five Normal Forms in Relational Database Theory , Communications of the ACM, vol. 26, pp. 120–125
Date, C.J., & Darwen, H., & Pascal, F. Database Debunkings 

5NF