国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

wap手機(jī)網(wǎng)站源碼企業(yè)網(wǎng)站的作用有哪些

wap手機(jī)網(wǎng)站源碼,企業(yè)網(wǎng)站的作用有哪些,免費企業(yè)網(wǎng)站開發(fā),網(wǎng)站有了備案號之后能做什么數(shù)據(jù)庫搞得人一頭霧水,題型太多太雜,已經(jīng)準(zhǔn)備擺爛了。就刷刷往年試卷,掛不掛聽天由命。 2019年 Question 1 選擇題 1. R ∩ S R∩S R∩S等于一下哪個選項? 畫個文氏圖秒了 所以選A. R ∩ S R ? ( R ? S ) R∩SR-(R-S) R∩…

數(shù)據(jù)庫搞得人一頭霧水,題型太多太雜,已經(jīng)準(zhǔn)備擺爛了。就刷刷往年試卷,掛不掛聽天由命。

2019年

Question 1 選擇題

1. R ∩ S R∩S RS等于一下哪個選項?

畫個文氏圖秒了
文氏圖
所以選A. R ∩ S = R ? ( R ? S ) R∩S=R-(R-S) RS=R?(R?S)

2.哪個操作要求兩個參與的關(guān)系具有相同數(shù)量的屬性?

  • A.外連接(Outer join):先看定義,參見上一篇數(shù)據(jù)庫的期末筆記外連接的定義
    • 我們以左外連接為例子。假設(shè)有兩個關(guān)系表,表 A(員工表)和表 B(部門表),通過員工所屬部門 ID 進(jìn)行連接。表 A 有員工 ID、員工姓名、部門 ID 等字段,表 B 有部門 ID、部門名稱等字段。如果使用左外連接,那么會返回表 A 中的所有員工記錄,即使某些員工在表 B 中沒有對應(yīng)的部門信息(即部門 ID 在表 B 中不存在),這些員工記錄也會被返回,只是對應(yīng)的部門名稱等右表字段會顯示為 NULL。
  • B.自然連接(Natural join):直接舉例子自然連接
  • C.笛卡爾積(Cartesian product):最復(fù)雜的一個,很常考,我們這里先舉個簡單的例子笛卡爾積
  • D. 并集(Union):并集操作要求兩個參與的關(guān)系具有相同數(shù)量的屬性,并且對應(yīng)屬性的數(shù)據(jù)類型也必須相同,故選D。

3.投影(PROJECTION)操作對應(yīng)下列哪一個語句?

首先我們要知道投影是啥,去查一下定義:
投影

  • A. HAVING子句通常用于在分組查詢中對分組結(jié)果進(jìn)行篩選,與投影操作的功能不同。
  • B. SELECT子句用于指定要從數(shù)據(jù)庫中檢索的列,這與關(guān)系代數(shù)中的投影操作是類似的,都是對列的選擇。例如,在關(guān)系代數(shù)中,如果有一個關(guān)系R(A,B,C),進(jìn)行投影操作π_{A,B}(R),就是選擇R關(guān)系中的AB列;在 SQL 中,SELECT A,B FROM R也是選擇R表中的AB列。
  • C. FROM子句用于指定要查詢的表或視圖,它主要是確定數(shù)據(jù)的來源,而不是對列的選擇,與投影操作不對應(yīng)。
  • D. WHERE子句用于在查詢中設(shè)置條件,對行進(jìn)行篩選,而不是對列的選擇,與投影操作的功能不同。

4.關(guān)系 R ( A , B , C ) R(A,B,C) R(A,B,C)包含 10 10 10個元組,關(guān)系 S ( A , D , E , F ) S(A,D,E,F) S(A,D,E,F)包含 15 15 15個元組。那么“ R R R自然全外連接 S S S”的操作結(jié)果不可能是____。

自然連接是啥我們第一題剛剛講過,觀察那個例子,我們發(fā)現(xiàn)自然連接的結(jié)果中最少是原本元組多的那個關(guān)系的元組數(shù),最多是原本的兩個關(guān)系的元組數(shù)相加,為什么呢?還是看剛才那個例子,假如三個課程分屬不同系,而兩個學(xué)生不在這兩個系中的任何系,最后的結(jié)果自然每個系都要占一行也就是6行;而如果每個學(xué)生所在的系都在課程表中有對應(yīng)的話自然是行數(shù)最小的情況,至少每個課程要占據(jù)一行吧。
回到這一題,B選項的10個元組自然就是不可能的。

5.哪個指令用于刪除一個表?

在SQL中,DROP TABLE是用于刪除表的標(biāo)準(zhǔn)命令。DELETE通常用于刪除表中的數(shù)據(jù)行,而不是刪除整個表;REVOKE用于撤銷用戶的權(quán)限,與刪除表無關(guān);REMOVE不是SQL中用于刪除表的正確語法。

6.哪條指令可以正確地找到所有姓氏不是“Zhang”的學(xué)生?

首先前面肯定是SELECT name FROM student WHERE,問題就是后面如何操作,首先我們要知道如何篩選姓Zhang的,姓Zhang意味著名字最前面是Zhang,按照SQL的查詢規(guī)則,我們要輸入'Zhang%',然后因為我們用了%表示后面接什么都算所以這是一個模糊匹配,不能使用<>(不等于)這樣一個語法,必須使用like或者not like(沒有is not like這種語法),然后我們要的是不姓“Zhang”的所以最后就選C.SELECT name FROM student WHERE name not like 'Zhang%'。

7.下列哪個指令和NOT IN等價?

首先<>上一題我們說了是不等于,ALL就是遍歷后面集合的所有元素,必須全部不相等才算,也就是和NOT IN等價,選A。而SOME則是只要不等于集合中其中一個元素就算。

8.下列哪些說法是正確的?

首先我們要知道NULL的比較規(guī)則,參考這里
NULL比較規(guī)則
所以A和B肯定是錯的,C是對元組的比較,就元組而言兩個元組詩完全相等的,所以選C。

9.程序員在哪個層級與數(shù)據(jù)交互?

在概念總結(jié)的第一章就有提到
數(shù)據(jù)抽象層級
你就想奧,你不是手搓數(shù)據(jù)庫的話肯定不至于去物理層,視圖層又是給用戶用的,所以選B邏輯層。

10.如果從實體集A到實體集B的映射基數(shù)是多對一,那么A中的一個實體與B中的多少實體相關(guān)聯(lián)?

這不是顧名思義?除非你看不懂題目,many to one不知道是多對一的意思,答案選A至多一個。

11.一個或多個屬性的最小集合,足以唯一地區(qū)分每個實體,被稱為什么?

先看定義
碼
所以肯定選B候選碼。

12.下列哪個是商業(yè)數(shù)據(jù)庫系統(tǒng)中使用的一種非過程性語言?

你不需要知道別的,總不可能不知道SQL是一種非過程性語言吧,選C。

13.關(guān)系模式是由什么組成?

關(guān)系模式是對關(guān)系(可以簡單理解為數(shù)據(jù)庫中的表)結(jié)構(gòu)的一種抽象描述,它是一組屬性(attributes)的集合,所以選B。
說人話怎么理解呢,關(guān)系模式就是那個表的首行,就是寫著每一列存什么元素的那一行,存儲的是一個填表格的規(guī)則。

14.在關(guān)系數(shù)據(jù)庫系統(tǒng)中,哪種屬性被特征化了?

先看定義
實體和實體集
然后特征化又是啥呢?專業(yè)地說就是可以理解為對某種事物(這里指屬性)的典型特點、性質(zhì)或表現(xiàn)形式進(jìn)行明確的界定和描述,使其具有獨特的、可識別的標(biāo)志或?qū)傩?#xff0c;以便與其他事物區(qū)分開來。簡單來說就是具有不可分割性。那么在選項中就只有簡單屬性滿足這一條件,選A。

