明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

設(shè)計(jì)數(shù)據(jù)庫(kù)的一般步驟及例子

[摘要]在現(xiàn)在的程序開(kāi)發(fā)中MySQL是必定會(huì)用到的,MySQL是一個(gè)開(kāi)放源碼的小型關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng),開(kāi)發(fā)者為瑞典MySQL AB公司。目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其...
在現(xiàn)在的程序開(kāi)發(fā)中MySQL是必定會(huì)用到的,MySQL是一個(gè)開(kāi)放源碼的小型關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng),開(kāi)發(fā)者為瑞典MySQL AB公司。目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。這篇文章我們就來(lái)說(shuō)說(shuō)設(shè)計(jì)數(shù)據(jù)庫(kù)的一般步驟及例子。

一、數(shù)據(jù)庫(kù)設(shè)計(jì)的一般流程

1.概述

包括課程設(shè)計(jì)選題、項(xiàng)目背景、課程設(shè)計(jì)報(bào)告編寫(xiě)目的、課程設(shè)計(jì)報(bào)告的組織等內(nèi)容。

2.課程設(shè)計(jì)任務(wù)的需求分析

2.1設(shè)計(jì)任務(wù)

2.2設(shè)計(jì)要求

2.3需求描述的規(guī)范文檔

3.概念結(jié)構(gòu)設(shè)計(jì)

3.1概念結(jié)構(gòu)設(shè)計(jì)工具(E-R模型)

3.2XXX子系統(tǒng)(局部)

3.2.1子系統(tǒng)描述

3.2.2分E-R圖

3.2.3說(shuō)明

3.3YYY子系統(tǒng)

3.3.1子系統(tǒng)描述

3.3.2 分E-R圖

3.3.3 說(shuō)明

……

3.X 總體E-R圖

3.X.1 E-R圖的集成

3.X.2 總體E-R圖

4.邏輯結(jié)構(gòu)設(shè)計(jì)

4.1關(guān)系數(shù)據(jù)模式

4.2視圖的設(shè)計(jì)

4.3優(yōu)化

5.數(shù)據(jù)庫(kù)物理設(shè)計(jì)與實(shí)施

5.1數(shù)據(jù)庫(kù)應(yīng)用的硬件、軟件環(huán)境介紹

5.2物理結(jié)構(gòu)設(shè)計(jì)

5.3 索引的設(shè)計(jì)

5.4建立數(shù)據(jù)庫(kù)

5.5 加載數(shù)據(jù)庫(kù)測(cè)試數(shù)據(jù)

6.數(shù)據(jù)操作要求及實(shí)現(xiàn)

6.1數(shù)據(jù)查詢(xún)操作

6.2數(shù)據(jù)更新操作

6.3數(shù)據(jù)維護(hù)操作

6.4其他

7.數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的實(shí)現(xiàn)

8.設(shè)計(jì)心得體會(huì)

9.參考文獻(xiàn)

二、例子:學(xué)生選課管理系統(tǒng)

在高校教學(xué)管理系統(tǒng)中,學(xué)生選課管理是很重要的功能模塊。

需求分析:

該系統(tǒng)應(yīng)該能管理學(xué)校的教師信息、學(xué)生信息、專(zhuān)業(yè)信息、學(xué)校開(kāi)設(shè)的所有課程信息、學(xué)生選修課程的信息等。選課系統(tǒng)主要滿足三類(lèi)用戶(hù)的要求,這三類(lèi)用戶(hù)分別是教務(wù)處的系統(tǒng)管理員、教師和學(xué)生。他們所具有的操作權(quán)限以及操作內(nèi)容是不同的。具體的需求分析如下:

系統(tǒng)管理員

維護(hù)學(xué)生的個(gè)人基本信息,實(shí)現(xiàn)對(duì)學(xué)生個(gè)人信息的增、刪、改等。

學(xué)生信息包括…

維護(hù)教師的個(gè)人基本信息,實(shí)現(xiàn)對(duì)教師個(gè)人信息的增、刪、改等。

