數據庫第二章課後作業

一、定義並理解下列術語,說明他們之間的聯繫與區別:
(1)域,笛卡爾積,關係,元組,屬性;
(2)主碼,候選碼,外碼;
(3)關係模式,關係,關係數據庫。
答:(1):是一組具有相同數據類型的值的集合。
例如整數、實數、指定長度的字符串集合、{‘男’,‘女’}等,集合中都爲同一種數據類型。

笛卡爾積:給定一組域D1,D2,…,Dn,允許其中某些域是相同的。D1,D2,…,Dn的笛卡爾積爲: D1×D2×…×Dn = {(d1,d2,…,dn)|di\inDi,i=1,2,…,n}。是所有域的所有取值的一個組合,其中不能有重複
笛卡爾積的基數爲所有集合基數的乘積,基數可以簡單表述爲集合中元素的個數。
例如:假設集合A={a, b},集合B={0, 1, 2},則兩個集合的笛卡爾積:A×B={(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。

關係:D1×D2×…×Dn的 子集 叫作在域D1,D2,…,Dn上的關係,表示爲R(D1,D2,…,Dn) R:關係名,n:關係的目或度。關係是一張二維表。

元組:笛卡爾積中每一個元素(d1,d2,…,dn)叫作一個n元組(n-tuple)或簡稱元組。
例如:在A×B={(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}中, (a, 0), (a, 1) 等都是2元組 。

屬性:表的每列對應一個屬性。

笛卡爾積是所有域的所有取值的一個組合,關係是一張二維表,是笛卡爾積的有意義部分的子集(把不符合邏輯的去掉),表的每行對應一個元組,表的每列對應一個屬性。

(2)候選碼:若關係中的某一屬性組的值能唯一地標識一個元組,而其子集不能,則稱該屬性組爲候選碼。
候選碼的諸屬性稱爲主屬性,注意不是主碼的諸屬性。

主碼:若一個關係有多個候選碼,則選定其中一個爲主碼。在一個關係(表)中,主碼不一定只有一個,但是一定要有的。

外碼:設F是基本關係R的一個或一組屬性,但不是關係R的碼。如果F與基本關係S的主碼Ks相對應,則稱F是R的外碼。
基本關係R稱爲參照關係, 基本關係S稱爲被參照關係。
如果一個關係中的一個屬性是另外一個關係中的主碼則這個屬性爲外碼。外碼的值要麼爲空,要麼要爲其對應的主碼中的一個值。
例如:學生實體、專業實體
學生(學號,姓名,性別,專業號,年齡)
專業(專業號,專業名)
“專業號”屬性F是學生關係的外碼
專業關係S是被參照關係,學生關係R爲參照關係
注意:關係R和S不一定是不同的關係;目標關係S的主碼Ks 和參照關係的外碼F必須定義在同一個(或一組)域上;外碼並不一定要與相應的主碼同名。

(3)關係模式:關係的描述稱爲關係模式,是靜態的、穩定的。
它可以形式化地表示爲R(U,D,DOM,F),(其中,R爲關係名,U爲組成該關係的屬性名的集合,D爲U中追星所來自的域,DOM爲屬性向域的映像集合,F爲屬性間數據的依賴關係集合。)
通常可以簡記爲R(U)或R(A1,A2,AnA_1,A_2…,A_n)。(其中R:關係名,A1,A2,,AnA_1,A_2,…,A_n:屬性名)

關係:關係是關係模式在某一時刻的狀態或內容,是動態的、不斷變化的。

關係數據庫:在一個給定的應用領域中,所有關係的集合構成一個關係數據庫。
關係數據庫的:關係數據庫模式,是對關係數據庫的描述。----抽象
關係數據庫的: 關係模式在某一時刻對應的關係的集合,通常稱爲關係數據庫。----具體

關係模式------型-----抽象
關係------------值-----具體

二、試述關係模型的完整型規則。在參照完整性中,什麼情況下外碼屬性的值可以爲空值?
(1)實體完整性:若屬性A是基本關係R的主屬性,則屬性A不能取空值。空值就是“不知道”或“不存在”或“無意義”的值。可以簡記爲:主屬性不能爲空
主屬性是候選碼的諸屬性,可以唯一確定一個元組。
例如:選修(學號,課程號,成績),”學號、課程號“爲主碼,這兩個屬性都不能爲空值。若學號爲空,則不知道是誰的該課程的成績;若課程號爲空,則不知道該學生那門課程是這個成績。
(2)參照完整性:若屬性(或屬性組)F是基本關係R的外碼它與基本關係S的主碼Ks相對應,則對於R中每個元組在F上的值必須爲:或者取空值(F的每個屬性值均爲空值),或者等於S中某個元組的主碼值。簡單記爲:外碼要麼爲空,要麼源自於被參照關係的主碼。
例如:學生關係中的”專業號“屬性爲空值時,表示還未分配專業,不爲空時,該值必定是專業關係中某個元組的專業號值,一定存在。
(3)用戶定義的完整性:針對某一具體關係數據庫的約束條件,反映某一具體應用所涉及的數據必須滿足的語義要求。

當屬性F不是主屬性時,外碼屬性的值可以爲空。

三、設有一個SPJ數據庫,包括S、P、J及SPJ4個關係模式:
S(SNO,SNAME,STATUS,CITY);
P(PNO,PNAME,COLOR,WEIGHT);
J(JNO,JNAME,CITY);
SPJ(SNO,PNO,JNO,QTY);
供應商表S由供應商代碼(SNO)、供應商姓名(SNAME)、供應商狀態(STATUS)、供應商所在城市(CITY)組成。
零件表P由零件代碼(PNO)、零件名(PNAME)、顏色(COLOR )、重量(WEIGHT)組成。
工程項目表J由工程項目代碼(JNO)、工程項目名(JNAME)、工程項目所在城市(CITY)組成。
供應情況表SPJ由供應商代碼(SNO)、零件代碼(PNO)、工程項目代碼(JNO)、供應數量(QTY)組成,表示某供應商供應某種零件給某工程項目的數量爲QTY。
今有若干數據如下:
在這裏插入圖片描述
試用關係代數(1)求供應工程J1零件的供應商號碼SNO;
(2)求供應工程J1零件P1 的供應商號碼SNO;
(3)求供應工程J1零件爲紅色的供應商號碼SNO;
(4)求沒有使用天津供應商生產的紅色零件的工程號JNO;
(5)求至少用了供應商S1所供應的全部零件的工程號JNO。

(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(σCOLOR=(P)σJNO=J1(SPJ))\Pi_{SNO}(\sigma _{COLOR='紅'}(P) \bowtie \sigma_{JNO='J1'}(SPJ))
(4) ΠJNO(SPJ)ΠJNO(σCITY=COLOR=(SPSPJ))\Pi_{JNO}(SPJ)-\Pi_{JNO}(\sigma_{CITY='天津'\wedge COLOR='紅'}(S\bowtie P \bowtie SPJ))
(5) ΠJNO,PNO(SPJ)÷ΠPNO(σSNO=S1(SPJ))\Pi_{JNO,PNO}(SPJ) \div\Pi_{PNO}(\sigma _{SNO='S1'}(SPJ))
在這裏插入圖片描述

四、關係代數的基本運算有哪些?如何用這些基本運算來表示其他運算?
關係代數的基本運算是並、差、笛卡爾積、選擇、投影。其他運算包括交、連接、除。

選擇運算符:在關係R中選擇滿足給定條件的諸元組 σF(R)\sigma_F (R ) = { t | t \in R ∧ F ( t ) = ‘真’},F:選擇條件,是一個邏輯表達式,取值爲“真”或“假”,是從行的角度進行的運算。選出符合條件的一行。
在這裏插入圖片描述
例如:查詢信息系(IS系)全體學生
σSdept=IS(Student)\sigma_{Sdept='IS'}(Student)
在這裏插入圖片描述
投影:從R中選擇出若干屬性列組成新的關係: ΠA(R)\Pi_A (R) = { t [A] | t \inR } A:R中的屬性列
是從列的角度進行運算,投影之後不僅取消了原關係中的某些列,而且還可能取消某些元組(避免重複行)
在這裏插入圖片描述
例如:查詢學生的姓名和所在系
ΠSname,Sdept(Student)\Pi_{Sname,Sdept}(Student)
結果:
在這裏插入圖片描述
連接:從兩個關係的笛卡爾積中選取屬性間滿足一定條件的元組
RAθBS={trts^trRtsStr[A]θts[B]R \underset{AθB}\Join S=\{ { \widehat {t_r t_s}| t_r\in R \wedge t_s\in S \wedge t_r[A]}θt_s[B]},其中A和B分別爲R和S上度數相等且可比的屬性組,θ爲比較運算符。
連接運算是:在R和S的廣義笛卡爾積R×S中,選取R在A屬性組上的值與S在B屬性組上的值滿足比較關係θ的元組 。
等值連接:θ爲=,從關係R與S的廣義笛卡爾積中選取A、B屬性值相等的那些元組,即等值連接爲:
RA=BS={trts^trRtsStr[A]=ts[B]R \underset{A=B}\Join S=\{ { \widehat {t_r t_s}| t_r\in R \wedge t_s\in S \wedge t_r[A]}=t_s[B]}。
自然連接:自然連接是一種特殊的等值連接,兩個關係中進行比較的分量**必須是相同的屬性組B **,在結果中把重複的屬性列去掉。 RS={trts^[UB]trRtsStr[B]=ts[B]R \Join S=\{ { \widehat {t_r t_s}[U-B]| t_r\in R \wedge t_s\in S \wedge t_r[B]}=t_s[B]}。
一般的連接是從行的角度進行運算,但是自然連接還需要取消重複列,所以是同時從行和列的角度進行運算。 在這裏插入圖片描述
象集
在這裏插入圖片描述
:給定關係R (X,Y) 和S (Y,Z),其中X,Y,Z爲屬性組。元組在X上分量值x的象集Yx包含S在Y上投影的集合,記作:
R÷S={tr[X]trRΠY(S)YXR \div S=\{t_r[X]|t_r\in R\wedge\Pi_Y(S)\subseteq Y_X}
YXY_X:x在R中的象集,x = tr[X]t_r[X].
除操作是同時從行和列角度進行運算.
在這裏插入圖片描述
求關係R中X各個取值的象集,關係S在Y上的投影,哪個象集包含投影,即爲除的結果。

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