我很快就會有一個考試,我想知道如何解決關於索引這些問題:數據庫索引:例
1.A數據庫由一個關係R(A,B,C)。 A和B是整數[0,10 000](各4B),C是varchar(20)(20B)。關係R由10^6個元組組成。該塊大小爲2048 B.
A)有多少塊做,我們要讀(最佳和最差),如果我們問這個查詢,如果我們對B中的B +樹索引:
選擇C從r WHERE A = 100和B = 10
B)索引A有意義嗎?如果是的話,什麼類型的最好?
另一個類似的問題是:
2.A數據庫包括關係R(A,B,C)的。 A和B是整數[0,10 000],C是varchar(150)。關係R由10^6個元組組成。塊大小是2048B,A,B是鍵。
A)有多少塊做我們,如果我們問查詢到在讀最好的和最壞的情況下「選擇C從r其中A = 4711和:
- 我們沒有索引
- 我們有一個b +上的一個樹索引和B.
二)是否有意義到索引A separetely和A的separetely而不是在A和b有一個索引什麼類型的indeces的是最好的?
EDIT:
以下是我已經做:
問題1 A)
元組是大小= 20 + 4 + 4 = 28乙
的2048/28 = 73個元組/塊向下舍入
10^6/73 = 13 699個塊的整個關係向上取整
Indexreadings: 4 * N + 4(N + 1)< = 2048 B => N = 255捨去
B +樹的第一級= 255 < 10^6 否
B +樹的第二級= 255 * 256 < 10^6 否
B +樹的第三級= 255 * 256 * 257> 10^6 是10^6元組可以適合在高度爲3的B +樹中。
Datareadings: 如果我們假設A = 100具有概率一萬零一分之一和B = 10具有相同的概率則有:
10001分之1*10001分之1* 10^6圍捕= 1元組
在最壞和最好的情況:1元組= 1塊
那麼我們有3個+ 1 blockreadings
是不是?
我不知道該怎麼做了B)..
而且我真的不知道該怎麼回答問題2。請幫我
如果你顯示你的工作到了你卡住的地步,你很可能會很快得到答覆。只是在SO上丟棄作業問題被認爲是超出了網站的發佈準則。 – 2011-03-11 17:04:53
完成。我希望你們現在能幫助我。 – 2011-03-12 11:50:23