- SQL Server實用教程(SQL Server 2008版)
- 鄭阿奇編著
- 2393字
- 2018-12-30 11:37:51
1.2 數據庫設計
1.2.1概念結構設計
通常,把每一類數據對象的個體稱為“實體”,而每一類對象個體的集合稱為“實體集”,因此,在學生成績管理系統中主要涉及“學生”和“課程”兩個實體集。
其他非主要的實體可以很多,如班級、班長、任課教師、輔導員等實體。把每個實體集涉及的信息項稱為屬性。就“學生”實體集而言,它的屬性有:學號、姓名、性別、出生時間、專業、總學分和備注。“課程”實體集屬性有:課程號、課程名、開課學期、學時和學分。
實體集中的實體彼此是可區別的。如果實體集中的屬性或最小屬性組合的值能唯一標識其對應實體,則將該屬性或屬性組合稱為碼。對于每一個實體集,可指定一個碼為主碼。
如果用矩形框表示實體集,用帶半圓的矩形框表示屬性,用線段連接實體集與屬性,當一個屬性或屬性組合指定為主碼時,在實體集與屬性的連接線上標記一斜線,則可以用圖1.4描述學生成績管理系統中的實體集及每個實體集涉及的屬性。

圖1.4 學生和課程實體集屬性的描述
實體集A和實體集B之間存在各種關系,通常把這些關系稱為“聯系”。通常將實體集及實體集聯系的圖表示稱為實體(Entity)-聯系(Relationship)模型。
E-R圖就是E-R模型的描述方法,即實體-聯系圖,通常,關系數據庫的設計者使用E-R圖來對信息世界建模。在E-R圖中,使用矩形表示實體型,使用橢圓表示屬性,使用菱形表示聯系。從分析用戶項目涉及的數據對象及數據對象之間的聯系出發,到獲取E-R圖的這一過程,稱為概念結構設計。
兩個實體集A和B之間的聯系可能是以下三種情況之一。
1.一對一的聯系(1 : 1)
A中的一個實體至多與B中的一個實體相聯系,B中的一個實體也至多與A中的一個實體相聯系。例如,“班級”與“正班長”這兩個實體集之間的聯系是一對一的聯系,因為一個班級只有一個正班長,反過來,一個正班長只屬于一個班級。“班級”與“正班長”兩個實體集的E-R模型如圖1.5所示。

圖1.5 “班級”與“正班長”實體集E-R模型
2.一對多的聯系(1 : n)
A中的一個實體可以與B中的多個實體相聯系,而B中的一個實體至多與A中的一個實體相聯系。例如,“班級”與“學生”這兩個實體集之間的聯系是一對多的聯系,因為,一個班級可有若干學生,反過來,一個學生只能屬于一個班級。“班級”與“學生”兩個實體集的E-R模型如圖1.6所示。

圖1.6 “學生”與“班級”兩個實體集的E-R模型
3.多對多的聯系(m : n)
A中的一個實體可以與B中的多個實體相聯系,而B中的一個實體也可與A中的多個實體相聯系。例如,“學生”與“課程”這兩個實體集之間的聯系是多對多的聯系,因為,一個學生可選多門課程,反過來,一門課程可被多個學生選修。“學生”與“課程”兩個實體集的E-R模型如圖1.7所示。

