三級數(shù)據(jù)庫第五章考試要點

字號:

第五章
    一、關系數(shù)據(jù)庫系統(tǒng)概述(一)關系數(shù)據(jù)庫系統(tǒng)
    關系數(shù)據(jù)庫系統(tǒng)是支持關系數(shù)據(jù)模型的數(shù)據(jù)庫系統(tǒng)。關系數(shù)據(jù)庫應用數(shù)學方法來處理數(shù)據(jù)庫中的數(shù)據(jù)。最早提出將這類方法用于數(shù)據(jù)處理的是1962年CODASYL發(fā)表的“信息代數(shù)”一文,之后有1968年David Child在7090機上實現(xiàn)的集合論數(shù)據(jù)結構,但系統(tǒng)而嚴格地提出關系模型的是美國IBM公司的E.F.Codd。1970年E.F.Codd連續(xù)發(fā)表了多篇論文,奠定了關系數(shù)據(jù)庫的理論基礎。
    (二)關系數(shù)據(jù)模型
    關系數(shù)據(jù)模型由關系數(shù)據(jù)結構、關系操作集合和關系完整性約束3大要素組成。
    (1)關系數(shù)據(jù)結構關系模型的數(shù)據(jù)結構單一,在關系模型中,現(xiàn)實世界的實體以及實體間的各種聯(lián)系均用關系來表示。在用戶看來,關系模型中數(shù)據(jù)的邏輯結構是一張二維表。
    (2)關系操作集合關系模型中常用的關系操作包括:選擇(select)、投影(project)、連接(join)、除(divide)、并(union)、交(intersection)、差(difference)等,以及查詢(query)操作和增(insert)、刪(delete)、改(update)操作兩大部分。查詢的表達能力是其中最主要的部分。關系操作的特點是集合操作方式,即操作的對象和結果都是集合。這種操作方式也稱為一次一個集合(set-at-a-time)的方式。相應地,非關系數(shù)據(jù)模型的數(shù)據(jù)操作方式則為一次一個記錄(record-at-a-time)的方式。關系模型給出了關系操作的能力和特點,關系操作通過關系語言實現(xiàn)。關系語言的特點(它的優(yōu)點)是高度非過程化,所謂非過程化是指:①用戶不必請求DBA為他建立特殊的存取路徑,存取路徑的選擇由DBMS的優(yōu)化機制來完成。②用戶也不必求助于循環(huán),遞歸來完成數(shù)據(jù)的重復操作。
    (3)關系的完整性約束數(shù)據(jù)庫的數(shù)據(jù)完整性是指數(shù)據(jù)庫中數(shù)據(jù)的正確性和相容性,那是一種語義概念,包括兩個方面:①與現(xiàn)實世界中應用需求的數(shù)據(jù)的相容性和正確性。②數(shù)據(jù)庫內數(shù)據(jù)之間的相容性和正確性。
    二、關系模型的數(shù)據(jù)結構(一)關系模型的數(shù)據(jù)結構和基本術語
    在關系數(shù)據(jù)模型(relation model)中,數(shù)據(jù)結構用單一的二維表結構來表示實體及實體間的聯(lián)系。
    (1)關系(relation):一個關系對應一個二維表,二維表就是關系名。
    (2)屬性(attribute)和值域(domain):在二維表中的列(字段),稱為屬性。屬性的個數(shù)稱為關系的元數(shù),列的值稱為屬性值;屬性值的取值范圍稱為值域。
    (3)關系模式(relation schema):在二維表中的行定義(記錄的型),即對關系的描述稱為關系模式,一般表示為:關系名(屬性1,屬性2,…,屬性n)
    (4)元組(tuple):在二維表中的一行(記錄的值),稱為一個元組。關系模式和元組的集合通稱為關系。
    (5)分量(component):元組中的一個屬性值
    (6)候選碼(candidate key)或候選鍵:如果在一個關系中,存在多個屬性(或屬性組合)都能用來惟一標識該關系的元組,這些屬性(或屬性組合)都稱為該關系的候選碼或候選鍵。
    (7)主碼(primary key)或主鍵:在一個關系的若干個候選碼中指定一個用來惟一標識該關系的元組,這個被指定的候選碼稱為該關系的主碼或主鍵。
    (8)主屬性(primary attribute)和非主屬性(nonprimary attribute):關系中包含在任何一個候選碼中的屬性稱為主屬性或碼屬性,不包含在任何一個候選碼中的屬性稱為非主屬性或非碼屬性。
    (9)外碼(foreign key)或外鍵:當關系中的某個屬性(或屬性組)雖然不是該關系的主碼或只是主碼的一部分,但卻是另一個關系的主碼時,稱該屬性(或屬性組)為這個關系的外碼。
    (10)參照關系(referencing relation)與被參照關系(referencing relation):參照關系也稱從關系,被參照關系也稱主關系,它們是指以外碼相關聯(lián)的兩個關系。以外碼作為主碼的關系稱為被參照關系;外碼所在的關系稱為參照關系或目標關系(target relation)。由此可見,被參照關系與參照關系是通過外碼相聯(lián)系的,這種聯(lián)系通常是1:n的聯(lián)系。對于數(shù)據(jù)庫要分清型(type)和值(value)的概念,數(shù)據(jù)庫的型是指對數(shù)據(jù)庫的結構和屬性的說明,關系數(shù)據(jù)庫的型即對關系數(shù)據(jù)庫結構的描述,它包括若干關系集合。數(shù)據(jù)庫的值是型的一個具體賦值,關系數(shù)據(jù)庫的值是這些關系模式在某一時刻對應的關系的集合。所以,數(shù)據(jù)庫的型亦稱為數(shù)據(jù)庫的內涵(intention),數(shù)據(jù)庫的值亦稱為數(shù)據(jù)庫的外延(extensive)。數(shù)據(jù)庫的型是穩(wěn)定的,而數(shù)據(jù)庫的值是隨時間不斷變化的,因為數(shù)據(jù)庫中的數(shù)據(jù)在不斷變更。
    (二)關系的形式定義和關系數(shù)據(jù)庫對關系的限定
    1.關系的形式定義
    從數(shù)學的觀點定義關系稱為關系的形式定義。有如下兩種定義方法:
    (1)用集合論的觀點定義關系:關系是一個元數(shù)為K的元組集合,即這個關系有若干個元組,每個元組有K個屬性值(把關系看成一個集合,集合中的元素是元組)。
    (2)用值域的概念來定義關系:關系是屬性值域笛卡爾積的一個子集。設一個關系的屬性是A 1 ,…,An,其對應的值域為D 1 …,D n (也可以有相同的),定義D 1 ,…,D n 的笛卡爾積D=D 1 ×D 2 …×D n ={(d 1 ,…,d n )|d i ∈Di,1≤i≤n}。D中的每一個子集稱為關系。這里D的元素(d , …,d n )就是一個n元元組(n-tuple),元素中的每一個值di稱為元組的一個分量。若Di(i=1,2…,,n)為有限集,其基數(shù)(Cardinal numder)為mi(i=1,2,…,n),則D 1 ×D 2 ×…D n 的基數(shù)M為 M=- n i=1 mi笛卡爾積可表示為一個二維表,表中的每行對應一個元組,表中的每列對應一個域。
    2.關系數(shù)據(jù)庫對關系的限定
    (1)每一個屬性是不可分解的。這是關系數(shù)據(jù)庫對關系的最基本的一條限定,要求關系的每一個分量必須是一個不可分的數(shù)據(jù)項,也就是說,不允許表中還有表。
    (2)每一個關系模式中屬性的數(shù)據(jù)類型以及屬性的個數(shù)是固定的,并且每個屬性必須命名,在同一個關系模式中,屬性名必須是不同的。
    (3)每一個關系僅僅有一種記錄類型,即一種關系模式。
    (4)在關系中元組的順序(即行序)是無關緊要的。
    (5)在關系中屬性的順序可任意交換,交換時應連同屬性名一起交換才行,否則順序是重要的。
    (6)同一個關系中不允許出現(xiàn)完全相同的元組。