15.E-R 圖使用什么來表示關(guān)系集?

圖6.3
看課本上的圖6.3作為例子,左右兩個矩形框是實體集,分別是老師和學(xué)生,里面標(biāo)好了這兩個集內(nèi)的屬性,中間那個advisor表示教師和學(xué)生之間具有advisor這一關(guān)系(翻譯成中文就是教導(dǎo)關(guān)系),所以關(guān)系集是以菱形表示的,選B。

16.觀察表格內(nèi)的關(guān)系,哪個函數(shù)依賴是可能的?

這種題我們就看左右關(guān)系是不是唯一地,比如A選項是A --> (D,E),那么要求是A這一列為不同值時(D,E)的組合一定不同,這一題就是選A。我們以B為反例看一看,B選項D --> A,但是我們看到表格中D這一列出現(xiàn)了兩次d4,而且每次出現(xiàn)對應(yīng)那一行的A還不一樣,分別是a3a4,所以這一個依賴關(guān)系自然就不成立。

17.假設(shè)我們將模式 r(A,B,C) 分解為 r1(A,B) 和 r2(A,C)。哪個函數(shù)依賴能讓這次分解是無損分解?

按照慣例,先看定義
分解
那也就是說無損分解是指將一個關(guān)系模式分解為多個子模式后,通過對這些子模式進(jìn)行自然連接操作可以還原到原來的關(guān)系模式,且不會產(chǎn)生多余的元組(信息不會丟失)。

  • A.或兩邊的情況是等價的,我們就看B-->A,你想一下這何止是有損,我們合并的時候先把沒變動的r2抄下來,然后我們已知的AC都無法定位任何一個B,直接超級大展開,數(shù)據(jù)給我損完了都
  • B.和上面類似,我必須有(B,C)才能確定唯一地A,但是我在合并的中途上哪給你找(A,B)的組,自然也是有損
  • C.還是剛才那個流程,我們把r2抄下來,現(xiàn)在有A和C,我們的A剛好都可以定位唯一的一個B,那我們這個B可以盡可能不加行地塞到已有的行里面,這是無損的,選C

18.假設(shè) R(X,Y,Z) 有三個單屬性 X、YZ。如果 (X,Y,Z) 是候選碼,那么以下哪個陳述成立?

先看定義
BCNF
然后我們還知道候選碼是足以區(qū)分每個實體的最小屬性集合,也就是說比(X,Y,Z)元素少的集合是必然不足以區(qū)分每個實體的,再加上這個關(guān)系R一共就這么三個屬性,所以(X,Y,Z)是唯一的候選鍵,自然能保證所有函數(shù)依賴的左部都包含任一(也是唯一)的候選鍵,故 R ∈ B C N F R∈BCNF RBCNF,選A。

19.以下哪一性質(zhì)確保事務(wù)的所有影響要么都反映在數(shù)據(jù)庫中,要么都不反映?

定義位于第13章,直接秒了選A。
ACID特性

20.檢查點的執(zhí)行不進(jìn)行哪一步操作?

  • 檢查點(Checkpoint)的作用和執(zhí)行過程:檢查點是數(shù)據(jù)庫管理系統(tǒng)中用于恢復(fù)的一種機(jī)制。它的主要目的是減少系統(tǒng)故障恢復(fù)時需要處理的日志量,提高恢復(fù)效率。在執(zhí)行檢查點時,通常會進(jìn)行以下操作:
    • A選項:將當(dāng)前駐留在主存中的所有日志記錄輸出到穩(wěn)定存儲(如磁盤等非易失性存儲),這樣可以確保日志記錄的持久性,以便在故障恢復(fù)時使用,這是檢查點執(zhí)行的一部分。
    • B選項:將所有已修改的緩沖塊輸出到磁盤,這是為了確保數(shù)據(jù)的一致性和持久性,也是檢查點的重要操作之一。
    • D選項:將形如 <checkpoint L> 的日志記錄輸出到穩(wěn)定存儲,用于標(biāo)記檢查點的位置,方便后續(xù)恢復(fù)操作,這是檢查點執(zhí)行過程中的一個關(guān)鍵步驟。
    • C選項:僅僅寫入一個緩沖塊,這并不能完成檢查點的整體功能和目的,檢查點需要對整個系統(tǒng)的狀態(tài)進(jìn)行記錄和保存,包括日志記錄和已修改的數(shù)據(jù)塊等,而不是單個緩沖塊的寫入,所以C選項不是檢查點的執(zhí)行方式。
  • 所以選C。

Question 2 寫關(guān)系代數(shù)表達(dá)式和SQL語句

首先題目說了我們有這么一個數(shù)據(jù)庫

member(no, name, age)
book(isbn, title, author, publisher)
borrowed(mem_no, isbn, date)

那就是說有這么個圖書館的數(shù)據(jù)庫,有三個表分別記錄了用戶信息(id,姓名,年齡),書籍信息(isbn,書名,作者,出版商)和借書信息(借書人的id,書的isbn,借書時間)

1.寫關(guān)系代數(shù)表達(dá)式查詢’2019-12-25’借出的所有書的isbn

先看看這個關(guān)系代數(shù)表達(dá)式詳細(xì)教程吧家人們,寫出來長這樣 π i s b n ( σ d a t e = ′ 2019 ? 12 ? 2 5 ′ ( b o r r o w e d ) ) \pi_{isbn}(\sigma_{date = '2019-12-25'}(borrowed)) πisbn?(σdate=2019?12?25?(borrowed))簡單解釋一下,先是我們選擇題遇到過的投影操作也就是 π \pi π,下標(biāo)表示選擇的是哪一列,我們要看isbn所以肯定選擇isbn那一列嘛。然后是要選擇日期為’2019-12-25’的元組,選擇就是 σ \sigma σ,下標(biāo)表示要求date = '2019-12-25'也就是日期這一項得等于’2019-12-25’,最后那個括號表示我們是在borrowed這個表里面去查詢的。

2.寫關(guān)系代數(shù)表達(dá)式和SQL語句查詢所有借過’Database System’這本書的用戶的名字

首先我們先理清楚思路,因為書名人名和借書信息分屬三個表,所以我們肯定要先連接一下子,然后我們直接查詢書名為Database System的元組的人名就行了對吧,但是現(xiàn)在還有一個問題,同樣是用戶id,borrowed表里面存的叫mem_id,member里面直接存的就叫id,為了解決這個不同名的情況,我們可以用笛卡爾積,然后選擇時加一個mem_id=id的條件

關(guān)系代數(shù)表達(dá)式

