《數(shù)據(jù)庫(kù)原理》知識(shí)點(diǎn)之關(guān)系模型的基本概念

字號(hào):

2.1.1 二維表格的基本術(shù)語(yǔ)
    考核要求:達(dá)到“識(shí)記”
    層次知識(shí)點(diǎn):主要是一些基本概念
    (1)二維表格 在關(guān)系模型中,一張二維表格對(duì)應(yīng)一個(gè)關(guān)系。
    (2)元組(tuple) 表中的一行(即一個(gè)記錄),表示一個(gè)實(shí)體;關(guān)系是由元組組成的。
    (3)關(guān)系:是一個(gè)元數(shù)為K(K>=1)的元組的集合。 一張二維表格對(duì)應(yīng)一個(gè)關(guān)系。表中的一行稱為關(guān)系的一個(gè)元組;表中的一列稱為關(guān)系的一個(gè)屬性。
    在關(guān)系模型中,對(duì)關(guān)系作了下列規(guī)范性的限制: 關(guān)系中每一個(gè)屬性值都是不可分解的;
    關(guān)系中不允許出現(xiàn)相同的元組(沒(méi)有重復(fù)元組);
    不考慮元組間的順序,即沒(méi)有行序;在理論上,屬性間的順序(即列序)也是不存在的;
    但在使用時(shí)按習(xí)慣考慮列的順序。
    (4)超鍵(Super Key):在關(guān)系中能標(biāo)識(shí)元組的屬性集稱為關(guān)系模式的超鍵;
    (5)候選鍵(Candidate Key):不含有多余屬性的超鍵稱為候選鍵;
    (6)主鍵(Primary Key):用戶選作元組標(biāo)識(shí)的一個(gè)候選鍵。
    在以上概念中,主鍵一定可作候選鍵,候選鍵一定可作超鍵;反之,則不成立。
    比如,在學(xué)生表中,如果有“學(xué)號(hào)”、“姓名”、“出生年月”等字段, 其中學(xué)號(hào)是的,那么(學(xué)號(hào))屬于超鍵,(學(xué)號(hào),姓名)的組合也是超鍵。 同時(shí),(學(xué)號(hào))是候選鍵,而(學(xué)號(hào),姓名)由于含有多余屬性,所以不是候選鍵。 在這三個(gè)概念中,主鍵的概念為重要,它是用戶選作元組標(biāo)識(shí)的一個(gè)關(guān)鍵字。 如果一個(gè)關(guān)系中有兩個(gè)或兩個(gè)以上候選鍵,用戶就選其中之一作為主鍵。
    2.1.2 關(guān)系模式、關(guān)系子模式和存儲(chǔ)模式
    考核要求:達(dá)到“識(shí)記”
    層次知識(shí)點(diǎn):三種模式的理解
    (1)關(guān)系模式:關(guān)系模型的定義包括:模式名,屬性名,值域名以及模式的主鍵。它僅僅是對(duì)數(shù)據(jù)特性的描述,不涉及到物理存儲(chǔ)方面的描述。
    (2)子模式: 子模式是用戶所用到的那部分?jǐn)?shù)據(jù)的描述。除了指出用戶數(shù)據(jù)外,還應(yīng)指出模式和子模式之間的對(duì)應(yīng)性。
    (3)存儲(chǔ)模式:關(guān)系存儲(chǔ)時(shí)的基本組織方式是文件,元組是文件中的記錄。
    幾個(gè)模式的理解(教材30頁(yè)的例子):
    在教學(xué)模型中,有實(shí)體類型“學(xué)生”,其屬性有學(xué)號(hào)S#、SNAME、AGE、SEX分別表示學(xué)生的學(xué)號(hào)、姓名、年齡、性別;實(shí)體類型“課程”的屬性C#、CNAME、TEACHER分別表示課程號(hào)、課程名和任課教師名。學(xué)生用S表示,課程用C表示,S和C之間有M:N聯(lián)系,聯(lián)系類型SC的屬性是GRADE.
    關(guān)系模式為:
    學(xué)生關(guān)系S (S#、SNAME、AGE、SEX)
    課程關(guān)系C(C#、CNAME、TEACHER)
    學(xué)習(xí)關(guān)系SC(S#、C#、GRADE)
    以下則為關(guān)系子模式:
    成績(jī)關(guān)系子模式G (S#、SNAME、C#、GRADE,GRADE),它對(duì)應(yīng)的數(shù)據(jù)來(lái)自關(guān)系S和SC.
    2.1.3 關(guān)系模型的三類完整性規(guī)則
    考核要求:達(dá)到“領(lǐng)會(huì)”
    層次知識(shí)點(diǎn):三類完整性規(guī)則的理解
    (1)實(shí)體完整性規(guī)則 要求關(guān)系中元組在組成主鍵的屬性上不能有空值。如果出現(xiàn)空值, 那么主鍵值就起不了標(biāo)識(shí)元組的作用。(對(duì)關(guān)系主鍵的約束)
    (2)參照完整性規(guī)則 要求外鍵值必須是另一個(gè)關(guān)系的主鍵的有效值,或者是空值。 (對(duì)關(guān)系外鍵的約束) 外鍵:(外來(lái)關(guān)鍵字)將一個(gè)關(guān)系的主鍵(比如 學(xué)生關(guān)系S中的S#) 放到另一個(gè)關(guān)系(比如SC)中,此時(shí)稱S#是關(guān)系SC的外鍵。
    注意事項(xiàng):
    外鍵和相應(yīng)的主鍵可以不同名,只要定義在相同值于域上即可;
    兩個(gè)關(guān)系可以是同一個(gè)關(guān)系模式,表示了屬性之間的聯(lián)系。
    外鍵值是否允許空,應(yīng)視具體情況而定
    假設(shè)數(shù)據(jù)庫(kù)有如下關(guān)系:
    學(xué)生關(guān)系S (S#、SNAME、AGE、SEX)
    課程關(guān)系C(C#、CNAME、TEACHER)
    學(xué)習(xí)關(guān)系SC(S#、C#、GRADE)
    那么(1)S#是關(guān)系S的主鍵,因此在關(guān)系S中不能為空;(實(shí)體完整性規(guī)則)
    (2)C#是關(guān)系C的主鍵,因此在關(guān)系C中不能為空;(實(shí)體完整性規(guī)則)
    關(guān)系SC中:
    S#、C#的組合為主鍵,因此S#、C#不能為空;(實(shí)體完整性規(guī)則)
    S#是來(lái)自S的外鍵,因此它必須和關(guān)系S中某個(gè)元組的S#相同。(參照完整性規(guī)則)
    C#是來(lái)自C的外鍵,因此它必須和關(guān)系C中某個(gè)元組的C#相同。(參照完整性規(guī)則)
    (3)用戶定義的完整性規(guī)則:這是針對(duì)某一具體數(shù)據(jù)的約束條件,由應(yīng)用環(huán)境決定, 例如,學(xué)生的年齡限制為15~30周歲。 用戶定義的完整性規(guī)則反映某一具體應(yīng)用涉及的數(shù)據(jù)必須滿足的語(yǔ)義要求。 系統(tǒng)提供定義和檢驗(yàn)這類完整性的機(jī)制。
    2.1.4 關(guān)系模型的形式定義
    考核要求:達(dá)到“識(shí)記”
    層次知識(shí)點(diǎn):三個(gè)組成部分的了解
    關(guān)系模型有三個(gè)組成部分:
    數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性規(guī)則關(guān)系模型的的數(shù)據(jù)結(jié)構(gòu)是關(guān)系;
    關(guān)系模型提供一組完備的高級(jí)關(guān)系運(yùn)算(關(guān)系代數(shù)+關(guān)系演算),支持?jǐn)?shù)據(jù)庫(kù)的各種操作;
    關(guān)系模型包括三類完整性規(guī)則。