官术网_书友最值得收藏!

1.3.1 數(shù)據(jù)庫設(shè)計步驟

數(shù)據(jù)庫設(shè)計一般要經(jīng)過:確定創(chuàng)建數(shù)據(jù)庫的目的、確定數(shù)據(jù)庫中需要的表、確定該表中需要的字段、確定主關(guān)鍵字和確定表之間的關(guān)系等步驟。

1.確定創(chuàng)建數(shù)據(jù)庫的目的

設(shè)計數(shù)據(jù)庫的第一個步驟是確定數(shù)據(jù)庫的目的,即需求分析。用戶需要確定數(shù)據(jù)庫保存哪些信息。分析用戶對數(shù)據(jù)庫的具體要求,這是整個數(shù)據(jù)庫設(shè)計的起點。由用戶的信息要求可以導(dǎo)出數(shù)據(jù)要求,即在數(shù)據(jù)庫中需要存儲哪些數(shù)據(jù)。

(1)需求分析的任務(wù)

通過詳細(xì)調(diào)查現(xiàn)實世界要處理的對象(組織、部門、企業(yè)等),充分了解原系統(tǒng)(手工系統(tǒng)或計算機(jī)系統(tǒng))工作概況,明確用戶的各種需求。

在此基礎(chǔ)上確定新系統(tǒng)的功能。新系統(tǒng)要充分考慮今后可能的擴(kuò)充和改變,不能僅僅按當(dāng)前應(yīng)用需求來設(shè)計數(shù)據(jù)庫。

(2)需求分析的重點

需求分析的重點是調(diào)查、收集與分析用戶在數(shù)據(jù)管理中的信息要求、處理要求、安全性與完整性要求。

①信息要求。即用戶需要從數(shù)據(jù)庫中獲得信息的內(nèi)容與性質(zhì)。由用戶的信息要求可以導(dǎo)出數(shù)據(jù)要求,即在數(shù)據(jù)庫中需要存儲哪些數(shù)據(jù)。

②處理要求。包含對處理功能的要求、對處理的響應(yīng)時間的要求、對處理方式的要處理/聯(lián)機(jī)處理)等。

③安全性與完整性要求。安全性是指用戶需要如何保護(hù)數(shù)據(jù)才能不被未授權(quán)的用戶破完整性是指用戶需要如何檢查和控制不合語義的、不正確的數(shù)據(jù),防止它們進(jìn)入數(shù)據(jù)庫。

具體操作就是與將要使用數(shù)據(jù)庫的人員進(jìn)行交流,集體討論需要使用數(shù)據(jù)庫解決的問題,并描述需要數(shù)據(jù)庫生成的報表,同時收集當(dāng)前用于記錄數(shù)據(jù)的表格。

2.確定該數(shù)據(jù)庫中需要的表

表的確定是數(shù)據(jù)庫設(shè)計過程中的關(guān)鍵步驟。在設(shè)計表時,應(yīng)按以下設(shè)計原則對信息進(jìn)行分類。

(1)表不應(yīng)包含備份信息,表間不應(yīng)有重復(fù)信息。

如果每條信息只保存在一個表中,則數(shù)據(jù)庫管理員只需在一處進(jìn)行更新,這樣效率更高,同時也消除了包含不同信息重復(fù)項的可能性。例如,每個學(xué)生的地址和電話號碼只在一個表中保存一次。

(2)每個表應(yīng)該只包含關(guān)于一個主題的信息。

如果每個表只包含一個主題的信息,則可以獨立于其他主題維護(hù)每個主題的信息。例如,將學(xué)生的住址與學(xué)生選課成績存在不同表中,則在刪除某個學(xué)生成績后仍然可以保留學(xué)生的信息。

3.確定表中需要的字段

每個表都包含關(guān)于同一主題的信息,并且表中的字段應(yīng)包含關(guān)于該主題所需的全部信息。例如,課程表中可以包含課程的課程編號、課程名稱、課程類別和學(xué)分等字段。在確定每個表的字段時,需要注意以下問題:

(1)每個字段直接與表的主題相關(guān);

(2)不包含推導(dǎo)或計算的數(shù)據(jù)(表達(dá)式的計算結(jié)果),即表中字段存儲的是原始數(shù)據(jù);

(3)包含表的主題所需的所有信息;

(4)以最小的邏輯單位保存信息。例如,在工資表中基本工資、獎金、津貼等應(yīng)設(shè)置為不同的字段,不能只保存為工資一個字段。

4.確定主關(guān)鍵字

數(shù)據(jù)庫中的每個表必須包含表中唯一確定每個記錄的字段或字段集,將這種字段或字段集確定為主鍵(主關(guān)鍵字)。例如,學(xué)生表中學(xué)生編號可以唯一確定某一個學(xué)生,則學(xué)生編號可以定為主鍵。

5.確定表之間的關(guān)系

為了能夠滿足實際應(yīng)用需求,有些信息需要從幾張表中得到,這就需要將多表進(jìn)行連接,因此一項重要的操作就是要確定數(shù)據(jù)庫中表與表之間的關(guān)系。有些字段在本表中不是關(guān)鍵字,但在其他表中是關(guān)鍵字,那么它就是外部關(guān)鍵字。表之間的關(guān)系通過外部關(guān)鍵字聯(lián)系起來。例如,學(xué)生編號在學(xué)生表中為主鍵,在選課成績表中并不是主鍵,而是外鍵。學(xué)生表和選課成績表之間通過學(xué)生編號產(chǎn)生聯(lián)系。

6.優(yōu)化設(shè)計

在設(shè)計完成需要的表、字段和關(guān)系后,就應(yīng)對該設(shè)計進(jìn)行檢查并找出任何可能存在的不足。如果不能滿足要求,則要返回到之前幾個階段進(jìn)行調(diào)整并修改。

用Access創(chuàng)建表,指定表之間的關(guān)系,并且在每個表中輸入充足的示例數(shù)據(jù)以驗證設(shè)計。可通過創(chuàng)建查詢,檢查結(jié)果與預(yù)期結(jié)果是否一致,驗證數(shù)據(jù)庫中的關(guān)系是否正確;創(chuàng)建簡單的窗體和報表,檢查顯示數(shù)據(jù)是否是所期望的;最后查找不需要的重復(fù)數(shù)據(jù),并將其去掉。以上操作如發(fā)現(xiàn)問題,需要及時修改該設(shè)計。

7.輸入數(shù)據(jù)并創(chuàng)建其他數(shù)據(jù)對象

如果表的結(jié)構(gòu)已達(dá)到了設(shè)計要求,則可繼續(xù)進(jìn)行操作并在表中添加所有已有的實際數(shù)據(jù),創(chuàng)建所需要的相應(yīng)查詢、窗體、報表、數(shù)據(jù)訪問頁、宏和模塊等數(shù)據(jù)對象,完成數(shù)據(jù)庫應(yīng)用系統(tǒng)。

主站蜘蛛池模板: 保康县| 延寿县| 芦山县| 太白县| 吉水县| 廉江市| 玛多县| 通州市| 阿城市| 灯塔市| 广饶县| 永宁县| 思茅市| 满洲里市| 石阡县| 天门市| 河池市| 吴堡县| 团风县| 台安县| 教育| 成武县| 丹寨县| 河东区| 衡阳市| 菏泽市| 通渭县| 巴中市| 聊城市| 曲靖市| 东乡族自治县| 丹凤县| 阜南县| 鱼台县| 资兴市| 青田县| 抚顺县| 泰宁县| 迭部县| 齐河县| 吉木乃县|