Oracle PL/SQLプログラミング 応用編 第2版

[cover photo]
TOPICS
Programming , Database
発行年月日
PRINT LENGTH
464
ISBN
4-87311-057-2
原書
Oracle PL/SQL Programming, 2nd Edition
FORMAT
Print
4,950円
この商品は品切れ再入荷未定です

Oracle社のPL/SQL言語について細部にわたって広範囲にカバーする、『オラクルPL/SQLプログラミング 応用編』の改訂版です。基礎編の知識を踏まえて、PL/SQL8で導入された新機能だけでなく、デバッグの方法やアプリケーションのチューニングについても解説しています。また、実際にプログラミングする際に役立つヒントも多数掲載しています。姉妹書である、『オラクルPL/SQLプログラミング 基礎編 第2版』とあわせて通読すれば、より深い知識とプログラミングテクニックを修得することができます。

目次

I部 PL/SQL8新機能

1章 オブジェクト型
        1.1 Oracle8オブジェクトの紹介
                1.1.1 用語
                1.1.2 例
                1.1.3 比較:Oracle8オブジェクトとそれ以前のリリースの機能
                1.1.4 オブジェクトの特徴
                1.1.5 オブジェクトプログラミングのテーマ
        1.2 Oracleのオブジェクトの例
                1.2.1 オブジェクト型仕様部の定義
                1.2.2 オブジェクト型実行部の定義
                1.2.3 複雑なデータ構造の追加
        1.3 オブジェクト型作成の文法
                1.3.1 オブジェクト型について
                1.3.2 CREATE TYPE および DROP TYPE:型の作成とドロップ
                1.3.3 CREATE TYPE BODY:実行部の作成
                1.3.4 ドットの記法
                1.3.5 SELF:暗黙のパラメータ
                1.3.6 オブジェクトの比較
                1.3.7 権限
        1.4 PL/SQLとSQLのオブジェクトの操作
                1.4.1 初期化の必要性
        1.5 永続性オブジェクトの変更
                1.5.1 アプローチ1:従来のSQLの最大限の使用の許可
                1.5.2 アプローチ2:メソッドの定義と従来の限定されたSQLの使用
                1.5.3 アプローチ3:すべてをメソッドで実行
                1.5.4 アプローチ4:パッケージとPL/SQLコンテナパッケージの使用
                1.5.5 Developer/2000に関係すること
        1.6 オブジェクトに関する細々としたこと
                1.6.1 データディクショナリ
                1.6.2 SQL*Plusの“describe”コマンド
                1.6.3 スキーマの進化
        1.7 オブジェクトオプションを動作させること

2章 ネストされた表とVARRAY
        2.1 コレクション型の種類
        2.2 コレクションの新規作成
                2.2.1 データベース内のコレクション
                2.2.2 PL/SQLのコレクション型
        2.3 コレクションデータ型の宣言構文
        2.4 コレクションの使用
                2.4.1 コレクション型変数の初期化
                2.4.2 要素への値の割り当て時の索引(要素の固まり)への考慮点
                2.4.3 要素の追加と削除
                2.4.4 コレクションの比較
        2.5 コレクション擬似関数
                2.5.1 THE擬似関数
                2.5.2 CAST擬似関数
                2.5.3 MULTISET擬似関数
                2.5.4 TABLE擬似関数
        2.6 コレクション組み込み関数
        2.7 例:PL/SQLとサーバの統合
        2.8 コレクション型の維持管理
                2.8.1 権限
                2.8.2 データディクショナリ
                2.8.3 参照または値による呼び出し
        2.9 どのコレクション型を使用するべきか

3章 オブジェクトビュー
        3.1 例:オブジェクトビューの使用
        3.2 INSTEAD OFトリガー
                3.2.1 INSTEAD OF:使用するべきか、使用するべきではないか
        3.3 オブジェクトビューの構文
                3.3.1 CREATE VIEW:オブジェクトビューを作成する
                3.3.2 DROP:ビューとトリガーを削除する
                3.3.3 MAKE_REF:仮想REFを返す
        3.4 オブジェクトビューとオブジェクト表の違い
                3.4.1 OIDの一意性
                3.4.2 オブジェクトビューとともにREFを使用する
                3.4.3 仮想REFの格納
                3.4.4 一意でないOIDへのREF
        3.5 オブジェクトを伴うビューのすべてがオブジェクトビューではない
        3.6 スキーマの進化
        3.7 オブジェクトビューの維持管理
                3.7.1 データディクショナリ
                3.7.2 権限
                3.7.3 強制コンパイル
        3.8 後書き:BFILEデータ型の使用

