技術ブログ
2017年9月22日に、私とコーソルの有志で執筆した Oracle Databaseの入門書「Oracleの基本」が発売されます。
「Oracle Database、そもそもデータベースって何?」というレベルの、「本当の入門者」 の方向けに書いた書籍です。
おそらく、IT基礎研修を終えた新卒入社エンジニアの方にマッチするレベルです。
【新刊】2017年9月22日発売『Oracleの基本 ~データベース入門から設計/運用の初歩まで』本体2,640円+税、渡部亮太、相川潔、日比野峻佑、岡野平八郎、宮川大地 著/株式会社コーソル 監修 https://t.co/eAw6w37ueC pic.twitter.com/qZMvyr67yP
— 技術評論社販売促進部 (@gihyo_hansoku) 2017年8月31日
特に、会社の方針などで、短期間でORACLE MASTER Bronzeを取らなければならない方が、資格対策書籍を読む前や、資格対策書籍と併読する使い方が、特にハマると考えます。
というのも、現在のOracle Databaseおよび資格対策書籍をはじめとするOracle入門書籍には以下の問題点があると考えているからです。
現在のOracle Database
資格対策書籍をはじめとする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やインターネット検索を活用する
テクニカルサポートに迅速に支援を依頼できる準備をしておく