在資料庫應用系統中資料庫的開發
乙個成功的資訊管理系統由50%的業務+50%的軟體組成;而50%的軟體又是由25%的程式+25%的資料庫組成。由此可見資料庫在資訊管理系統中佔的重要位置,或許會有人說了:資料庫不就是建幾張表嗎?有那麼重要嗎?如果按照你說的那樣,既然ms已經有了vb(大家都知道vb中自帶了乙個資料庫)那麼它為什麼還要動用上千人去開發sql server,那又為什麼世界第二大軟體公司又會是oracle,而不是其他的什麼公司。
既然資料庫在資料庫應用系統中佔如此重要的位置,那麼在資料庫應用系統的開發過程中什麼應該是最重要的呢?有兒人會說,是寫**,是這樣的嗎?相信大家都知道ms的vb和sql server是比較好使的工具,用它們可以在三天甚至不到就可以編寫出乙個應用系統,結果是出來了,可它能用嗎?能用多久,安全嗎?效能有是怎樣的呢?相信結果一定會令我們很失望。
因此在資料庫應用系統的開發過程中應將主要精力放在資料庫設計和sql語句的優化上,這樣才可以提高整個系統的完整性,對於sql語句的設計和優化可以大大改進系統的效能,還有一點要注意的是對於sql語句或查詢語句的優化要貫穿整個開發過程,這樣就可有效的避免由於資料的增加而導致效能下降的問題。
對於搞軟體開發的人來說,都應該聽過「軟體危機(soft crsis)」這一名詞。oasig曾經做過一次研究顯示了這個危機:
80%~90%的專案沒有達到它們的效能目標
大約80%的專案延期或超過預算
超過40%的專案失敗或被放棄
將近40%的專案需要技能培訓
少於25%的專案使應用和開發技術目標一體化
只有10%~20%的專案完全達到成功標準
導致專案失敗的原因是什麼呢?其主要原因如下:
1) 缺少完整的需求的定義
2) 缺少先進的開發方法學
3) 無法將設計分解成易於管理的部分
既然原因找到了,那麼該怎樣解決呢?解決問題的方法就是使用結構化的軟體開發方法這也被稱為資訊系統生存週期或軟體開發生存週期。
結構化的思想就是軟體的開發分為幾個不同的階段,每乙個階段完成系統不同的任務,最後生成乙個完整的系統,在資料庫的設計過程中根據結構化程式設計大致可分為以下幾個階段:需求分析階段、概念結構設計極端、邏輯結構設計階段、物理結構設計階段。
需求分析階段
什麼是需求分析?需求分析就是調查應用系統所針對的企業或應用領域,對企業中各種應用資訊的要求和操作要求進行詳細的分析,最後形成需求分析說明書,要注意的是在這一階段要經常主動的和企業領導還有所有即將使用該系統的所有人員進行交流,以便得到較為準確的需求分析說明書。
需求分析的目標是什麼?
1) 給出企業或應用領域中的資料項
2) 給出資料項之間的關係
3) 給出資料操作任務的詳細定義
4) 為資料庫的概念設計、邏輯設計和物理設計奠定堅實的基礎
5) 為優化資料庫的邏輯結構和物理結構提供可靠的依據
需求分析的方法和布驟:
1) 企業或應用領域的調查分析
2) 定義資料庫支援的資訊與應用
3) 定義資料庫操作任務
4) 定義資料項
5) **系統的未來改變
在這一階段得出資料流程圖,用於表示企業或應用領域的邏輯模型,可以表示資訊的流動和加工處理系統詳細情況。
概念設計階段
概念設計階段:用較為直觀的圖表(er圖)來表示使用者需求
目標:1) 準確描述企業或應用領域的資訊模式,支援使用者的多種應用。
2) 易於輪換為邏輯資料庫模式,易於使用者的理解。
重要性:概念模式的設計過程是對企業應用領域的資訊結構資訊的相互聯絡和各種約束過程的乙個徹底的理解。概念模式的正確理解對於使用者和程式設計者是非常關鍵的。同時,由於概念模式以圖形表示,直觀易懂,因此,便於資料庫設計者使用者和系統分析員之間的資訊交流。
概念階段方法有:1)集中式 2)檢視整合式 3)兩種方法集中式
集中式方法:將每個使用者檢視的需求合併成單一需求的過程;如下圖:
方法二:檢視整合的方法
檢視整合 方法:是針對每個使用者視力的需求建立單獨的資料模型,在資料設計階段再整合這些資料模型,如下圖所示:
適用於當使用者檢視存在明顯區別,而整個資料庫應用程式較為複雜時,用這種方法將工作分成易於管理管理的部分。
邏輯結構設計階段:
在關係資料庫系統中就將概念模式產生的er圖轉換為關係模式二維表。
目標:滿足完整性和安全性需求,能夠在邏輯上,高效率地支援種種資料庫事務的執行。
注意:在將概念模式轉換為關係模式時就避免資料冗餘,函式依賴問題,便盡量規範化。
關係模式優代也是在此階段進行的,所謂的關係模式優化是指根據需求分析和概念模式中所定義的事務特點將關係進行分解,以提高資料操作的效率和儲存空間的利用率。
物理設計階段:
物理設計階段就是根據邏輯結構為每個關係模式選擇合適的儲存結構和訪問方法,以便使資料庫上的事務能夠高效率的進行。
其實,資料庫的物理結構設計很簡單,就是選乙個dbms,既選擇乙個支援資料庫應用程式的最合適的dbm,然後在dbms中將邏輯結構表示出來。
至此,乙個資料庫的設計基本完成。資料庫的完成也就意味著對資料庫的管理,維護,優化等揭開了序幕。曾有人做守這樣乙個統計,在乙個應用軟體系統中,軟體的開發將消耗30%的資金,而軟體的維護和公升級等消耗70%的資金。而在資料庫的維護優化過程中,資料庫的結構佔據著相當高的位置。而貫穿整個資料庫的開發、維護和優化的則是查詢的優化和sql語句的優化。
附:資料庫的優化方法小冊――sql server(部分)
xml在資料庫中的應用
1。將xml文件儲存為乙個文字塊 create a table to hold the manuals for the games statement s conn.createstatement s.executeupdate create table manuals gameid int,man...
樹在資料庫中的應用
1 索引在資料庫中的作用 最基本的查詢演算法是順序查詢,遍歷表然後逐行匹配行值是否等於待查詢的關鍵字,時間複雜度為 o n 不適合資料量大的時候。在資料之外,資料庫還維護著滿足特定查詢演算法的資料結構,這些資料結構以某 種方式引用資料,這樣就可以在這些資料結構上實現高階查詢演算法,這種資料結構就是,...
索引在資料庫中的應用分析
引是提高資料查詢最有效的方法,也是最難全面掌握的技術,因為正確的索引可能使效率提高10000倍,而無效的索引可能是浪費了資料庫空間,甚至大大降低查詢效能。索引的管理成本 1 儲存索引的磁碟空間 2 執行資料修改操作 insert update delete 產生的索引維護 3 在資料處理時回需額外的...