4章 外部プロシージャ
        4.1 外部プロシージャとは
                4.1.1 例:Windows NTの空きディスク容量を調べる
                4.1.2 アーキテクチャ
                4.1.3 利点
                4.1.4 制限
        4.2 外部プロシージャの作成手順
                4.2.1 手順1:リスナーの設定
                4.2.2 手順2:共有ライブラリを識別または作成する
                4.2.3 手順3:CREATE LIBRARY文を発行する
                4.2.4 手順4:PL/SQL本体を作成する
                4.2.5 外部プロシージャrandを使う
        4.3 外部プロシージャの構文
                4.3.1 CREATE LIBRARY:外部プロシージャライブラリを作成する
                4.3.2 EXTERNAL:PL/SQL本体を作成する
                4.3.3 DROP:ライブラリを削除する
        4.4 引数の対応付け
                4.4.1 データ型変換
                4.4.2 構文の詳細:PARAMETER句
                4.4.3 属性
                4.4.4 宣言と属性の補正
        4.5 OCI サービスルーチン
        4.6 外部プロシージャの管理
                4.6.1 データディクショナリ
                4.6.2 外部プロシージャについての規則と警告
        4.7 例
                4.7.1 例:時間帯を受け取る
                4.7.2 例:E-Mailの送信


II部 プログラミングの実践

5章 コード設計のヒント
        5.1 意味のあるモジュール名とパラメータ名を付ける
                5.1.1 モジュールの内容がわかるモジュール名を付ける
                5.1.2 仮パラメータに一貫した命名規則を設ける
                5.1.3 パッケージとその要素にパッケージ構造を反映する名前を付ける
        5.2 最も役に立つ関数を構築する
                5.2.1 関数の副作用を避ける
                5.2.2 1つのRETURN文で終了する
                5.2.3 正常終了なのに例外ハンドラで処理しない
                5.2.4 表明モジュールを使用してパラメータと前提の妥当性をチェックする
        5.3 ローカルモジュールを最大限に活用する
        5.4 パラメータなしのモジュールには要注意
        5.5 独立したモジュールを作成する
                5.5.1 モジュールの適用範囲を広げる
                5.5.2 モジュールの主要目的を維持する
                5.5.3 パラメータを自由に使う
                5.5.4 グローバルな変数やデータ構造体は使わない
        5.6 抽象データ型(ADT)の構築
                5.6.1 ADTをフェーズに分けて構築する
                5.6.2 ADTに関するいくつかの指針
                5.6.3 進行状況ボックスをADTとして構築する
                5.6.4 コードを分散させた代償
        5.7 パラメータ設計のヒント
                5.7.1 すべてのパラメータとその機能についてコメントを付ける
                5.7.2 自己識別的なパラメータを使う(Boolean値は避ける)
                5.7.3 OUTおよびIN OUTパラメータには値を設定する
                5.7.4 パラメータを大文字と小文字のどちらかに統一する
                5.7.5 デフォルト値とリモートプロシージャコール

6章 データベース内コードの管理
        6.1 ストアドコードの実行
                6.1.1 プロシージャの実行
                6.1.2 関数の実行
                6.1.3 メモリベースのPL/SQLコードのアーキテクチャ
                6.1.4 プログラム実行についての重要概念
        6.2 トランザクション整合性と実行権限
                6.2.1 ストアドオブジェクトの実行権限
                6.2.2 ストアドオブジェクトのシノニムを作成する
        6.3 モジュールの妥当性検査と依存情報の管理
                6.3.1 ストアドオブジェクトの依存関係
        6.4 リモートプロシージャコール
        6.5 SQL*Plusでストアドオブジェクトを管理する
                6.5.1 ストアドオブジェクトを作成する
                6.5.2 コードをファイルに保存する際のヒント
                6.5.3 ストアドオブジェクトを変更する
                6.5.4 SQL*Plus内でコンパイルエラーを表示する
        6.6 SQLを使用してストアドオブジェクトを調べる      
                6.6.1 オブジェクトの依存関係を表示する
                6.6.2 ストアドオブジェクトに関する情報を表示する
                6.6.3 PL/SQLコードのサイズを分析する
                6.6.4 ソースコードを表示および検索する
                6.6.5 ソースコードの相互参照
                6.6.6 行番号でコードを検索する
                6.6.7 データベース内のソースコードを変更する
        6.7 ストアドコードの暗号化
                6.7.1 コードの暗号化方法
                6.7.2 暗号化されたコードの使用
                6.7.3 コードを暗号化する影響