π n a m e ( σ n o = m e m n o ? t i t l e = ′ D a t a b a s e S y s t e m ′ ( m e m b e r × ( b o r r o w e d ? b o o k ) ) \pi_{name}(σ_{no=mem_no? title='Database System'}(member×(borrowed?book)) πname?(σno=memn?o?title=DatabaseSystem?(member×(borrowed?book))

SQL語句
select name
from member, borrowed natural join book
where no=mem_no and title='database system'

3.寫關(guān)系代數(shù)表達(dá)式和SQL語句查詢每個出版商出版作者為’Lu Xun’的書籍的數(shù)量

先選取所有魯迅寫的書作為一個集合,然后根據(jù)isbn去給每個出版商計數(shù),不按書名是因為書名可能會重,可能兩家出版社出版了兩種不同的《吶喊》這種情況

關(guān)系代數(shù)表達(dá)式

π p u b l i s h e r , c o u n t ( i s b n ) ( σ a u t h o r = ′ L u X u n ′ ( b o o k ) ) \pi_{publisher, count(isbn)}(\sigma_{author = 'Lu Xun'}(book) ) πpublisher,count(isbn)?(σauthor=LuXun?(book))

SQL語句
SELECT publisher, COUNT(isbn)
FROM book
WHERE author = 'Lu Xun'
GROUP BY publisher;

4.寫SQL語句查詢所有借書數(shù)量比編號1001的用戶多的用戶的編號

select mem_no
from borrowed
group by mem_no
having count(isbn)>(select count(isbn) 
from borrowed
where mem_no='1001')

5.用SQL語句查詢所有借過’SCAU Press’出版的書的用戶的名字

select name
from member as m
where not exist ( (select isbn 
from book 
where publisher='SCAU press')
except
(select isbn 
from borrowed 	
where mem_no=m.no) )

Question 3 畫E-R圖以及寫關(guān)系模式

1.為以下情況繪制 E-R 圖:一部小說由且僅由一位作者撰寫。小說寫完后,由且僅由一家出版商出版。每部小說可以在許多不同的書店以不同的價格出售。一部小說具有諸如 ID、名稱、字?jǐn)?shù)、類型等屬性。一位作者具有諸如 ID、姓名、國籍、生日等屬性。一家出版商具有諸如 ID、名稱、資產(chǎn)、電話號碼等屬性。一家書店具有諸如 ID、名稱、位置、電話號碼等屬性。

上面選擇題的時候我們已經(jīng)簡單聊過了E-R圖,當(dāng)時說的內(nèi)容基本足以畫出這一題的E-R圖了,值得注意的幾個點包括

  • 每個書店會以不同的價格出售同一本書,所以有價格這樣一個標(biāo)簽連在出售關(guān)系上
  • 關(guān)系集有的時候要有箭頭,還有就是被連接的兩個屬性集的關(guān)聯(lián)項要加下劃線
    答案

2.將你的 E-R 圖轉(zhuǎn)換為關(guān)系模式。指定每個模式的主鍵和外鍵。你可以按照以下格式書寫答案:“R (a1, a2, a3, a4), 外鍵: a4”。

主要難處理的就是price那一片嘛,其實就比較自由,只要能把整個關(guān)系弄清楚就行,答案上這一部分他就直接開了一個新的Sold表連到Bookstore和Novel上面,還加了bookstore_ID之類的屬性

Novel(ID, name, words, type, publisherID, writerID), foreign key: publisherID (reference publisher(ID)), writerID (reference writer(ID))
Writer(ID, name, nationality, birthday)
Publisher(ID, name, asset, phone)
Bookstore(ID, name, location, phone)
Sold(novel_ID, bookstore_ID, price), foreign key: novel_ID(reference novel(ID)), bookstore_ID(reference bookstore(ID))

Question 4 關(guān)系模式的操作

考慮關(guān)系模式 R (A,B,C,D) 上的以下函數(shù)依賴集 F:
A → C
C → A
B → AC
D → AC

1.計算 ( A D ) + {(AD)}^{+} (AD)+

首先我們要知道 ( A D ) + {(AD)}^{+} (AD)+是個什么東西,如果你對離散數(shù)學(xué)還有印象,這個東西叫閉包,那我們怎么算呢?
就是首先一個集合,把A和D先放進(jìn)去,然后去上面那個依賴集里面找,A都指向誰了,指向了C那把C也放進(jìn)來,再看D指向AC了,已經(jīng)都在里面了就別管,然后新加進(jìn)來的也要再找,這里C是指向A已經(jīng)在里面了,所以最后的答案就是 { A , C , D } \{A,C,D\} {A,C,D}

2.為上述函數(shù)依賴集F計算一個規(guī)范覆蓋;給出推導(dǎo)的每一步并加以解釋

首先,老問題,規(guī)范覆蓋是個什么東西,其實就是對我們的依賴集進(jìn)行一波簡化。舉個例子A-->C,A-->B,B-->C,這三個關(guān)系同時出現(xiàn)的前提下,你會發(fā)現(xiàn)A-->C這句話毫無意義;再舉個例子AB-->C,A-->C里面這個AB-->C也同樣是多余的,這些多余的內(nèi)容我們就可以直接刪掉
這題答案就是這樣的
標(biāo)答
答案把依賴寫的方方正正的很好看,但是實際考試的時候?qū)憘€集合的大括號然后全部往里一丟也是可以的

3.列出R的候選鍵

候選鍵總不用解釋了吧,就是你這個ABCD最少要確定幾個元素或組能夠確定一個元組的所有內(nèi)容
那怎么寫呢,我們就從小往大試,先看ABCD只選一個能不能確定元組,發(fā)現(xiàn)都不行就再試兩個的,發(fā)現(xiàn)BD能確定,那就不要再往更大的找了,答案就是BD

4.使用原始的函數(shù)依賴集,給出僅進(jìn)行一次BCNF分解的R的分解

對于函數(shù)依賴 A → C,A 不是候選鍵,這就意味著存在以非候選鍵作為決定因素的函數(shù)依賴,不符合 BCNF 要求,所以需要基于此進(jìn)行分解。那就把AC分成一組,另外一組現(xiàn)在是BD,但是他們沒有直接的關(guān)系,我們再加一個A進(jìn)去他們就滿足BCNF了,所以就可以將ABCD分解為AC和ABD。

5.基于規(guī)范覆蓋給出R的3NF分解

BCNF我們選擇題遇到了,但是3NF還是第一次遇到,所以先看定義
3NF
對于 F c = { A C , C A , B A , D A } F_c=\{ A C, C A, B A, D A\} Fc?={AC,CA,BA,DA},我們這樣考慮

  • 對于 A → C A\rightarrow C AC C → A C\rightarrow A CA
    • 這兩個函數(shù)依賴表明 A A A C C C之間是相互決定的關(guān)系。所以將它們組合成一個關(guān)系模式 A C AC AC,在這個關(guān)系模式中, A A A C C C都是主屬性,因為它們都能相互決定對方,不存在非主屬性對候選鍵(在這里 A A A C C C都可以看作候選鍵)的傳遞函數(shù)依賴,滿足3NF。
  • 對于 B → A B\rightarrow A BA
    • 根據(jù)這個函數(shù)依賴,創(chuàng)建關(guān)系模式 B A BA BA。在這個關(guān)系模式中, B B B是決定因素, A A A是被決定因素。 B B B可以看作主屬性, A A A在這里是非主屬性,但不存在通過其他非主屬性來間接決定 A A A的情況,所以滿足3NF。
  • 對于 D → A D\rightarrow A DA
    • 同理,由這個函數(shù)依賴得到關(guān)系模式 D A DA DA D D D是主屬性, A A A是非主屬性,不存在傳遞函數(shù)依賴,滿足3NF。
  • 添加 B D BD BD
    • 回顧候選鍵相關(guān)知識,為了確保不丟失候選鍵相關(guān)的信息(雖然在題目描述中沒有詳細(xì)提及如何確定需要添加 B D BD BD,但一般是為了完整地通過候選鍵來關(guān)聯(lián)各個關(guān)系模式),添加關(guān)系模式 B D BD BD。在這個關(guān)系模式中, B B B D D D可以看作主屬性,不存在非主屬性對候選鍵的傳遞函數(shù)依賴,滿足3NF。而且通過 B D BD BD與其他關(guān)系模式(如 B A BA BA D A DA DA)的關(guān)聯(lián),可以更好地保證數(shù)據(jù)的完整性和一致性。

