考點(diǎn)12關(guān)系數(shù)據(jù)模型
關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系完整性約束3部分組成。
1.關(guān)系數(shù)據(jù)結(jié)構(gòu)
關(guān)系模型中的數(shù)據(jù)結(jié)構(gòu)非常單一。實(shí)體及實(shí)體間的聯(lián)系都用關(guān)系表示,一個(gè)關(guān)系就是一張二維表,是關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)。
2.關(guān)系操作集合
關(guān)系模型中的關(guān)系操作的理論依據(jù)為關(guān)系代數(shù)和關(guān)系演算。
關(guān)系模型中常用的關(guān)系操作包括:選擇(select)、投影(project)、連接(join)、除(divide)、并(union)交(intersection)和差(difference)等,以及查詢(query)操作和增(insert)、刪(delete)、改(update)操作兩大部分。查詢的表達(dá)能力是其中最主要的部分。
關(guān)系數(shù)據(jù)語言可以分為如下3類:關(guān)系代數(shù)語言、關(guān)系演算語言(包括元組關(guān)系演算語言和域關(guān)系演算語言)及具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語言。
3.關(guān)系的完整性約束
數(shù)據(jù)庫的數(shù)據(jù)完整性是指數(shù)據(jù)庫中數(shù)據(jù)的正確性和相容性,那是一種語義概念,包括兩個(gè)方面:與現(xiàn)實(shí)世界中應(yīng)用需求的數(shù)據(jù)的相容性和正確性數(shù)據(jù)庫內(nèi)數(shù)據(jù)之間的相容性和正確性。
關(guān)系模型中有3類完整性約束:實(shí)體完整性、參照完整性和用戶自定義的完整性。
4.5關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)
考點(diǎn)13關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)和基本術(shù)語
(1)關(guān)系( Relation) ;關(guān)系是個(gè)元素個(gè)數(shù)為K(K,1 )的元組集合。一個(gè)關(guān)系對應(yīng)一個(gè)二維表,二維表名就是關(guān)系名。
(2)屬性(Attribute)和值域(Domain):二維表中的列(字段),稱為屬性,屬性的個(gè)數(shù)稱為關(guān)系的元數(shù),列的值稱為屬性值.屬性值的取值范圍稱為值域
(3)關(guān)系模式(Relation Schema):關(guān)系的描述稱為關(guān)系模式。
(4)元組(Tuple):二維表中的行(記錄的值)稱為一個(gè)元組。關(guān)系模式和元組的集合通稱為關(guān)系。
(5)候選碼(Candidate Key)或候選鍵:如果在一個(gè)關(guān)系中,存在多個(gè)屬性(或?qū)傩约?都能用來標(biāo)識該關(guān)系的元組,這些屬性(或?qū)傩约?都稱為該關(guān)系的候選碼或候選鍵。而包含在任何一個(gè)候選碼中的屬性稱為主屬性或碼屬性,相反,不包含的為非主屬性或非碼屬性。關(guān)系模式的所有數(shù)據(jù)組是這個(gè)關(guān)系模式的候選碼,稱為全碼。
(6)主碼(Primary Key)或主鍵:在一個(gè)關(guān)系的若十個(gè)候選碼中指定一個(gè)用來標(biāo)識該關(guān)系的元組,這個(gè)的碼稱為該關(guān)系的主碼或主鍵。
(7)外碼(Foreign Key)或外鍵:當(dāng)關(guān)系中的某個(gè)屬性(或?qū)傩越M)不是該關(guān)系的主碼或只是主碼的一部分,但卻是另一個(gè)關(guān)系的主碼時(shí),稱該屬性(或?qū)傩越M)為這個(gè)關(guān)系的外碼。
(8)參照關(guān)系(Referencing Relation)與被參照關(guān)系( Referenced Relation):它們是指與外碼相關(guān)聯(lián)的兩個(gè)關(guān)系。以外碼作為主碼的關(guān)系稱為參照關(guān)系;外碼所在的關(guān)系稱為被參照關(guān)系或目標(biāo)關(guān)系。
(9)分量(Component):元組中的一個(gè)屬性值。
(10)主屬性(Primary Attribute)和非主屬性(Nonprimary Attribute):關(guān)系中包含在任何一個(gè)候選碼中的屬性稱為主屬性或碼屬性,不包含在任何一個(gè)候選碼中的屬性稱為非主屬性或非碼屬性。
考點(diǎn)14關(guān)系的形式定義和關(guān)系數(shù)據(jù)庫對關(guān)系的限定
1.關(guān)系的形式定義
關(guān)系從數(shù)學(xué)的觀點(diǎn)來定義有以下兩種解釋。
(1)集合論觀點(diǎn):即前面所述,關(guān)系是一個(gè)元素個(gè)數(shù)為K(K,1)的元組集合。
(2)值域的觀點(diǎn):關(guān)系是屬性值域笛卡兒積的一個(gè)子集。
2.關(guān)系數(shù)據(jù)犀對關(guān)系的限定
當(dāng)關(guān)系作為關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)時(shí),關(guān)系數(shù)據(jù)庫對關(guān)系有如下的限制。
(1)列是同質(zhì)的.即每一列中的分量是同一類型的數(shù)據(jù),來自同一個(gè)域。
(2)不同的列可以出自同一個(gè)域,稱其中的每一列為一個(gè)屬性,不同的屬性要給予不同的屬性名。
(3)列的順序無關(guān)緊要,即列的次序可以任意交換。
(4)任意兩個(gè)元組不能完全相同。
(5)行的順序無關(guān)緊要,即行的次序可以任意交換。
(6)每一個(gè)屬性是不可分解的這是關(guān)系數(shù)據(jù)庫對關(guān)系的最基本的一條限定。分量必須取原子值,即每一個(gè)分量都必須是不可拆分的數(shù)據(jù)項(xiàng)。
4.6關(guān)系模型的完整性約束
考點(diǎn)15數(shù)據(jù)完整性規(guī)則的分類
關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件。關(guān)系模型中可以有3類完整性約束:實(shí)體完整性、參照完整性和用戶自定義的完整性。其中實(shí)體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束條件,被稱為兩個(gè)不變性、應(yīng)該由關(guān)系系統(tǒng)自動支持。
1.實(shí)體完整性規(guī)則
實(shí)體完整性規(guī)則:若屬性“是基本關(guān)系“的主屬性,則屬性A不能取空。實(shí)體完整性關(guān)系的所有主屬性都不能取空值,而不僅是主碼整體不能取空值。說明實(shí)體完整性規(guī)則應(yīng)包括如下幾個(gè)方面:
(1)實(shí)體完整性規(guī)則是針對基本關(guān)系而言的。一個(gè)關(guān)系(基本表)通常對應(yīng)現(xiàn)實(shí)世界的一個(gè)實(shí)體集。
(2)現(xiàn)實(shí)世界中的實(shí)體是可區(qū)分的,即它們具有某種性標(biāo)識。
(3)相應(yīng)地,關(guān)系模型中以主碼作為標(biāo)識。
(4)主碼中的屬性即主屬性不能取空值。所謂空值就是“不知道”或“不確定”的值。
2參照完整性規(guī)則
若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼K.s相對應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對于R中每個(gè)元組在F上的值必須為:取空值(F的每個(gè)屬性值均為空值)或者等于S中某個(gè)元組的主碼值。
3用戶有定義的完整性
用戶定義的完整性通常是定義對關(guān)系中除外碼與主碼屬性之外的其他屬性取值的約束,即對其他屬性值域的約束,也稱為域完整性規(guī)則,包括數(shù)據(jù)類型、精度、取值范圍、是否允許空值等。
4.7關(guān)系代數(shù)
考點(diǎn)16傳統(tǒng)集合運(yùn)算
傳統(tǒng)的集合運(yùn)算包括并、交、差和廣義笛卡兒積4種運(yùn)算。
1.并(union)
設(shè)關(guān)系R和關(guān)系S具有相同的目n(即都有n個(gè)屬性),且相應(yīng)的屬性取自同一個(gè)域,則關(guān)系R與S的并是由屬于R或?qū)儆赟的元組組成的,結(jié)果仍為n目關(guān)系,記做:
RUS={t/t∈R∨t∈S},t是元組變量。
2.差(difference)
設(shè)關(guān)系R和關(guān)系S具有相同的目n,且相應(yīng)的屬性取自同一個(gè)域,則關(guān)系R與關(guān)系S的差是由屬于R而不屬于S的所有元組組成的,結(jié)果仍為n目關(guān)系,記做:
R-S={t/t∈R∧t¢S},t是元組變量.
3.交(intersection)
設(shè)關(guān)系R和關(guān)系S具有相同的目n,且相應(yīng)的屬性取自同一個(gè)域,則關(guān)系R與關(guān)系S的交是由既屬于R而不屬于S的所有元組組成的,結(jié)果仍為n目關(guān)系,記做:
R∩S={t|t∈R∧t∈S}t ER八:ES},t是元組變量。
顯然R自s=R一(R一s)。
4.廣義笛卡兒積(Extended Cartesian Product)
設(shè)關(guān)系R和s的元數(shù)分別是廠和,,定義R和s的笛卡兒積是一個(gè)(r+s)元元組的集合,每一個(gè)元組的前r個(gè)分量來自R的一個(gè)元組,后s個(gè)分量來自S的一個(gè)元組。若R有m個(gè)元組,S有n個(gè)元組,則關(guān)系R 和S的廣義笛卡兒積有m ×n個(gè)元組,記做:
R×S={t|t=<t¬¬¬¬r ,ts>∧t¬¬¬¬r ∈ts∈S
考點(diǎn)17專門的關(guān)系運(yùn)算
專門的關(guān)系運(yùn)算包括:對單個(gè)關(guān)系進(jìn)行垂直分解(投影操作)或水平分解(選擇操作)和對多個(gè)關(guān)系進(jìn)行結(jié)合(連接操作)等。
1.選擇(selection)
選擇又稱為限制,是在關(guān)系R中選擇滿足給定條件的各元組,記做:
(R)={t|t∈R∧F(t=′真′)},其中F表示選擇條件,是一個(gè)邏輯表達(dá)式。
選擇運(yùn)算實(shí)際上是從關(guān)系R中選取使邏輯表達(dá)式F為真的元組。這是從行的角度進(jìn)行的運(yùn)算。
2.投影(projection)
關(guān)系R上的投影是從R中選擇出若干屬性列組成新的關(guān)系,記做:
二1(R、={t[A〕I t ER{,A為R的屬性列。
投影操作實(shí)際上是從關(guān)系中選取某些列,即從列的角度進(jìn)行的運(yùn)算。
3.連接(join )
連接是從兩個(gè)關(guān)聯(lián)的笛卡兒積中選取屬性間滿足一定條件的元組。
連接運(yùn)算中有兩種最為重要也是常用的連接,一種是等值連接( equi - join),一種是自然連接(naturaljoin)自然連接是構(gòu)造新關(guān)系的有效方法。一般,自然連接使用在兩個(gè)關(guān)系有公共屬性的情況中。
4.除(di%-ision)
給定關(guān)系R(X,州和別Y, Z),其中X,Y, Z為屬性組。R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域集R與S的除運(yùn)算得到一個(gè)新的關(guān)系尸(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X分量值的對象Yx包含S在Y上投影的集合。記做:
R÷S=t,[X]t,ER八二,(S) C-玖}
除操作是同時(shí)從行和列的角度進(jìn)行運(yùn)算。
4.8 SQL概述:
考點(diǎn)18結(jié)構(gòu)化查詢語言SQL
SQL (Structured Query Language)稱為結(jié)構(gòu)化查詢語言,是于1974年由Boyce和Chamberlin提出的,1975年IBM公司研制的關(guān)系數(shù)據(jù)庫管理系統(tǒng)的原型系統(tǒng)System R實(shí)現(xiàn)了SQL語言。SQL是一個(gè)通用的、功能極強(qiáng)的關(guān)系數(shù)據(jù)庫語言。我國制定了SQL的國家標(biāo)準(zhǔn)為GB12911, SQL已經(jīng)成為關(guān)系數(shù)據(jù)庫領(lǐng)域中的一種主流語言。
考點(diǎn)19 SQL的特點(diǎn)一
SQL語言集數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制功能于一體,主要特點(diǎn)包括以下幾個(gè)方面:
(1)綜合統(tǒng)一。
(2)高度非過程化。
(3)面向集合的操作方式。
(4)以同一種語法結(jié)構(gòu)提供兩種使用方式。
(5)語言簡潔,易學(xué)易用。
考點(diǎn)20 SQL數(shù)據(jù)庫體系結(jié)構(gòu)
SQL語言支持關(guān)系數(shù)據(jù)庫三級模式結(jié)構(gòu):其中外模式對應(yīng)于視圖和部分基本表,模式對應(yīng)于基本表,內(nèi)模式對應(yīng)于存儲文件:
基本表是本身獨(dú)立存在的表,在SQL中一個(gè)關(guān)系就是一個(gè)基本表。一個(gè)基本表對應(yīng)一個(gè)存儲文件,一個(gè)表可以帶若干索引,索引也存放在存儲文件中存儲文件的邏輯結(jié)構(gòu)組成了關(guān)系數(shù)據(jù)庫的內(nèi)模式。存儲文件的物理結(jié)構(gòu)是任意的,對用戶是透明的。
視圖是從一個(gè)或幾個(gè)基本表導(dǎo)出的表二視圖是一個(gè)虛表視圖在概念上與基本表等同,用戶可以在視上再定義視圖。
4.9 SQL的數(shù)據(jù)定義
考點(diǎn)21基本表
1.定義基本表
SQL語言使用CREATE TABLE語句定義基本表,其格式如下:
CREATE TABLE<表名>(<列名><數(shù)據(jù)類型>[列級完整性約束〕
[,<列名><數(shù)據(jù)類型>[列級完整性約束]…=
〔,<表級完整性約束>〕);
如果完整性約束條件涉及到該表的多個(gè)屬性列,則必須定義在表級上,否則既可以定義在列級,也可以定義在表級。
2.修改基本表
SQL語言用ALTER TABLE語句修改基本表,其格式為:
ALTER TABLE<表名>
「ADD<新列名><數(shù)據(jù)類型>[完整性約束〕〕
[DROP<完整性約束名>〕
[MODIFY<列名><數(shù)據(jù)類型>」;
ADD子句用于增加新列和新的完整性約束條件。DROP子句用于刪除指定的完整性約束條件。MOD-IFY子句用于修改原有的列定義,包括修改列名和數(shù)據(jù)類型。
3.刪除基本表
當(dāng)某個(gè)基本表不再需要時(shí),可以用DROP TABLE語句進(jìn)行刪除,其格式為:
DROP TABLE<表名>
基本表一旦被刪除,表中的數(shù)據(jù)、此表上建立的索引和視圖都將自動被刪除。因此執(zhí)行刪除基本表的操作時(shí)一定要格外小心。
關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系完整性約束3部分組成。
1.關(guān)系數(shù)據(jù)結(jié)構(gòu)
關(guān)系模型中的數(shù)據(jù)結(jié)構(gòu)非常單一。實(shí)體及實(shí)體間的聯(lián)系都用關(guān)系表示,一個(gè)關(guān)系就是一張二維表,是關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)。
2.關(guān)系操作集合
關(guān)系模型中的關(guān)系操作的理論依據(jù)為關(guān)系代數(shù)和關(guān)系演算。
關(guān)系模型中常用的關(guān)系操作包括:選擇(select)、投影(project)、連接(join)、除(divide)、并(union)交(intersection)和差(difference)等,以及查詢(query)操作和增(insert)、刪(delete)、改(update)操作兩大部分。查詢的表達(dá)能力是其中最主要的部分。
關(guān)系數(shù)據(jù)語言可以分為如下3類:關(guān)系代數(shù)語言、關(guān)系演算語言(包括元組關(guān)系演算語言和域關(guān)系演算語言)及具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語言。
3.關(guān)系的完整性約束
數(shù)據(jù)庫的數(shù)據(jù)完整性是指數(shù)據(jù)庫中數(shù)據(jù)的正確性和相容性,那是一種語義概念,包括兩個(gè)方面:與現(xiàn)實(shí)世界中應(yīng)用需求的數(shù)據(jù)的相容性和正確性數(shù)據(jù)庫內(nèi)數(shù)據(jù)之間的相容性和正確性。
關(guān)系模型中有3類完整性約束:實(shí)體完整性、參照完整性和用戶自定義的完整性。
4.5關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)
考點(diǎn)13關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)和基本術(shù)語
(1)關(guān)系( Relation) ;關(guān)系是個(gè)元素個(gè)數(shù)為K(K,1 )的元組集合。一個(gè)關(guān)系對應(yīng)一個(gè)二維表,二維表名就是關(guān)系名。
(2)屬性(Attribute)和值域(Domain):二維表中的列(字段),稱為屬性,屬性的個(gè)數(shù)稱為關(guān)系的元數(shù),列的值稱為屬性值.屬性值的取值范圍稱為值域
(3)關(guān)系模式(Relation Schema):關(guān)系的描述稱為關(guān)系模式。
(4)元組(Tuple):二維表中的行(記錄的值)稱為一個(gè)元組。關(guān)系模式和元組的集合通稱為關(guān)系。
(5)候選碼(Candidate Key)或候選鍵:如果在一個(gè)關(guān)系中,存在多個(gè)屬性(或?qū)傩约?都能用來標(biāo)識該關(guān)系的元組,這些屬性(或?qū)傩约?都稱為該關(guān)系的候選碼或候選鍵。而包含在任何一個(gè)候選碼中的屬性稱為主屬性或碼屬性,相反,不包含的為非主屬性或非碼屬性。關(guān)系模式的所有數(shù)據(jù)組是這個(gè)關(guān)系模式的候選碼,稱為全碼。
(6)主碼(Primary Key)或主鍵:在一個(gè)關(guān)系的若十個(gè)候選碼中指定一個(gè)用來標(biāo)識該關(guān)系的元組,這個(gè)的碼稱為該關(guān)系的主碼或主鍵。
(7)外碼(Foreign Key)或外鍵:當(dāng)關(guān)系中的某個(gè)屬性(或?qū)傩越M)不是該關(guān)系的主碼或只是主碼的一部分,但卻是另一個(gè)關(guān)系的主碼時(shí),稱該屬性(或?qū)傩越M)為這個(gè)關(guān)系的外碼。
(8)參照關(guān)系(Referencing Relation)與被參照關(guān)系( Referenced Relation):它們是指與外碼相關(guān)聯(lián)的兩個(gè)關(guān)系。以外碼作為主碼的關(guān)系稱為參照關(guān)系;外碼所在的關(guān)系稱為被參照關(guān)系或目標(biāo)關(guān)系。
(9)分量(Component):元組中的一個(gè)屬性值。
(10)主屬性(Primary Attribute)和非主屬性(Nonprimary Attribute):關(guān)系中包含在任何一個(gè)候選碼中的屬性稱為主屬性或碼屬性,不包含在任何一個(gè)候選碼中的屬性稱為非主屬性或非碼屬性。
考點(diǎn)14關(guān)系的形式定義和關(guān)系數(shù)據(jù)庫對關(guān)系的限定
1.關(guān)系的形式定義
關(guān)系從數(shù)學(xué)的觀點(diǎn)來定義有以下兩種解釋。
(1)集合論觀點(diǎn):即前面所述,關(guān)系是一個(gè)元素個(gè)數(shù)為K(K,1)的元組集合。
(2)值域的觀點(diǎn):關(guān)系是屬性值域笛卡兒積的一個(gè)子集。
2.關(guān)系數(shù)據(jù)犀對關(guān)系的限定
當(dāng)關(guān)系作為關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)時(shí),關(guān)系數(shù)據(jù)庫對關(guān)系有如下的限制。
(1)列是同質(zhì)的.即每一列中的分量是同一類型的數(shù)據(jù),來自同一個(gè)域。
(2)不同的列可以出自同一個(gè)域,稱其中的每一列為一個(gè)屬性,不同的屬性要給予不同的屬性名。
(3)列的順序無關(guān)緊要,即列的次序可以任意交換。
(4)任意兩個(gè)元組不能完全相同。
(5)行的順序無關(guān)緊要,即行的次序可以任意交換。
(6)每一個(gè)屬性是不可分解的這是關(guān)系數(shù)據(jù)庫對關(guān)系的最基本的一條限定。分量必須取原子值,即每一個(gè)分量都必須是不可拆分的數(shù)據(jù)項(xiàng)。
4.6關(guān)系模型的完整性約束
考點(diǎn)15數(shù)據(jù)完整性規(guī)則的分類
關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件。關(guān)系模型中可以有3類完整性約束:實(shí)體完整性、參照完整性和用戶自定義的完整性。其中實(shí)體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束條件,被稱為兩個(gè)不變性、應(yīng)該由關(guān)系系統(tǒng)自動支持。
1.實(shí)體完整性規(guī)則
實(shí)體完整性規(guī)則:若屬性“是基本關(guān)系“的主屬性,則屬性A不能取空。實(shí)體完整性關(guān)系的所有主屬性都不能取空值,而不僅是主碼整體不能取空值。說明實(shí)體完整性規(guī)則應(yīng)包括如下幾個(gè)方面:
(1)實(shí)體完整性規(guī)則是針對基本關(guān)系而言的。一個(gè)關(guān)系(基本表)通常對應(yīng)現(xiàn)實(shí)世界的一個(gè)實(shí)體集。
(2)現(xiàn)實(shí)世界中的實(shí)體是可區(qū)分的,即它們具有某種性標(biāo)識。
(3)相應(yīng)地,關(guān)系模型中以主碼作為標(biāo)識。
(4)主碼中的屬性即主屬性不能取空值。所謂空值就是“不知道”或“不確定”的值。
2參照完整性規(guī)則
若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼K.s相對應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對于R中每個(gè)元組在F上的值必須為:取空值(F的每個(gè)屬性值均為空值)或者等于S中某個(gè)元組的主碼值。
3用戶有定義的完整性
用戶定義的完整性通常是定義對關(guān)系中除外碼與主碼屬性之外的其他屬性取值的約束,即對其他屬性值域的約束,也稱為域完整性規(guī)則,包括數(shù)據(jù)類型、精度、取值范圍、是否允許空值等。
4.7關(guān)系代數(shù)
考點(diǎn)16傳統(tǒng)集合運(yùn)算
傳統(tǒng)的集合運(yùn)算包括并、交、差和廣義笛卡兒積4種運(yùn)算。
1.并(union)
設(shè)關(guān)系R和關(guān)系S具有相同的目n(即都有n個(gè)屬性),且相應(yīng)的屬性取自同一個(gè)域,則關(guān)系R與S的并是由屬于R或?qū)儆赟的元組組成的,結(jié)果仍為n目關(guān)系,記做:
RUS={t/t∈R∨t∈S},t是元組變量。
2.差(difference)
設(shè)關(guān)系R和關(guān)系S具有相同的目n,且相應(yīng)的屬性取自同一個(gè)域,則關(guān)系R與關(guān)系S的差是由屬于R而不屬于S的所有元組組成的,結(jié)果仍為n目關(guān)系,記做:
R-S={t/t∈R∧t¢S},t是元組變量.
3.交(intersection)
設(shè)關(guān)系R和關(guān)系S具有相同的目n,且相應(yīng)的屬性取自同一個(gè)域,則關(guān)系R與關(guān)系S的交是由既屬于R而不屬于S的所有元組組成的,結(jié)果仍為n目關(guān)系,記做:
R∩S={t|t∈R∧t∈S}t ER八:ES},t是元組變量。
顯然R自s=R一(R一s)。
4.廣義笛卡兒積(Extended Cartesian Product)
設(shè)關(guān)系R和s的元數(shù)分別是廠和,,定義R和s的笛卡兒積是一個(gè)(r+s)元元組的集合,每一個(gè)元組的前r個(gè)分量來自R的一個(gè)元組,后s個(gè)分量來自S的一個(gè)元組。若R有m個(gè)元組,S有n個(gè)元組,則關(guān)系R 和S的廣義笛卡兒積有m ×n個(gè)元組,記做:
R×S={t|t=<t¬¬¬¬r ,ts>∧t¬¬¬¬r ∈ts∈S
考點(diǎn)17專門的關(guān)系運(yùn)算
專門的關(guān)系運(yùn)算包括:對單個(gè)關(guān)系進(jìn)行垂直分解(投影操作)或水平分解(選擇操作)和對多個(gè)關(guān)系進(jìn)行結(jié)合(連接操作)等。
1.選擇(selection)
選擇又稱為限制,是在關(guān)系R中選擇滿足給定條件的各元組,記做:
(R)={t|t∈R∧F(t=′真′)},其中F表示選擇條件,是一個(gè)邏輯表達(dá)式。
選擇運(yùn)算實(shí)際上是從關(guān)系R中選取使邏輯表達(dá)式F為真的元組。這是從行的角度進(jìn)行的運(yùn)算。
2.投影(projection)
關(guān)系R上的投影是從R中選擇出若干屬性列組成新的關(guān)系,記做:
二1(R、={t[A〕I t ER{,A為R的屬性列。
投影操作實(shí)際上是從關(guān)系中選取某些列,即從列的角度進(jìn)行的運(yùn)算。
3.連接(join )
連接是從兩個(gè)關(guān)聯(lián)的笛卡兒積中選取屬性間滿足一定條件的元組。
連接運(yùn)算中有兩種最為重要也是常用的連接,一種是等值連接( equi - join),一種是自然連接(naturaljoin)自然連接是構(gòu)造新關(guān)系的有效方法。一般,自然連接使用在兩個(gè)關(guān)系有公共屬性的情況中。
4.除(di%-ision)
給定關(guān)系R(X,州和別Y, Z),其中X,Y, Z為屬性組。R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域集R與S的除運(yùn)算得到一個(gè)新的關(guān)系尸(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X分量值的對象Yx包含S在Y上投影的集合。記做:
R÷S=t,[X]t,ER八二,(S) C-玖}
除操作是同時(shí)從行和列的角度進(jìn)行運(yùn)算。
4.8 SQL概述:
考點(diǎn)18結(jié)構(gòu)化查詢語言SQL
SQL (Structured Query Language)稱為結(jié)構(gòu)化查詢語言,是于1974年由Boyce和Chamberlin提出的,1975年IBM公司研制的關(guān)系數(shù)據(jù)庫管理系統(tǒng)的原型系統(tǒng)System R實(shí)現(xiàn)了SQL語言。SQL是一個(gè)通用的、功能極強(qiáng)的關(guān)系數(shù)據(jù)庫語言。我國制定了SQL的國家標(biāo)準(zhǔn)為GB12911, SQL已經(jīng)成為關(guān)系數(shù)據(jù)庫領(lǐng)域中的一種主流語言。
考點(diǎn)19 SQL的特點(diǎn)一
SQL語言集數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制功能于一體,主要特點(diǎn)包括以下幾個(gè)方面:
(1)綜合統(tǒng)一。
(2)高度非過程化。
(3)面向集合的操作方式。
(4)以同一種語法結(jié)構(gòu)提供兩種使用方式。
(5)語言簡潔,易學(xué)易用。
考點(diǎn)20 SQL數(shù)據(jù)庫體系結(jié)構(gòu)
SQL語言支持關(guān)系數(shù)據(jù)庫三級模式結(jié)構(gòu):其中外模式對應(yīng)于視圖和部分基本表,模式對應(yīng)于基本表,內(nèi)模式對應(yīng)于存儲文件:
基本表是本身獨(dú)立存在的表,在SQL中一個(gè)關(guān)系就是一個(gè)基本表。一個(gè)基本表對應(yīng)一個(gè)存儲文件,一個(gè)表可以帶若干索引,索引也存放在存儲文件中存儲文件的邏輯結(jié)構(gòu)組成了關(guān)系數(shù)據(jù)庫的內(nèi)模式。存儲文件的物理結(jié)構(gòu)是任意的,對用戶是透明的。
視圖是從一個(gè)或幾個(gè)基本表導(dǎo)出的表二視圖是一個(gè)虛表視圖在概念上與基本表等同,用戶可以在視上再定義視圖。
4.9 SQL的數(shù)據(jù)定義
考點(diǎn)21基本表
1.定義基本表
SQL語言使用CREATE TABLE語句定義基本表,其格式如下:
CREATE TABLE<表名>(<列名><數(shù)據(jù)類型>[列級完整性約束〕
[,<列名><數(shù)據(jù)類型>[列級完整性約束]…=
〔,<表級完整性約束>〕);
如果完整性約束條件涉及到該表的多個(gè)屬性列,則必須定義在表級上,否則既可以定義在列級,也可以定義在表級。
2.修改基本表
SQL語言用ALTER TABLE語句修改基本表,其格式為:
ALTER TABLE<表名>
「ADD<新列名><數(shù)據(jù)類型>[完整性約束〕〕
[DROP<完整性約束名>〕
[MODIFY<列名><數(shù)據(jù)類型>」;
ADD子句用于增加新列和新的完整性約束條件。DROP子句用于刪除指定的完整性約束條件。MOD-IFY子句用于修改原有的列定義,包括修改列名和數(shù)據(jù)類型。
3.刪除基本表
當(dāng)某個(gè)基本表不再需要時(shí),可以用DROP TABLE語句進(jìn)行刪除,其格式為:
DROP TABLE<表名>
基本表一旦被刪除,表中的數(shù)據(jù)、此表上建立的索引和視圖都將自動被刪除。因此執(zhí)行刪除基本表的操作時(shí)一定要格外小心。