數據庫第二章課後題整理

給定兩個集合方便舉例 A={1,2,3},B={4,5}

:域是一組具有相同數據類型的集合。(比如{男🧑,女👧},長度小於25字節的字符串集合,同理A和B也是域)

笛卡爾積:域上的一種集合運算。(比如A*B={{1,4},{1,5},{2,4},{2,5},{3,4},{3,5}}

關係:A*B的子集叫做在域A,B上的關係,表示爲R(A,B)。

元組:A*B的結果中每一個元素叫做一個元組。(比如{1,4},{3,5}等)

屬性:關係也是一張二維表,表的每行表示一個元組,每列對應一個域,由於域可以相同,爲了加以區分,必須對每列取一個名字,稱爲屬性。

候選碼:若關係中的某個屬性組的值能唯一的標識一個元組,而其子集不能,則稱該屬性組爲候選碼。(比如姓名,地址,學號三個屬性,學號可以確定唯一的學生,則學號可以爲候選碼,但是姓名或地址不行,因爲可能會有重名或同地的,但是姓名+地址就可以了【emmm也許還存在同名還同地的但就是這麼個意思🤷】)

主碼:若一個關係有多個候選碼,則選定其中一個爲主碼。

外碼:關係R中的一個屬性組,它不是R的候選碼,但它與另一個關係的候選碼相對應,則稱這個屬性組爲R的外碼。(兩個關係通常通過外碼相互連接)
在網上找了個圖片舉例:在這裏插入圖片描述
關係模式和關係:關係模式是關係的描述。它可形式化地表示爲R(U,D,DOM,F),其中R爲關係名,U爲組成該關係的屬性名集合,D爲U中屬性所來自的域,DOM爲屬性向域的映像集合,F爲屬性間數據的依賴關係集合 。
關係是關係模式在某一時刻的狀態或內容。
關係模式是靜態的,穩定的;而關係是動態的,隨時間不斷變化的。(比如學生關係模式在不同的學年,學生關係是不同的)

關係數據庫:在一個給定的應用領域中,所有關係的集合構成一個關係數據庫。


關係模型的完整性規則
(1)實體完整性規則:若屬性A是基本關係R的主屬性,則屬性A不能取空值。(比如學生(學號,姓名,性別)中,學號爲主碼則學號不能爲空值。)
(2)參照完整性規則:若屬性(或屬性組)F是基本關係R的外碼,它與基本關係S的主碼KsK_{s}相對應(基本關係R和S不一定是不同的關係),則對於R中每個元組在F上的值必須爲:或者取空值(F的每個屬性值均爲空值),或者等於S中某個元組的主碼值。即屬性F本身不是主屬性,則可以取空值,否則不能取空值。
(3)用戶定義的完整性:就是針對某一具體關係數據庫的約束條件。它反映某一具體應用所涉及的數據必須滿足的語義要求。(比如某個屬性必須取唯一值,某個非主屬性不能取空值等)


第六題:
在這裏插入圖片描述
(1)Πsno(σjno=j1(SPJ))\Pi_{sno}(\sigma_{jno = 'j1'}(SPJ))
(2)Πsno(σjno=j1pno=p1(SPJ))\Pi_{sno}(\sigma_{jno = 'j1'\wedge pno='p1'}(SPJ))
(3)Πsno(Πsnopno(σjno=j1(SPJ))Πpno(σcolor=(P)))\Pi_{sno}(\Pi_{sno·pno}(\sigma_{jno = 'j1'}(SPJ))\Join\Pi_{pno}(\sigma_{color = '紅'}(P)))
(4)Πjno(SPJ)Πjno(σcolor=(P))SPJσcity=(J))\Pi_{jno}(SPJ)-\Pi_{jno}(\sigma_{color = '紅'}(P))\Join SPJ\Join\sigma_{city='天津'}(J))
(5)Πjnopno(SPJ)÷Πpno(σsno=s1(SPJ))\Pi_{jno·pno}(SPJ)\div\Pi_{pno}(\sigma_{sno = 's1'}(SPJ))


關係代數的基本運算:選擇、投影、並、集合差、笛卡爾積運算。
其他運算都可以用這幾種基本運算寫出,如交:R∩S=R-(R-S) 等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章