天堂888-欧美黄色小说-熟睡侵犯の奶水授乳在线-初尝情欲h名器av-亚洲天堂免费视频-日韩五十路-免费在线国产-国产又大又黄又粗-久草导航-色播导航-亚洲免费资源-熟女一区二区三区视频-亚洲美女视频在线-亚洲成人福利视频-婷婷精品在线-亚洲综合p-中文字幕 日本-亚洲骚片-亚洲自拍偷拍网-国产农村妇女精品一区二区-午夜中出-久久精品国产精品亚洲毛片-91精品毛片-99爱视频在线-狠狠操亚洲-美女让人操-里番本子纯肉侵犯肉全彩无码-999偷拍

軟考高級系統架構設計師案例分析題+答案!

系統架構設計師 責任編輯:龍小林 2025-12-26

添加老師微信

備考咨詢

加我微信

摘要:本文是數據庫設計案例分析題,圍繞醫藥銷售系統的數據庫架構展開,涉及反規范化設計的方法及解決數據不一致的方案,還包含Redis數據類型選擇與MySQL數據同步的問題,通過具體場景分析提升系統性能的策略。

閱讀以下關于數據庫設計的敘述,回答問題1至問題3。

案例場景

某醫藥銷售企業因業務發展,需要建立線上藥品銷售系統,為用戶提供便捷的互聯網藥品銷售服務。該系統除了常規藥品展示訂單、用戶交流與反饋功能外,還需要提供當前熱銷產品排名、評價分類管理等功能。通過對需求的分析,在數據管理上初步決定采用關系數據庫(MySQL)和數據庫緩存(Redis)的混合架構實現。

經過規范化設計之后,該系統的部分數據庫表結構如下所示。

供應商(供應商ID,供應商名稱,聯系方式,供應商地址);

藥品(藥品ID,藥品名稱,藥品型號,藥品價格,供應商ID);

藥品庫存(藥品ID,當前庫存數量);

訂單(訂單號碼,藥品ID,供應商ID,藥品數量,訂單金額)。

[問題1](9分)

在系統初步運行后,發現系統數據訪問性能較差。經過分析,劉工認為原來數據庫規范化設計后,關系表過于細分,造成了大量的多表關聯查詢,影響了性能。例如當用戶查詢商品信息時,需要同時顯示該藥品的信息、供應商的信息、當前庫存等信息。

為此,劉工認為可以采用反規范化設計來改造藥品關系的結構,以提高查詢性能。修改后的藥品關系結構為:

藥品(藥品ID,藥品名稱,藥品型號,藥品價格,供應商ID,供應商名稱,當前庫存數量);

請用200字以內的文字說明常見的反規范化設計方法,并說明用戶查詢商品信息應該采用哪種反規范化設計方法。

[問題2](9分)

王工認為,反規范化設計可提高查詢的性能,但必然會帶來數據的不一致性問題。請用200字以內的文字說明在反規范化設計中,解決數據不一致性問題的三種常見方法,并說明該系統應該采用哪種方法。

[問題3](7分)

該系統采用了Redis來實現某些特定功能(如當前熱銷藥品排名等),同時將藥品關系數據放到內存以提高商品查詢的性能,但必然會造成Redis和MySQL的數據實時同步問題。

(1)Redis的數據類型包括String、Hash、List、Set和ZSet等,請說明實現當前熱銷藥品排名的功能應該選擇使用哪種數據類型。

(2)請用200字以內的文字解釋說明解決Redis和MySQL數據實時同步問題的常見方案。


參考答案:

[問題1]

常見的反規范化技術包括:

(1)增加冗余列:增加冗余列是指在多個表中具有相同的列,它常用來在查詢時避免連接操作。

(2)增加派生列:增加派生列指增加的列可以通過表中其他數據計算生成。它的作用是在查詢時減少計算量,從而加快查詢速度。

(3)重新組表:重新組表指如果許多用戶需要查看兩個表連接出來的結果數據,則把這兩個表重新組成一個表來減少連接而提高性能。

(4)分割表:有時對表做分割可以提高性能。

用戶查詢商品信息應該采用:增加冗余列。

用戶查詢商品信息時,需要顯示藥品信息(藥品表中),供應商信息(供應商表),庫存信息(庫存表中),此時查詢的是藥品表,但表中缺了供應商的信息和庫存信息,可以通過增加冗余列的方式把這些信息并過來。以避免連接操作帶來的查詢性能下降。

[問題2]

完整試題+答案解析可點擊下方藍字獲取!

系統架構設計師試題+答案解析

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內容不斷變化與調整,本網站提供的以上信息僅供參考,如有異議,請考生以權威部門公布的內容為準!

軟考備考資料免費領取

去領取

!
咨詢在線老師!