教師信息包括…

維護(hù)課程的個(gè)人基本信息,實(shí)現(xiàn)對(duì)課程個(gè)人信息的增、刪、改等。

課程信息包括…

學(xué)生用戶(hù)

查詢(xún)和修改個(gè)人信息。

進(jìn)行選課操作

學(xué)生可以查看自己所選課程信息及以前所選課程的成績(jī)信息。

教師用戶(hù)

查詢(xún)和修改個(gè)人信息

課程結(jié)束后,登記成績(jī)

教師可查看自己的教學(xué)安排。

數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì):

概念結(jié)構(gòu)設(shè)計(jì)的常用工具是ER圖。分下面幾步完成。

數(shù)據(jù)抽象(抽象出實(shí)體)。畫(huà)出各實(shí)體屬性圖。

設(shè)計(jì)分ER圖。找出實(shí)體及其聯(lián)系,并畫(huà)出分ER圖。

合并分ER圖,生成初步ER圖。

全局ER圖。將各個(gè)實(shí)體的屬性加入初步ER圖,消除各局部可能存在的沖突(包括屬性沖突、命名沖突和結(jié)構(gòu)沖突),形成全局ER圖。

數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì):

首先,將概念模型ER圖中實(shí)體和聯(lián)系轉(zhuǎn)換為數(shù)據(jù)模型,在RDBMS中,就是轉(zhuǎn)換為關(guān)系模式,并確定關(guān)系模式的屬性和主碼。

ER圖向關(guān)系數(shù)據(jù)模型轉(zhuǎn)換的基本規(guī)則如下:

一個(gè)實(shí)體轉(zhuǎn)換為一個(gè)關(guān)系模式,實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的鍵就是關(guān)系的鍵。

若實(shí)體間的聯(lián)系是1:1的,則聯(lián)系不單獨(dú)轉(zhuǎn)換為關(guān)系模式,需在兩個(gè)實(shí)體對(duì)應(yīng)的關(guān)系模式中的任意一個(gè)中加入另一個(gè)關(guān)系模式的鍵和聯(lián)系的屬性。

若實(shí)體間的聯(lián)系是1:n的,則聯(lián)系不單獨(dú)轉(zhuǎn)換為關(guān)系模式,需在n端實(shí)體對(duì)應(yīng)的關(guān)系模式中加入1端實(shí)體對(duì)應(yīng)的關(guān)系模式的鍵和聯(lián)系的屬性。

若實(shí)體間的聯(lián)系是m:n的,則將聯(lián)系也轉(zhuǎn)換成關(guān)系模式,其屬性為兩端實(shí)體類(lèi)型的碼加上和聯(lián)系的屬性,而聯(lián)系的鍵為兩端實(shí)體碼的組合。

其次,對(duì)具有相同主碼的關(guān)系模式進(jìn)行必要的合并。

關(guān)系優(yōu)化

以規(guī)范化理論為指導(dǎo),對(duì)關(guān)系數(shù)據(jù)模型進(jìn)行優(yōu)化。規(guī)范化到第三范式。

數(shù)據(jù)庫(kù)物理設(shè)計(jì)與實(shí)施:

主要包括以下工作:

創(chuàng)建數(shù)據(jù)庫(kù)

創(chuàng)建基本表,設(shè)置約束條件,管理基本表。

創(chuàng)建和管理索引。(DBMS會(huì)為主鍵自動(dòng)建立索引。建立索引來(lái)提高查詢(xún)效率。)

創(chuàng)建和管理視圖。

向數(shù)據(jù)庫(kù)中輸入數(shù)據(jù)。

用SQL語(yǔ)句 實(shí)現(xiàn)對(duì)數(shù)據(jù)查詢(xún)、修改、刪除等操作。(可以先思考需要怎么操縱數(shù)據(jù)庫(kù),后面再實(shí)現(xiàn))

