关系数据库设计的**第五范式** (**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年由Ronald Fagin（英语：）在会议论文*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>)。

### 用途

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

参见
--

* 属性-值系统（英语：）

参考文献
----

1. ↑   (PDF).  [2017-02-25]. （原始内容 (PDF)存档于2016-12-03）.
2. ↑  S. Krishna.. 1991. ISBN 9810206208. The fifth normal form was introduced by Fagin

进一步阅读
-----

* 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 （页面存档备份，存于）*
* Darwen, H.; Date, C. J.; Fagin, R..  (PDF). 2012: 114–126  [2017-02-25]. ISBN 9781450307918. doi:10.1145/2274576.2274589. （原始内容 (PDF)存档于2012-07-12）.


|  |  |  |  |
| --- | --- | --- | --- |
| 

| * 
* 论
* 编
 |
| --- |
|  |
|  |  |  |  |  |  |  | （英语：） |

 |