データベーススペシャリスト資格|2022年10月挑戦ログ 8月13日|DB基礎知識(索引の方法)|SQL(確認ドリル)

高度IT・基礎知識

この記事は「データベーススペシャリスト資格に興味はあるが、どのようなものか?どう学ぶのか?」という方向けに、具体的な内容と私自身の挑戦ログをお伝えする。学び中の方や、これから学ぼうとされる方の参考になれば幸いだ。今回は知識およびSQL(確認ドリル)について書く。(SQLはGoogle Big Queryに準拠)

また、考察においてキャリアコンサルタント資格の挑戦ログについても記述する。

知識(索引の方法)

索引の実現方法

  • 試験に出題されるのはB+木索引、ハッシュ索引、ビットマップ索引。
  • 実務上もっとも使われるのはB+木索引範囲を指定した検索や、部分一致の検索に使える。
  • ハッシュ索引は、範囲を指定しない完全一致のみビットマップ索引は取り得る値の種類が限られるときに使う。(これらは普段あまり使わないが、特定の要素ではB+木索引より高速に使える)
  • これら、索引ごとの特徴イメージを抑えると、午前試験問題でかなり選択肢を絞り込める

複合索引かつ部分一致検索について

  • 午後問題の領分。部分一致できるB+木索引について、複合索引かつ部分一致検索が有効に働く場合について。
  • たとえばA(氏名)、B(住所)、C(入社年月日)とあったとき、この3項目をセットにして検索したいので、複合索引しましたというケースを想定。
  • 結論として、完全一致または、前から順の一致であればOK
  • たとえば「A:トム、B:東京都荒川区、C:2010/4/1」とA,B,Cが一致するのはOK。また、「A:トム、B:東京都荒川区、C:2010」とA,Bが一致しCが部分一致はOK。また、「A:トム、B:東京都」とAが一致しBが部分一致でもOK。
  • ただ、Aの氏名を指定しないで、B:東京都荒川区、C:2010/4/1とやってしまうとNG。

B+木の構造について

  • 午後に計算問題が出題されることもあるので抑えておく必要あり。
  • B木、B+木は多分木の一種。DBやファイルシステムで利用される。それはデータを高速に検索できるから。
  • そもそも木とはデータを階層的に管理するもの。二分木(親からぶら下がる子の数が2個以下)と多分木(子の数がいくらでも良い)がある。
  • なお、木は一番上を”根”一番下を”葉”、中間のマル印を節点(ノード)と呼ぶ。多分木は節点に複数のデータを管理する。
  • B木、B+木の特徴①。葉の階層が揃っていること。言い換えると根から各葉までの”深さ”が同じであること。
  • 特徴②。各ノードにおいて、値は昇順(小さい順)に格納されていること。たとえばあるノードで”5″と”80″を管理するときは「ポインタ1・5・ポインタ2・80・ポインタ3」と保存する。
  • ポインタ1は5未満の値を持つノード、ポインタ2は5以上80未満の値を持つノード、ポインタ3は80以上の値を持つノードに繋がる。
  • 特徴③。上記特徴①・②をふまえ、葉ノードを隣・隣…と見ていけば次々に参照できる。なお、見た目は葉ノードが隣でも、親ノードを経由しないと次へ行けない場合はある。B+木は葉ノード同士を横へつなぐポインタを持つ

ハッシュ索引について

  • ハッシュ法とは、たとえばキー値である社員№1234をハッシュ関数に代入すると、ハッシュ値が出力されるもの。
  • ハッシュ索引は、ハッシュ関数から出力されるハッシュ値を、データの格納場所のアドレスとして用いる。
  • 入力値が少しでも異なると、全く違うハッシュ値が出力されるのがハッシュ法の特徴であった。となると、ある値を見つけた時、その隣…と見ていくことはできない。
  • B+木索引は範囲検索ができるが、ハッシュ索引は完全一致検索しかできないのは、このような構造による。

9月22日復習時追記

  • 索引の種類は、午前2では数問出題。TACテキストおよび過去5年分解いており、対策済。
  • 午後については「索引」として過去問ベースで確認しており、対策済。

問題095(SQL確認ドリル)

問題文

  • salesテーブルに記録された2019年の販売金額(revenue)の合計を求めてください。
  • 結果テーブルのカラム名は「sum_revenue_2019」とします。

where betweenのおさらい

  • 「where 列名 between 範囲の最初 and 範囲の最後」と指定することで範囲の絞り込みができる。
  • なお、betweenで指定した範囲の値は、それそのものも含む。
  • つまり「where 列名 >= 範囲の最初 and 列名 <= 範囲の最後」と同じ結果となる。
  • 具体的には以下のとおり。

考察

  • データベーススペシャリスト資格について。今回は知識(索引の方法)としてB+木索引などについて復習し、試験問題で問われる要点を確認した。また、SQLの確認ドリル(salesテーブルに記録された2019年の販売金額の合計)を解いた。
  • 考察。キャリアコンサルタント資格について、本試験の受験資格を得るには、私の場合は養成講座の修了が必要だ。講座は基礎と応用があり、修了には所定の出席率と試験通過が必要となる。当面は「基礎講座を1日約1時間学習」および「9末〆の基礎試験の提出・合格」を最重要目標とする。

考察のシンプル化と英訳(練習中)

  • I learn little by little. because I think stacks of present efforts makes future better.
  • (私は少しずつ学びます。今の努力の積み重ねが未来を良くすると思うからです)

参考資料

  • 集中演習 SQL入門/木田和廣/株式会社インプレス
  • 2022年度版 ALL IN ONE パーフェクトマスター データベーススペシャリスト/TAC

コメント

タイトルとURLをコピーしました