Question 5 事務(wù)管理

有以下兩個事務(wù)

T1: read(A)read(B)If A=1 then B:=B*2;write(B)
T2: read(B)read(A)If B=1 then A:=A*2;write(A)

設(shè)一致性要求為 A = 1 或 B = 1 A = 1 或 B = 1 A=1B=1,初始值為 A = B = 1 A = B = 1 A=B=1。

1.證明涉及這兩個事務(wù)的每一個串行執(zhí)行都能保持?jǐn)?shù)據(jù)庫的一致性,并計算A和B的最終結(jié)果

按照慣例,先查定義
串行執(zhí)行
那也就是說兩個輪流進(jìn)行嗎,簡單盤一下不難知道如果T1先進(jìn)行的話那最后A=1,B=2,反之是A=2,B=1,都是滿足一致性要求的

2.向事務(wù)T1和T2添加加鎖和解鎖指令,使它們遵循兩階段鎖協(xié)議。這些事務(wù)的執(zhí)行會導(dǎo)致死鎖嗎?

上鎖解鎖其實就是用前用后加一行代碼而已
T1加鎖解鎖就是這樣

lock-S(A)
read(A)
lock-X(B)
read(B)
if A = 1
then B := B*2
write(B)
unlock(A)
unlock(B)

T2是這樣的

lock-S(B)
read(B)
lock-X(A)
read(A)
if B = 1
then A := A *2
write(A)
unlock(B)
unlock(A)

都這么問了肯定是會出現(xiàn)死鎖的,萬一兩個一起運行,T1把B鎖了,然后T2想讀就等著T1給他解鎖,大概就像這樣
死鎖

3.展示T1和T2的一個并發(fā)執(zhí)行,產(chǎn)生一個不可串行化的調(diào)度

簡單來說就是如果兩個同時執(zhí)行,在一個特定的情況下
示例
B在更新之后還沒有寫會數(shù)據(jù)庫,所以在T2里面B還是1,就導(dǎo)致最后A和B都變成2了,就破壞了一致性

4.解釋術(shù)語串行調(diào)度和可串行化調(diào)度之間的區(qū)別

一個其中所有屬于單個事務(wù)的指令都連續(xù)出現(xiàn)的調(diào)度被稱為串行調(diào)度。可串行化調(diào)度是一種并發(fā)調(diào)度,它具有一個較弱的限制,即它應(yīng)該與某個串行調(diào)度等價。
具體的看定義
串行調(diào)度

2020年

Question 1 選擇題

1.數(shù)據(jù)庫系統(tǒng)是________。

選B.等同于DBMS和被管理的數(shù)據(jù)庫。

2.在特定時刻存儲在數(shù)據(jù)庫中的信息集合被稱為________。

第一章最前面就有的概念,選A。
數(shù)據(jù)庫實例

3.________是商業(yè)數(shù)據(jù)庫系統(tǒng)中使用的非過程性語言。

上張試卷有原題,選C。

4.關(guān)于表的鍵的數(shù)量,以下哪項是正確的?

上張卷子科普過了,選B。

5.在以下術(shù)語中,________是正確的。

整本書最前面四個定義就是他們了
表關(guān)系元組屬性
所以選A。

6.在數(shù)據(jù)庫系統(tǒng)中使用函數(shù)和過程有利于________。

選D,全都有

  • 模塊化:函數(shù)和過程可將復(fù)雜業(yè)務(wù)邏輯分解為獨立模塊,便于管理、理解、維護(hù)與復(fù)用。
  • 性能:能減少代碼重復(fù)執(zhí)行,借助系統(tǒng)優(yōu)化提升執(zhí)行效率,節(jié)省資源。
  • 安全性:可限制訪問權(quán)限,內(nèi)部進(jìn)行數(shù)據(jù)驗證與權(quán)限檢查,保障數(shù)據(jù)安全與完整。

7.關(guān)于視圖,以下哪項陳述不正確?

視圖雖然是虛擬關(guān)系,但它并不是一個沒有記錄的空表,選C。

8.________不是E-R模型中的三個基本概念之一。

上定義
E-R圖
四個選項只有模式倆字沒在這個定義里出現(xiàn)過,所以選D。

9.以下哪項陳述是錯誤的?

  • A.在函數(shù)依賴?yán)碚撝?#xff0c;最嚴(yán)格的范式是BCNF(巴斯 - 科德范式),而不是4NF(第四范式)。4NF主要是處理多值依賴的問題,BCNF則是在函數(shù)依賴的基礎(chǔ)上對關(guān)系模式進(jìn)行更嚴(yán)格的約束,要求關(guān)系模式中每一個函數(shù)依賴的決定因素都包含候選鍵,選A。
  • B.3NF(第三范式)是在1NF(第一范式)的基礎(chǔ)上進(jìn)一步滿足一定條件的范式,所以滿足3NF的關(guān)系一定滿足1NF。
  • C.如果一個關(guān)系滿足4NF,那么它必然滿足3NF,因為4NF是比3NF更高級的范式,對關(guān)系模式的要求更嚴(yán)格,滿足更嚴(yán)格要求的關(guān)系自然也滿足相對寬松的要求。
  • D.BCNF比3NF更嚴(yán)格,如前面所說,BCNF要求函數(shù)依賴的決定因素都包含候選鍵,而3NF允許存在主屬性對候選鍵的傳遞依賴(但不允許非主屬性對候選鍵的傳遞依賴)。

10._______不是事務(wù)的屬性。

之前丟過的圖再丟一遍,很明顯選B,剩下三個明顯都是好詞兒嘛。
ACID特性

11.如果事務(wù)T已經(jīng)獲得了數(shù)據(jù)項A的共享鎖,那么 T 可以_____。

共享鎖的特點就是只讀不寫,選A。想讀寫的話你得用排他鎖(Exclusive Lock),給了一個事務(wù)權(quán)限別的就都不能訪問了,這么設(shè)計是為了保證一致性。還記得上張試卷的Question 5嗎?lock-S(A)就是給數(shù)據(jù)項A加共享鎖,lock-X(B)就是給B加排他鎖。

12.在從E-R模型映射到關(guān)系模型時,一個關(guān)系可以被映射為______。

還記得上張試卷上讓我們畫的E-R圖嗎,當(dāng)時我們有的關(guān)系是通過關(guān)聯(lián)的兩個屬性集里面的同名屬性連接,也就是標(biāo)下劃線,反映在數(shù)據(jù)庫上就是一列;也有那個出售價格我們單開了一個表,記錄價格和書籍以及書店的ID,這就是用一個表存。所以這一題選D,兩種存法都可以。

13.在數(shù)據(jù)庫物理設(shè)計階段,必須給出______。

直接上定義,選B。
數(shù)據(jù)庫設(shè)計

14.在 SQL 中,以下哪個謂詞可以在 where 子句中用于測試 “amount” 是否為空值?

上張試卷已經(jīng)詳細(xì)介紹過空值了,選B。

15.SQL 語句 “Select count (*) From employee left outer join works” 在以下表上運行,那么查詢的輸出是______?

  • SELECT count(*) 是用于統(tǒng)計結(jié)果集中的行數(shù)。
  • FROM employee left outer join works 表示對 employee 表和 works 表進(jìn)行左外連接。左外連接會返回左表(這里是 employee 表)中的所有行,以及右表(works 表)中與左表連接條件匹配的行,如果右表中沒有匹配的行,則用 NULL 填充。

在給定的示例中,employee 表有 4 行數(shù)據(jù),左外連接后結(jié)果集的行數(shù)仍然是 4 行(即使 works 表中可能沒有與 employee 表中某些行完全匹配的數(shù)據(jù),但左外連接會保證 employee 表的所有行都在結(jié)果集中)。

