免費開始練習
moea_joint_essay 109年 [資訊] 資訊管理、程式設計

第 二 題

📖 題組:
考慮某公司的客戶訂單資料如下。(共 2 題,共 15 分) 某公司[客戶訂單資料] 訂單 ID: 123 客戶 ID: 025 客戶名稱: ABC 公司 | 品號 | 品名 | 數量 | 折扣比率 | 單價 | 複價 | 生產部門 | 生產者 | 品管者 | |---|---|---|---|---|---|---|---|---| | P01 | 豆腐 | 10 | 0 % | 50 | 500 | 工一部 | A | D | | P02 | 豆干 | 15 | 50 % | 20 | 150 | 工二部 | B | F | 訂單 ID: 124 客戶 ID: 058 客戶名稱: Huang | 品號 | 品名 | 數量 | 折扣比率 | 單價 | 複價 | 生產部門 | 生產者 | 品管者 | |---|---|---|---|---|---|---|---|---| | P01 | 豆腐 | 5 | 0 % | 50 | 250 | 工一部 | A | D | | P02 | 豆干 | 10 | 50 % | 20 | 100 | 工二部 | B | F | | P08 | 豆乳 | 1 | 10 % | 100 | 90 | 工一部 | G | D | *附註:複價 = 數量 × 單價 × (1 - 折扣比率)
📝 此題為申論題,共 2 小題

小題 (二)

近來有專家提出反正規化(De-normalization)方案,請問反正規化的意義及作法為何?(5 分)

思路引導 VIP

解釋反正規化是為了提升查詢效能而刻意犧牲正規化的一種設計方法,藉由增加冗餘資料來減少表格合併(Join)的負擔。

🤖
AI 詳解
AI 專屬家教

意義: 反正規化(De-normalization)是在高度正規化的資料庫設計上,為了「提升資料讀取與查詢的效能」,刻意違反正規化原則,將已被拆分的資料表重新合併或加入冗餘資料的過程。此舉能減少複雜的 Table Join 運作,降低系統運算負擔,但會犧牲資料一致性與增加更新成本。 作法

小題 (一)

請依設計關聯式資料庫的標準,進行第一正規化(1NF)、第二正規化(2NF)、及第三正規化(3NF),並寫出每次正規化的結果(含資料表名稱、欄位名稱、主鍵、外來鍵等項)。(10 分)

思路引導 VIP

首先將未正規化的巢狀或重複群組展開,使每個屬性為單一值(1NF);接著消除部分相依(2NF),將與主鍵部分欄位相依的屬性獨立成表;最後消除遞移相依(3NF),將非鍵值屬性之間的相依關係拆分,並可選擇移除衍生的計算欄位(複價)。

🤖
AI 詳解
AI 專屬家教
  1. 第一正規化 (1NF) 消除重複群組,確保每個欄位都是基底值(不可再分割)。
  • 訂單明細表: {<u>訂單 ID, 品號</u>, 客戶 ID, 客戶名稱, 品名, 數量, 折扣比率, 單價, 複價, 生產部門, 生產者, 品管者}

🏷️ 相關主題

關聯式資料庫設計、SQL查詢與資料正規化
查看更多「[資訊] 資訊管理、程式設計」的主題分類考古題