Instiq

OSS-DB Silver参考書

PostgreSQL の運用管理と SQL の基礎スキルを証明する OSS-DB 技術者認定 Silver(LPI-Japan・Ver3.0・PostgreSQL 12以上)。

OSS-DB Silver(OSS-DB Silver)について

OSS-DB Silver(OSS-DB Silver)は、LPI-Japan が提供するアソシエイトレベルの認定資格です。このページでは、試験範囲を全 3 章・11 節の参考書として体系的に解説し、本番形式の練習問題で理解度を確認できます。下の章一覧から順に読み進め、「問題集で演習する」で実力を試すのが効率的な学習の流れです。

試験で問われる分野(出題範囲の目安)

  • 一般知識約 16%
  • 運用管理約 52%
  • 開発/SQL約 32%

配点は本番試験の目安です。各分野は下の章・節で詳しく解説しています。

公式の試験情報:https://oss-db.jp/outline/silver

1一般知識

  • 1.1OSS-DBの一般的特徴

    PostgreSQL の機能全般を俯瞰し、OSS(オープンソースソフトウェア)と PostgreSQL ライセンス の性質、開発を支えるコミュニティの活動・参加方法を押さえます。さらに メジャーバージョン/マイナーバージョン の意味の違い、約1年ごとのリリースサイクル、サポートポリシー(5年間の更新提供)、コミュニティへのバグ報告の流れを学びます。

  • 1.2リレーショナルDBの一般知識

    リレーショナルデータモデルの基本概念(テーブル・行・列・主キー・外部キー)と DBMS が担う役割を整理します。SQL の一般知識、そして SQL を用途別に分類する DDL(データ定義言語)・DML(データ操作言語)・DCL(データ制御言語)の3分類、さらにデータベース設計における正規化の考え方を押さえます。

2運用管理

  • 2.1インストールとクラスタ

    PostgreSQLを使い始める最初の一歩であるinitdbと、それが作り出すデータベースクラスタの概念・構造を学びます。クラスタ作成時に自動生成される2つのテンプレートデータベース、template0・template1の役割の違いを押さえます。

  • 2.2標準付属ツール

    PostgreSQLに標準付属するコマンド群を学びます。サーバーの起動・停止・再読込を担うpg_ctl、ロール作成・削除のcreateuser・dropuser、データベース作成・削除のcreatedb・dropdb、対話ターミナルのpsql、ビルド情報を返すpg_config、クラスタの制御情報を表示するpg_controldata、サーバーの生死を確認するpg_isready、WALをリセットするpg_resetwal、そしてpsqlのメタコマンド(\d \l \dt \du \c \? \h \timing)を押さえます。

  • 2.3設定ファイル

    サーバー全体の挙動を決めるpostgresql.conf(記述方法・単位・include/接続と認証のlisten_addresses・port・max_connections/ログのlogging_collector・log_destination)と、クライアントごとの認証方式を定めるpg_hba.conf(trust・md5・scram-sha-256・peer、行の記述順)、そして実行時に値を確認・変更するSET・SHOWを学びます。

  • 2.4バックアップとPITR

    PostgreSQLのバックアップ手法を体系的に学びます。SQLレベルのpg_dump・pg_dumpall・pg_restore、ファイルシステムレベルバックアップ、PITR(ポイントインタイムリカバリ)の概念、WAL(トランザクションログ)とWALアーカイブ(archive_command)、非排他的低レベルバックアップ、そしてデータ入出力のCOPY文(SQL)と\copy(psql)を押さえます。

  • 2.5基本的な運用管理

    サーバーの起動・停止、データベースロール/ユーザーのCREATE・ALTER・DROP(ROLE/USER)、テーブルの肥大化と統計を管理するVACUUM・ANALYZE、それを自動化するautovacuum、稼働状況を返すシステム情報関数、メタデータを提供するinformation_schemaとpg_catalog(システムカタログ)、そして権限管理のGRANT・REVOKEを押さえます。

3開発/SQL

  • 3.1SQL問い合わせ(SELECT・JOIN・副問合せ・集合演算・DML)

    データを取り出すSELECT文の各句(WHERE・ORDER BY・GROUP BY・HAVING・DISTINCT・LIMIT・OFFSET)、複数テーブルを結合するJOIN(INNER JOIN・LEFT JOIN・RIGHT JOIN・FULL JOIN・CROSS JOIN)、クエリの中に埋め込む副問合せ、結果集合を演算するUNION・INTERSECT・EXCEPT、データを変更するINSERT・UPDATE・DELETEを学びます。

  • 3.2データ定義とDBオブジェクト(データ型・制約・インデックス・ビュー等)

    テーブルを設計・変更するCREATE TABLE・ALTER TABLE・DROP TABLE、主要なデータ型(INTEGER/BIGINT/NUMERIC/VARCHAR/TEXT/BOOLEAN/DATE/TIMESTAMP/JSON/JSONB)、データの整合性を守る制約(PRIMARY KEY・FOREIGN KEY・UNIQUE・CHECK・NOT NULL)、検索を高速化するインデックス、ビュー・マテリアライズドビュー、トリガー、シーケンス、スキーマ、テーブル空間、パーティション、PL/pgSQLによる関数、ストリーミング/ロジカルレプリケーションの基礎知識を学びます。

  • 3.3組み込み関数(集約・文字列・時間)

    集約関数(count・sum・avg・max・min)で複数行を1つの値にまとめ、算術関数・演算子で計算し、文字列関数(char_length・length・lower・upper・substring・replace・trim・連結演算子||・LIKE述語)で文字列を加工し、時間関数(age・now・current_date・current_timestamp・extract・to_char)で日時を扱う方法を学びます。

  • 3.4トランザクションの概念(分離レベル・ロック)

    複数のSQL文を1つの作業単位としてまとめるトランザクション(BEGIN・COMMIT・ROLLBACK)、同時実行時の見え方を制御する分離レベル(READ COMMITTED・REPEATABLE READ・SERIALIZABLE)、明示的に排他制御を行うLOCK文、行ロックとテーブルロックの違い、複数トランザクションが互いを待ち続けるデッドロックを学びます。