更新時間:2022-11-16 來源:黑馬程序員 瀏覽量:
關系模型由IBM公司研究員Edgar Frank Codd于1970年發(fā)表的論文中提出,經(jīng)過多年的發(fā)展,已經(jīng)成為目前最常用、最重要的模型之一。
在關系模型中有一些基本的概念,具體如下。
(1)關系(Relation)。關系一詞與數(shù)學領域有關,它是集合基礎上的一個重要的概念,用于反映元素之間的聯(lián)系和性質。從用戶角度來看,關系模型的數(shù)據(jù)結構是二維表,即通過二維表來組織數(shù)據(jù)。一個關系對應一張二維表,表中的數(shù)據(jù)包括實體本身的數(shù)據(jù)和實體間的聯(lián)系。
下面通過圖1演示一個簡單的學生信息二維表。
(2)屬性(Attribute)。二維表中的列稱為屬性,每個屬性都有一個屬性名。
(3)元組(Tuple)。二維表中的每一行數(shù)據(jù)稱為一個元組。
小提示:根據(jù)不同的習慣,屬性也可以稱為宇段(Field),元組也可以稱為記錄(Record)。
(4)域(Domain)。域是指屬性的取值范圍,例如,性別屬性的域為男、女。
(5)關系模式(Relation Schema)。關系模式是關系的描述,通??梢院営洖椤瓣P系名(屬性1,屬性2,…,屬n)”。例如,圖1-9中的二維表的關系模式如下。
學生(學號,姓名,性別,出生年月)
(6)鍵(Key)。在二維表中,若要唯一標識某一條記錄,需要用到鍵(又稱為關鍵字、碼)。例如,學生的學號具有唯一性,學號可以作為學生實體的鍵。而學生姓名可能存在重名,不適合作為鍵。通過鍵可以為兩張表建立聯(lián)系,如圖1所示。
表1 學生與班級表
在圖1中,班級表中的“班級號”是該表的鍵,學生表中的“班級號”表示學生所屬的班級,兩者建立了一對多的聯(lián)系,即一個班級中有多個學生。其中,班級表的“班級號”稱為主鍵(Primary Key),學生表的“班級號”稱為外鍵(Foreign Key)。
學生與課程的多對多聯(lián)系,可以通過中間表來實現(xiàn),如圖2所示。
表2 學生表與課程表
在圖2中,學生表與課程表之間通過學生選課表關聯(lián)。學生選課表將學生與課程的多對多關系拆解成兩個一對多關系,即一個學生選修多門課,一門課被多個學生選修。