所以,查詢的輸出是 4,答案選 C。

16.表EMP中插入了多少行?

INSERT INTO EMP(ID, Age) VALUES ('001',25);
INSERT INTO EMP(ID, Age) VALUES (002,35);
INSERT INTO EMP(ID, Age) VALUES (003,15);
INSERT INTO EMP VALUES (004, 40);
COMMIT;

注意看題目的要求,age必須大于18小于60,所以第三條就沒法成功插入,然后第四條沒有指定字段名所以也會插入失敗,選C。

17.在以下關(guān)于函數(shù)依賴的規(guī)則中,________是正確的。

  • A.僅根據(jù) X ∩ Y = ? 不能得出 X → Y 的函數(shù)依賴關(guān)系。
  • B.已知 X → Y ,那么 WX → WY(根據(jù)增廣律),又因為 WY → Z ,所以可以由傳遞律推出 WX → Z ,選B。
  • C.XY → Z 不能直接推出 X → ZY → Z 。
  • D.X ? Y 也不能得出 X → Y 的函數(shù)依賴關(guān)系。

18.設(shè)A、B、C和D為屬性,在以下關(guān)系代數(shù)表達(dá)式中,________不是一個關(guān)系。

× \times ×是笛卡爾積的符號,所以連接的必須是兩個關(guān)系,A選項拿這玩意兒連接屬性肯定是語法錯誤,選A就行。

19.關(guān)于觸發(fā)器,以下哪句話是錯誤的?

選D,書上沒翻到滾去問老師了。
reply

20.如果實體集A和B之間存在一對多關(guān)系,那么______。

在實體集A和B之間存在一對多關(guān)系時,意味著對于B中的一個實體,在A中可以有多個與之相關(guān)聯(lián)的實體;而對于A中的一個實體,在B中只有一個與之相關(guān)聯(lián)的實體。
從函數(shù)依賴的角度來看,由于B中的一個主鍵值能唯一確定A中的主鍵值(因為B中的一個實體對應(yīng)A中的多個實體,所以可以根據(jù)B的主鍵找到A中與之相關(guān)的主鍵),即存在從B的主鍵到A的主鍵的函數(shù)依賴,也就是PK(B) → PK(A)。
而選項B中說從A的主鍵到B的主鍵的函數(shù)依賴是不正確的,因為A中的一個主鍵值可能對應(yīng)B中的多個主鍵值,不滿足函數(shù)依賴的唯一性要求。
所以答案是A。

Question 2 寫關(guān)系代數(shù)表達(dá)式和SQL語句

給定數(shù)據(jù)庫

Teacher(TId, TName, office, age)
Equipment(EId, Ename, serial_number, price)
Own(TId, EId, date)

1.用關(guān)系代數(shù)表達(dá)式查詢沒有任何設(shè)備的老師的編號

非常人性化的是我們的Own表里面就存了老師的Id,所以直接選取Teacher內(nèi)的所有老師Id,把出現(xiàn)在Own表內(nèi)過的Id剪掉就可以了 π T I d ( T e a c h e r ) ? π T I d ( O w n ) \pi_{TId}(Teacher)-\pi_{TId}(Own) πTId?(Teacher)?πTId?(Own)

2.用關(guān)系代數(shù)表達(dá)式和SQL語句查詢擁有價格低于1000的設(shè)備的老師的的名字

設(shè)備的價格,老師的名字和擁有情況分屬三個表,那又要全部先連接一下子然后再查詢了

關(guān)系代數(shù)表達(dá)式

π T N a m e ( σ p r i c e < 1000 ( T e a c h e r ? E q u i p m e n t ? O w n ) ) \pi_{TName}(\sigma_{price<1000}(Teacher?Equipment?Own)) πTName?(σprice<1000?(Teacher?Equipment?Own))

SQL語句
select TName
from Teacher natural join Own natural join Equipment
where price<1000

3.用關(guān)系代數(shù)表達(dá)式和SQL語句查詢擁有價格最高的設(shè)備的教師姓名

關(guān)系代數(shù)表達(dá)式

π n a m e ( T e a c h e r ? O w n ? ( E q u i p m e n t ? p r i c e = max ? ( p r i c e ) ( E q u i p m e n t ) ) ) \pi_{name}(Teacher\bowtie Own\bowtie(Equipment\bowtie_{price=\max(price)}(Equipment))) πname?(Teacher?Own?(Equipment?price=max(price)?(Equipment)))先看里面這個 E q u i p m e n t ? p r i c e = max ? ( p r i c e ) ( E q u i p m e n t ) Equipment\bowtie_{price=\max(price)}(Equipment) Equipment?price=max(price)?(Equipment),這個操作得到的是一個集合,只包括價格=最貴設(shè)備的設(shè)備,再拿這個表和Teacher以及Own自然連接,后面的操作就很明了了。

SQL語句
select TName
from Teacher
where TId in (select TIdfrom Ownwhere EId in (select EIdfrom Equipmentwhere price = (select max(price) from Equipment))
);

4.用SQL語句查詢每位教師的姓名以及所擁有設(shè)備的總價

主要的點就是通過這個Group by依據(jù)其中一個元素分組,還有就是sum求和

select TName, sum_price
from teacher natural join (Select TId, sum(price) as sum_priceFrom Own natural join EquipmentGroup by TId
);

5.用SQL語句對所有價格高于10000的設(shè)備進(jìn)行10%的貶值

最基礎(chǔ)的更新數(shù)據(jù)的命令

Update Equipment
Set price=price*0.9
Where price>10000;

Question 3 畫E-R圖以及寫關(guān)系模式

一家醫(yī)院具有如編號、名稱、位置、等級、容量等屬性。一家醫(yī)院有許多用于病人的病房,一個病房可以用房間編號、建筑物、病床數(shù)量等屬性來描述。一位醫(yī)生可以用編號、姓名、年齡、專業(yè)和職稱來描述。一位病人具有如編號、姓名、年齡、性別、地址等屬性。上述對象必須滿足一些約束條件:每位醫(yī)生可以失業(yè)或受雇于一家醫(yī)院。如果一位醫(yī)生受雇,其薪水需要記錄在數(shù)據(jù)庫中。一位病人可以去多家醫(yī)院。住院病人是住在某個病房并由住院醫(yī)生(住院醫(yī)生是醫(yī)生的一種職稱)管理的病人。一個病房只屬于一家醫(yī)院,并且每家醫(yī)院配備多個病房。

1.繪制E-R圖表示上述模式

畫了半天的圖被我不小心刪了,還是丟標(biāo)答吧
標(biāo)答

2.將E-R圖轉(zhuǎn)換為關(guān)系數(shù)據(jù)庫模式,并指出主鍵和外鍵

一如既往地,我們要額外加一些連接用的鍵值屬性

Hospital(ID, name, location, rank, capacity )  primary key: ID
Ward(roomID, building, HospitalID, BedNumber) primary key: roomID, building, HospitalID  foreign key: HospitalID
Doctor(id, name, specialty, title, HospitalID, salary)  primary key: ID foreign key: HospitalID
Inpatient(patientID, DoctorID, roomID, building, HospitalID, InDate, OutDate) primary key: patientID, DoctorID, roomID, building, HospitalID foreign key: patientID from patient(ID), DoctorID from doctor(id), roomID, building, HospitalID from ward

3.給出一個例子說明外鍵的作用

