阿摩線上測驗 登入

申論題資訊

試卷:111年 - 111 高等考試_二級_資訊處理:高等資料庫設計#111030
科目:高等資料庫設計
年份:111年
排序:0

申論題內容

二、假設在某關聯式資料庫中定義了一個 USER 表格,其中包含三個字串型 態的屬性,分別為 ID、Name 和 Address。若資料庫管理者以下述之 SQL 指令為該表格建立了一個索引(Index) ,且該索引是依照 B+-tree 的結構 所建立:
create index fastindex on USER (Name);
首先請描述此索引的葉節點和內部節點所存放的資料分別為何?以及 其結構的主要特性。接著,請說明此索引有助於提昇下述那個查詢句的 查詢效率,並詳述你的理由:
  ● 查詢句一:select ID from USER where Name = ‘Mary’;
 ● 查詢句二:select Name from USER where ID = ‘B001’;(25 分)

詳解 (共 1 筆)

詳解 提供者:hchungw

B+-tree 索引的結構和特性

B+-tree 是一種平衡樹結構,廣泛應用於資料庫和文件系統中的索引。它的主要特性包括:

  • 自平衡:B+-tree 保持平衡,使所有葉節點在同一深度。
  • 有序性:葉節點按鍵值排序,有助於範圍查詢和順序訪問。
  • 分層結構:分為內部節點和葉節點,內部節點用來引導搜索,葉節點存放實際的索引資料。

葉節點和內部節點所存放的資料

  • 葉節點

    • 存放 Name 欄位的鍵值及其對應的表格資料位置(如指向記錄的指標)。
    • 按 Name 鍵值排序,並形成鏈表結構以便於範圍查詢。
    • 例如:葉節點可能包含 [(Anna, 指標1), (Bob, 指標2), (Mary, 指標3), ...]。
  • 內部節點

    • 存放索引鍵值,用來引導搜索路徑,但不存放實際資料。
    • 內部節點用來分割和組織子樹,使搜索操作高效。
    • 例如:內部節點可能包含 [Anna, Bob, Mary],指向相應的子樹。

查詢句效能分析

查詢句一: select ID from USER where Name = ‘Mary’;

  • 索引有效性
    • 該查詢使用 Name 欄位作為搜索條件,與索引欄位一致。
    • 利用 B+-tree 索引,能夠快速找到 Name 為 Mary 的位置。
    • 搜索過程:從根節點開始,通過內部節點的鍵值快速導航到包含 Mary 的葉節點,然後讀取葉節點中對應的資料指標以獲取 ID。
    • 效能提升:由於索引的存在,大大減少了需要掃描的記錄數量,從而提升了查詢效率。

查詢句二: select Name from USER where ID = ‘B001’;

  • 索引有效性
    • 該查詢使用 ID 欄位作為搜索條件,而索引是基於 Name 欄位建立的。
    • 索引不包含 ID 欄位,無法直接利用 B+-tree 索引來加速此查詢。
    • 搜索過程:需要對 USER 表進行全表掃描以找到 ID 為 B001 的記錄,然後提取 Name 欄位。
    • 效能提升:索引對此查詢無助,因為 ID 欄位不是索引的一部分,查詢效率不會因索引而提升。