編寫(xiě)存儲(chǔ)過(guò)程、觸發(fā)器等,并調(diào)試通過(guò)。(比如創(chuàng)建一個(gè)觸發(fā)器當(dāng)學(xué)生表中某學(xué)號(hào)的學(xué)生被刪除時(shí),自動(dòng)將選課表中的該選課記錄刪除)

數(shù)據(jù)庫(kù)運(yùn)行維護(hù):

主要包括以下內(nèi)容

數(shù)據(jù)庫(kù)的備份與恢復(fù)

數(shù)據(jù)庫(kù)的安全性與完整性控制

數(shù)據(jù)庫(kù)的性能監(jiān)督、分析和改進(jìn)

訪問(wèn)數(shù)據(jù)庫(kù),可以通過(guò)以下語(yǔ)句操縱數(shù)據(jù)。

對(duì)學(xué)生表的性別、年齡字段添加約束。

添加一個(gè)屬性列“入學(xué)時(shí)間”。

修改“專(zhuān)業(yè)”的數(shù)據(jù)類(lèi)型。

增加課程名必須取唯一值的約束。

在選課表的列“學(xué)號(hào)”、“課程號(hào)”上建立索引。

在選課表的“工號(hào)”、“課程號(hào)”上建立索引。

假設(shè)學(xué)生選課系統(tǒng)中有4個(gè)院系,為方便各個(gè)院系的教學(xué)管理人員查看本院系學(xué)生信息,每個(gè)院系分別建立一個(gè)學(xué)生視圖。

建立一個(gè)反映學(xué)生選課情況的視圖。

學(xué)生通過(guò)學(xué)號(hào)或姓名查詢(xún)自己的選課信息。

學(xué)生通過(guò)學(xué)號(hào)或姓名查詢(xún)自己的基本信息。

列出某個(gè)教師所授某門(mén)課程的成績(jī)單,并按成績(jī)升或降序顯示。

列出某個(gè)教師所教授的所有課程信息。

查詢(xún)某個(gè)學(xué)生已經(jīng)獲得的學(xué)分信息。

統(tǒng)計(jì)某個(gè)教師某門(mén)課的平均分、最高分、最低分。

添加一門(mén)新的課程。

修改某門(mén)課的學(xué)分。

創(chuàng)建刪除觸發(fā)器,當(dāng)學(xué)生表中的某“學(xué)號(hào)”的學(xué)生被刪除時(shí),自動(dòng)將選課表中的該學(xué)生的選課記錄刪除,即為學(xué)生表建立刪除觸發(fā)器,實(shí)現(xiàn)學(xué)生表和選課表的級(jí)聯(lián)刪除。

創(chuàng)建刪除觸發(fā)器,當(dāng)課程表中的某“課程編號(hào)”的課程被刪除時(shí),自動(dòng)將選課表中的選修該課程的記錄都刪除,即為課程表建立刪除觸發(fā)器,實(shí)現(xiàn)學(xué)生表和選課表的級(jí)聯(lián)刪除。

創(chuàng)建插入觸發(fā)器,當(dāng)往選課表中插入記錄時(shí),查詢(xún)學(xué)生表中是否有該學(xué)號(hào)的學(xué)生,課程表中是否有該課程編號(hào)的課程,如果都有則可以插入,否則拒絕插入。

備份“學(xué)生選課系統(tǒng)”數(shù)據(jù)庫(kù)到本地磁盤(pán)E盤(pán)下的BACKUPDB文件夾下面。

sp_addumpdevice 'disk','學(xué)生選課系統(tǒng)_bak','E:\BACKUPDB\學(xué)生選課系統(tǒng)_bak'

BACKUP DATABASE 學(xué)生選課系統(tǒng)TO DISK='學(xué)生選課系統(tǒng)_bak'

圖書(shū)借閱管理系統(tǒng)

需求分析:

