資料庫設計步驟--瞭解使用者需求:拿出一個問題清單
從專案一開始,就應該著手考慮詢問客戶哪些問題以便於更好地瞭解專案的目標和範圍。
1.功能:
主要討論期望系統實現什麼功能,還要涉及如何實現這些功能。記錄客戶提出的系統應該如何工作的想法仍有用的。
•系統應該實現什麼功能?
•構建此係統的原因是什麼?你希望它究成哪些任務?
•系統應該呈現什麼樣的外觀?大致繪出使用者介面?
•系統的不同部分分別需要多少響應時間(通常互動式響應時間應該小於5s,而報表和其他離線活動可能花費更長的時間)?
•需要什麼樣的報表?
•終端使用者是否需要定義新的報表?
•髙級使用者和管理員是否需要定義新的報表?
2.資料需求:
有助於弄清專案的資料需求。瞭解需要什麼資料將有助於著手定義資料庫
•使用者介面需要什麼資料?
•應該從哪裡獲取資料?
•這些資料段是如何關聯的?
•當前如何處理這些任務?資料來自何處?
3.資料完整性:
資料完整性,有助於定義將在資料庫中構建的一些完整性約束。
•各個欄位允許獲取哪些值?
•需要哪些欄位(例如,客戶記錄是否需要電話號碼?傳真號呢?電子郵件地址呢?是其中的一項而不是所有項)?
•各個欄位的有效域(允許的值)是什麼?允許什麼樣的格式,要求等?
•哪些欄位應該參照外來鍵?(例如,一個地址的State欄位可能需要包含在States表中並且—個CustomerlD欄位可能需要包含在Customers表中。我曾看到過帶有很長的標準註釋淸單的客戶,並且
•在下訂單之前是否需要客戶記錄?
•若客戶取消一個賬戶,是希望刪除對應的記錄?還是僅將它們標記為非活動的?
•系統需要何種級別的可靠性?
•是否需要全天候訪問(24/7)系統?
•資料的易失性如何?需要採用什麼樣的備份頻率?
•如果系統崩潰會帶來多大的災難?
•需要多快的備份和執行速度?
•如果發生系統崩潰丟失一些資料將會帶來何種後果?
4.安全性:
安全性,有助於確定哪種資料庫產品最佳(不同的產品提供不同形式的安全性)和使用何種體系結構。
•每個使用者是否需要單獨的口令?(通常是個好想法)
•不同的使用者是否需要使用不同的資料段?(例如,售貨員可能需要客戶信用卡號碼,
•資料庫內的資料否需要加密?
•是否需要提供審計線索來記錄執行的每項操作和執行人?(例如,可以查詢哪個職員增加了訂購最新iPod的客戶的優先順序,然後詢問此店員這樣做的原因)
•有哪些不同類別的使用者?
•每類使用者的數量將是多少?每次是否只允許一個人訪問資料?是否擁有數百名乃至上千名使用者(如同某些Web應用程式的情況那樣)?
•現有的文件是否描述了使用者的任務和職責?
5.環境
收集有關專案將替代或互動的其他系統和處理過程的資訊。
•該系統足增強還是替代現有的系統?
•是否存在描述現有系統的文件資料?
•現有的系統是否有可供調研的紙製表單?
•需要現有系統中的哪些特性?不需要要哪些特性?
•現有的系統使用何種型別的資料?儲存的方式如何,以及不同的資料段的關聯方式如何?
•是否存在說明現有系統資料的文件?
•是否存在此係統必須與之互動的其他系統?
•它如何與這些系統正確互動?
•新專案是否問現有的系統傳送資料?如何傳送?
•新專案是否從現有的系統接收資料?如何接收?
•是否存在說明這些系統的文襠?
•業務的運作方式如何?