1.3.1 數(shù)據(jù)庫(kù)設(shè)計(jì)步驟
數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)與其它計(jì)算機(jī)應(yīng)用系統(tǒng)相比,一般具有數(shù)據(jù)量龐大、數(shù)據(jù)保存時(shí)間長(zhǎng)、數(shù)據(jù)關(guān)聯(lián)比較復(fù)雜、用戶要求多樣化等特點(diǎn)。設(shè)計(jì)數(shù)據(jù)庫(kù)的目的實(shí)質(zhì)上是設(shè)計(jì)出滿足實(shí)際應(yīng)用需求的實(shí)際關(guān)系模型。在Access中具體實(shí)施時(shí)表現(xiàn)為數(shù)據(jù)庫(kù)和表的結(jié)構(gòu)合理,不僅存儲(chǔ)了所需要的實(shí)體信息,并且反映出實(shí)體之間客觀存在的聯(lián)系。
一、設(shè)計(jì)原則
為了合理組織數(shù)據(jù),應(yīng)遵從以下基本設(shè)計(jì)原則:
1.關(guān)系數(shù)據(jù)庫(kù)的設(shè)計(jì)應(yīng)遵從概念單一化“一事一地”的原則
―個(gè)表描述一個(gè)實(shí)體或?qū)嶓w間的一種聯(lián)系。避免設(shè)計(jì)大而雜的表,首先分離那些需要作為單個(gè)主題而獨(dú)立保存的信息,然后通過(guò)Access確定這些主題之間有何聯(lián)系,以便在需要時(shí)將正確的信息組合在一起。通過(guò)將不同的信息分散在不同的表中,可以使數(shù)據(jù)的組織工作和維護(hù)工作更簡(jiǎn)單,同時(shí)也可以保證建立的應(yīng)用程序具有較高的性能。
例如,將有關(guān)教師基本情況的數(shù)據(jù),包括姓名、性別、工作時(shí)間等,保存到教師表中。將工資單的信息應(yīng)該保存到工資表中,而不是將這些數(shù)據(jù)統(tǒng)統(tǒng)放到一起。同樣道理,應(yīng)當(dāng)把學(xué)生信息保存到學(xué)生表中,把有關(guān)課程的成績(jī)保存在選課表中。
2.避免在表之間出現(xiàn)重復(fù)字段
除了保證表中有反映與其他表之間存在聯(lián)系的外部關(guān)鍵字之外,應(yīng)盡量避免在表之間出現(xiàn)重復(fù)字段。這樣做的目的是使數(shù)據(jù)冗余盡量小,防止在插入、刪除和更新時(shí)造成數(shù)據(jù)的不一致。
例如,在課程表中有了課程名宇段,在選課表中就不應(yīng)該有課程名字段。需要時(shí)可以通過(guò)兩個(gè)表的聯(lián)接找到所選課程對(duì)應(yīng)的課程名稱。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |