菜鳥也能飛:SQL數據庫實戰專業教程(三)
七、詳細設計
詳細設計還得從數據庫開始。作為專業菜鳥,我們要把所有的SQL語句都放在存儲過程當中,不要放在程序里。這樣做的好處是:容易修改、維護,執行速度快、減少數據傳輸量。存儲過程可以簡單的理解為在SQL服務器上創建小函數,它們有名字、參數,通過調用這些小函數,我們可以完成對表的增、刪、查、改操作,相當于把SQL語句放在了服務器上,并且是經過編譯的,執行速度快。在程序中,我們不必再寫復雜的SQL語句,直接寫存儲過程名稱就可以了。
具體如何使用存儲過程,可以參考這篇博文:http://www.51testing.com/html/60/n-814760.html
一定要仔細研究上邊那篇文章,因為這是數據庫使用的經典例子,把他搞懂了使用數據就沒什么問題了,我就偷個懶,不在重復寫啦。
如果遇到一些問題,或許這篇文章會幫你:http://www.51testing.com/html/59/n-814759.html
另外,可以看出,本教程的例子,班級表依賴年級表,學生表依賴班級表,所以在刪除記錄時,必須級聯刪除,級聯刪除可以在程序中完成,但我還是比較喜歡放在SQL觸發器中。觸發器的使用方法和存儲過程大同小異,在這就不贅述了,可以google。
詳細設計還是要用到UML圖,這回用的一般是時序圖和流程圖,其他的雖然重要,但是比較少用,具體的還是google。
很遺憾的告訴大家,教程到此就結束了,細節上遠遠沒有結束,存儲過程具體代碼、各層的代碼都沒有寫,UML的圖還有很多沒畫,但那些都是細節知識,本教程的目的是宏觀指導,本小菜也需要繼續學習,時間非常有限,所以只能寫這么多了。
剩下的基本上都是寫代碼,我寫出來也沒啥意思,開發一個項目,基本的流程都在這呢,我主要不是教大家寫代碼,而不是告訴大家一個項目的流程,體會一個稍微大點的程序是怎么設計出來的,分享一下我自己的經驗。跟著這個教程走,就是再菜,也是專業菜鳥!
教程中涉及大量知識點,都需要大家耐心的去查閱資料,不怕不會,就怕不知道,剛開始會用就可以了,隨著學習的深入,再去搞懂細節原理。我學這些東西也不是一天兩天就學成的,是大約一年半的積累,希望大家能靜下心來,踏實學習。
最后,恭祝大家都能成為IT界的精英!
相關鏈接:
菜鳥也能飛:SQL數據庫實戰專業教程(二)SQLHelper包:
DAL包:
BLL包:
UI包:
數據庫分析完了,基礎已經搞定,接下來就是對程序的初步設計。如何設計呢?如果是小程序,用腦子想想,也就算設計完了,但是如果是稍微復雜點的系統,恐怕就不行了。概要設計還是要借助于UML圖,現在你知道它有多重要了吧?我們先來設計程序的大致結構,可以用UML的包圖。作為專業水準的菜鳥,我們要用三層架構來設計程序。所謂三層架構,就是把程序分為基本的三層,分別為:UI層(用戶界面層)、BLL層(業務邏輯層)、DAL層(數據訪問層)。把程序分成三層,好處不言而喻,從此你就再也見不到所有東西都在一個窗體里混亂的情形,如果什么地方需要修改,再也不用去改動整個工程。每一層都有各自的功能,從UI層到DAL層,它們是向下依賴的。其中,UI層只負責顯示界面,不應該有邏輯(有效性驗證的邏輯還是可以有的),所有的功能都是通過調用BLL層完成;BLL層負責程序的所有邏輯組織,它通過調用DAL層完成復雜的操作,然后提供一個簡潔的接口讓UI層調用,相當于一個大外觀層,BLL層的類,可以按照窗體寫,也就是說每一個窗體對應一個BLL層的類,類的各種方法完成窗體的所有功能;DAL層負責訪問數據庫,數據庫中每一個表,在DAL層中都有一個與之對應的操作類,通過該操作類,可以實現對對應表的一切操作。前邊提到的實體類,就是為三層架構服務的,三層之間一般都是通過實體類傳遞數據,這樣簡潔、方便,實體類就相當于一個容器。注意,還有一個層,也可以不單獨作為一個層的DBHelper,這個部分負責最低級的與數據庫交互代碼,比如連接數據庫、插入數據、查詢數據等等,把這些最基本的代碼提煉到一個單獨的層中有利于代碼的復用,使程序更加精煉。欲知其他知識,請輕點google,我說到此為止。獻上一張三層架構的示意圖:
再來一個數據庫、DAL操作類、實體類的關系,這個有點亂,剛開始不好理解,多想想就知道啦:
有了上邊的分析,我們就可以用Rational Rose畫程序包圖了,提一個小技巧,Rose的包理論上應該在包圖里畫,但是那樣沒法畫類,所以還是建議在類圖里畫包,用包把類圖分成幾個大部分,然后在每個部分里畫特定的類,這樣雙擊包直接就可以看到該包中的類了。根據三層架構,我們可以畫出下邊的包圖:
整體架構就是這樣了,接下來就搞定每個包里都有什么類。
posted on 2012-06-05 10:54 順其自然EVO 閱讀(204) 評論(0) 編輯 收藏 所屬分類: 數據庫