-----database system concepts(6e) 總結
本篇是《資料庫系統概念》原版書籍第一部分,這一部分介紹了關係模型的基礎知識,介紹了最普遍的一種查詢語言:sql語言,以及關係代數。
1. 關聯式資料庫
a relational database consists of a collection of tables,each of which is assigned a unique name.
關聯式資料庫由表的集合構成,每個表有唯一的名字。
一般地,表中一行代表了一組值之間的聯絡,由於乙個表就是這種聯絡的乙個集合,表這個概念和數學上的關係這個概念是密切相關的。在數學術語中,元組(tuple)只是一組值的序列或列表(sequence or list),在n個值之間的一種聯絡可以在數學上用關於這些值的乙個n元組來表示。
即n元組(tuple)就是乙個有n個值的元組,它對應於表中的一行(row)
2.資料庫模式
談論資料庫時,我們必須區分資料庫模式和資料庫例項,前者是資料庫的邏輯設計,後者是給定時刻資料庫中資料的乙個快照。
關係的概念對應於程式語言中變數的概念,而關係模式的概念對應於程式語言中型別定義的概念。關係例項的概念對應於程式語言中變數的值的概念。給定變數的值可能隨時間發生變化;類似的,當關係被更新時,關係例項的內容也隨時間發生了變化。相反,關係的模式是不常變化的。
3. 碼
我們必須有一種能區分給定關係中不同元組的方法。這用它們的屬性來表明。也就是說,乙個元組的屬性值必須是能夠唯一區分元組的。
超碼(superkey)是乙個或多個屬性的集合,它可以唯一地標識乙個元組。例如,id是instructor的乙個超碼,它可以唯一地標識instructor的乙個元組。
超碼中可能包含無關緊要的屬性。例如,id和name的組合是instructor的乙個超碼,但是name是無關緊要的,倒是它的真子集id也是乙個超碼,而且id集合的任意真子集都不再是instructor的超碼了。我們通常值對這樣的一些超碼感興趣,他們的任何真子集都不能稱為超碼,這樣的最小超碼就被稱為 候選碼(candidate key)。
主碼(primary key)用來代表被資料庫設計者選中的、主要用來在乙個關係中區分不同元組的候選碼。碼是整個關係的一種性質,而不是單個元組的性質。關係中的任意兩個不同的元組都不允許同時在碼屬性上具有相同的值。
乙個關係模式(如r1)可能在它的屬性中包括另乙個關係模式(如r2)的主碼。這個屬性在r1上稱作參照r2的外碼。關係r1也稱為外碼依賴的參照關係,r2叫做外碼的被參照關係。例如,instructor中的dept_name屬性在instructor上是外碼,它參照department,因為dept_name是department的主碼。
現在考察section和teaches關係。如下需求是合理的:如果一門課程是分段授課的,那麼它必須至少由一位教師來講授;當然它可能由不止一位教師來講授。為了施加這種約束,我們需要保證如果乙個特定的(course_id, sec_id, semester, year)組合出現在section中,那麼該組合也必須出現在teaches中。可是,這組值並不構成teaches的主碼,因為不止一位教師可能講授同乙個這樣的課程段。其結果是,我們不能宣告從section到teaches的外碼約束。從section到teaches的約束是參照完整性約束。
4. 模式圖—schema diagrams
乙個含有主碼和外碼依賴的資料庫模式可以用模式圖來表示。下圖展示了我們大學組織的模式圖。每乙個關係用乙個矩形來標識,關係的名字顯示在矩形上方,矩形內列出各屬性。主碼屬性用下劃線標註。外碼依賴用從參照關係的外碼屬性到被參照關係的主碼屬性之間的箭頭來標識。
5. 關係查詢語言
查詢語言是使用者從資料庫中請求獲取資訊的語言。這些語言通常比標準的程式語言層次更高。查詢語言可以分為過程化的和非過程化的。在過程化語言中,使用者知道系統對資料庫執行一些列操作以計算出所需的結果。在非過程化語言中,使用者只需描述所需資訊,而不用給出獲取資訊的具體過程。
6. 關係運算—the relational algebra
見本書第六章 the relational algebra
關係資料模型建立在表的集合的基礎上,資料庫系統的使用者可以對這些表進行查詢,可以插入,刪除和更新元組,關係的模式是指它的邏輯設計,而關係的例項是指它在特定時刻的內容。
關係資料庫系統
關係資料庫系統的發展歷史 關係資料模型 資料模型 資料結構 資料操作 完整性約束 資料結構 層次,網狀,關係,物件 資料操作 ddl,dml 完整性約束 實體完整性 主鍵存在,參照完整性 外來鍵引用存在,使用者定義完整性 關係資料模型 關係資料結構 資料操作 完整性約束 關係模型的資料結構和基本術語...
資料庫系統概論02 關聯式資料庫
笛卡爾積 a b 假設集合a 集合b 則兩個集合的笛卡爾積為。候選碼 關係中的某一屬性組的值能唯一標識乙個元組,而其子集不能。主碼 候選碼中選乙個 全碼 關係模式的所有屬性是這個關係模型的候選碼。關係的三種型別 基本關係 基本表 查詢表 檢視表 查詢 query 選擇 select 投影 proje...
資料庫系統概論 關聯式資料庫理論(2)
定義 對於滿足一組函式依賴f的關係模式r,其任何乙個關係r,若函式依賴x y都成立,則稱f邏輯蘊含x y。armstrong公理系統 設u為屬性集總體,f是u上的一組函式依賴,浴室有關係模式r。對r來說有以下的推理規則 1 自反律 若y包含於x包含於u,則x y為f所蘊含。2 增廣律 若x y為f所...