系統(tǒng)應(yīng)實(shí)現(xiàn)以下功能:圖書(shū)管理員可以維護(hù)圖書(shū)信息,包括增加新書(shū)、修改圖書(shū)信息、辦理圖書(shū)借閱登記、歸還登記、過(guò)期圖書(shū)處理、丟失圖書(shū)處理以及讀者借閱證件信息的維護(hù)等。而讀者可以實(shí)現(xiàn)借書(shū)、還書(shū)、查詢(xún)圖書(shū)信息、借書(shū)信息等。具體要求如下:

圖書(shū)信息管理:錄入各圖書(shū)信息、維護(hù)圖書(shū)信息等。

讀者信息管理:維護(hù)讀者信息并根據(jù)實(shí)際情況需要修改、更新、刪除讀者

借閱管理:包括借書(shū)、還書(shū)、過(guò)期圖書(shū)歸還處理等。

圖書(shū)借閱管理系統(tǒng)主要有2種用戶(hù)。

管理員:維護(hù)圖書(shū)基本數(shù)據(jù),包括圖書(shū)種類(lèi)、更新圖書(shū)信息,進(jìn)行讀者的圖書(shū)借閱和歸還處理等。

讀者用戶(hù):可以查詢(xún)圖書(shū)信息、借閱圖書(shū)。

語(yǔ)義:圖書(shū)館的圖書(shū)情況和管理規(guī)定,每種類(lèi)型圖書(shū)有很多不同的圖書(shū),同樣的書(shū)可以習(xí)多本;每本圖書(shū)可以被多次借閱,每位讀者可以借閱多本圖書(shū)。每本圖書(shū)的借閱期限是一個(gè)月。

數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì):

分3步完成:1)抽象出實(shí)體2)抽象出聯(lián)系實(shí)際)確定實(shí)體的屬性和鍵

圖書(shū)類(lèi)型,包括:圖書(shū)分類(lèi)號(hào)、圖書(shū)分類(lèi)名稱(chēng)、描述信息。

圖書(shū),包括:圖書(shū)編號(hào)、圖書(shū)名稱(chēng)、作者、出版社、價(jià)格。

讀者,包括:證件號(hào)、姓名、性別、所在系、班級(jí)、證件狀態(tài)(包括有效和失效)、聯(lián)系方式等。

讀者與圖書(shū)之間是m:n,圖書(shū)類(lèi)型與圖書(shū)之間是1:n,讀者與圖書(shū)類(lèi)型之間無(wú)聯(lián)系。

數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì):

將E-R圖轉(zhuǎn)換成關(guān)系模型。

對(duì)關(guān)系模型進(jìn)行優(yōu)化

規(guī)范化到第三范式

數(shù)據(jù)庫(kù)物理設(shè)計(jì)與實(shí)施:

主要包括以下工作:

創(chuàng)建數(shù)據(jù)庫(kù)

創(chuàng)建基本表,設(shè)置約束條件,管理基本表。

創(chuàng)建和管理索引。(DBMS會(huì)為主鍵自動(dòng)建立索引。建立索引來(lái)提高查詢(xún)效率。)

創(chuàng)建和管理視圖。

向數(shù)據(jù)庫(kù)中輸入數(shù)據(jù)。

用SQL語(yǔ)句 實(shí)現(xiàn)對(duì)數(shù)據(jù)查詢(xún)、修改、刪除等操作。(可以先思考需要怎么操縱數(shù)據(jù)庫(kù),后面再實(shí)現(xiàn))

編寫(xiě)存儲(chǔ)過(guò)程、觸發(fā)器等,并調(diào)試通過(guò)。

操縱數(shù)據(jù)庫(kù)中的數(shù)據(jù)

為了方便管理員分類(lèi)管理,現(xiàn)在需要為多種圖書(shū)類(lèi)類(lèi)型的圖書(shū)建立視圖。

建立讀者借閱情況表。

為借閱表中的證件號(hào)和借閱日期建立組合次索引。

為圖書(shū)表中的圖書(shū)分類(lèi)號(hào)、書(shū)名、出版社字段分別建立索引。

