免費開始練習
高考申論題 107年 [資訊處理] 資料庫應用

第 三 題

請將如下的投票物件陣列 Key-Value 資料,以符合 BCNF 的 RDB 資料表來表示。(15 分) 假設:一個 ID 只能投一票 [{’CandidateID’: ’C01’, ’CandidateName’: ’Mary Wang’, ’Introduction’: ’Rock’, ’Birthday’: ’2000/01/01’, ’Score’: ’2’, ’VoteID’:[ {’ID’: ’A11’, ’Name’: ’A1’}, {’ID’: ’B11’, ’Name’: ’BB’} ] }, {’CandidateID’: ’C02’, ’CandidateName’: ’Jack Lee’, ’Introduction’: ’Blues’, ’Birthday’: ’1999/12/31’, ’Score’: ’2’, ’VoteID’:[ {’ID’: ’A22’, ’Name’: ’A2’}, {’ID’: ’B22’, ’Name’: ’BB’} ] }, {’CandidateID’: ’C03’, ’CandidateName’: ’Lily Su’, ’Introduction’: ’Lyric’, ’Birthday’: ’2001/06/01’, ’Score’: ’3’, ’VoteID’:[ {’ID’: ’A33’, ’Name’: ’A3’}, {’ID’: ’B33’, ’Name’: ’BB’}, {’ID’: ’C33’, ’Name’: ’C3’} ] } ]
📝 此題為申論題

思路引導 VIP

這是一題從 JSON (NoSQL 結構) 轉換回關聯式資料庫 (RDB) 的正規化題型。思考步驟如下:

  1. 第一正規化 (1NF):消除重複群 (Repeating groups)。原本的 JSON 中,Candidate 資料內包含了 VoteID 的陣列 (Array)。在 1NF 中,必須將陣列展開。這會導致 Candidate 的基本資料與投票者資料混雜在一起。
🤖
AI 詳解 AI 專屬家教

【考點分析】 本題測驗將非關聯式 (NoSQL) 的嵌套資料結構 (Nested Key-Value/JSON 格式) 轉換為關聯式資料庫 (RDB),並要求進行正規化直至符合 Boyce-Codd 正規化 (BCNF) 標準。解題核心在於處理陣列的展開 (平坦化) 以及找出並消除非候選鍵對部分屬性的決定權。 【理論/法規依據】

▼ 還有更多解析內容

升級 VIP 解鎖