習題9-1 |
---|
假設一個硬碟頁佔 4KB,現在你有一個包括10 萬筆記錄的資料表,每一筆記錄長度為 128B,平均每一個資料頁是 50% 滿。請問該資料表需要幾個硬碟頁? |
習題9-2 |
---|
假設一個硬碟頁佔 4KB,一個索引值 (欄位值) 佔20B,一個記錄指標佔18B,一個節點指標佔 16B,此外,除根節點外的每一節點是 70% 滿。請問要容納10 萬筆記錄需要幾層的 B+-tree? |
習題9-3 |
---|
假設一個硬碟頁有 2KB 容量,一個節點指標佔 8B,一個記錄指標佔 10B。考慮圖 4-3 的資料表 Product,假設 unitPrice 欄位值佔 8B,catalog 欄位值佔20B,並且資料表 Product 裡有 500,000 筆記錄。 考慮以下兩個索引: CREATE INDEX I1 ON Product (unitPrice); CREATE INDEX I2 ON Product (unitPrice, catalog); 請問, 1. I1 的B+-tree 至少有幾層?每一層各有幾個節點? 2. I2 的B+-tree 至少有幾層?每一層各有幾個節點? |
習題9-4 |
---|
假設你依以下SQL 敘述建立了一個索引I3。 CREATE INDEX I3 ON Product (catalog DESC, unitPrice DESC); 以圖4-4 的資料庫為例,請仿圖9-7 畫出I3 的索引結構。 |
習題9-5 |
---|
有些 DBMS 在建立資料表時,會主動為主鍵建立一個群聚索引。考慮圖4-4的範例資料庫中的Product 資料表,假設DBMS 主動建立以下群聚索引: CREATE INDEX ProductCluster ON Product (pNo) CLUSTER; 1. 以圖4-4 的資料庫為例,仿圖9-6 畫出資料表Product 和索引ProductCluster 的實體結構示意圖,假設一個硬碟頁只能容納4 個Product 記錄,B+-tree 的每一葉節點最多能容納2 個記錄指標,而每一中間節點最多能容納3 個節點指標。 2. 請畫出加入以下一筆Product 記錄後,資料表Product 和索引ProductCluster 的實體結構示意圖。 (‘b50000’, ‘資料庫微調’, 600, ‘Book’) |
習題9-6 |
---|
考慮圖4-4 線上購物系統的資料庫。假設 B+-tree 的每一葉節點最多能容納 2
個記錄指標,而每一中間節點最多能容納3 個節點指標。 1. 畫出以下索引的B+-tree (請參考圖9-7) CREATE INDEX I2 ON Product (unitPrice DESC, catalog ASC); 2. 考慮以下的查詢句: SELECT * FROM Product WHERE catalog = ‘Book’ AND unitPrice < 580; 若使用圖9-7 的I1 索引結構,要造訪幾個葉節點?若使用本題的I2 索引結構,要造訪幾個葉節點? |
習題9-7 |
---|
考慮圖4-4 的Product 資料表和以下兩個索引: |
習題9-8 |
---|
考慮以下的查詢句: SELECT * FROM Member WHERE address LIKE ‘%中華%台北%’; 假設你有一個如圖9-12 的Suffix tree,請說明其搜尋過程。 |