第一正規化
第一正規化規定屬性域只能包含原子的(簡單的,不可分的)值,並且元組中任一屬性的值必須是乙個來自該屬性域的單個的值。因此,對於關係的乙個單個的元組,1nf不允許屬性值是乙個值集,乙個元組值或者兩者的組合。
1.如果屬性值是乙個值集,則有三種方法使這樣乙個關係達到1nf
1).移去使該模式違背1nf的屬性。並將其與該關係的主碼放在乙個單獨的關係中。這種技術是將乙個非1nf關係分解成兩個1nf。
2).擴充套件碼,使得具有值集的屬性的所有值在屬性中都有乙個單獨的元組。這種解決方案的缺點是引入了冗餘資料。
3).如果知道屬性值的最大個數,就可以將該屬性分解成多個原子屬性。這種情況下,如果大部分的元組都不是具有所有的屬性,會引入太多的null值。另外,這些位置值之間的順序還可能會進一步引入一種寄生語義,而這是我們原本所不希望的。對此屬性的查詢將會變的更加困難。
以上三種解決方案,通常認為第一種最好,因為它不存在冗餘,十分通用,並且對值的最大個數也沒有限制。
此外,第一正規化也不允許他們自身組合的多值屬性,這種屬性稱為巢狀關係,因為每個元組內都會嵌有乙個關係。
為了將其規範化為1nf,要把巢狀關係的屬性移到乙個新的關係中,並且將主碼也複製到這新關係中,這樣,在這個新關係的主碼是部分碼與原關係的主碼的組合。
這個過程可以遞迴地應用於有多層巢狀的關係,以便將該關係解除巢狀,成為一組1nf關係。
python介面定義規範化 對介面規範的一些思考
起因 團隊中如果不同的專案,不同的人員可能在介面設計上有許多不統一的地方。導致了開發效率低下的問題。由於我在工作中遇到了,所以整理下來,說一說自己的一些看法。怎樣進行介面規範化 因為每個人對自己使用語言有不同的理解 http協議熟悉程度不同 思維邏輯 開發經驗不一樣。對介面規範有想法的人應該提出自己...
規範化理論 函式依賴 正規化 簡單粗暴
一.為什麼要設計正規化?避免插入,刪除,更新,冗餘異常 二 基本概念 實體 一張資料庫表,比如 學生表,學生就是乙個實體 屬性 一張表 實體 會有很多屬性,比如乙個學生實體會有學號,班級等屬性 候選碼 可以決定其他屬性的集合,比如a b a c,c d 那麼a,b,c就是候選碼 主碼 主關鍵字 候選...
關聯式資料庫規範化理論 正規化
此篇博文是我的第一篇文章,在複習資料庫正規化部分的時候做的筆記。正規化指 規範化的關係模式,由於規範程度不同,產生了不同的正規化 乙個低一級的關係正規化通過模式分解可以轉換成若干高一級正規化的關係模式的集合。這個過程稱為關係模式的規範化。關係模式規範化的必要性 關係模式規範化,使之達到較高的正規化是...