株式会社コーソル

コーソルDatabaseエンジニアのブログ

技術ブログ

入門書「Oracleの基本」が発売されます!

2017年9月22日に、私とコーソルの有志で執筆した Oracle Databaseの入門書「Oracleの基本」が発売されます。

「Oracle Database、そもそもデータベースって何?」というレベルの、「本当の入門者」 の方向けに書いた書籍です。
おそらく、IT基礎研修を終えた新卒入社エンジニアの方にマッチするレベルです。

特に、会社の方針などで、短期間でORACLE MASTER Bronzeを取らなければならない方が、資格対策書籍を読む前や、資格対策書籍と併読する使い方が、特にハマると考えます。
というのも、現在のOracle Databaseおよび資格対策書籍をはじめとするOracle入門書籍には以下の問題点があると考えているからです。

現在のOracle Database

  • 多くのバージョンアップが行われる中で、徐々に多機能化、複雑化しており、初学者がとっつきにくい
  • 「表領域」「SGA」など、「Oracle独自の用語」が多く、かつ、用語の数が多機能化によりさらに増えている。

資格対策書籍をはじめとするOracle入門書籍

  • 過去、Oracle DatabaseをはじめとするIT関連技術が比較的シンプルだった時代に正解だった(?)パラダイム(「Oracle独自の世界観」)を引きずる形で説明がなされている。
    (正解だったかどうかは、個人的には疑問だけど・・・)
  • 解説=Oracleの用語説明 になっている。
  • Oracle Databaseに閉じた視点で説明されており、Oracle Databaseを使う側の視点での記述が書けている。具体的には、開発者、運用者(のヒヨコ)がOracle Databaseとのかかわり方を理解しにくい

この問題点を解決するため、本書では以下の点に配慮しまいた。

  • 平易な表現を用いてOracleを解説すること。特に、新しい概念の導入部において、「なぜXXXが必要なのか?」 をくどいぐらい(!)愚直に書き、単なる用語説明のような解説を避けること。
  • データベース,Oracle,開発,設計,運用の基本について広くさまざまな視点から学べること

お近くにこれからOracle Databaseおよびデータベースを学ぼう!という方がいらっしゃたら、是非本書をお勧めしてくださいませ!

目次は以下の通りです。

本書が初めてOracle Databaseを使うことになった方のお役に立てば幸いです!

第1章 データベースを知る

  1.1 なぜデータベースは必要なのか

  1.2 リレーショナルデータベースの基礎

    リレーショナルモデルにしたがってデータを整理する
    標準化されたデータアクセス用言語 SQL
    本書の構成

第2章 Oracleを使ってみる

  2.1 データベースを構築する

    インストールファイルをダウンロードする
    Oracleをインストールする
    作成したデータベースを確認する

  2.2 データベースに接続する

    SQL*Plusでデータベースに接続する
    データベースへの接続を切断する

  2.3 データベースを起動/停止する

    SYSユーザーでデータベースに接続する
    データベースを停止する
    データベースを起動する

  2.4 学習用ユーザーを作成する

    testユーザーを作成する

  2.5 テーブルとデータ操作の基本

    テーブルを作る‐CREATE TABLE文
    データ型とは
    テーブルの定義を確認する
    データを追加する‐INSERT文
    データを検索する‐SELECT文
    データを更新する‐UPDATE文
    データを削除する‐DELETE文
    すべてのデータを高速に削除する‐TRUNCATE TABLE文
    テーブルを削除する‐DROP TABLE文
    SQLにコメントを入れる
    データベースを削除する

第3章 より高度なデータ操作を学ぶ

  3.1 データを複雑な条件で検索する

    テストデータを準備する
    列の表示名を変更する
    検索結果をソートする‐ORDER BY句
    さまざまな条件でデータを絞り込む

  3.2 データを加工/集計する

    演算子とファンクション
    データを合計する‐SUM()
    データの平均値,最大値,最小値を得る‐AVG(),MAX(),MIN()
    データの件数を数える‐COUNT(*)
    種類ごとにデータを集計する‐GROUP BY句,HAVING句

  3.3 NULLとIS NULL条件

    列にNULLを設定する
    NULLを検索する‐IS NULL条件
    演算子,ファンクション,文字列連結とNULL
    集計ファンクションとNULL
    COUNT()とNULL
    NULLの注意点

  3.4 SELECT文とSELECT文を組み合わせる

  3.5 テーブルを結合する

    内部結合
    左外部結合
    右外部結合

  3.6 データの表示画面にこだわる

    改行/改ページの動作を調整する
    列データの表示幅を調整する
    日時データの表示を調整する

  3.7 トランザクションでデータを安全に更新する

    なぜトランザクションが重要か
    トランザクションの「ALL or NOTHING」特性
    トランザクションを使う
    実行中のトランザクションを取り消す‐ROLLBACK文
    トランザクションを開始/終了する方法

