0

我正在學習一個數據庫測試,並且學習指南有一些(很多)數據庫規範化和功能依賴的練習,但是老師沒有做任何類似的練習,所以我想有人幫我理解這個攻擊其他16個問題。確定關係和他們的正常形式的功能依賴關係

1)考慮下面的邏輯模式: 關係product_sales

POS  Zone  Agent Product_Code Qualification Quantity_Sold 
123-A Zone-1 A-1  P1    8    80 
123-A Zone-1 A-1  P1    3    30 
123-A Zone-1 A-2  P2    3    30 
456-B Zona-1 A-3  P1    2    20 
456-B Zone-1 A-3  P3    5    50 
789-C Zone-2 A-4  P4    2    20 

假設: •銷售點分爲區。 •每個銷售點都有代理商。 •每個代理在單個POS中運行。 •同一銷售點的兩個代理商不能銷售相同的產品。 •對於代理商出售的每種產品,都會根據產品和銷售數量分配一個認證資格。

a)指出存在4個函數依賴關係。 b)這種結構的正常形式是什麼?

+0

回答這個問題並不是「幫助你」,而是「做你的工作而不是你」。因此,請發佈四種函數依賴關係的答案,並分析這種關係所處的正常形式,我們將幫助您改善分析和理解。 –

+0

那麼,根據這個理論我讀過,我認爲它可能是,但我有很多疑惑: POS→區, {POS,代理}→區, 代理→POS, {代理,PRODUCT_CODE ,Quantity_Sold}→資質 – franvergara66

+0

@Mekhiah:我添加了'家庭作業'標籤,因爲這是作業類型的帖子,而不是問題:)同意到Catcall – TMS

回答

1

爲了讓你開始發現了4只功能依賴,想想哪些屬性依賴於另一個屬性:

如:請問區取決於POS? (如果是這樣,POS - >區域)或POS取決於區域? (在這種情況下,區域 - > POS)。

你的五條語句中的四條告訴你一些關於屬性(或幾個屬性組合)之間的依賴關係。


至於正常化,有一個(相對)清晰的教程here。短語"the key, the whole key, and nothing but the key"也是記憶第一,第二和第三範式的好方法。

+0

POS被分組爲區域,因此: POS→區域, 每個點銷售代理: {POS,代理}→區域, 每個代理在一個POS中運作: 代理→POS, 對於代理銷售的每種產品,它會根據產品和銷售數量分配一個資格認證: {Agent,Product_code,Quantity_Sold}→認證,我認爲這是一個有效的答案,如果我錯了,您可以糾正我嗎? – franvergara66

+0

第二個(每個銷售點都有代理商)並沒有真正告訴你任何東西... –

+0

tnx,但我仍然不明白如何確定結構的正常形式 – franvergara66

1

您的評論,你說

好了,按照這個理論我讀過,我認爲它可能是,但我有很多 疑惑:POS→區,{POS,代理}→區,代理→代理商,代理商, 產品代碼,數量_售}→認證 -

我認爲這是一個很好的努力。

  1. 我覺得POS-> Zone是正確的。
  2. 我不認爲{POS,Agent}→Zone很正確。如果您看一下示例數據,然後您想一下,我想您會發現Agent-> POS,表示Agent-> Zone。
  3. 我不認爲{Agent,Product_code,Quantity_Sold}→資質是非常正確的。要求規定:「對於代理商銷售的每種產品,都會根據產品和銷售數量分配一個認證。」其中重要的部分是「取決於產品和銷售數量的資質」。資格取決於產品和數量,因此{Product_code,Quantity} - > Qualification。 (要求中沒有任何內容表明,對於來自兩個不同代理商的相同訂單,資格可能不同。)

所以根據你的評論,我認爲你有這些功能依賴到目前爲止

  • POS->區
  • 代理 - > POS
  • 代理 - >區
  • PRODUCT_CODE,數量>資質

但你至少缺少一個具有對確定密鑰有顯着的影響。這是要求。

同一銷售點的兩個代理商不能銷售相同的產品。

您如何表達該需求中隱含的函數依賴關係?