2004/06/21

[轉貼] 使用SQL 最常犯的十大錯誤

SQL 是設計資料庫應用系統的標準語言。設計資料庫應用系統的第一件事,就是建立一個資料庫。要想設計出良好的資料庫應用系統的首先必要條件是:正確的資料庫結構。 若在設計資料庫時,有任何問題,那縱然有多好的應用程式,都是沒有用的。

本單元將提出在設計資料庫時,最常見的問題,提供各位做借鏡。

1)設計資料庫前的需求討論,往往高估使用者對系統的了解程度
在設計資料庫應用系統時,第一件事情就是系統需求訪談,對於經驗不足的系統分析員,往往以客戶需求為導向,而在設計資料庫時,被使用者不合理的需求所誤導。
由於一般的使用者並不曾受過良好的系統分析訓練,因此由他們所提出來的問題與做法,並非正確的。
身為系統分析師的您,必須以主動式,將使用者所提的需求分析,並引導他們正確的處理模式,而不是由使用者自行決定作法。

2)不要受限於當初專案需求合約
對大多數的 End User 而言,他們經常是不按牌理出牌,您可能會發覺,每次需求訪談,User 總會提許多奇奇怪怪的需求,而且每次都不一樣,因此在做系統分析時,絕對要掌握主動性,將 User 的需求引導成正確的系統設計模式,若是 User 要什麼,就給什麼,甚至不合理的需求,那將導致專案無法收拾的地步。

3)只注意設計技術課題,而忽略其他潛在因素
許多程式開發人員在系統設計階段,只考慮軟體技術困難的克服,卻將成本控制、資源取得、進度要求、和公司策略擺在一旁不理會,最後因成本過高,合約期限到期等,造成專案失敗的命運。在此建議各位,軟體技術只是專案開發的一部份,您必須還注意各種因素的控制。

4)在設計資料庫時,不要忽略任何 User 的意見
大部份人認為,官大就代表什麼都大,因此在系統設計時,完全聽從職位高的 User,認為他們才是真正可以決定系統的需求與驗數,其實不然,職位較低的 User,對系統運行瞭若指掌,如果想專案順利進行,這些人的意見不容忽視。

5)專挑自己喜愛的開發軟體,而不管適不適用
任何一種 DBMS 或開發軟體都有其優點及弱點,對某些應用系統的特殊需求,可能有某一種 DBMS 或開發軟體特別適用,但是對大多數的系統開發者而言,一旦用上手的軟體,往往因習慣使用,只注意到它們的優點,卻忽略其不足之處,而且對其他系統開發者,您應該以很超然的角度,分析應用系統的需求,評估何種 DBMS 和開發軟體最佳,並真實地告訴 End User。

6)只考慮使用自己熟悉的系統架構,而不管是否適當
主從架構,集中式處理,或是分散式資料處理,每一種架構都有其優點及缺點,但到底那一種架構適用呢?這必須先了解 User 的電腦環境,做一個詳細的評估,再來決定選用何種架構,選擇適合的架構,有助於日後的系統效能和未來擴充性。

7)定義資料庫的 Table 時,忽略了各 Table 之間的關連性
關連式資料庫系統的【關連性】,這三個字強調了資料庫內的許多 Table 具有相關性,因此在定義 Table 時,務必要整體考量 Table 的關連性,以確保資料一致性和完整性。

8)忽略設計前的 Review,認為 Review 只是浪費時間
世上沒有任何事物是完美無缺的,同樣地,在系統分析設計告一段落時,並不代表萬事 OK,最好是再從頭到尾 Review 一次,看看是否有遺落什麼,這動作可以避免因小小的設計疏失,造成程式重寫的命運。

9)忽略系統測試階段,直接上線
在漫長的程式撰寫過程,不免有些疏失,造成程式有 Bug,而系統測試的主要目的,就是要抓這些 Bug,尤其是在處理金錢的應甪程式,嚴密的測試絕不可省略,記住:User 絕對不會幫您除 Bug,他們只會找您麻煩(若有 Bug 存在時)。

10)忽略系統文件撰寫,把設計理念和程式,完全記在大腦
我還沒有聽說過,一個應用系統在驗收完畢後,就從此不再修改,而且您將系統交給其他人時,絕不可能用口述就可辦到。過去許多系統設計有一個共通的毛病,就是認為撰寫文件是一件浪費生命的工作,於是將所有設計內容,都放在大腦中,但人的記憶畢竟不像電腦,因此文件是系統設計時重要的要素之一。

No comments: