Oracleの基本
~データベース入門から設計/運用の初歩まで
~データベース入門から設計/
2017年9月22日紙版発売
2017年9月22日電子版発売
渡部亮太,相川潔,日比野峻佑,岡野平八郎,宮川大地 著,株式会社コーソル 監修
A5判/368ページ
定価2,904円(本体2,640円+税10%)
ISBN 978-4-7741-9251-2
ただいま弊社在庫はございません。
書籍の概要
この本の概要
データベース製品で世界/国内ともにNo.1のシェアを誇るOracleは,データベースに携わるエンジニアにとって必須知識の1つといえます。本書では,Oracle初心者/新人エンジニアが押さえておくべき知識とスキルをわかりやすく丁寧に解説。Oracleの使い方はもちろん,データベースの基礎知識から,データ操作のためのSQL,テーブル設計,データベース運用/管理の基礎までしっかり押さえ,実務で使える入門スキルを身につけられます。
日本で4人しかいない「Oracle ACE(Oracle Database)」の称号を持つトップエンジニア率いる現場の精鋭エンジニアたちが生み出した,究極のOracle入門書です。
こんな方におすすめ
- これまでOracle Databaseを使ったことがないOracle初心者の方
- Oracle Databaseの基本を学びたい新人SE,新人アプリケーション開発者,新人データベース管理者の方
- ORACLE MASTERの参考書を探している方
著者の一言
Oracle Database(以下,Oracle)は,非常に多くの企業向けシステムで使われているデータベース製品です。企業向けシステムに関わるエンジニアにとって,Oracleの知識は必要不可欠なものであり,その知識の証明としてオラクル社によって「ORACLE MASTER」という資格試験が定められています。システム開発/運用の企業に就職した新人エンジニアの中には,「会社からORACLE MASTERの受験が義務付けられている」という方もいるかもしれません。
しかし,いざ,Oracleの勉強をはじめたり,Oracleの実務に携わると,こんなことを実感するのではないでしょうか。
「多種多様な機能がありすぎて,どう使いこなせばいいのかわからない」
「Oracleだけで使われる独自用語がたくさんあって,頭が混乱する」
また,システム開発/運用の実務におけるOracleとのかかわり方は,Oracleの使い方だけでありません。データの更新や参照,アプリケーション開発,テーブル設計,データベース運用など多岐にわたります。
にもかかわらず,これまでの市販の入門書やORACLE MASTER試験対策本の多くでは,Oracle単体の機能やしくみに閉じた狭い視点で,Oracleの用語説明をベースにした解説に終始してしまい,Oracleの全体像やシステム開発/運用の実務におけるOracleの役割を理解しにくい傾向にありました。
そこで,本書はOracle独自の用語の使用を最小限にとどめ,次の2点を考えながら執筆しました。
- 平易な表現を用いてOracleを解説すること
- データベース,Oracle,開発,設計,運用の基本について広くさまざまな視点から学べること
これらの解説ノウハウは,弊社コーソルの新人教育で培われたものです。コーソルの新人教育には,約2週間という短い期間で多くの新卒エンジニアをORACLE MASTER Bronze DBAに合格させているという実績があります。さらに最近では,IT 未経験の新人エンジニアが,入社から2年半で,ORACLE MASTER Platinum(2日間の実技試験により認定されるORACLE MASTERの最上位資格)を取得するような例も出てきています。本書には,コーソルの新人エンジニアの生の声を反映させ,ノウハウを惜しみなく注ぎ込みました。
この本を手にとっていただいたみなさんには,Oracleやデータベースを学びはじめる最初の1冊として,ぜひ役立てていただければと思います。
目次
- はじめに
- 本書について
第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やインターネット検索を活用する
- テクニカルサポートに迅速に支援を依頼できる準備をしておく
- おわりに
- 索引
- 著者略歴
- 監修者略歴
この本に関連する書籍
-
Oracleの現場を効率化する100の技
システム構築の現場で,データベースにまつわる様々な課題を抱えていませんか?Oracle Databaseには,広く知られてない開発効率を向上したり,問題を解決する機能が豊富...
-
理論から学ぶデータベース実践入門 ―― リレーショナルモデルによる効率的なSQL
本書は,DBを使ったアプリケーション開発経験があるエンジニアを対象に,リレーショナルモデルを理解し,より効率的にDB設計を行い,適切にSQLを使いこなすために必要な...
-
即戦力のOracle管理術 ~仕組みからわかる効率的管理のノウハウ
「なぜ,その操作が必要なのか?」 「こういう仕組みになっているからこうする」 という背景をきちんと押さえながら,Oracleを効率的に管理するための考え方やテクニ...