DATABASELINK チュートリアル

データベースのリソース

DatabaseLink を使うと,他の Mathematica アプリケーションがDatabaseResourcesディレクトリにあるデータベース接続のリソース情報を保管できるようになる.DatabaseResourcesディレクトリを置くことのできる場所は$InstallationDirectory$BaseDirectory$UserBaseDirectory内にたくさんある.

DatabaseResourcesPath[]リソースを検索するDatabaseResourcesディレクトリ
$InstallationDirectory/AddOns/ExtraPackages/*可能なDatabaseResourcesディレクトリの場所
$InstallationDirectory/AddOns/StandardPackages/*
$InstallationDirectory/AddOns/Autoload/*
$InstallationDirectory/AddOns/Applications/*
$BaseDirectory/Autoload/*
$BaseDirectory/Applications/*
$UserBaseDirectory/Autoload/*
$UserBaseDirectory/Applications/*

DatabaseResourcesPathコマンドでDatabaseResourcesディレクトリの現在の場所が分かる.

In[1]:=
Click for copyable input
In[2]:=
Click for copyable input
Out[2]=

DatabaseResourcesディレクトリには,JDBC設定を保管しているファイルと接続設定を保管しているファイルの2種類のファイルを保管することができる.

JDBCの設定

拡張子.mが付いているDatabaseResourcesディレクトリのファイルはすべて,可能なJDBC設定情報が含まれているかどうか確認される.JDBC設定ファイルの形式は以下のようになっている.

この形式において,nameは接続名(OpenSQLConnectionで使われることもあります),driverclassはJDBCドライバのクラスファイル,protocolはJDBCプロトコルである.設定ファイルのバージョンは設定で指定される.

HSQLDB用に設定したファイルの例を以下に示す.

このファイルは,以下のコマンドのように,hsqldb接続でOpenSQLConnectionが呼び出されたときに使われるドライバとプロトコルを指定するものである.

別のファイルの例である.これはOracle用に設定されている.

これは,以下のコマンドのように,oracle接続のためにOpenSQLConnectionが呼び出されたときに使用するドライバとプロトコルを指定するものである.

データベース接続:JDBC接続」に記載のように,JDBCドライバクラスを保管するようにアプリケーションを加えた場合は,同じアプリケーションの中にDatabaseResourcesディレクトリを作ってJDBC設定情報を保管することができる.次の表はOracleデータベースに接続するときに使用できるoracleという名前のアプリケーションレイアウトである.

$UserBaseDirectory/Applications/Oracle/Javaデータベースドライバクラスファイルの場所
$UserBaseDirectory/Applications/Oracle/DatabaseResourcesJDBC設定ファイルの場所

新しいJDBCドライバをインストールしたら,データベース接続:JDBC接続に従ってシステムが新しいドライバにアクセスできるかどうかを確認する.

接続設定

拡張子.mが付いているDatabaseResourcesディレクトリのファイルはすべて,可能な接続設定情報が含まれているかどうか確認される.接続設定ファイルの形式は以下のようになっている.

ここで,connectdataは接続データ(通常JDBC設定)を保管しており,nameは接続名(OpenSQLConnectionで使われることがあります),textは接続のテキストによる記述,userpassはデータベースに接続する際のユーザ名とパスワードを表している.パスワードに$Promptを指定すると,パスワード入力用のGUIが現れる.接続データが相対パスを含んでいる場合,これはRelativePath設定で指定する.設定ファイルのバージョンは設定で指定される.

HSQLDB用に設定したファイルの例を以下に示す.

このファイルは,ファイルExamples/exampleへの接続にHSQLDBを使うことを指定する.ファイルExamples/exampleの場所は,設定ファイルの場所に対する相対パスである.ユーザ名saと空のパスワードも渡される.この接続情報には"example"という名前が付いている.この設定ファイルは次のOpenSQLConnectionコマンドをサポートする.

別のファイルの例である.これはOracle用に設定されている.

これは,以下のコマンドのように,businessDBOpenSQLConnectionが呼び出されたときに使用する接続情報を指定するものである.

データベース接続:JDBC接続」に記載のようにJDBCドライバクラスを保有するアプリケーションと,前述のようにJDBC設定情報を加えた場合は,Oracle接続情報を保管するのに同じ場所を使うことができる.次の表はOracleへの接続に使用できるアプリケーションレイアウトである.

$UserBaseDirectory/Applications/Oracle/Javaデータベースドライバクラスファイルの場所
$UserBaseDirectory/Applications/Oracle/DatabaseResourcesJDBC設定ファイルの場所
$UserBaseDirectory/Applications/Oracle/DatabaseResources接続設定ファイルの場所

接続設定ファイルを書く手助けとして,コマンドWriteDataSourceが使える.

In[1]:=
Click for copyable input

testSourceというデータソースを作成する.HSQLデータベースを使う.

In[2]:=
Click for copyable input
Out[2]=

DataSourceNamesによるリストに新しいデータソースが現れる.

In[3]:=
Click for copyable input
Out[3]=

データソースに接続して利用し始めることができる.HSQLデータベースの利点のひとつは,データベースが存在しなければ作成されるということである.

In[3]:=
Click for copyable input
Out[3]=

練習のためには接続を閉じるとよいだろう.

In[4]:=
Click for copyable input

HSQL以外のデータベースに接続したい場合は,WriteDataSourceの第2引数で指定できる.次の例は,MySQLデータベースを使ってデータソースファイルを書く.

In[5]:=
Click for copyable input
Out[5]=

これはデータベースmain/testの作成にMySQLサーバとは通信しないことに注意されたい.データベースはすでに存在していると仮定される.しかし,これは名前付き接続を作成するのにはやはり便利な方法である.UsernamePasswordLocation等のパラメータの設定方法を確認されたい.Locationの選択肢には"User""System"がある.

接続設定ファイルを書きたくない場合は,「Database Explorer:New Connection Wizard」に記載のNew Connection Wizardを使うことができる.

新しい名前付き接続を作成したら,「データベース接続:名前付き接続」に従って新しい接続がシステムにアクセスできるかどうかを確認する.

New to Mathematica? Find your learning path »
Have a question? Ask support »