- Access 2010數(shù)據(jù)庫程序設(shè)計
- 邵敏敏 董保蓮 張楠
- 1695字
- 2019-10-23 13:59:09
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)。
- 數(shù)據(jù)要素安全流通
- Enterprise Integration with WSO2 ESB
- Learn Unity ML-Agents:Fundamentals of Unity Machine Learning
- 跟老男孩學(xué)Linux運維:MySQL入門與提高實踐
- 白話大數(shù)據(jù)與機(jī)器學(xué)習(xí)
- 數(shù)據(jù)庫設(shè)計與應(yīng)用(SQL Server 2014)(第二版)
- 高維數(shù)據(jù)分析預(yù)處理技術(shù)
- Python數(shù)據(jù)分析與數(shù)據(jù)化運營
- Chef Essentials
- SQL Server 2012實施與管理實戰(zhàn)指南
- 區(qū)域云計算和大數(shù)據(jù)產(chǎn)業(yè)發(fā)展:浙江樣板
- 數(shù)據(jù)庫與數(shù)據(jù)處理:Access 2010實現(xiàn)
- 數(shù)據(jù)挖掘競賽實戰(zhàn):方法與案例
- 離線和實時大數(shù)據(jù)開發(fā)實戰(zhàn)
- 企業(yè)級大數(shù)據(jù)項目實戰(zhàn):用戶搜索行為分析系統(tǒng)從0到1