題組內容

二、某機構資料庫有以下兩張 E 與 C 資料表,並存在其關聯:

● E(SID, CID, Grade):共 60000 筆資料,每個區塊(Block)存 50 筆資料。

● C(CID, Name, Credit):共 600 筆資料,每個區塊(Block)存 30 筆資料。

假設該機構系統可用的緩衝區(Buffer)M 共 22 頁,並執行下面 SQL 語法:

目前已知關聯式資料庫中,常見的 Join 演算法有三種,即 Simple Nested Loop Join (SNLJ)、Block Nested Loop Join (BNLJ)與 Hash Join,其 I/O 成 本分別計算如下:

演算法內符號說明如下:B(R)代表資料表 R 的區塊(Block)數,也就是 以 R 作為 JOIN 運算的驅動表(Driving Table / Outer Table) ;|R|代表資料 表 R 的資料筆數;M 代表可用緩衝區(Buffer)頁數;S 為要計算的資料表。

 請回答下面問題,並計算下列各演算法的 I/O 成本(需列計算過程) :

(三)使用 Hash Join 法(假設分割後各 Partition 可完整放入記憶體) 。(5 分)