資料庫系統概念第六版課後習題答案 第二章

2021-09-02 01:31:04 字數 2891 閱讀 1309

ans: 如圖2.1中帶下劃線的碼。(emmmm,發現答案不是很靠譜。比如員工的名字有重名的現象,顯然name不能作為主碼。但其實name+street+city也可能會有碰巧一樣的情況。所以嚴格來說,這幾張表的結構不是很好,專案中最好還是用id作為主鍵會比較好。)

ans: a. 往instuctor表中插入乙個元組:(10111, ostrom, economucs, 110,000),而department表中沒有economics這個院系。這會破壞外碼約束。

b. 從depaerment表中刪除乙個元組:(bioology, watson, 90000), 而至少有乙個學生或者教員元組的depart_name是biology。這會破壞外碼約束。

ans: day和start_time屬性是主碼的一部分是因為很有可能在不同的日期甚至是同一天內多次遇到乙個特定的類,而end_time不是是因為在特定時間開始的類不可能多次結束。(啥意思呢?表在p24下面,我們來推測一波。當這個時間段出現在多天的時候,顯然day是可以區分不同的元組的;而在一天中的多個元組,我們既可以通過start_time其實也可以通過end_time來區分(這裡不考慮同時發生同時結束的情況)。那麼題目的意思很可能是問為什麼day+其中乙個time就可以作為主碼,但乙個time是不能作為主碼的原因吧)

ans: 不行。因為這個教員表的例子比較特殊,普遍情況下不這樣(除非這個學校規定兩個教員不能用一樣的名字,不過這不太可能)。

ans: 結果屬性包含了所有student的屬性,後面跟著所有advisor的所有屬性(如圖)。結果中的元組如下, 對於擁有advisor的每個student,結果都有一行包含學生屬性,後跟乙個與學生id屬性相同的s_id屬性,後跟包含學生顧問id的i_id屬性。沒有advisor的studnet將不會出現在結果中。 擁有多個顧問的學生將在結果中顯示相應的次數。

a. (σyear>=2009(takes) ⋈ advisor)

b. (σyear>=2009(takes)⋈ student)

c. ∏id,name,course_id(student⋈takes)

ans: a. 對於那些在2023年至少選了一門課的學生,把學生資訊和所選課程資訊一同展示,結果屬性如下:

id, name, dept_name, tot_cred, course_id, section_id, semester, year, grade

b. 和a一樣;選擇可在join操作之前完成

c. 只要選了課的學生都會出現在有id, name, course_id屬性的表中。

a. 找出位於"chicago"的所有支行名字。

b. 找出在支行"downtown"有貸款的所有貸款人姓名.

ans: 

ans:a. emmm...這樣吧,字型加粗的作為主碼,加下劃線的作為外碼吧(當然了,本題也不考慮幾個鍵都相同的情況好吧,考慮最理想化的情況。當然每個人的思量都不一樣,考慮不一樣結果也不一樣)

branch(branch_name, branch_city, assets)()

customer(customer_name, customer_street, customer_city)

loan(loan_number, branch_name, amount)

borrower(customer_name, loan_number)

account(account_number, branch_name, balance)

depositor(customer_name, account_number)

ans: emmmm? s_id是student_id的意思?如果是這樣那不行!如果是老師的id,那肯定是可以的。題目沒說清楚,所以無從知道。

ans: 關係的概念對應於程式語言中變數的概念,而關係模式的概念對應於程式語言中型別定義的概念(書上原話)。

ans: a. ∏person_name(σcompany_name=first bank corporation(employee⋈works))

b. ∏person_name,city(σcompany_name=first bank corporation(employee⋈works))

c. ∏person_name,street,city(σcompany_name="first bank corporation"(employee⋈works) ∪σsalary>=10000(employee⋈works))

ans: a. ∏loan_number(σamount>10000(loan))

b. ∏customer_name(σbalance>6000(account⋈depositor))

c. ∏customer_name(σbalance>6000(account⋈depositor)∪σbranch_name="uptown"(account⋈depositor))(這個可能可以化簡?)

ans: a. 資料庫中某個屬性不存在(比如說存在學生沒有手機號碼的情況);

b. 資料庫中某個屬性未提供或未知(比如說有些人填寫了性別而有些人出於隱私考慮不填);

ans: 在過程化語言中,使用者指導系統對資料庫進行一系列操作以計算出所需結果。在非過程化語言中,使用者只需描述所需資訊,而不用給出獲取該資訊的具體過程。因此我們可以看出,過程化語言的執行速度肯定比非過程化語言要來得快,但是過程化語言太過繁瑣,使用者體驗不行;非過程化語言簡單方便,但是犧牲了執行速度。各有優缺吧~

分段 讀作業系統概念第六版

採用分頁記憶體管理有乙個不可避免的問題 使用者觀點的記憶體和實際記憶體的分離。使用者觀點的記憶體和實際記憶體不一樣。使用者觀點的記憶體需要對映到實際記憶體。該對映允許邏輯記憶體和物理記憶體的不同。想一下你在寫程式時是如何考慮程式的。你會認為程式是由主程式加上一些子程式 過程 函式或模組所構成的。還有...

作業系統是什麼? 讀作業系統概念第六版

作業系統是幾乎所有計算機系統的乙個重要組成部分。計算機系統可以 粗分為四個部分 硬體 作業系統 應用程式和使用者。計算機系統的基本目的是執行使用者程式並能更容易地解決使用者問題。為了實現這一目的,構造了計算機硬體。由於僅僅有硬體並不一定容易使用,因此開發了應用程式。這些應用程式需要一些共同操作,如控...

《作業系統概念第六版》閱讀筆記一 作業系統組成

將龐大的系統劃分為多個模組,每個模組都是能夠完全描述好的系統部分,且都有仔細定義過的輸入輸出和功能。程序是系統的工作單元,資源分配的最小單元。這樣乙個由多個程序組成,其中有些是作業系統程序,有些是使用者程序,有所這個程序通過多路復用其內的cpu才能潛在地併發執行。作業系統福州下列程序管理的活動 1 ...