Oracle 標準化是對關係模型的改良與擴展過程。其核心目標是通過系統性地消除非主鍵導致的函數依賴,來優化數據結構。簡單來說,若屬性集合 Y 由屬性集合 X 唯一決定,記作 X → Y。標準化旨在確保數據庫中每一個非鍵屬性都完全、直接依賴於候選鍵,而非依賴於其他非鍵屬性。
表中每一列不可再分,單元格存儲單一值,無重復組。這是關係型數據庫的基本門檻。
在 1NF 基礎上,所有非鍵屬性必須完全依賴於整個候選鍵(而非僅依賴複合鍵的一部分)。若主鍵為單列,滿足 1NF 即自動滿足 2NF。
在 2NF 基礎上,非鍵屬性不得依賴於其他非鍵屬性。經典口訣:「依賴於鍵,依賴於全鍵,僅依賴於鍵」。
處理「主鍵屬性依賴於非鍵屬性」的極端情況。若表中每個決定因素都是候選鍵,則符合 BCNF。實務中,若嚴格遵循「非鍵列廣義定義(非任何候選鍵一部分)」,3NF 通常即等價 BCNF。
針對一行對應多行獨立屬性集的場景(如一員工同時擁有多項技能與多項愛好),將獨立的多值屬性拆分至獨立表。若每個 MVD 皆為函數依賴 (FD),則達 4NF。
進一步分解無損連接的三元或更高階關係。若每個連接依賴皆由候選鍵推導,則達 5NF。學術研究已延伸至更高範式,但工程實踐以 BCNF/4NF 為常見上限。
目標:以最少實體達到最高可行範式。
標準化不是教條,而是構建高質量數據庫的基石工具。理解各範式的數學本質與工程權衡,方能在複雜業務場景下設計出既規範又高效的 Oracle 數據架構。