以病房關(guān)系Ward中的HospitalID外鍵為例。假設(shè)在Ward表中有一條記錄(101, A 樓, 1, 20),其中HospitalID為 1。這就表示這個病房屬于Hospital表中ID為 1 的醫(yī)院。如果在插入或更新這條記錄時,HospitalID的值在Hospital表中不存在,那么數(shù)據(jù)庫系統(tǒng)會根據(jù)外鍵約束拒絕這個操作,從而保證了數(shù)據(jù)的一致性,即病房一定是屬于某個已存在的醫(yī)院,不會出現(xiàn)孤立的病房記錄。

Question 4 關(guān)系模式的操作

一整道大題都和上一張試卷的完全一樣,跳過

Question 5 事務(wù)管理

假設(shè)使用即時數(shù)據(jù)庫修改方法和檢查點技術(shù)。下圖描繪了并發(fā)事務(wù)、檢查點時間和系統(tǒng)故障時間。
題圖

1.根據(jù)上圖寫下日志目錄。

記錄開始結(jié)束和檢查點即可

<T1,start>
<T2 start>
<T1 commit>
<T3 start>
<checkpoint>
<T4 start>
<T5 start>
<T4 commit>

2.說明哪些事務(wù)需要進(jìn)行撤銷(undo)操作,哪些事務(wù)需要進(jìn)行重做(redo)操作,并解釋原因。

事務(wù) T3 和 T5 需要撤銷,因為這兩個事務(wù)已開始但尚未提交。
事務(wù) T2 和 T4 需要重做,因為它們在檢查點(Tc)之后且在系統(tǒng)故障(Tf)之前已提交,但結(jié)果可能尚未寫入數(shù)據(jù)庫。

3.使用檢查點技術(shù)的優(yōu)點。

檢查點技術(shù)的優(yōu)點在于,在系統(tǒng)恢復(fù)時,不需要從最早的事務(wù)開始進(jìn)行重做(redo)和撤銷(undo)操作。所有在檢查點之前已經(jīng)提交的事務(wù),其對數(shù)據(jù)庫的修改已經(jīng)被保證是持久化的,不需要再次進(jìn)行處理。在進(jìn)行恢復(fù)操作時,可以從檢查點之后開始處理那些未完成的事務(wù)(如本題中的 T3 和 T5 需要撤銷,因為它們在系統(tǒng)故障時還未提交)以及重新執(zhí)行在檢查點之后提交但可能結(jié)果尚未寫入數(shù)據(jù)庫的事務(wù)(如本題中的 T2 和 T4 需要重做)。這樣可以大大縮短恢復(fù)過程所需的時間和資源消耗,提高系統(tǒng)的可用性和恢復(fù)效率。

4.繪制事務(wù)的狀態(tài)圖。

事務(wù)狀態(tài)圖

2021年

Question 1 選擇題

1.下列那句是錯誤的?

選B,一列怎么可能有多個名稱呢?

2.哪項可以擁有屬性?

實體集有描述其特征的屬性,關(guān)系集在某些情況下也可以有屬性來描述關(guān)系的一些特性,選C。

3.如果實體集 “經(jīng)理(manager)” 和 “項目(project)” 之間的 “負(fù)責(zé)(in_charge_of)” 關(guān)系集的主鍵是 {project_id},那么 “in_charge_of” 的映射基數(shù)是什么?

題目沒說那就不知道,除非明確說了一個經(jīng)理只管一個項目或者一個項目只有一個經(jīng)理,選D。

4.當(dāng)一個實體轉(zhuǎn)換為關(guān)系模式時,_____屬性會被放置在一個新的關(guān)系模式中,而不是該實體的關(guān)系模式中。

多值屬性在轉(zhuǎn)換時通常會單獨處理,放在新的關(guān)系模式中,而復(fù)合屬性、派生屬性和簡單屬性一般直接放在實體對應(yīng)的關(guān)系模式中,所以選B。

5._____將具有相同特征的實體集組合成一個更高層次的實體集。

上定義
概化特化和聚集
所以選B概化。

6.SQL語言使用______語句從表中刪除一列。

在 SQL 中,使用 Alter 語句的相關(guān)語法來刪除表中的列,Delete 用于刪除行,Drop 用于刪除表或其他數(shù)據(jù)庫對象,Update 用于更新數(shù)據(jù),選A。

7.在 SQL 中,______是與 “IN” 等價的運算符。

前面有解釋,選D。

8.______會從 Stud 表中刪除在 SC 表中有課程的行?

和上題差不多,選C。

9.下列語句中錯誤的是?

在關(guān)系數(shù)據(jù)庫中,一列中的值必須來自相同的域,而不是不同的域,所以選D。A 選項,投影運算符∏在功能上與 SQL 中的 “Select” 子句有相似之處,是正確的;B 選項,關(guān)系中列的順序確實是可以改變的,不影響關(guān)系的本質(zhì),是正確的;C 選項,一個視圖可以在定義另一個視圖的表達(dá)式中使用,是正確的。

10.____確保一旦一個事務(wù)已提交,即使發(fā)生系統(tǒng)故障,該事務(wù)的更新也不會丟失。

再丟這個圖,這次加個英文
ACID特性
所以選Duration持久性也就是D。

11.調(diào)度必須是_______,以確保如果事務(wù) Ti 看到事務(wù) Tj 的影響,而 Tj 隨后中止,那么 Ti 也會中止。

可恢復(fù)的調(diào)度才能保證在這種情況下 Ti 也會中止,無級聯(lián)調(diào)度主要是防止級聯(lián)回滾;可串行化調(diào)度強(qiáng)調(diào)與串行執(zhí)行結(jié)果的等價性;沖突可串行化調(diào)度是可串行化調(diào)度的一種更嚴(yán)格的形式,選A。

12._____僅在事務(wù)結(jié)束時釋放排它鎖,不要求共享鎖僅在事務(wù)結(jié)束時釋放。

先看課本
兩階段封鎖協(xié)議
沒說共享鎖相關(guān)的事情啊,再去查wiki,wiki這么說
wiki
所以選C。

13.關(guān)于兩段鎖協(xié)議確保無死鎖的說法哪個是正確的?

上面課本上說了
兩段鎖協(xié)議的死鎖
所以選B。

14.當(dāng)________時,一個事務(wù)被認(rèn)為已提交。

當(dāng)事務(wù)的最后一條日志記錄已輸出到穩(wěn)定存儲時,事務(wù)被認(rèn)為已提交,因為這樣能保證即使系統(tǒng)出現(xiàn)故障,提交的信息也不會丟失。所有更新記錄在日志中、所有寫操作完成都不能完全確定事務(wù)已成功提交,所有更新回滾則是事務(wù)失敗的情況,三短一長選最長嘛答案選A。

15.如果應(yīng)用程序不依賴于數(shù)據(jù)庫的物理模式,并且在物理模式更改時不需要重寫,那么它們被稱為具有______

顧名思義,不依賴域物理模式那就是具有物理獨立性唄,選C。

16.數(shù)據(jù)字典是______

數(shù)據(jù)字典是包含數(shù)據(jù)庫元數(shù)據(jù)的特殊類型的表,它不是用于存儲用戶數(shù)據(jù)或 DML 輸出的,雖然由 DBA 管理但不是簡單的包含元數(shù)據(jù)且可更新,它有特定的結(jié)構(gòu)和用途,選A。

17.授權(quán)語句:‘grant select on department to Amit, Satoshi;’成功執(zhí)行后,_______。

語句授予了 Amit 和 Satoshi 對 department 表的查詢權(quán)限,所以他們可以讀取表中的所有記錄,不能進(jìn)行更新、刪除或修改模式等操作,所以選D。

