回覆列表
  • 1 # 王大祁

    如果不能設計一個合理的資料庫模型,不僅會增加客戶端和伺服器段程式的程式設計和維護的難度,而且將會影響系統實際執行的效能。所以,在一個系統開始實施之前,完備的資料庫模型的設計是必須的。

    在一個系統分析、設計階段,因為資料量較小,負荷較低。我們往往只注意到功能的實現,而很難注意到效能的薄弱之處,等到系統投入實際執行一段時間後,才發現系統的效能在降低,這時再來考慮提高系統性能則要花費更多的人力物力,而整個系統也不可避免的形成了一個打補丁工程。

    所以在考慮整個系統的流程的時候,我們必須要考慮,在高併發大資料量的訪問情況下,我們的系統會不會出現極端的情況。(例如:對外統計系統在7月16日出現的資料異常的情況,併發大資料量的的訪問造成,資料庫的響應時間不能跟上資料重新整理的速度造成。具體情況是:在日期臨界時(00:00:00),判斷資料庫中是否有當前日期的記錄,沒有則插入一條當前日期的記錄。在低併發訪問的情況下,不會發生問題,但是當日期臨界時的訪問量相當大的時候,在做這一判斷的時候,會出現多次條件成立,則資料庫裡會被插入多條當前日期的記錄,從而造成資料錯誤。),資料庫的模型確定下來之後,我們有必要做一個系統內資料流向圖,分析可能出現的瓶頸。

    為了保證資料庫的一致性和完整性,在邏輯設計的時候往往會設計過多的表間關聯,儘可能的降低資料的冗餘。(例如使用者表的地區,我們可以把地區另外存放到一個地區表中)如果資料冗餘低,資料的完整性容易得到保證,提高了資料吞吐速度,保證了資料的完整性,清楚地表達資料元素之間的關係。而對於多表之間的關聯查詢(尤其是大資料表)時,其效能將會降低,同時也提高了客戶端程式的程式設計難度,因此,物理設計需折衷考慮,根據業務規則,確定對關聯表的資料量大小、資料項的訪問頻度,對此類資料表頻繁的關聯查詢應適當提高資料冗餘設計但增加了表間連線查詢的操作,也使得程式的變得複雜,為了提高系統的響應時間,合理的資料冗餘也是必要的。設計人員在設計階段應根據系統操作的型別、頻度加以均衡考慮。

    另外,最好不要用自增屬性欄位作為主鍵與子表關聯。不便於系統的遷移和資料恢復。對外統計系統對映關係丟失

  • 中秋節和大豐收的關聯?
  • 貓的臉小怎麼養大,怎麼讓小臉貓變大圓臉?