摘要:為幫助考生估分,希賽小編在考后為大家整理了2021年系統(tǒng)架構設計師下午真題及答案解析(四),供大家參考。
試題四(共25分)
閱讀以下關于數據庫設計的敘述,在答題紙上回答問題1至問題3。
[說明]
某醫(yī)藥銷售企業(yè)因業(yè)務發(fā)展,需要建立線上藥品銷售系統(tǒng),為用戶提供便捷的互聯網藥品銷售服務、該系統(tǒng)除了常規(guī)藥品展示、訂單、用戶交流與反饋功能外,還需要提供當前熱銷產品排名、評價分類管理等功能。
通過對需求的分析,在數據管理上初步決定采用關系數據庫(MySQL)和數據庫緩存(Redis) 的混合架構實
現。
經過規(guī)范化設計之后,該系統(tǒng)的部分數據庫表結構如下所示。
供應商(供應商ID,供應商名稱,聯系方式,供應商地址) ;
藥品(藥品ID,藥品名稱,藥品型號,藥品價格,供應商ID) ;
藥品庫存(藥品ID,當前庫存數量) ;
訂單(訂單號碼,藥品ID,供應商ID,藥品數量,訂單金額) ;
[問題1] (9分)
在系統(tǒng)初步運行后,發(fā)現系統(tǒng)數據訪問性能較差。經過分析,劉工認為原來數據庫規(guī)范化設計后,關系表過于細分,造成了大量的多表關聯查詢,影響了性能。例如當用戶查詢商品信息時,需要同時顯示該藥品的信息、供應商的信息、當前庫存等信息。
為此,劉工認為可以采用反規(guī)范化設計來改造藥品關系的結構,以提高查詢性能。修改后的藥品關系結構為:
藥品(藥品ID,藥品名稱,藥品型號,藥品價格,供應商ID,供應商名稱,當前庫存數量) ;
請用200字以內的文字說明常見的反規(guī)范化設計方法,并說明用戶查詢商品信息應該采用哪種反規(guī)范化設計方法。
[問題2] (9分)
王工認為,反規(guī)范化設計可提高查詢的性能,但必然會帶來數據的不一致性問題。請用200字以內的文字說明在反規(guī)范化設計中,解決數據不一致性問題的三種常見方法,并說明該系統(tǒng)應該采用哪種方法。
[問題3] (7分)
該系統(tǒng)采用了Redis來實現某些特定功能(如當前熱銷藥品排名等),同時將藥品關系數據放到內存以提高商品查詢的性能,但必然會造成Redis和MySQL的數據實時同步問題。
(1) Redis的數據類型包括String、 Hash、 List、 Set和ZSet等,請說明實現當前熱銷藥品排名的功能應該選擇使用哪種數據類型。
(2)請用200字以內的文字解釋說明解決Redis和MySQL數據實時同步問題的常見方案。
軟考備考資料免費領取
去領取