[改訂2版]Oracleの基本
〜データベース入門から設計/運用の初歩まで

[表紙][改訂2版]Oracleの基本 〜データベース入門から設計/運用の初歩まで

紙版発売
電子版発売

A5判/384ページ

定価3,168円(本体2,880円+税10%)

ISBN 978-4-297-12954-5

電子版

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

データベース製品で世界/国内ともにNo.1のシェアを誇るOracleは,データベースに携わるエンジニアにとって必須知識の1つといえます。本書では,Oracle初心者/新人エンジニアが押さえておくべき知識とスキルを,現場で活躍するOracleエンジニアたちが,わかりやすく丁寧に解説。Oracleの使い方はもちろん,データベースの基礎知識から,データ操作のためのSQL,テーブル設計,データベース運用/管理の基礎までしっかり押さえ,実務で使える入門スキルを身につけられます。

改訂2版では,最新安定バージョンに合わせて解説をアップデート。今後主流となるコンテナベースのデータベース構成についての解説も強化しました。

Oracleやデータベースを学びたいすべての人に最適な入門書です。

こんな方におすすめ

  • Oracle初心者
  • データベース初心者
  • ORACLE MASTERを受験する方
著者プロフィール

渡部亮太(わたべりょうた)

Oracle Database製品サポートに従事したのち,現在は企画/技術広報業務およびコーソル全体の技術力向上活動を行う。講演および執筆実績多数。福岡在住。日本で7人しかいないOracleACE(Oracle Database)の1人。Japan Oracle User Group(JPOUG)共同設立者,ボードメンバー。ORACLE MASTER Platinum Oracle Database 10g,11g,12c保有。最近の楽しみは11歳の息子とタッチラグビーをすること,ラグビーを観戦すること。日本開催のラグビーワールドカップ2019では,息子と一緒に日本 vs サモアを含む全6戦を観戦した。

舛井智行(ますいともゆき)

Oracle Databaseに関するサービス(設計/構築/運用)業務を経て,現在は企画&マーケティング部門で取扱製品拡販,プロモーション活動を行う。最近はOracle Databaseでなく,複数DB製品を一元管理できるDatabase Performance Analyzer(DPA),Oracle SE2向け災害対策製品Dbvisitやデータベース管理製品Toadの拡販に力を入れている。趣味は株とライトノベル。

岡野平八郎(おかのへいはちろう)

独立系ソフトハウスで約4年間DB2,SQL Serverの運用管理を担当した後,スキルアップできる環境があり,行動指針にも共感できたコーソルへ2006年4月に転職。現在はOracle Databaseの技術支援を行う傍ら,チームの「ご意見番」として,蓄積した技術や対応スキルなどを惜しみなくメンバーへ伝えている。ORACLE MASTER Platinum Oracle Database 12c(1番乗り)など,保有資格は多数。趣味はソロスタイルのアコースティックギター。

峯岸隆一(みねぎしりゅういち)

2006年コーソルに中途入社後,Oracle製品のサポート業務を経て,現在は企画&マーケティング部門で検証/拡販業務を行う。Oracle Database,SQL Server,Postgre SQLなどの複数DB製品に対応した管理/運用製品を主に担当している。ORACLE MASTER Platinum Oracle Database 10g,11g,12c保有。問題解決するまであきらめない「しつこさ」が武器。趣味はスポーツ観戦。

日比野峻佑(ひびのしゅんすけ)

コーソルへ新卒で入社。Oracle Database製品のサポート業務を経験したのち,現在はVMware製品のサポートに従事。Oracleに次ぐコーソルの柱を築くべく,新部署の拡大に勤しんでいる。趣味は料理。料理で渡伊した異色の経歴を持ち,社内行事ではコーソルの専属シェフとして腕をふるっている。ORACLE MASTER Platinum Oracle Database 11g,VMware Certified Implementation Expert VCIX6-DCV,VMware Certified Advanced Professional VCAP7-DTM保有。

相川潔(あいかわきよし)

SIerにてシステム開発(要件定義から実装,運用まで)を経験後,より専門性の高いスキルを習得すべくコーソルへ転職。コーソルで10年勤務したのち,合同会社リシテを起業。仕事では経営者とエンジニア,家庭では夫と二児の父と複数の立場で奮闘中。好きな食べ物はカキフライ。仕事のモットーは「困ったときこそシンプルに考える」。