為借閱表建立一個(gè)插入觸發(fā)器,以保證向借閱表插入的“證件號(hào)”在讀者表中存在,如果不存在,就不會(huì)向借閱表中插入借閱信息記錄。

在借閱表建立一個(gè)更新觸發(fā)器,監(jiān)視借閱表的“借閱日期”列,使其不能手工修改。

在讀者表建立刪除觸發(fā)器,實(shí)現(xiàn)讀者表和借閱表的級(jí)聯(lián)刪除。

運(yùn)動(dòng)會(huì)管理系統(tǒng)

需求分析:

引入計(jì)算機(jī)管理運(yùn)動(dòng)會(huì),運(yùn)動(dòng)員可以在運(yùn)動(dòng)會(huì)管理系統(tǒng)中查詢(xún)自己的比賽項(xiàng)目及比賽結(jié)果,裁判員或工作人員可以通過(guò)系統(tǒng)記錄運(yùn)動(dòng)員各個(gè)比賽項(xiàng)目的成績(jī)、進(jìn)行成績(jī)統(tǒng)計(jì)等。運(yùn)動(dòng)會(huì)管理系統(tǒng)保存運(yùn)動(dòng)員、比賽項(xiàng)目以及不同類(lèi)型比賽的參賽數(shù)據(jù)。

運(yùn)動(dòng)會(huì)管理系統(tǒng)主要管理對(duì)象有代表隊(duì)、運(yùn)動(dòng)員、比賽項(xiàng)目等。

本系統(tǒng)中,基本規(guī)定如下:一個(gè)代表隊(duì)包含多個(gè)運(yùn)動(dòng)員,一個(gè)運(yùn)動(dòng)員只能屬于一個(gè)代表隊(duì);一個(gè)運(yùn)動(dòng)員可以參加多個(gè)比賽項(xiàng)目,一個(gè)比賽項(xiàng)目可以被多個(gè)運(yùn)動(dòng)員參加;假設(shè)各個(gè)比賽項(xiàng)目結(jié)束后,按照成績(jī)由高到低排出名次,并對(duì)前3名的運(yùn)動(dòng)員給予相應(yīng)的積分,如第1、2、3名分別積分為3、2、1分,而獲得其他名次的運(yùn)動(dòng)員積分為零分,將代表隊(duì)中所有成員的積分累加,得到各代表隊(duì)總積分,將總積分由高到低排序,得到各個(gè)代表隊(duì)的排名情況。

為簡(jiǎn)化系統(tǒng)需求,本運(yùn)動(dòng)會(huì)管理系統(tǒng)只考慮田徑運(yùn)動(dòng)會(huì)的管理,僅考慮代表隊(duì)、、比賽項(xiàng)目的關(guān)系,不考慮裁判評(píng)分、比賽時(shí)間、地點(diǎn)等到的安排。

數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì):

代表隊(duì):代表隊(duì)員、隊(duì)名稱(chēng)、領(lǐng)隊(duì)、總積分、總名次

運(yùn)動(dòng)員:運(yùn)動(dòng)員號(hào),姓名、性別、年齡

比賽項(xiàng)目:項(xiàng)目號(hào)、項(xiàng)目類(lèi)別、項(xiàng)目名稱(chēng)、成績(jī)單位。

數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì):

4張表,

比賽詳情,包括成績(jī)、積分、名次

以上就是設(shè)計(jì)數(shù)據(jù)庫(kù)的一般步驟及例子全部?jī)?nèi)容,相信大家已經(jīng)對(duì)如何設(shè)計(jì)數(shù)據(jù)庫(kù)已經(jīng)有一個(gè)大概的思路了吧。

相關(guān)教程:

如何優(yōu)化數(shù)據(jù)庫(kù)

還原數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)提示正在還原中的處理方法

一個(gè)關(guān)于數(shù)據(jù)庫(kù)的聯(lián)合查詢(xún)的實(shí)例

以上就是設(shè)計(jì)數(shù)據(jù)庫(kù)的一般步驟及例子的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門(mén)到精通的SQL知識(shí)。