高考申論題
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) 的正規化題型。思考步驟如下:
- 第一正規化 (1NF):消除重複群 (Repeating groups)。原本的 JSON 中,Candidate 資料內包含了
VoteID的陣列 (Array)。在 1NF 中,必須將陣列展開。這會導致 Candidate 的基本資料與投票者資料混雜在一起。
🤖
AI 詳解
AI 專屬家教
【考點分析】 本題測驗將非關聯式 (NoSQL) 的嵌套資料結構 (Nested Key-Value/JSON 格式) 轉換為關聯式資料庫 (RDB),並要求進行正規化直至符合 Boyce-Codd 正規化 (BCNF) 標準。解題核心在於處理陣列的展開 (平坦化) 以及找出並消除非候選鍵對部分屬性的決定權。 【理論/法規依據】
▼ 還有更多解析內容