監修者プロフィール

株式会社コーソル(かぶしきがいしゃこーそる)

Oracleを中心にデータベースの設計,導入・構築,運用管理,保守・サポート,コンサルティング等,「Oracle Database技術」の強みを活かしたビジネスを展開。「CO-Solutions=共に解決する」の理念のもと,「データベース技術」×「サービス」を軸とし,高い技術をもとにお客様へ“心あるサービス”を提供し続けることにこだわっている。ORACLE MASTER Platinum保有者を含む経験豊富なエンジニアがリモートでデータベースの定常業務から障害発生時の対応を24時間365日で行う「リモートDBAサービス」などを展開。東京・福岡・カナダの3拠点ですべて日勤帯で対応するフォロー・ザ・サン体制をとることにより,サービスの安定提供を実現している。また,サードパーティ製のデータベース関連製品の取り扱いを拡充し,導入からサポートまでワンストップで提供を行っている。エンジニア社員の「ORACLE MASTER」の保有率は88%に及び,その内の40%は2日間の実技試験をもって認定される最上位資格ORACLE MASTER Platinumを取得している。世の中に必要とされるデータベースエンジニアを育成すべく,社員教育には心血を注いでおり,技術者を数多く育成した企業に贈られる「Oracle Certification Award」を10年連続で受賞。2022年6月時点で,企業別ORACLE MASTER Platinum取得者数ランキング国内No.1。働きやすい職場環境を目指しており,2016年1月に厚生労働省認定「子育てサポート企業」の証である,くるみんマークを取得。男性育休取得率も60%を超え,2019年10月に厚生労働省主催「イクメン企業アワード2019」グランプリを受賞。

この書籍に関連する記事があります!

著者の一言

目次

  • はじめに
  • 本書について

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

  • 1.1 なぜデータベースは必要なのか
  • 1.2 リレーショナルデータベースの基礎
    • リレーショナルモデルにしたがってデータを整理する
    • 標準化されたデータアクセス用言語SQL
    • 本書の構成

第2章 Oracleを使ってみる

  • 2.1 データベースを構築する
    • インストールファイルをダウンロードする
    • Oracleをインストールする
    • マルチテナントアーキテクチャ
    • 作成したコンテナデータベースを確認する
  • 2.2 データベースに接続する
    • CDBルートにローカル接続する
    • Linux/UNIXでの環境設定
    • Windowsでの環境設定
    • データベースへの接続を切断する
    • PDBにリモート接続する
  • 2.3 データベースを起動/停止する
    • SYSユーザーでCDBルートにローカル接続する
    • コンテナデータベースを停止する
    • コンテナデータベースを起動する
    • PDBをオープンする
    • PDBをクローズする
  • 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 セキュリティ機構の基礎となるユーザー機能
    • マルチテナント環境におけるユーザー
    • Oracleのユーザー機能の役割
    • ユーザーを作成する‐CREATE USER文
    • ユーザーを削除する‐DROP USER文
    • アカウントをロックする
    • パスワードを変更する
    • オブジェクト所有者としてのユーザー/スキーマ
  • 4.6 ユーザー権限を制御する
    • 権限システムの基礎
    • 権限を付与する/取り消す‐GRANT文/REVOKE文
    • 複数の権限をグループ化するロール
    • アプリケーション用ユーザーに付与すべき権限
    • 明示的に権限を付与しなくても実行できる操作
    • 権限を付与できる権限
  • 4.7 管理ユーザーSYS,SYSTEMと共通ユーザー
    • 管理ユーザー(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からデータベースにリモート接続する
    • 簡易接続ネーミングメソッド(EZCONNECT)
    • アプリケーションとドライバ
  • 6.6 トラブルに立ち向かうためには
    • まず,なにが起きているのか確認する
    • ログを確認する
    • My Oracle Supportやインターネット検索を活用する
    • テクニカルサポートに迅速に支援を依頼できる準備をしておく
  • おわりに
  • 索引
  • 著者略歴
  • 監修者略歴