高考申論題
105年
[資訊處理] 資料庫應用
第 一 題
📖 題組:
MongoDB 是目前使用愈來愈普遍的 NoSQL 資料庫管理系統,NoSQL 的主要特色包括 Schemaless, eventual consistency 和 horizontal scaling
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),精準點出這三個特性如何解決大數據時代的痛點。
小題 (二)
假設你有一個 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 語法即可得出答案。