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