- 2.1關係數據結構及其形式化定義
- 1970年E.F.Codd提出關係數據模型,關係數據庫之父.1972提出關係代數和關係演算爲sql奠定了基礎
- 什麼是關係模型
- 用二維表格表示實體集,用碼進行數據導航的數據模型稱爲關係模型
- 關係模型的三要素
- 關係數據結構
- 關係操作
- 關係的完整性
- 2.1.1關係
- 單一的數據結構--關係
- 邏輯結構---二維表
- 建立在集合代數的基礎上
-
- 域:一組具有相同數據類型的值的集合
- 笛卡爾積:所有的域所有的值的一個組合,不能重複
- 笛卡爾積中的每一個元素叫作一個N元組或簡稱元組
- 笛卡爾積元素中的每一個值叫作一個分量
- D1*D2*DN=基數M
- 笛卡爾積可表示一張二維錶行爲元組,列爲域
- 關係:(由笛卡爾積子集)
- D1*D2*D3*.....*Dn的子集叫作在域D1,D2,D3,Dn的關係表示爲 R(D1,D2,D3,Dn)
- R:關係名 n:關係的目或度 (n個屬性)
- 關係中的每個元素=元組,用t表示,n=1單元關係(1個屬性)
- 關係是一個二維錶行爲元組,列爲域,列的名字爲屬性,n目關係必有n個屬性
- 關係中的碼
- 候選碼=主屬性.不包含在任何候選碼中的屬性爲非主屬性或非碼屬性
- 三類關係
- 基本關係(基本表/基表) 實際存在的表是存儲數據的邏輯表示
- 列是同質的,不同列可出自同一個域,列行順序無所謂,任意兩個元組的候選碼不能相同,候選碼唯一標識一個元組,分量必取原子值不可表中表
- 查詢表 查詢結果對應的表 虛表
- 視圖表 基本表.其他視圖表導出的表 是虛表
- 基本關係(基本表/基表) 實際存在的表是存儲數據的邏輯表示
- 2.1.2關係模式
- 1.什麼是關係模式
- 關係模式是型(模子) 靜態的,穩定的
- 關係是值 (零件) 動態的,隨時間不斷變化的 關係模式在某一時刻的狀態或內容
- 關係模式是對關係的描述,兩者籠統稱爲關係
- 2.定義關係模式
- 3.關係模式與關係
- sql的學生選修成績表 域名及屬性向域的映像常常直接說明爲屬性的類型長度
- 1.什麼是關係模式
- 2.1.3關係數據庫
- 在一個給定的應用領域中,所有關係的集合構成一個關係數據庫(表的集合)
- 2.1.4關係模型的存儲結構
- 有的關係數據庫管理系統中一個表對應一個操作系統軟件,將物理數據組織交給操作系統完成
- 有的關係數據庫管理系統從操作系統那裏申請若干個大的文件,子集劃分文件空間,組織表索引等存儲管理
- 2.2關係操作
- 常用操作
- 查詢操作:選擇 投影 並 差 笛卡爾積連接 除 交
- 數據更新 :插入 刪除 修改
- 關係操作的特點:集合操作方式,操作的對象和結果都是集合,一次一集合
- 具有關係代數和關係演算雙重特點的語言 :sql
- 常用操作
- 2.3關係的完整性約束
- 2.3.1實體完整性
- 若屬性A是基本關係R的屬性,則屬性A不能取空值 主屬性不能爲空 主屬性=候選碼 非主屬性:不包含在主碼中的屬性
- 實體完整性規則是針對基本關係而言的,一個基本表通常對應現實世界的一個實體集
- 2.3.2參照完整性
- 1.關係間的引用
- 在關係模型中實體及實體間的聯繫都是用關係來描述的,自然存在着關係與關係間的引用(單一的數據結構)
- 2.外碼
- 設F是基本關係R的一個或一組屬性,但不是關係R的碼.如果F與基本關係S的主碼ks相對應,則稱F是R的外碼
- 基本關係R稱爲參照關係(有外碼)
- 基本關係S稱爲被參照關係或目標關係(主碼被參照)
- 在參照完整性規則中,R和S可以是同一個關係。
- 在學生(學號,姓名,性別,年齡,專業號,班長)關係中,“學號”屬性是主鍵,“班長”屬性表示該學生所在班級的班長的學號,因此它應用的本關係“學號”屬性。按照參照完整性規則,“班長”屬性可以取以下兩類值:
- (1)空值,表示該學生所在班級尚未選出班長。
- (2)非空值,該值必須是本關係中某個元組的學號值,即某個當選班長的學生的學號值。
- 主碼,外碼必須定義在同一個(或一組)域上
- 外碼並不一定要與相應的主碼同名(外碼主碼屬於不同關係的時候,往往取相同名字便於識別)
- 3.參照完整性規則
- 若屬性或屬性組 F 是基本關係R 的外碼它與基本關係S的主碼Ks相對應(基本關係R和S不一定是不同的關係)則對於R中每個元組在F上的值必爲
- 或者取空值(F的每個屬性值均爲空值) 或者等於S中某個元組的主碼值
- 外碼所在的屬性列值等於主碼值或者爲空值
- 1.關係間的引用
- 2.3.3用戶定義的完整性
- 數據滿足語義要求
- 關係模型應提供定義和檢驗這類完整性的機制,以便使用統一的系統的方法以便用統一的系統的方法處理它們,而不需由應用程序承擔這一功能
- 2.3.1實體完整性
- 2.4關係代數
- 關係代數運算
- 關係代數是一種抽象的查詢語言,它用對關係的運算來表達查詢。運算對象結果都是關係。
- 傳統的幾何運算是從關係的水平方向即行的角度進行
- 專門的關係運算不僅涉及行而且涉及列
- 四類運算符
- 傳統
- 並差交仍爲N目關係
- 笛卡爾積:R:n目關係,K1個元組 S:m目關係,K2個元組
- RxS 列:(n+m)列元組的集合 行:K1 x K2 個元組
- 專門的關係運算符
- 選擇運算是從關係R中選取使邏輯表達式F爲真的元組,從行的角度進行的運算
- 例如查詢年齡小於20歲的學生 𝝈𝖲𝖺𝗀𝖾<20(Studengt) 總分,域中取值
- 投影
- 分總 由值尋域
- 查詢學生的姓名和所在系,即求Student關係上學生姓名和所在系兩個屬性上的投影
- π sname,sdept(Student)
- 連接
- 連接也稱爲θ連接
- 兩類常用連接運算
- 等值連接
- θ爲=的連接運算稱爲等值連接
- 從關係R與S的廣義笛卡爾積中選取A B屬性值相等的那些元組
- 一般的連接從行的角度進行計算
- 自然連接
- 自然連接是一種特殊的等值連接
- 兩個關係中進行比較的分量必須是相同的屬性組
- 在結果中把重複的屬性列去掉
- 關係中(即表中)相同屬性的做連接;橋接:至少三表連接
- 自然連接是一種特殊的等值連接
- 自然連接取消重複列,同時從行和列角度進行計算
- 等值連接
- 懸浮元組(被捨棄的元組)
- 兩個關係R和S在做自然連接時,關係R中某些元組有可能在S中不存在公共屬性上值相等的元組,從而造成R中這些元組在操作時被捨棄了,這些被捨棄的元組稱爲懸浮元組
- 外連接:把懸浮組也保存在結果關係中,而在其他屬性上填空值就叫做外連接
- 左外連接:只保留左邊關係R中的懸浮元組
- 右外連接:只保留右邊關係S中的懸浮元組
- 除運算
- 象集Z
- 除運算同時從行和列進行運算
- 打卡網紅地帶入理解
- 選擇運算是從關係R中選取使邏輯表達式F爲真的元組,從行的角度進行的運算
- 傳統
- 關係代數運算
- 2.5關係演算