- Access 2010數據庫程序設計
- 邵敏敏 董保蓮 張楠
- 1443字
- 2019-10-23 13:59:08
1.2.1 關系模型
關系模型由一組關系組成。每個關系的數據結構就是一張規范化的二維表。圖1.2給出了一張Access中的學生表,這就是一個關系。圖1.3是一張選課成績表,這也是一個關系。這兩張表中都有同樣的屬性“學生編號”,根據學生編號將兩個關系關聯起來。

圖1.2 學生表

圖1.3 選課成績表
1.基本術語
(1)關系(Relation)
一個關系就是一張二維表,每個關系都有一個相對應的關系名。在Access中,一張數據表就是一個關系,表的名字就是關系名。
關系模式:對關系的描述。
關系模式的格式為:
關系名(屬性名1,屬性名2,…,屬性名n)
在Access中,關系模式表現為表的結構:
表名(列名1,列名2,…,列名n)
例如:學生(學生編號,姓名,性別,年齡,入校日期,團員否,住址,照片)
選課成績(選課ID,學生編號,課程編號,成績)
(2)元組(Tuple)
在一個二維表中,一行即為一個元組,也稱為一條記錄。元組在Access表中對應一條具體的記錄。例如,學生表和選課成績表中都包含了多條記錄,每一行即為一條記錄。
(3)屬性(Attribute)
在一個二維表中,一列即為一個屬性,也稱為字段。給每個屬性起一個名稱即屬性名(或稱字段名)。例如,學生表有8列,對應8個屬性(學生編號,姓名,性別,年齡,入校日期,團員否,住址,照片)。
(4)域(Domain)
域就是屬性的取值范圍。例如,“性別”屬性取值范圍為“男”“女”兩個漢字,“團員否”屬性取值范圍只能從邏輯真或邏輯假兩個值中取值(Yes或No)。
(5)分量(Component)
分量就是元組中的一個屬性值。例如,“121032101”是一個學生的學生編號。
(6)碼(也稱關鍵字或鍵,Key)
表中的某個屬性或屬性組,其值可以唯一確定一個元組。例如,學生表中的學生編號可以唯一確定一個學生,也就成為學生關系的碼。姓名字段中,有可能兩個學生的姓名是一樣的,因此,姓名不能作為唯一確定一個元組的關鍵字。假如學生表中還有一個身份證號屬性,因為每個人的身份證號均不相同,它也能唯一確定一個學生,因此,它可作為候選鍵。在一張表中,可以有多個候選鍵,選擇其中一個可以作為此表中的主關鍵字(主鍵)。在Access中,主鍵就起到了唯一標識一條記錄的作用。例如,學生編號即為學生表中的主鍵,選課ID是選課成績表中的主鍵。
(7)外關鍵字(Foreign Key)
如果表中的一個關鍵字不是本表的主關鍵字,而是另外一個表的主關鍵字或者候選關鍵字,則這個屬性就稱為外關鍵字(外鍵)。
例如,選課成績表中,學生編號不能唯一確定表中的一條記錄,它不是本表中的主鍵,但它是學生表中的主鍵,則學生編號就是選課成績表中的外鍵。外鍵可以把兩張有聯系的表關聯起來。學生表和選課成績表通過學生編號這個字段建立了聯系。
2.關系的性質
(1)關系的每一個屬性值必須是不可再分的元素。
關系模型要求關系必須是規范化的,即關系必須滿足一定的規范條件。其中最基本的條件就是,關系的每一個分量必須是一個不可分的數據項,也就是說,表中不能再含有表。
(2)每一列中的數值是同類型的數據,來自同一個域。
(3)不同的列應給予不同的屬性名。
在同一個關系中不能出現相同的屬性名。在Access中,同一張表中不能有相同的字段名。
(4)任意兩個元組不能完全相同。
在Access中,同一張表中不能有兩條完全相同的記錄。
(5)行列的次序可以任意交換。
在一個關系中,行的次序無關緊要,列的次序也無關緊要。任意交換兩行或兩列的位置不影響數據實際的意義。例如,在學生表中,學生編號為“121032101”的學生記錄與學生編號為“121032102”的學生記錄次序可以交換,學生編號和姓名兩列次序可以交換,均不會影響學生的信息。
表1.1給出了關系術語和一般表格術語的對比。
表1.1 術語對比
