皇甫大雙
摘要:數(shù)據(jù)庫(kù)設(shè)計(jì)在整個(gè)軟件項(xiàng)目開(kāi)發(fā)中起到非常重要的作用,是整個(gè)軟件應(yīng)用的根基,是軟件設(shè)計(jì)的起點(diǎn),它是衡量一個(gè)系統(tǒng)是否設(shè)計(jì)實(shí)用的重要標(biāo)志,一個(gè)合理的數(shù)據(jù)庫(kù)設(shè)計(jì)能夠提高系統(tǒng)的執(zhí)行效率,便于后期系統(tǒng)的維護(hù)和擴(kuò)展。
關(guān)鍵詞:數(shù)據(jù)庫(kù)設(shè)計(jì);標(biāo)志;擴(kuò)展
中圖分類(lèi)號(hào):TP311? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ?文章編號(hào):1009-3044(2018)35-0020-02
1 數(shù)據(jù)庫(kù)簡(jiǎn)介
1.1 數(shù)據(jù)庫(kù)的概念
計(jì)算機(jī)在進(jìn)行事務(wù)處理時(shí),會(huì)在計(jì)算機(jī)系統(tǒng)中存入大量的數(shù)據(jù),數(shù)據(jù)是對(duì)現(xiàn)實(shí)社會(huì)中事物屬性和特性的描述和記錄的一種方法和手段。概括地講,數(shù)據(jù)庫(kù)(database)其實(shí)就是一個(gè)按照一定的組織結(jié)構(gòu)和規(guī)則存放所需數(shù)據(jù)的倉(cāng)庫(kù),為了方便的管理這些數(shù)據(jù),數(shù)據(jù)庫(kù)管理系統(tǒng)為我們提供了很多的方法來(lái)管理它們。
大量的數(shù)據(jù)被收集之后,需要我們更進(jìn)一步地對(duì)這些數(shù)據(jù)歸檔、篩選,從中分析、提煉出有用的信息。在計(jì)算機(jī)沒(méi)被廣泛使用之前,我們存放數(shù)據(jù)主要是采用紙質(zhì)的形式存放在文件柜中,但是隨著信息時(shí)代的快速發(fā)展,數(shù)據(jù)量呈現(xiàn)了爆炸性的增長(zhǎng),采用以往傳統(tǒng)型的保存數(shù)據(jù)的方式已經(jīng)不能滿(mǎn)足現(xiàn)在我們的需求,為此就要借助專(zhuān)門(mén)的數(shù)據(jù)庫(kù)技術(shù)保存和管理這些數(shù)據(jù)。
1.2 數(shù)據(jù)庫(kù)的種類(lèi)
數(shù)據(jù)庫(kù)按照不同的數(shù)據(jù)結(jié)構(gòu)和組織關(guān)系一般被分為如下三種,分別是網(wǎng)絡(luò)式數(shù)據(jù)庫(kù)、層次式數(shù)據(jù)庫(kù)以及關(guān)系式數(shù)據(jù)庫(kù),而在這三種數(shù)據(jù)庫(kù)種類(lèi)中關(guān)系數(shù)據(jù)庫(kù)是目前最受歡迎、使用最為廣泛的數(shù)據(jù)模型。本文就以最為常用的關(guān)系數(shù)據(jù)庫(kù)SQL Server為例來(lái)進(jìn)行相關(guān)知識(shí)的闡述。
1.3 常用關(guān)系型數(shù)據(jù)庫(kù)
目前,廣泛使用的數(shù)據(jù)庫(kù)管理系統(tǒng)軟件有DB2、ORACLE、SYBASE、SQL Server、Visual Foxpro、ACCESS、MySQL等,其中使用頻率最高的為ORACLE、SQL Server和MySQL三種數(shù)據(jù)庫(kù)管理系統(tǒng)。
2 數(shù)據(jù)庫(kù)設(shè)計(jì)遵循的過(guò)程
簡(jiǎn)單概括來(lái)講,一個(gè)合理的、可用的數(shù)據(jù)庫(kù)都需要經(jīng)過(guò)如下幾個(gè)設(shè)計(jì)階段,分別為用戶(hù)需求分析階段、概念模型設(shè)計(jì)階段、邏輯結(jié)構(gòu)設(shè)計(jì)階段、物理結(jié)構(gòu)設(shè)計(jì)階段。
2.1 需求分析階段
該階段是數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)過(guò)程中最為重要的一個(gè)環(huán)節(jié),需求分析的好壞直接影響系統(tǒng)整個(gè)功能的體驗(yàn)和使用。設(shè)計(jì)人員和用戶(hù)直接溝通,全面了解用戶(hù)對(duì)系統(tǒng)功能實(shí)現(xiàn)的要求,把用戶(hù)的需求進(jìn)一步的分析整理成說(shuō)明書(shū)。
2.2 概念設(shè)計(jì)階段
概念設(shè)計(jì)階段的主要任務(wù)是將在需求分析環(huán)節(jié)做好的說(shuō)明書(shū)轉(zhuǎn)化為一種通用的概念模型,主要方法是首先根據(jù)獨(dú)立的應(yīng)用設(shè)計(jì)出局部E-R圖,緊接著把這些相對(duì)獨(dú)立、互不相連的E-R模型圖歸并起來(lái),消除他們之間存在的冗余,設(shè)計(jì)出該系統(tǒng)總體的E-R模型需求。
2.3 邏輯設(shè)計(jì)階段
在邏輯設(shè)計(jì)階段需要完成的是將系統(tǒng)總體的E-R模型轉(zhuǎn)換為DBMS能接受的網(wǎng)絡(luò)式數(shù)據(jù)庫(kù)、層次式數(shù)據(jù)庫(kù)以及關(guān)系式數(shù)據(jù)庫(kù)三種種類(lèi)中的其中一個(gè),目前較為流行、通用的是轉(zhuǎn)為關(guān)系型數(shù)據(jù)庫(kù),在該關(guān)系型數(shù)據(jù)庫(kù)中完成表的結(jié)構(gòu)和關(guān)聯(lián)設(shè)計(jì)。
2.4 物理設(shè)計(jì)階段
物理設(shè)計(jì)的目的是確定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu),訪(fǎng)問(wèn)路徑和外存儲(chǔ)器的分配策略。不過(guò)這些工作的大部分可由數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)獨(dú)立完成,僅有一小部分如表的名稱(chēng),字段的類(lèi)型、長(zhǎng)度、名稱(chēng)由設(shè)計(jì)人員來(lái)完成,而數(shù)據(jù)庫(kù)文件的長(zhǎng)度等等都可以由DBMS來(lái)完成。
3 相關(guān)概念和技術(shù)
在設(shè)計(jì)數(shù)據(jù)庫(kù)的過(guò)程中,特別是在概念設(shè)計(jì)和邏輯設(shè)計(jì)階段,經(jīng)常會(huì)用到一些相關(guān)的概念和技術(shù),下面將分別加以介紹和闡述。
3.1 常用的對(duì)象
(1) 實(shí)體:在現(xiàn)實(shí)世界中客觀存在并可相互區(qū)別的事物被稱(chēng)為為實(shí)體,如一個(gè)班級(jí)、一個(gè)學(xué)生。
(2) 實(shí)體的屬性:實(shí)體本身所具有的某些特征,如學(xué)生的學(xué)號(hào),姓名,性別等,對(duì)應(yīng)表中的列。
(3) 屬性的域:屬性的取值范圍稱(chēng)為該屬性的域。
(4) 實(shí)體結(jié)構(gòu):實(shí)體屬性的集合稱(chēng)為實(shí)體結(jié)構(gòu)。
(5) 實(shí)體集:實(shí)體結(jié)構(gòu)相同的實(shí)體集合稱(chēng)為實(shí)體集。
(6) )實(shí)體的聯(lián)系:通常是指不同實(shí)體型的實(shí)體集之間的聯(lián)系,實(shí)體之間的聯(lián)系有一對(duì)一(1:1),一對(duì)多(1:N),多對(duì)多(M:N)等多種類(lèi)型
3.2 E-R方法
E-R方法,即實(shí)體-聯(lián)系方法,該方法直接從現(xiàn)實(shí)世界中抽象出實(shí)體與實(shí)體間的聯(lián)系,然后使用E-R圖來(lái)表示數(shù)據(jù)模型。在E-R圖中實(shí)體用方框表示;聯(lián)系用菱形表示,同時(shí)用邊將其與對(duì)應(yīng)的實(shí)體連接起來(lái),并在邊上標(biāo)上聯(lián)系的類(lèi)型(一對(duì)一,一對(duì)多,多對(duì)多)。
3.3 實(shí)體關(guān)系的3種基本類(lèi)型
(1) 一對(duì)一關(guān)系
假設(shè)在兩個(gè)實(shí)體A和B中,實(shí)體A中的一個(gè)對(duì)象在實(shí)體B中有唯一的對(duì)象與之相對(duì)應(yīng),同樣,實(shí)體B中的一個(gè)對(duì)象在實(shí)體A中有唯一的對(duì)象與之對(duì)應(yīng),這種相對(duì)應(yīng)的關(guān)系稱(chēng)為“A與B一對(duì)一”的關(guān)系。
(2) 一對(duì)多關(guān)系
假設(shè)在兩個(gè)實(shí)體A和B中,實(shí)體A中的一個(gè)對(duì)象在實(shí)體B中有多個(gè)對(duì)象與之相對(duì)應(yīng),但實(shí)體B中的一個(gè)對(duì)象在實(shí)體A中只有一個(gè)對(duì)象與之對(duì)應(yīng),這種相對(duì)應(yīng)的關(guān)系稱(chēng)為“A與B一對(duì)多”的關(guān)系。
(3) 多對(duì)多關(guān)系
假設(shè)在兩個(gè)實(shí)體A和B中,實(shí)體A中的一個(gè)對(duì)象在實(shí)體B中有多個(gè)對(duì)象與之相對(duì)應(yīng),同樣,實(shí)體B中的一個(gè)對(duì)象在實(shí)體A中也存在多個(gè)對(duì)象與之對(duì)應(yīng),這種相對(duì)應(yīng)的關(guān)系稱(chēng)為“A與B一對(duì)多”的關(guān)系。
4 學(xué)生選課數(shù)據(jù)庫(kù)設(shè)計(jì)的方法和策略
4.1 需求分析
學(xué)校要使用一套學(xué)生管理系統(tǒng),具體要求如下:
實(shí)體1:學(xué)生。屬性:學(xué)號(hào)、姓名、性別、生日、籍貫、學(xué)院編號(hào)。
實(shí)體2:學(xué)院。屬性:學(xué)院編號(hào)、學(xué)院名稱(chēng),主任。
實(shí)體3:課程。屬性:課程編號(hào)、課程名稱(chēng)、學(xué)分。
學(xué)生屬于某一學(xué)院,學(xué)習(xí)某門(mén)課程獲得成績(jī)。
4.2 概念設(shè)計(jì)
根據(jù)各實(shí)體的屬性和實(shí)體之間的關(guān)系繪制E-R圖如圖1所示。
4.3 邏輯設(shè)計(jì)
由上述E-R圖轉(zhuǎn)換為關(guān)系模型如下:
學(xué)生(學(xué)號(hào),姓名,性別,生日,籍貫,學(xué)院編號(hào))
學(xué)院(學(xué)院編號(hào),學(xué)院名稱(chēng),主任)
課程(課程編號(hào),課程名稱(chēng),學(xué)分)
成績(jī)(學(xué)號(hào),課程編號(hào),成績(jī))
4.4 物理設(shè)計(jì)
根據(jù)SQL Server2012的數(shù)據(jù)庫(kù)結(jié)構(gòu),指定數(shù)據(jù)庫(kù)文件的名稱(chēng),設(shè)計(jì)表的結(jié)構(gòu)。
數(shù)據(jù)庫(kù)文件名:學(xué)生管理系統(tǒng)。
對(duì)應(yīng)的表有學(xué)生、學(xué)院、課程、成績(jī),表的結(jié)構(gòu)如下表所示。
5 總結(jié)
關(guān)系型數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟一般主要分為需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)、物理設(shè)計(jì)以及運(yùn)行與維護(hù)設(shè)計(jì)幾個(gè)步驟,每個(gè)階段嚴(yán)格按照相應(yīng)的要求和規(guī)則,則會(huì)設(shè)計(jì)出較為合理、效率高、符合要求的數(shù)據(jù)庫(kù)。
參考文獻(xiàn):
[1] 姚麗娟. SQLServer2012數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用[M].北京:人民郵電出版社, 2017.
[2] 龐英智. SQLServer2012數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用[M].北京:高等教育出版社,2018.
[通聯(lián)編輯:梁書(shū)]