第二章
關聯式資料庫
一、sql
關係代數+關係演算
二、關係
1.域:變數有效範圍
2.笛卡爾乘積:域0x域1x域2x...x域n-1
3.關係:d1xd2xd3..dn的子集,r(d1,d2,...,dn)
4.鍵:由乙個或幾個屬性組成
a超鍵:唯一標示元組的屬性集
b候選鍵:無多餘屬性的超鍵
c主鍵:使用者選作元組表示的乙個候選鍵
d外來鍵:非本關係的主鍵
5.關係性質
a不同的列可以出自乙個同乙個域,每乙個列為乙個屬性
b列的順序可以任意交換
c任意兩個元組不能完全相同
d 行順序可以任意交換
e分量原子性:事務的執行要麼成功執行,要麼全身而退,什麼都不執行。
三、關係模式
模式名、屬性名、值網域名稱、模式主鍵
四、關係代數運算子
並u、廣義笛卡爾積x、連線∞、大於等於≥等於=;
差-、選擇σ、除÷、小於《不等於≠;
交∩、投影π、大於﹥、小於等於≤;
非┐、與λ、或v
五、廣義笛卡爾乘積
r:k1元組,s:k2元組;rxs有k1xk2元組。
六、選擇:σ_f(r)=
投影:π_=
連線:r∞s=
自然連線,在連線中把重複屬性去掉
除法:(r÷s):r中所有有s屬性的元組的剩餘屬性集。
假設有兩個關係,r(a,b,c)和t(b,c),r中有所有t中(b,c)元組對應的a。
使用投影、笛卡爾積和集合的差,表示r÷t
r÷t = πa(r) - πa[ πa(r) × t – r ]
sql:
select a from r
minus(
select a from(
select * from (select a from r), t
minus
select * from r ) )
七、舉例
資料庫三個關係:
學生(學號、姓名、性別、年齡、專業)
課程(課程號、課程名、學分、先行課程號)
成績(學號、課程號、成績)
1、所有年齡小於20的學生
σ_(學生)
2、查詢所有女學生的姓名和年齡
π_(σ_(學生))
3、選修課為c2或c4的學生學號
π_(σ_(成績))
4、不作為其他課程先行課程的課程號
π_(課程)-π_(課程)
5、查詢計算機專業和機械專業學生的情況
(σ_(學生))u(σ_(學生))
6、包括學生學號、課程名稱、學分和成績的學生成績單
π_(課程∞成績)
7、查詢選修課程為c2的學生學號與姓名
π_(σ_(學生∞成績))
8、查詢不選課為c2的學生姓名與年齡
π_(學生)-π_(σ_(學生∞成績))
9、查詢課程名為資料庫的學生及學號
π_(π_(σ_(課程))∞成績)∞π_(學生)
10、查詢選修全部課程的學生名單
π_(π_(成績)÷π_(課程))∞π_(學生)
11、查詢先行課程包括了作業系統課程先行課程的課程號
π_÷π_(σ_(課程))
12、查詢所有學科均包含學生s3所學課程的學生學號及姓名
π_(學生)∞π_(成績)÷π_(σ_(成績))
《資料庫原理與應用》學習筆記(二) 關聯式資料庫
關係資料模型 使用者看來關係模型中資料的邏輯結構是一張二維表,從集合論角度給出關係資料的形式化定義 1 域 一組具有相同資料型別的值的集合 2 笛卡爾積 是域上的一種集合運算 3 關係 笛卡爾積的子集 關係的操作集合 選擇,投影,連線,除,並,交,差等運算 交,並,差,笛卡爾積 關係的完整性約束 1...
資料庫學習筆記 關聯式資料庫
關係模型由關係資料結構,關係操作集合,關係完整性約束三部分組成 基數 m 候選碼 某一屬性值能唯一確定乙個元組 全碼 關係模型中所有屬性組都是候選碼 外碼 r的乙個屬性f是s的主碼,稱f為r的外碼 r為參照關係,s為被參照關係 外碼取空值表示尚不存在,不取空值表示是另乙個表的主碼值。分量必須取原子值...
資料庫學習(二) 關係模型
關係有三種型別 基本表 資料儲存的邏輯表示 查詢表 查詢結果 檢視表 虛的,外模式 有兩種 查詢 query 操作 與 插入 insert 刪除 delete 修改 update 操作 其中查詢 包括選擇 select 投影 project 連線 join 除 divide 並 union 差 ex...