圖1.7 “學生”與“課程”實體集間的E-R模型
1.2.2 邏輯結構設計
用E-R圖描述學生成績管理系統中實體集與實體集之間的聯系,目的是以E-R圖為工具,設計關系型的數據庫,即確定應用系統所使用的數據庫應包含哪些表,每個表的結構是怎樣的。前面已介紹了實體集之間的聯系,下面將介紹根據聯系從E-R圖得到關系模式的方法。
1.1 : 1聯系的E-R圖到關系模式的轉換
1∶1的聯系既可單獨對應一個關系模式,也可以不單獨對應一個關系模式。
(1)聯系單獨對應一個關系模式,則由聯系屬性、參與聯系的各實體集的主碼屬性構成關系模式,其主碼可選參與聯系的實體集的任一方的主碼。
例如,對于圖1.5描述的“班級(BJB)”與“正班長(BZB)”實體集通過屬于(SYB)聯系E-R模型,可設計如下關系模式(下橫線表示該字段為主碼):
BJB(班級編號,院系,專業,人數)
BZB(學號,姓名)
SYB(學號,班級編號)
(2)聯系不單獨對應一個關系模式,聯系的屬性及一方的主碼加入另一方實體集對應的關系模式中。
例如,對于圖1.5描述的“班級(BJB)”與“正班長(BZB)”實體集通過屬于(SYB)聯系E-R模型,可設計如下關系模式:
BJB(班級編號,院系,專業,人數)
BZB(學號,姓名,班級編號)
或者
BJB(班級編號,院系,專業,人數,學號)
BZB(學號,姓名)
2.1 : n聯系的E-R圖到關系模式的轉換
1∶n的聯系既可單獨對應一個關系模式,也可以不單獨對應一個關系模式。
(1)若聯系單獨對應一個關系模式,則由聯系的屬性、參與聯系的各實體集的主碼屬性構成關系模式,n端的主碼作為該關系模式的主碼。
例如,對于圖1.6描述的“班級(BJB)”與“學生(XSB)”實體集E-R模型,可設計如下關系模式:
BJB(班級編號,院系,專業,人數)
XSB(學號,姓名,性別,出生時間,專業,總學分,備注)
SYB(學號,班級編號)
(2)若聯系不單獨對應一個關系模式,則將聯系的屬性及1端的主碼加入 n 端實體集對應的關系模式中,主碼仍為n端的主碼。
例如,對于圖1.6描述的“班級(BJB)”與“學生(XSB)”實體集E-R模型,可設計如下關系模式:
BJB(班級編號,院系,專業,人數)
XSB(學號,姓名,性別,出生時間,專業,總學分,備注,班級編號)
3.m : n聯系的E-R圖到關系模式的轉換
m : n的聯系單獨對應一個關系模式,該關系模式包括聯系的屬性、參與聯系的各實體集的主碼屬性,該關系模式的主碼由各實體集的主碼屬性共同組成。
例如,對于圖1.7描述的“學生(XSB)”與“課程(KCB)”實體集之間的聯系可設計如下關系模式:
XSB(學號,姓名,性別,出生時間,專業,總學分,備注)
KCB(課程號,課程名稱,開課學期,學時,學分)
CJB(學號,課程號,成績)
關系模式CJB的主碼是由“學號”和“課程號”兩個屬性組合起來構成的一個主碼,一個關系模式只能有一個主碼。
至此,已介紹了根據E-R圖設計關系模式的方法,通常這一設計過程稱為邏輯結構設計。
在設計好一個項目的關系模式后,就可以在數據庫管理系統環境下,創建數據庫、關系表及其他數據庫對象,輸入相應數據,并根據需要對數據庫中的數據進行各種操作。
1.2.3 數據庫物理設計
數據的物理模型指數據的存儲結構,如對數據庫物理文件、索引文件的組織方式、文件的存取路徑,內存的管理等。物理模型對用戶是不可見的,它不僅與數據庫管理系統有關,還與操作系統甚至硬件有關。
- Google Flutter Mobile Development Quick Start Guide
- Python量化投資指南:基礎、數據與實戰
- Learning Spring 5.0
- Django:Web Development with Python
- Git高手之路
- Mastering PHP Design Patterns
- Functional Programming in JavaScript
- R大數據分析實用指南
- 數據結構與算法分析(C++語言版)
- RESTful Java Web Services(Second Edition)
- Java程序員面試筆試寶典(第2版)
- Java程序設計教程
- Kali Linux Wireless Penetration Testing Essentials
- MATLAB信號處理與應用
- Meteor Design Patterns