連載
» 2017年06月15日 05時00分 UPDATE

ゼロからのリレーショナルデータベース入門(8):「データベースへの接続の仕組み」を正しく理解する (1/2)

企業の成長に不可欠な「データ活用」を推進していくために必要なデータベースシステム/データ基盤の基礎を“あらためて”解説していきます。今回は、「データベースへの接続方法とその仕組み」を解説します。【更新版】

[坂田素道,株式会社アシスト]

連載バックナンバー

 私たちは日々の業務を効率化するために、さまざまなシステムで利用するデータをデータベースに格納しています。その格納されたデータを扱うには、まず「データベースに接続する」ことから始まります。今回は、Oracle Database(以下、Oracle)を例にして「データベースへの接続」の基礎をおさらいします。

接続の種類

 データベースには、Oracleインスタンスで動作するサーバプロセスに接続してアクセスします。「ローカル接続」か「リモート接続」のいずれかで行います(図1)。

photo 図1 ローカル接続とリモート接続

 ローカル接続はデータベースサーバ上で稼働するOSにログインしてからデータベースに接続する方法です。主にデータベースサーバの管理者がデータベースのメンテナンスを行うときなどに利用します。

 一方のリモート接続は、ネットワークからデータベースに直接接続する方法です。運用するアプリケーションはほとんどの場合、リモート接続が使われることになります。本稿でもこのリモート接続を中心に解説していきます。

リモート接続のアーキテクチャ

 リモート接続の流れを実社会で例えると、「打ち合わせのために他の会社を訪問するとき」と似ています。「行先」を確認した上でその会社へ出向き、「受付」に取り次いでもらってから目的の人に会うでしょう。

 リモート接続の仕組みも同じです。クライアント(=皆さん)はまず、接続先(=行先)を指定する「tnsnames.ora」ファイルの情報を読み込み、「リスナープロセス」(=受付)へアクセスします。その後、リスナープロセスにサーバプロセス(=目的の人物)との接続を取り次いでもらいます(図2)。なお、リスナープロセスも「listener.ora」という設定ファイルを用意し、指定された場所であらかじめ動作させておきます。

photo 図2 リモート接続のアーキテクチャ

 リモート接続は、必ずリスナープロセスを介して行われます。

 このときクライアントがリスナープロセスへ正しくアクセスできるように、「tnsnames.ora」ファイルには「listener.ora」ファイルで指定されたサーバとポート番号を指定しておきます。tnsnames.oraファイルで接続する情報には「別名(ネットワーク識別子)」を付けておき、接続先の情報を簡単に呼び出せるようにしています(図3)(例1)。

photo 図3 リモート接続の設定ファイル「tnsnames.ora」と「listener.ora」について
[oracle@oralinux ~]$ sqlplus scott/tiger@db_con
…省略…
 
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
に接続されました。
SQL>
例1 ネットワーク識別子を使ってデータベースに接続

 以上が「シングルインスタンス」のデータベースへの接続方法の基本となります。

ワンポイント

  • リモート接続は「Oracle Net」と呼ばれるコンポーネントを介して行われます。そのため、クライアント、サーバの両方にOracle Netを用意しておきます。Oracle製品をインストールすると、Oracle Netも一緒にインストールされます。
  • Oracle Database 12cから提供されているマルチテナント構成においても、プラガブルデータベース(PDB)へ一般ユーザーで接続するには、リモート接続が必要になります。

       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

Focus

- PR -

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。