18.插入語句 “insert into instructor (id, name, dept_name, salary) values (‘12123’,’Kate’,’ ’, 32767)” 會向表 takes 中插入_____。

根據(jù)觸發(fā)器的定義,當(dāng)插入的 dept_name 為空時,會將其設(shè)置為 null,所以插入的值會變?yōu)椤?2123’,’Kate’, null, 32767,所以選B。

19.以下哪個語句是錯誤的?

如果一個關(guān)系在 3NF 中,不一定在 BCNF 中,BCNF 是比 3NF 更嚴(yán)格的范式,A 選項關(guān)系模式 R 滿足所有屬性域為原子則在 1NF 是正確的;B 選項 3NF 和 BCNF 的關(guān)系都在 1NF 是正確的;C 選項在 BCNF 中的關(guān)系一定在 3NF 是正確的,所以選D。

20.在以下關(guān)于函數(shù)依賴的規(guī)則中,______是正確的。

跟上面的推法一致,選C。

Question 2 寫關(guān)系代數(shù)表達(dá)式和SQL語句

已知下面這樣一個數(shù)據(jù)庫

Person(driver_id, name, address);
Car(license_plate, model, year);
Accident(report_no, year, location);
Owns(driver_id, license_plate);
Participated(report_no, license_plate, driver_id, damage_amount);

1.寫關(guān)系代數(shù)表達(dá)式和SQL語句查詢所有擁有2010年或之后生產(chǎn)的汽車且居住在“New York”的客戶的姓名。

關(guān)系代數(shù)表達(dá)式

π n a m e ( σ y e a r > = 2010 , a d d r e s s = ′ N e w Y o r k ′ ( P e r s o n ? O w n s ? C a r ) ) \pi_name(\sigma_{year>=2010,address='New York'}(Person?Owns?Car)) πn?ame(σyear>=2010,address=NewYork?(Person?Owns?Car))

SQL語句
SELECT name
WHERE year>=2010 and address='New York'
FROM Person natural join Own natural join Car;

2.寫關(guān)系代數(shù)表達(dá)式和SQL語句查詢名為“Smith”的司機(jī)所擁有的汽車的車牌。

關(guān)系代數(shù)表達(dá)式

π l i c e n s e p l a t e ( σ n a m e = ′ S m i t h ′ ( P e r s o n ? O w n s ) ) \pi_{license_plate}(\sigma_{name='Smith'}(Person?Owns)) πlicensep?late?(σname=Smith?(Person?Owns))

SQL語句
SELECT license_plate
WHERE name='Smith'
FROM Person natural join Owns;

3.寫關(guān)系代數(shù)表達(dá)式和SQL語句查詢2021年從未發(fā)生過任何事故的這些人員的姓名和司機(jī)編號。

先取所有的司機(jī),再減去2021年出過事故的司機(jī)的信息。

關(guān)系代數(shù)表達(dá)式

π n a m e , d r i v e r i d ( P e r s o n ) ? π n a m e , d r i v e r i d ( σ y e a r = 2021 ( P e r s o n ? P a r t i c i p a t e d ? A c c i d e n t ) ) \pi_{name,driver_id}(Person)-\pi_{name,driver_id}(\sigma_{year=2021}(Person?Participated?Accident)) πname,driveri?d?(Person)?πname,driveri?d?(σyear=2021?(Person?Participated?Accident))

SQL語句
SELECT name,driver_id
FROM Person
WHERE driver_id not in(SELECT driver_idWHERE year=2021FROM Participated natural join Accident);

4.用SQL語句找出2021年事故發(fā)生次數(shù)最多的地點

Select location
From accident 
Where year=2021
Group by location
Having count(report_no) >=all
(select count(report_no) from accident group by location);

5.用SQL語句查詢2021年至少發(fā)生兩次事故的司機(jī)編號和人員姓名

Select driver_id, name
From Person as S
Where not unique(select report_no 
from Accident as A natural join Participated as P 
where P.driver_id=S.driver_id and A.year=2021);

6.用SQL語句將2021年在“Wushan”發(fā)生的事故中車牌為“SCAU888”的汽車的損壞金額增加10%

Update Participated
Set damage_amount=damage_amount*1.1
Where license_plate=”SCAU888” and report_no in 
(select report_no from Accident where year=2021 and location=”Wushan”);

7.用SQL語句查詢擁有2015年之前生產(chǎn)的汽車且地址中包含“New”的司機(jī)的姓名和地址

主要關(guān)注模糊匹配用%代表任意字符串而且不能用=要用like

SELECT name,address
WHERE year<2015 and address like '%New%'
FROM Person natural join Owns natural join Car;

8.用SQL語句將所有在“Beijing”發(fā)生的事故的損壞金額更新為原來的兩倍,但如果損壞金額超過5000元,則只更新為5000元

主要關(guān)注條件判斷的語法

UPDATE Participated
SET damage_amount = CASE WHEN damage_amount * 2 <= 5000 THEN damage_amount * 2ELSE 5000END
WHERE license_plate = 'SCAU888' AND report_no IN (SELECT report_noFROM AccidentWHERE location = 'Beijing' AND year = 2021
);

Question 3 畫E-R圖以及寫關(guān)系模式

一篇論文具有屬性:ID(編號)和標(biāo)題(title)。一本期刊具有屬性:ID(編號)、名稱(name)、影響因子(factor)和類別(category)。一位作者具有屬性:ID(編號)、名字(first name)、姓氏(last name)、頭銜(title)和電子郵件(email)。一項資助具有屬性:ID(編號)、標(biāo)題(title)、機(jī)構(gòu)(agency)和年份(year)。一篇論文可以由多位作者撰寫,一篇論文必須至少有一位作者。一篇論文只能在一本期刊上發(fā)表。如果一篇論文被發(fā)表,那么像年份(year)、卷(volume)、期(issue)、頁碼(page)等出版信息必須記錄在數(shù)據(jù)庫中。一位作者可以得到多項資助,而一項資助必須恰好支持一位作者。

1.繪制E-R圖來說明上述數(shù)據(jù)庫要求

標(biāo)答
之前好像忘記丟了,丟一個圖例在這里
課本圖7-26

2.將你的E-R圖轉(zhuǎn)換為關(guān)系數(shù)據(jù)庫模式,并指出主鍵和外鍵。

Journal (id, name, factor, category) primary key:id
Paper (id, title) primary key:id
Publish (J_id, P_id, volume, issue, page) primary key:J_id,foreign key: J_id reference Journal:id, P_id reference paper:id
Author (id, first_name, last_name, title, email) primary key:id
Funding (id, title, agency, year, sup_author_id)  primary key:id foreign key: sup_author_id reference author:id,
write(P_id, Au_id)  primary key:P_id, Au_id, foreign key: P_id reference paper:id, Au_id reference author:id

Question 4 關(guān)系模式的操作

設(shè) R = A B C D E F R = ABCDEF R=ABCDEF 是一個關(guān)系,函數(shù)依賴集 F = { A B → C D , D → C , D E F → A B , D E → B , A C → D C } F = \{AB \to CD, D \to C, DEF \to AB, DE \to B, AC \to DC\} F={ABCD,DC,DEFAB,DEB,ACDC} R R R 上成立。

1.列出關(guān)系R的所有候選鍵

候選鍵就是要找盡可能少的字母,使得這些字母根據(jù)上面給定的函數(shù)依賴能推出剩下的所有字母
這一題的所有候選鍵就是DEF, ABEF, ACEF

2.函數(shù)依賴 A C → B AC \to B ACB R R R 上是否成立,解釋原因。

