一、請為如下的選舉民調資訊管理系統設計符合 BCNF 且考量 OO(物件導向) 的 EER data model,model 中請註明合適的 primary/foreign/candidate keys, 資料表間的關聯亦請適當地說明彼此間的 maximum/minimum cardinality。 (30 分)
註:不需要用到的資料不必列入 ‧系統記錄多份不同選舉的民調資料,每份民調會記錄民調的主題、調 查進行的期間(開始、結束的日期)、調查的項目、受訪人姓名、電 話、年齡、性別、受訪人對調查項目的選擇(單選或不作選擇) ‧系統可以查詢特定日期,有那些民調在進行中 ‧系統可以查詢特定民調,候選人的姓名、性別、年齡、政見、政黨別、 學歷、經歷 ‧系統可以依受訪者的性別、年齡統計分析不同黨派、年齡、性別候選 人的得票率 代號:20130 頁次:3-2
詳解 (共 1 筆)
詳解
下圖為上述實體和關係的 EER 模型:
+--------------------+ +--------------------+
| Poll |<------1| Question |
|--------------------| |--------------------|
| PollID (PK) | | QuestionID (PK) |
| Title | | PollID (FK) |
| StartDate | | QuestionText |
| EndDate | +--------------------+
+--------------------+
| Poll |<------1| Question |
|--------------------| |--------------------|
| PollID (PK) | | QuestionID (PK) |
| Title | | PollID (FK) |
| StartDate | | QuestionText |
| EndDate | +--------------------+
+--------------------+
+--------------------+ +--------------------+
| Respondent |<------1| Response |
|--------------------| |--------------------|
| RespondentID (PK) | | ResponseID (PK) |
| Name | | RespondentID (FK) |
| Phone | | QuestionID (FK) |
| Age | | Choice |
| Gender | +--------------------+
+--------------------+
| Respondent |<------1| Response |
|--------------------| |--------------------|
| RespondentID (PK) | | ResponseID (PK) |
| Name | | RespondentID (FK) |
| Phone | | QuestionID (FK) |
| Age | | Choice |
| Gender | +--------------------+
+--------------------+
+--------------------+ +--------------------+
| Candidate |<------1| Poll |
|--------------------| |--------------------|
| CandidateID (PK) | | PollID (PK) |
| PollID (FK) | | Title |
| Name | | StartDate |
| Gender | | EndDate |
| Age | +--------------------+
| PoliticalView |
| Party |
| Education |
| Experience |
+--------------------+
| Candidate |<------1| Poll |
|--------------------| |--------------------|
| CandidateID (PK) | | PollID (PK) |
| PollID (FK) | | Title |
| Name | | StartDate |
| Gender | | EndDate |
| Age | +--------------------+
| PoliticalView |
| Party |
| Education |
| Experience |
+--------------------+
關聯說明
- Poll - Question:一個民調 (Poll) 會包含多個調查項目 (Question)。
- Question - Response:一個調查項目 (Question) 會收到多個受訪人的回應 (Response)。
- Respondent - Response:一個受訪人 (Respondent) 可以對多個調查項目做出回應 (Response)。
- Poll - Candidate:一個民調 (Poll) 可以有多個候選人 (Candidate)。
決策儲存策略的影響
是否儲存衍生屬性
在這個模型中,衍生屬性可以是從數據庫中其他表推導出來的,例如不同年齡段或性別的候選人的得票率。以下是考慮衍生屬性是否儲存的影響:
- 不儲存:每次查詢時動態計算,節省存儲空間,但可能增加查詢時間和計算負載。
- 儲存:預計算並儲存在表中,減少查詢時間,但需要在基礎數據變更時同步更新。
總結
這個 EER 模型遵循 BCNF,確保資料庫的正規化,避免冗餘和異常。它也考慮了物件導向的設計原則,便於未來的擴展和維護。通過清晰的實體和關係定義,確保資料庫的穩定性和一致性。