天天看點

資料庫系統開發

*2004年左右寫的資料,留個底! 

現有的資料庫應用系統,無論是小型桌面資料庫應用系統,還是大型的分布式應用系統,其系統架構一般有C/S架構及N-Tier架構(分布式).C/S為傳統桌面資料庫系統中加入了資料引擎(Database Engine).原有的桌面系統為直接操控資料檔案(庫),其資料檔案或庫一般稱為Flat File式的.如.dat,.dab,.mdb等.C/S則以Database Engine為中間界面,使各種系統可以透過統一的接口通路不同的資料庫(關系式資料庫系統 RDBMS或Flat Files).Windows封裝的ODBC,及Borland公司提供的BDE,最新的ADO,Java的JDBC都是資料引擎.對于N-Tier則表示在應用系統的資料組織中資料錄入,資料處理及資料存儲分割開來.在C/S架構中,用戶端的處理工作較為繁重,需要即時的進行資料檢索,彙總,存儲,有效性檢查等等.雖然目前的硬體水準大有改善,但對于中型及大型的應用環境前端的處理能力受限,而且大多數客戶都希望有瘦用戶端系統的實作,以降低整體的系統投資.在此狀況下,系統的架構加以延伸,将資料處理功能改由背景(中間層)統一處理,也即是Application

Server..同樣是因為Application Server承載了諸多的功能,而使得它的穩健性關系全局,是以在有些大型系統了擔供分布資料處理能力及備用伺服器切換功能.

      中間層的實作方法有MTS,MIDAS,DCOM(COM+)等.MIDAS為Boland公司提供給使用Borland開發工具的系統廠商使用.程式設計的首推為C++,它的執行效率高.其次是Delphi(Cbuilder).Delphi(Cbuilder)為N-Tier的實作提供了完整的Solution,開發效率高.其他開發工具在中間層的實作上都不如前兩者.

資料庫在傳統意義上公公是資料存儲的地方,大部分人理所當然的認為資料庫的功能也就公限于存儲,檢索,彙總等功能.即使是軟體人員,也存在這樣的偏見.事實上,自從SQL(Structure Query Language)誕生後,資料庫的功能已從傳統功能上演變成具有強大資料處理能力,且可提供有限二次開方能力.在這些方面,都要優于應用系統.對于一些資料庫系統其織方式正度圖突破關系式資料庫系統的限制,向OODBMS系統演化.對MS SQL Server,View,Trigger,StoreProcedure,UserDefinedFunction的應用,T-SQL支援都使得MS

SQL Server可以提供較前台應用程式更為穩妥,更為高效的資料處理功能.當然如Sybase及Orcale要比MS SQL Server更為強大.

許多程式員在開發資料庫系統時,大都忽略了資料庫的潛能,忽略了資料庫自身的優化能力,而有了前台應用程式主要一切的錯誤決策.

同樣一套高效,穩健的資料庫應用系統,對資料庫功效的發揮應當是極佳的.資料庫系統設計的優劣同樣反應出一套應用系統的整體性能.

一個好的資料庫系統設讦應包括對以下特性的考量:

1.       資料表組織符合何級範式

2.       資料關聯關系是否明确

3.       資料相關的表間及表内處理

4.       常用的大批量資料處理方法

  特别是在MS SQL Server 2000已有Formula的設定,這一點很重要,也反應出了市場對此項的需求。所謂Formula的設定,即是設定一個Field的來源同其他字段依賴關系。簡單而言,在實際應用中有A=B+C,有此設定系統可以設定AField的Formula為B+C則資料庫在送出新的B或C值時自動更新A值,進而省去系統在前台的處理。這對資料庫系統有重要意義,目前幾乎所有的軟體公司都希望有相容性極強的産品,以應付不同的需求。但事實上許多的客戶的應用規則都是千差萬别的,而這裡的規則正可以抽象為公式。這一類的規則如成本計算,薪資計算等等。許多公司也意識應當盡量提取各種應用中的共性,但他們在将理念付之實作時,卻傾向于前台實作。一方面是不願意在資料庫系統做枯燥的工作。另一方面則是沒有方法實作公式的解讀。便如果從效能上出發,對公式的實作是唯一可以在相容性和高效之間取得平衡的辦法。這一點就需要對SQL

Server好好了解一下了。(SQL Server提供的函數和存儲過程都很好的資料處理機制)

            任何一個系統都有自己的風格,但不能以個人觀點決定,在系統中各個界面都要統一的規範如對控件布局,字型,Color的規定。如果需要錄入的界面就要注意到可操作性。客戶的偏愛不同,就會對操作方法有所要求。而操作是否簡易友善也可反應系統設計的功力。對于錄入界面,錄入點的切換需要有序可循,一般為由左至右,由上及下。另外注意界面上文字靠左,資料靠右,這些都是界面設計的基本涵養。

報表格式也應遵循文字靠左,數字靠右的規則。報表的輸出至關重要,而報表輸出的準确性,直接反映系統資料處理的準确性。報表的輸出應有一定次序,無論是Group或主從表者要注意其順序排列方法。對需要彙總或換行的部分都要處理得當。對于報表輸出的資料的基本要求是資料完整準确,格式正确。

如果軟體公司有能力,應提供相應報表自定義功能,以及報表輸出到其他格式文檔的接口,這樣會保證日後系統穩定的運作和适當的擴充,增強系統的彈性.

            對于許多台灣的軟體公司,其研發團隊在台灣,在大陸隻設有一個客修部門,甚至沒有客修部門。如果沒有客修部門,則必須将一些資訊回報以台灣才可進行處理,其間傳遞資訊的有效性,及時性可能較難保證,這樣的客服品質是不高的。如果在大陸設有客修部門,最好有一定的研發團隊,這樣在一些Bug的處理上,顧問就可以同程式員準确進行有效的溝通,對較為緊急的事件,也可以及時處理。總之一點,能不能有效進行客服工作,要看其顧問同客修(研發)人員的溝通能力。

            考察一家軟體公司亦可通過考察其文檔的規範性入手,是否推行了軟體工程相關的管理思想。如考察其有沒有通過ISO或CMMI的相關認證。當然任何一家合法的軟體公司都符合CMMI-I.其文檔的規範性可以保證日後服務有章可循。因為目前軟體人員整體流動性大,一旦程式員異人,還可以憑借有效的文檔記錄,繼續提供有效的服務,保證服務的延續性。一般情況下我們可以要求其提供系統分析報告,系統設計及資料庫設計等方面的文檔或文檔範本,就可以較為全面評估其軟體開發能力,客修水準。

         對一家管理軟體公司在管理理念(顧問水準),系統設計(開發水準)上同時進行考察才可最大限度的保證上百萬,甚至上千萬的資金投入有效地運用。