7章 PL/SQLのデバッグ
        7.1 間違ったデバッグ方法
                7.1.1 無秩序なデバッグ
                7.1.2 理性を失ったデバッグ
        7.2 デバッグのヒントと戦略
                7.2.1 データの収集
                7.2.2 常に論理的に
                7.2.3 試すのではなく分析せよ
                7.2.4 一息入れて誰かに聞く
                7.2.5 変更しテストするコード部分は一度に1箇所だけにする
                7.2.6 作業内容を文書化してバックアップをとる
                7.2.7 すべての前提をテストする
                7.2.8 既存のユーティリティを利用するか自分でユーティリティを構築する
                7.2.9 デバッグのメッセージをパッケージに組み込む

8章 PL/SQLアプリケーションのチューニング
        8.1 プログラムパフォーマンスの分析
                8.1.1 DBMS_UTILITY.GET_TIME関数を使用する
        8.2 コンパイルされたコードへのアクセスのチューニング
                8.2.1 SGAの共有プールのサイズをチューニングをする
                8.2.2 必要性の高いコードをSGAに貼り付ける
                8.2.3 初回のコードの実行時間を短くするためにACCESS$表をチューニングする
                8.2.4 相互依存を最小限に抑えたパッケージを作成する
                8.2.5 パッケージ変数のメモリ使用を減らす
        8.3 データアクセスのチューニング
                8.3.1 パッケージデータをSQLアクセスを最小限に抑えるために使用する
                8.3.2 SQL内のPL/SQL関数をI/Oを削減するために呼び出す
                8.3.3 クライアント側のSQLを回避する
                8.3.4 DBMS_SQLのバッチ処理を活用する
                8.3.5 手続き型コードを可能な限り避ける
                8.3.6 I/Oの激しいSQLのパフォーマンス向上のためPL/SQLを使う
                8.3.7 データベーストリガーを小さく保つ
        8.4 アルゴリズムのチューニング
                8.4.1 恐れることはない
                8.4.2 PL/SQLチューニングの禅と芸術
                8.4.3 ローカル変数をパフォーマンスの向上のために活用する
                8.4.4 パッケージデータを使用することで多量の引数の値を回避する
                8.4.5 PLS_INTEGERをすべてのINTEGER処理に対して使う
                8.4.6 NOT NULL制約を使わない
                8.4.7 データ型変換をできる限り避ける
                8.4.8 レコードとオブジェクトにIndex-By表を使う
        8.5 PL/SQL8で拡張された点

9章 PL/SQL実行のトレース
        9.1 PL/SQLトレース機構
                9.1.1 プログラム単位でトレースを使用可能にする
                9.1.2 トレースをオンにする
                9.1.3 セッションのトレースの例
        9.2 本番環境サポートのためのトレース
                9.2.1 リアルタイムサポートの仕組みの特徴
                9.2.2 サポートセッションの開始と停止
                9.2.3 トレース情報のフィルタリング
        9.3 自由形式フィルタリング
        9.4 構造化インタフェースフィルタリング
                9.4.1 アイデアから実装まで
        9.5 高速―簡易トレース


III部 付録

付録A PL/SQLバージョン1.1からのストアドプロシージャの呼び出し
        A.1 スタブを使用してサーバ側のPL/SQLとやり取りする
        A.2 ストアドプロシージャを呼び出すときの制限
                A.2.1 サーバ側のPL/SQLのデータ型を使用できない
                A.2.2 ストアドパッケージ変数を直接参照できない
                A.2.3 リモートプロシージャコールを直接実行できない
                A.2.4 デフォルトのパラメータ値が使えない
付録B 組み込みパッケージ
        B.1 組み込みパッケージの利用
        B.2 DBMS_ALERT
        B.3 Oracle AQ、アドバンストキューイング機能
                B.3.1 DBMS_AQ (PL/SQL 8 のみ)
                B.3.2 DBMS_AQADM(PL/SQL 8のみ)
        B.4 DBMS_DDL
        B.5 DBMS_JOB
        B.6 DBMS_LOB (PL/SQL8 のみ)
        B.7 DBMS_LOCK
        B.8 DBMS_MAIL
        B.9 DBMS_OUTPUT
        B.10 DBMS_PIPE
        B.11 DBMS_ROWID(PL/SQL8 のみ)
        B.12 DBMS_SESSION
        B.13 DBMS_SNAPSHOT
        B.14 DBMS_SQL
        B.15 DBMS_TRANSACTION
        B.16 DBMS_UTILITY
        B.17 UTL_FILE
                B.17.1 UTL_FILEの設定
索引