設計數據庫的一般步驟及例子
發表時間:2023-07-18 來源:明輝站整理相關軟件相關文章人氣:
[摘要]在現在的程序開發中MySQL是必定會用到的,MySQL是一個開放源碼的小型關聯式數據庫管理系統,開發者為瑞典MySQL AB公司。目前MySQL被廣泛地應用在Internet上的中小型網站中。由于其...
在現在的程序開發中MySQL是必定會用到的,MySQL是一個開放源碼的小型關聯式數據庫管理系統,開發者為瑞典MySQL AB公司。目前MySQL被廣泛地應用在Internet上的中小型網站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站數據庫。這篇文章我們就來說說設計數據庫的一般步驟及例子。
一、數據庫設計的一般流程
1.概述
包括課程設計選題、項目背景、課程設計報告編寫目的、課程設計報告的組織等內容。
2.課程設計任務的需求分析
2.1設計任務
2.2設計要求
2.3需求描述的規范文檔
3.概念結構設計
3.1概念結構設計工具(E-R模型)
3.2XXX子系統(局部)
3.2.1子系統描述
3.2.2分E-R圖
3.2.3說明
3.3YYY子系統
3.3.1子系統描述
3.3.2 分E-R圖
3.3.3 說明
……
3.X 總體E-R圖
3.X.1 E-R圖的集成
3.X.2 總體E-R圖
4.邏輯結構設計
4.1關系數據模式
4.2視圖的設計
4.3優化
5.數據庫物理設計與實施
5.1數據庫應用的硬件、軟件環境介紹
5.2物理結構設計
5.3 索引的設計
5.4建立數據庫
5.5 加載數據庫測試數據
6.數據操作要求及實現
6.1數據查詢操作
6.2數據更新操作
6.3數據維護操作
6.4其他
7.數據庫應用系統的實現
8.設計心得體會
9.參考文獻
二、例子:學生選課管理系統
在高校教學管理系統中,學生選課管理是很重要的功能模塊。
需求分析:
該系統應該能管理學校的教師信息、學生信息、專業信息、學校開設的所有課程信息、學生選修課程的信息等。選課系統主要滿足三類用戶的要求,這三類用戶分別是教務處的系統管理員、教師和學生。他們所具有的操作權限以及操作內容是不同的。具體的需求分析如下:
系統管理員
維護學生的個人基本信息,實現對學生個人信息的增、刪、改等。
學生信息包括…
維護教師的個人基本信息,實現對教師個人信息的增、刪、改等。
教師信息包括…
維護課程的個人基本信息,實現對課程個人信息的增、刪、改等。
課程信息包括…
學生用戶
查詢和修改個人信息。
進行選課操作
學生可以查看自己所選課程信息及以前所選課程的成績信息。
教師用戶
查詢和修改個人信息
課程結束后,登記成績
教師可查看自己的教學安排。
數據庫概念結構設計:
概念結構設計的常用工具是ER圖。分下面幾步完成。
數據抽象(抽象出實體)。畫出各實體屬性圖。
設計分ER圖。找出實體及其聯系,并畫出分ER圖。
合并分ER圖,生成初步ER圖。
全局ER圖。將各個實體的屬性加入初步ER圖,消除各局部可能存在的沖突(包括屬性沖突、命名沖突和結構沖突),形成全局ER圖。
數據庫邏輯結構設計:
首先,將概念模型ER圖中實體和聯系轉換為數據模型,在RDBMS中,就是轉換為關系模式,并確定關系模式的屬性和主碼。
ER圖向關系數據模型轉換的基本規則如下:
一個實體轉換為一個關系模式,實體的屬性就是關系的屬性,實體的鍵就是關系的鍵。
若實體間的聯系是1:1的,則聯系不單獨轉換為關系模式,需在兩個實體對應的關系模式中的任意一個中加入另一個關系模式的鍵和聯系的屬性。
若實體間的聯系是1:n的,則聯系不單獨轉換為關系模式,需在n端實體對應的關系模式中加入1端實體對應的關系模式的鍵和聯系的屬性。
若實體間的聯系是m:n的,則將聯系也轉換成關系模式,其屬性為兩端實體類型的碼加上和聯系的屬性,而聯系的鍵為兩端實體碼的組合。
其次,對具有相同主碼的關系模式進行必要的合并。
關系優化
以規范化理論為指導,對關系數據模型進行優化。規范化到第三范式。
數據庫物理設計與實施:
主要包括以下工作:
創建數據庫
創建基本表,設置約束條件,管理基本表。
創建和管理索引。(DBMS會為主鍵自動建立索引。建立索引來提高查詢效率。)
創建和管理視圖。
向數據庫中輸入數據。
用SQL語句 實現對數據查詢、修改、刪除等操作。(可以先思考需要怎么操縱數據庫,后面再實現)
編寫存儲過程、觸發器等,并調試通過。(比如創建一個觸發器當學生表中某學號的學生被刪除時,自動將選課表中的該選課記錄刪除)
數據庫運行維護:
主要包括以下內容
數據庫的備份與恢復
數據庫的安全性與完整性控制
數據庫的性能監督、分析和改進
訪問數據庫,可以通過以下語句操縱數據。
對學生表的性別、年齡字段添加約束。
添加一個屬性列“入學時間”。
修改“專業”的數據類型。
增加課程名必須取唯一值的約束。
在選課表的列“學號”、“課程號”上建立索引。
在選課表的“工號”、“課程號”上建立索引。
假設學生選課系統中有4個院系,為方便各個院系的教學管理人員查看本院系學生信息,每個院系分別建立一個學生視圖。
建立一個反映學生選課情況的視圖。
學生通過學號或姓名查詢自己的選課信息。
學生通過學號或姓名查詢自己的基本信息。
列出某個教師所授某門課程的成績單,并按成績升或降序顯示。
列出某個教師所教授的所有課程信息。
查詢某個學生已經獲得的學分信息。
統計某個教師某門課的平均分、最高分、最低分。
添加一門新的課程。
修改某門課的學分。
創建刪除觸發器,當學生表中的某“學號”的學生被刪除時,自動將選課表中的該學生的選課記錄刪除,即為學生表建立刪除觸發器,實現學生表和選課表的級聯刪除。
創建刪除觸發器,當課程表中的某“課程編號”的課程被刪除時,自動將選課表中的選修該課程的記錄都刪除,即為課程表建立刪除觸發器,實現學生表和選課表的級聯刪除。
創建插入觸發器,當往選課表中插入記錄時,查詢學生表中是否有該學號的學生,課程表中是否有該課程編號的課程,如果都有則可以插入,否則拒絕插入。
備份“學生選課系統”數據庫到本地磁盤E盤下的BACKUPDB文件夾下面。
sp_addumpdevice 'disk','學生選課系統_bak','E:\BACKUPDB\學生選課系統_bak'
BACKUP DATABASE 學生選課系統TO DISK='學生選課系統_bak'
圖書借閱管理系統
需求分析:
系統應實現以下功能:圖書管理員可以維護圖書信息,包括增加新書、修改圖書信息、辦理圖書借閱登記、歸還登記、過期圖書處理、丟失圖書處理以及讀者借閱證件信息的維護等。而讀者可以實現借書、還書、查詢圖書信息、借書信息等。具體要求如下:
圖書信息管理:錄入各圖書信息、維護圖書信息等。
讀者信息管理:維護讀者信息并根據實際情況需要修改、更新、刪除讀者
借閱管理:包括借書、還書、過期圖書歸還處理等。
圖書借閱管理系統主要有2種用戶。
管理員:維護圖書基本數據,包括圖書種類、更新圖書信息,進行讀者的圖書借閱和歸還處理等。
讀者用戶:可以查詢圖書信息、借閱圖書。
語義:圖書館的圖書情況和管理規定,每種類型圖書有很多不同的圖書,同樣的書可以習多本;每本圖書可以被多次借閱,每位讀者可以借閱多本圖書。每本圖書的借閱期限是一個月。
數據庫概念結構設計:
分3步完成:1)抽象出實體2)抽象出聯系實際)確定實體的屬性和鍵
圖書類型,包括:圖書分類號、圖書分類名稱、描述信息。
圖書,包括:圖書編號、圖書名稱、作者、出版社、價格。
讀者,包括:證件號、姓名、性別、所在系、班級、證件狀態(包括有效和失效)、聯系方式等。
讀者與圖書之間是m:n,圖書類型與圖書之間是1:n,讀者與圖書類型之間無聯系。
數據庫邏輯結構設計:
將E-R圖轉換成關系模型。
對關系模型進行優化
規范化到第三范式
數據庫物理設計與實施:
主要包括以下工作:
創建數據庫
創建基本表,設置約束條件,管理基本表。
創建和管理索引。(DBMS會為主鍵自動建立索引。建立索引來提高查詢效率。)
創建和管理視圖。
向數據庫中輸入數據。
用SQL語句 實現對數據查詢、修改、刪除等操作。(可以先思考需要怎么操縱數據庫,后面再實現)
編寫存儲過程、觸發器等,并調試通過。
操縱數據庫中的數據
為了方便管理員分類管理,現在需要為多種圖書類類型的圖書建立視圖。
建立讀者借閱情況表。
為借閱表中的證件號和借閱日期建立組合次索引。
為圖書表中的圖書分類號、書名、出版社字段分別建立索引。
為借閱表建立一個插入觸發器,以保證向借閱表插入的“證件號”在讀者表中存在,如果不存在,就不會向借閱表中插入借閱信息記錄。
在借閱表建立一個更新觸發器,監視借閱表的“借閱日期”列,使其不能手工修改。
在讀者表建立刪除觸發器,實現讀者表和借閱表的級聯刪除。
運動會管理系統
需求分析:
引入計算機管理運動會,運動員可以在運動會管理系統中查詢自己的比賽項目及比賽結果,裁判員或工作人員可以通過系統記錄運動員各個比賽項目的成績、進行成績統計等。運動會管理系統保存運動員、比賽項目以及不同類型比賽的參賽數據。
運動會管理系統主要管理對象有代表隊、運動員、比賽項目等。
本系統中,基本規定如下:一個代表隊包含多個運動員,一個運動員只能屬于一個代表隊;一個運動員可以參加多個比賽項目,一個比賽項目可以被多個運動員參加;假設各個比賽項目結束后,按照成績由高到低排出名次,并對前3名的運動員給予相應的積分,如第1、2、3名分別積分為3、2、1分,而獲得其他名次的運動員積分為零分,將代表隊中所有成員的積分累加,得到各代表隊總積分,將總積分由高到低排序,得到各個代表隊的排名情況。
為簡化系統需求,本運動會管理系統只考慮田徑運動會的管理,僅考慮代表隊、、比賽項目的關系,不考慮裁判評分、比賽時間、地點等到的安排。
數據庫概念結構設計:
代表隊:代表隊員、隊名稱、領隊、總積分、總名次
運動員:運動員號,姓名、性別、年齡
比賽項目:項目號、項目類別、項目名稱、成績單位。
數據庫邏輯結構設計:
4張表,
比賽詳情,包括成績、積分、名次
以上就是設計數據庫的一般步驟及例子全部內容,相信大家已經對如何設計數據庫已經有一個大概的思路了吧。
相關教程:
如何優化數據庫
還原數據庫,數據庫提示正在還原中的處理方法
一個關于數據庫的聯合查詢的實例
以上就是設計數據庫的一般步驟及例子的詳細內容,更多請關注php中文網其它相關文章!
學習教程快速掌握從入門到精通的SQL知識。