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

第 一 題

📖 題組:
MongoDB 是目前使用愈來愈普遍的 NoSQL 資料庫管理系統,NoSQL 的主要特色包括 Schemaless, eventual consistency 和 horizontal scaling
📝 此題為申論題,共 2 小題

小題 (一)

請說明 Schemaless, eventual consistency 和 horizontal scaling 的意義。(10 分)

思路引導 VIP

本題考查 NoSQL 的核心設計哲學。解題時應從關聯式資料庫(RDBMS)的對立面出發:Schemaless 對比嚴格的 Table 綱要,Eventual Consistency 對比 ACID 強一致性,Horizontal Scaling 對比單機硬體升級的垂直擴展(Vertical Scaling),精準點出這三個特性如何解決大數據時代的痛點。

🤖
AI 詳解
AI 專屬家教
  1. Schemaless(無綱要/自由綱要) 指資料庫在寫入資料前,不需要預先定義固定的資料表結構(如欄位名稱、資料型態或長度)。以 MongoDB 為例,同一個集合(Collection)內的每一筆文件(Document)可以擁有完全不同的欄位組合。此特性賦予開發極大的彈性,非常適合處理結構經常變動、半結構化或非結構化的資料,利於敏捷開發。
  2. Eventual Consistency(最終一致性)

小題 (二)

假設你有一個 order(訂單)的 collection,包含四個欄位:cust_id(顧客 id), product(產品), amount(金額), type(產品型態),以下 Mongo 查詢句可用來找出衣服(clothing)類產品總購買金額超過 10,000 元的顧客之顧客 id 和衣服類產品購買總金額: db.orders.aggregate( [ { $match: {type: “clothing”}} { $group: { _id: “$cust_id”, total: { $sum: “$amount”} } } { $match: {total: { $gt: 10000}}} ]) 請仿以上 MongoDB 語法,找出購買金額超過 1,000 元的訂單中,各類產品的總購買金額。(10 分)

思路引導 VIP

看到此題,首先釐清聚合管道(Pipeline)的先後順序:第一步是「篩選($match)」出購買金額大於 1,000 元的訂單,第二步是依照產品型態「分組計算($group)」總金額。對照題目給定的欄位名稱(amount, type)套入 MongoDB 語法即可得出答案。

🤖
AI 詳解
AI 專屬家教

【解題思路】利用 MongoDB 的 Aggregation Pipeline,依序執行條件篩選與分組加總。 【解答】

升級 VIP 解鎖