第4章 データをより高速に/安全に扱うしくみ

  4.1 検索処理を高速化するインデックス

    なぜインデックスが必要か
    インデックスのしくみ
    インデックスを作成する‐CREATE INDEX文
    インデックスを使う
    インデックスを使える検索条件

  4.2 SELECT文をシンプルにまとめるビュー

    なぜビューが必要か
    ビューを作成する‐CREATE VIEW文
    ビューを使うメリット

  4.3 不正なデータの混入を防ぐ制約

    なぜ制約が必要か
    NOT NULL制約
    主キー制約(プライマリーキー制約)と主キー
    一意制約(ユニーク制約)と一意キー
    外部キー制約(参照整合性制約)と外部キー
    チェック制約
    複数の列に対して制約を指定する

  4.4 連番を振り出すシーケンス

    なぜシーケンスが必要か
    シーケンスを作成して連番を取得する

  4.5 セキュリティ機構の基礎となるユーザー機能

    ユーザーを作成する‐CREATE USER文
    ユーザーを削除する‐DROP USER文
    アカウントをロックする
    パスワードを変更する
    オブジェクト所有者としてのユーザー/スキーマ

  4.6 ユーザー権限を制御する

    権限システムの基礎
    権限を付与する/取り消す‐GRANT文/REVOKE文
    管理ユーザー(SYSユーザー/SYSTEMユーザー)の権限
    複数の権限をグループ化するロール
    アプリケーション用ユーザーに付与すべき権限
    明示的に権限を付与しなくても実行できる操作
    権限を付与できる権限

第5章 テーブル設計の基本を知る

  5.1 テーブル設計とは

    テーブル設計の3つのステップ
    テーブル設計の題材とする業務

  5.2 第1ステップ‐概念設計

    テーブル候補を決める‐エンティティの抽出
    情報をテーブル候補に含める‐エンティティの属性の抽出
    テーブル候補を図に表す‐概念E-R図の作成

  5.3 第2ステップ‐論理設計

    論理設計でやること
    リレーショナルモデルの基本
    主キーを決める
    くり返し項目を別テーブルに切り出す
    関連の多重度を明らかにする
    1対多関連を外部キーでモデル化する
    多対多関連を交差テーブルに変換する
    1対1関連を取り除く
    重複して存在する列を削除する
    ほかの列から計算できる列を取り除く
    正規形のルールを破っていないかを確認する
    列に設定するデータ項目の特徴を整理する
    業務に必要なデータがデータベース化されているかチェックする

  5.4 第3ステップ‐物理設計

    Oracleがオブジェクトにストレージ領域を割り当てるしくみ
    物理名を決める
    列のデータ型,サイズを決める
    制約を決める
    インデックスを付ける列を決める
    テーブル,インデックスのサイズを見積もる
    オブジェクトを格納する表領域を作成する
    オブジェクトの所有ユーザーを作成する
    決定事項を設計書にまとめる
    SQL(CREATE xxx文)を作成する

第6章 データベース運用/管理のポイントを押さえる

  6.1 データベースにおける運用/管理の重要性

    適切な運用/管理がされないと問題が発生する
    データを守る:バックアップ
    データベースを調整する:メンテナンス
    データベースが正常に動作しているか見る:監視
    ネットワーク環境でデータベースを使用する:リモート接続
    データベースのトラブルに対処する

  6.2 バックアップを取ってデータを守る

    Oracleのバックアップ機能のしくみ
    アーカイブログモードで運用する
    アーカイブログモードへ変更する
    RMANを使ってオンラインバックアップを取得する
    オフラインバックアップを取得する
    バックアップ取得で守るべき4つのポイント
    バックアップ出力先を設定する
    アーカイブREDOログファイルをバックアップする
    定期的にバックアップを取得するしくみをつくる
    古いバックアップを削除する
    障害からデータベースを復旧する

  6.3 データベースのメンテナンス

    OracleがSQLを実行するしくみ
    オプティマイザ統計情報を収集する
    テーブルが断片化するまでの流れ
    テーブルを再編成して断片化を解消する
    Oracleを構成する初期化パラメータとは
    初期化パラメータの値を確認する
    初期化パラメータの値を変更する‐ALTER SYSTEM SET文
    メモリ関連の初期化パラメータ‐MEMORY_TARGET,SGA_TARGET,PGA_AGGREGATE_TARGET
    プロセス関連の初期化パラメータ‐PROCESSES

  6.4 データベースを監視する

    データベース監視の4つの観点
    OracleやOSの起動状態を監視する‐死活監視
    OracleやOSのエラーを監視する
    ストレージの空き状況を監視する
    OSリソースの使用状況を監視する
    Oracleのパフォーマンス情報を定期的に取得する

  6.5 ネットワーク環境/本番環境でOracleに接続する

    リモート接続の全体像とOracleクライアント
    リスナーを構成する
    リスナーを起動/停止する‐lsnrctlコマンド
    サービス登録を構成する
    クライアントマシンを構成する
    クライアントのSQL*Plusからデータベースにリモート接続する
    アプリケーションとドライバ

  6.6 トラブルに立ち向かうためには

    まず,なにが起きているのか確認する
    ログを確認する
    My Oracle Supportやインターネット検索を活用する
    テクニカルサポートに迅速に支援を依頼できる準備をしておく

プロフィール

On7tWW6m1Ul4

渡部 亮太

・Oracle ACE
・AWS Certified Solutions Architect - Associate
・ORACLE MASTER Platinum Oracle Database 11g, 12c 他多数

カテゴリー

アーカイブ