數據庫應用-NF^2 Modell(Non First Normal Form)

關係數據模型一方面很簡單,直觀,但另一方面它的表現力也因此受到限制。
它的屬性與值之間不具備結構化關係。//是指不能屬性嵌套嗎??

1NF(erst Normalform)

1NF的要求是:關係的所有屬性都是原子屬性(Alle Attributwerte atomar)

NF2Modell

NF2modell 就是嵌套關係模型(geschachtelte Relationen)
嵌套關係剛好與1NF規則相反,他包含以下兩層意思:
1.一個屬性可以是另外一個屬性的一員
2.屬性值本身可以是另外一個關係
//只會輸入一般圖表,含嵌套屬性的圖表不知道怎麼輸入,就先跳了
NF2Modell 有更強的表現力,但相對的它的定義的難度也同時增加了

Schema

Schema就是一連串的屬性(Schema ist Liste von Attributen)
每一個屬性都有各自的值域
元組(Tupel)就是用來表示值的向量
R=(A1,...,An)AiU,1in:dom(R)=dom(A1)...dom(An)
R=(A1,...,An,R1,...,Rn):
dom(R)=dom(A1)...dom(An)2dom(R1)...2dom(Rn) //???
//U是何物至今未明??
問題:順序決定值的意義
比如有兩個R
R1=(Vorname,Nachname)
R2=(Nachname,Vorname)
當我們拿到一個Tupel(Stephan,Heinrich)時並不能很好的區分出姓和名
換句話說,我們能夠把Tupel寫得很模糊

Algebra of NF2

包括兩部分:
1.與relation algebra相似的operation
//雖然作用相同,但在具體實施上差別還是很大的,比如projection一個內部屬性
2.一些特有的operation,如:Nest,Unnest
nest就是生成子屬性,比如nB=(C,D)(r) 就表示把C和D作爲B的子屬性

A11122C11122D34433E33434

但應注意當其他屬性值相同的項會發生合併,例如上表nest操作後B的一個值是(1,3,1,4)而不是(1,3)。換句話當使用操作:σB=(1,4)(r1) 時,不能獲得第一個項
另外nest的順序不同,得到的結果也可能不同
unnest與nest的作用剛好相反,但是並非所有nest都是可逆的,比如
A11BC111D344

當他使用unnest時因爲重複最終結果只剩下兩項
我們把上面情況歸爲非PNF(Partitioned Normal Form)
從上面我們也可以知道光看Schema得話是沒法分辨一個Relation是不是PNF

PNF(Partitioned Normal Form)

定義PNF:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章