就看嘛,AC能推出D,其他的字母都沒法通過上面的函數(shù)依賴推出來,所以這個B也不成立
說的更正式一點的話就說 { A C } + \{AC\}^{+} {AC}+計算出來為 { A C D } \{ACD\} {ACD} B B B不在這個集合內(nèi)所以不成立。

3.給出僅進(jìn)行一次BCNF分解的 R R R的分解。

AB→CD是導(dǎo)致違反BCNF的一個函數(shù)依賴,因為它不是平凡函數(shù)依賴,而且AB并非候選鍵。因此,關(guān)系R可分解為{R1(ABCD),R2(ABEF)}這兩個關(guān)系。

4.給出關(guān)系R的第三范式(3NF)分解,并列出計算其正則覆蓋的主要步驟

F = {AB→CDD→CDEF→ABDE→BAC→DC}
AB→CD中,C是冗余的,因此F等價于{AB→DD→CDEF→ABDE→BAC→DC}。
DEF→AB中,鑒于DE→BB是冗余的,所以F等價于{AB→DD→CDEF→ADE→BAC→DC}。
AC→DC中,由于D→CC是冗余的,于是F等價于{AB→DD→CDEF→ADE→BAC→D}。
那么一個正則覆蓋可以是F_C = {AB→DD→CDEF→ADE→BAC→D}。
然后關(guān)系R的第三范式分解可以是:
{ABDACDBDEADEF}

Question 5 事務(wù)管理

Part 1

考慮如下具有三個事務(wù)( T 0 T_0 T0?、 T 1 T_1 T1?、 T 2 T_2 T2?)的調(diào)度,這些事務(wù)在數(shù)據(jù)庫中對四個數(shù)據(jù)項(A、B、C、D)進(jìn)行操作,初始值分別為:A = 1000,B = 2000,C = 600,D = 200。

事務(wù)操作
T 0 T_0 T0?Read(A); Read(B); Read(C)
T 1 T_1 T1?Read(B); Read(C); C : = C ? 100 C := C - 100 C:=C?100; D : = D + 100 D := D + 100 D:=D+100
T 2 T_2 T2? A : = A ? 50 A := A - 50 A:=A?50; B : = B ? 500 B := B - 500 B:=B?500; Write(C)
T 3 T_3 T3? B : = B + 50 B := B + 50 B:=B+50; C : = C + 500 C := C + 500 C:=C+500; Write(A); Write(B); Write(B); Write(C)
1.解釋串行調(diào)度和可串行化調(diào)度之間的區(qū)別

2019年最后一題
2019.5.4

2.給出一種并發(fā)執(zhí)行產(chǎn)生可串行化調(diào)度的場景,且事務(wù)提交順序不同于串行化順序

標(biāo)答

Part 2

現(xiàn)在假設(shè)在上述調(diào)度執(zhí)行過程中,系統(tǒng)在執(zhí)行完事務(wù) T 1 T_1 T1?的操作后崩潰了,并且在崩潰前剛剛完成了一個檢查點(checkpoint)操作,同時假設(shè)在崩潰前日志(log)包含了以下記錄:

事務(wù)操作
T 0 T_0 T0?start
T 0 T_0 T0?Read(A)
T 0 T_0 T0?Read(B)
T 0 T_0 T0?Read(C )
T 1 T_1 T1?start
T 1 T_1 T1?Read(B)
T 1 T_1 T1?Read(C)
T 1 T_1 T1? C : = C ? 100 C := C - 100 C:=C?100
T 1 T_1 T1? D : = D + 100 D := D + 100 D:=D+100
T 2 T_2 T2?start
T 2 T_2 T2? A : = A ? 50 A := A - 50 A:=A?50
T 2 T_2 T2? B : = B ? 500 B := B - 500 B:=B?500
3.解釋檢查點技術(shù)(checkpoint technology)
  • 將當(dāng)前駐留在主內(nèi)存中的所有日志記錄輸出到穩(wěn)定存儲中。
  • 將所有已修改的緩沖區(qū)塊輸出到磁盤。
  • 將形如的日志記錄輸出到穩(wěn)定存儲中,其中L是檢查點時處于活動狀態(tài)的事務(wù)列表。
4.描述在重做階段(Redo Pass)中撤銷列表(Undo List)的變化

在重做階段,撤銷列表最初包含事務(wù)T1和T2;當(dāng)找到T2的提交日志記錄時,將T2從撤銷列表中移除,而當(dāng)找到T3的開始日志記錄時,將T3添加到撤銷列表中。當(dāng)找到事務(wù)T1的中止日志記錄時,將T1從撤銷列表中移除,最終撤銷列表中僅剩下T3。

5.展示在恢復(fù)過程中應(yīng)該添加的日志記錄。
<T3, D,300>
<T3, abort>
6.列出完成恢復(fù)后B、C和D的最終值。

B = 2050,C = 600,D = 300 。

http://aloenet.com.cn/news/43229.html

相關(guān)文章:

  • wordpress 更新很慢微信公眾號seo
  • 西安做的好的網(wǎng)站公司南昌seo全網(wǎng)營銷
  • 怎么創(chuàng)建網(wǎng)站 免費的官網(wǎng)設(shè)計公司
  • 新企業(yè)在哪里做網(wǎng)站好關(guān)鍵詞推廣優(yōu)化排名品牌
  • wordpress文章頁面菜單優(yōu)化大師win7
  • 女女做的網(wǎng)站目前最新推廣平臺
  • 南通網(wǎng)站開發(fā)招聘按效果付費的網(wǎng)絡(luò)推廣方式
  • html5手機(jī)網(wǎng)站開發(fā)區(qū)別百度快照推廣
  • 建設(shè)網(wǎng)站必備條件長春網(wǎng)站建設(shè)推廣
  • 大于二高端網(wǎng)站建設(shè)新手seo入門教程
  • 網(wǎng)站標(biāo)簽怎么做重慶網(wǎng)站網(wǎng)絡(luò)推廣
  • 淄博北京網(wǎng)站建設(shè)手機(jī)百度搜索引擎入口
  • 做網(wǎng)站收費標(biāo)準(zhǔn)哪個平臺可以免費打廣告
  • 網(wǎng)站在建設(shè)時不容忽略的一些細(xì)節(jié)最權(quán)威的排行榜網(wǎng)站
  • 網(wǎng)站建設(shè)中模板下載武漢百度開戶代理
  • 百度搜索不到asp做的網(wǎng)站天津搜狗seo推廣
  • 網(wǎng)站建設(shè)哪個空間比較好網(wǎng)站怎么優(yōu)化到首頁
  • 上海簡站商貿(mào)有限公司seo基礎(chǔ)理論
  • 做任務(wù)傭金網(wǎng)站源碼互聯(lián)網(wǎng)營銷培訓(xùn)平臺
  • 公眾號編輯 wordpress魔貝課凡seo
  • 聚美優(yōu)品網(wǎng)站怎么做的最新的即時比分
  • 白糖貿(mào)易怎么做網(wǎng)站廈門seo公司到1火星
  • 外貿(mào)網(wǎng)站建設(shè)設(shè)計杭州做seo的公司
  • 微信h5免費制作網(wǎng)站seo優(yōu)化與推廣招聘
  • 招聘網(wǎng)站怎么做營銷軟文代寫平臺
  • 個人網(wǎng)站可以做淘寶客杭州網(wǎng)站推廣平臺
  • 商城網(wǎng)站建站深圳優(yōu)化seo排名
  • 如果做鏡像網(wǎng)站360廣告投放平臺
  • 北京的網(wǎng)站設(shè)計公司線上營銷策劃方案
  • 重慶做網(wǎng)站微信的公司提高搜索引擎檢索效果的方法