第五章 關聯式資料庫的理論基礎
學習目標 認識關聯式資料庫系統的理論基礎。 了解關聯式資料庫的標準化格式。 了解標準化格式與資料庫設計之間的關係。
從疑惑中開始學習 標準化格式(normal forms)是什麼? 關聯式的理論(relational theory)與資料庫的設計有什麼關係 ?
表格的六大特徵 欄位數值必須是單純的(atomic),無法再分割。 欄位在表格中要有唯一的名稱。 同一欄位的數值要有相同的類型(Type)與寬度(Width)。 欄位在表格中的次序沒有特定的意義。 記錄在表格中的次序沒有特定的意義。 不可以有重複的記錄。
訂單基本資料表格 訂單號碼 顧客編號 項目編號 數量 價格 1 010 2 10 3 5 020 4
表格設計上的缺陷所造成的不良特性
欄位的相似關係 A B C D E 001 03/10/85 吐司 30 45 002 02/11/85 餅乾 15 21 003 04/01/85 牛奶 50 004 糖果 20 36 005 02/10/85 22 006 05/09/85 40 表格中有C→D的欄位相依關係,因為只要知道欄位C的值,就能決定欄位D的值。只要C是吐司,D必定是30,若C是牛奶,則D必是50;我們可以把D看成是物品C的價格。 欄位A與欄位B若有存在欄位相依關係,而此關係為A→B時,則任何記錄的欄位A的值將只有唯一的欄位B的值與其對應,此關係也可表示成「A determines B」。
欄位的相依關係
關聯式運算 聯集(Union) 差集(Set difference) 內積(Cartesian product) 選行(Projection) 選列(Selection)
聯集運算(Union Operation)
差集運算
內積運算
選列與選行的運算
自然連結運算(Step 1)
自然連結運算(Step 2)
標準化理論 Codd在西元1972年提出 1 NF 2 NF 3 NF BCNF(Boyce-Codd normal form)是一種條件更嚴格的3 NF 後來出現的4 NF與5 NF是以multivalued dependency與join dependency的觀念為基礎而發展出來的。
標準化理論的實例
atomic vs. non-atomic
分解後的表格 訂單號碼 顧客編號 項目編號 數量 1 010 2 10 5 3 020 價格 4 訂單資料表格 : X 貨品資料表格 : Y
資料關係的圖示
表格P滿足2NP的分解方式
表格P滿足3NP的分解方式
關聯式資料庫查詢系統
資料查詢的另類觀點