私は、厳密な数学や証明なしで、5NF を理解するために 2 つのオンライン ソースを使用しています。
- A Simple Guide to Five Normal Forms in Relational Database Theory (Kent 著。これは、CJ Date 自身によってレビューされ、彼の著作の 1 つで承認されているようです)
- 第 5 正規形(ウィキペディアの記事)
ただし、これらの参照のいずれも理解できません。
まず参考文献 #1 (Kent's) を見てみましょう。
「しかし、特定のルールが有効であると仮定してください。エージェントが特定の製品を販売し、その製品を製造している会社を代表している場合、彼はその会社のためにその製品を販売しています。」
そして、元のテーブルを分割します(すべてのテーブル名は私が付けたものです)...
acp(agent, company, product)
-----------------------------
| AGENT | COMPANY | PRODUCT |
|-------+---------+---------|
| Smith | Ford | car |
| Smith | Ford | truck |
| Smith | GM | car |
| Smith | GM | truck |
| Jones | Ford | car |
-----------------------------
... 3 つのテーブルに:
ac(agent, company)
cp(company, product)
ap(agent, product)
------------------- --------------------- -------------------
| AGENT | COMPANY | | COMPANY | PRODUCT | | AGENT | PRODUCT |
|-------+---------| |---------+---------| |-------+---------|
| Smith | Ford | | Ford | car | | Smith | car |
| Smith | GM | | Ford | truck | | Smith | truck |
| Jones | Ford | | GM | car | | Jones | car |
------------------- | GM | truck | -------------------
---------------------
しかし、上記の規則の英語の意味を理解しているかどうかさえわかりません。上記のルールについての私の理解では、その'then'句は完全に冗長です! 為に、
エージェントが商品を販売している場合
と
このエージェントがその製品を製造している会社を代表している場合、
次に、明らかに、このエージェントはその会社のためにその製品を販売しています。
では、このステートメントの「ルール」はどこにあるのでしょうか? 実際、それは私には非声明のようです!
ac、cp、ap の 3 つの表から逆算してみると、実際のルールは次のように思われます。すべての製品を販売できない可能性があります。」
しかし、元のテーブル acp はすでにこのルールを取得していました。ですから、5NF の説明では、ここで何が起こっているのかわかりません。
参考文献 #2 (ウィキペディア) を見てみましょう。
ただし、次のルールが適用されるとします。「巡回セールスマンは、特定のブランドと特定の製品タイプをレパートリーに持っています。ブランド B1 とブランド B2 が彼のレパートリーにあり、製品タイプ P が彼のレパートリーにある場合、 (ブランド B1 とブランド B2 の両方が製品タイプ P であると仮定すると、巡回セールスマンは、ブランド B1 によって製造された製品タイプ P とブランド B2 によって製造された製品タイプ P の製品を提供しなければなりません。」
繰り返しになりますが、このルールの英語の意味だけに頼ってみると、
セールスマンがブランド B1 と B2 を持っていて、製品 P を持っている場合、
と
IF製品 P は、ブランド B1 と B2 の両方によって製造されています。
THEN、いったいなぜ彼は、この新しい ' の前でも十分に機能していた元の 3 列のテーブル 'sbp(salesman, brand, product)' と同じように、ブランド B1 と B2 の製品 P を提供できないのでしょうか?ルール」が施行された?
誰か明確にしてくれませんか?