DatabaseSpyを使って、未知のデータベースを探索する
新しいアプリケーションを開発するソフトウェアエンジニア、様々な企業でデータ分析を行う専門家、さらにはデータベース管理者でさえ、見慣れないデータベースに遭遇することがあり、テーブルや関連性を迅速に把握するためのデータベースツールが必要となることがあります。
Altova DatabaseSpyは、グラフィカルなデータベース設計エディターを備えた、ユニークなマルチデータベース向けクエリ、設計、および比較ツールです。このツールを使用することで、ユーザーは未知のデータベースを扱う際に、テーブル、関連性、さらにはデータベースの種類によって異なるデータ型定義などを、迅速に視覚的に把握することができます。

DatabaseSpyは、主要なデータベースシステムをすべてサポートしています
- 火鳥
- IBM DB2®
- Informix®
- Microsoft Access™ (マイクロソフト アクセス)
- Microsoft® Azure SQLデータベース
- Microsoft® SQL Server® (マイクロソフト SQL サーバー)
- MySQL®
- オラクル社(Oracle Corporation)
- PostgreSQL (ポストグレス)
- Progress OpenEdge
- SQLite
- Sybase®
Chinookは、SQL Server、Oracle、MySQL、DB2、PostgreSQL、SQLiteなど、様々なデータベースに対応したオープンソースのサンプルデータベースです。デジタルメディアストアのデータモデルを実装しています。ここでは、DatabaseSpyを使ってSQLite版を詳しく見ていきましょう。
DatabaseSpyの接続ウィザードを使用すると、SQLiteデータベースに迅速に接続し、そのデータベースを新しいDatabaseSpyプロジェクトに追加できます


DatabaseSpy プロジェクトは、複数のデータベース、さらには異なる種類のデータベースへの接続を含めることができます。オンラインブラウザのヘルパーウィンドウを使用すると、テーブルの一覧をすぐに確認し、行数を取得することができます

より複雑なデータベースの場合、オンラインブラウザでは、SQL Serverのサンプルデータベース「AdventureWorks」の例のように、複数のデータベーススキーマ、ビュー、ストアドプロシージャ、関数などが表示されます

弊社は、デジタル音楽ストアのデータベースに興味を持っており、その理由として、弊社もまた、別のメディアファイル群に関するメタデータを含むCSVファイルを持っており、このデータをデータベースに追加したいと考えているからです。このCSVファイルには、以下の項目が含まれています

オンラインブラウザのウィンドウで、トラックテーブルの横にある「+」ボタンをクリックするか、さらに良い方法として、そのテーブルを新しいデザインエディタのウィンドウで開くことができます

「Track」テーブルには、他のテーブルを参照するキーが含まれています。右クリックするとコンテキストメニューが表示され、参照されているテーブルを追加できます。これにより、エンティティ関係図のように、テーブル間の関係を視覚的に把握し、より包括的な情報を得ることができます。

この図と、CSVファイル内の新しい項目を比較すると、問題点が明らかになります。私たちのデータには、曲のアーティストとアルバムのアーティストという、それぞれ別の項目が含まれています。これは、映画のサウンドトラックなど、アルバムが「Various Artists(様々なアーティスト)」のように一般的に表記される場合を考慮したものです。しかし、それでも私たちは、それぞれの曲に対して、正しいアーティスト情報を記録したいと考えています。
現在のトラックテーブルには、各トラックの演奏者を特定する情報が含まれていません。代わりに、アルバムIDを参照しており、そのアルバムIDはさらにアーティストテーブルを参照することで、アルバムのアーティスト情報を特定しています。
データベースのテーブルをグラフィカルなインターフェースで編集します
問題ありません!「トラック」テーブルの「単価」列のすぐ下に表示されている「プラス」アイコンをクリックすると、テーブルに新しい列を追加できます。DatabaseSpyは、デフォルト値が設定された状態でその列を追加します

まず、新しい列の名前を変更し、データ型を設定できます。DatabaseSpyでは、このデータベースで使用可能なデータ型を一覧表示するポップアップメニューが用意されており、そこから適切なデータ型を選択できます。新しい「トラックアーティスト」列は、アルバムのアーティストIDを上書きする必要がある場合にのみ使用されるため、あまり頻繁には使用されません。そのため、作曲者列のように、制限付きのテキストデータ型として設定しておけば十分です。

上記のスクリーンショットで、列名「TrackArtist」の横にあるプラス記号にご注意ください。DatabaseSpyは、図を編集する際に、実際にデータベースを直接変更することはありません。代わりに、DatabaseSpyは自動的に別のウィンドウにデータベース変更スクリプトを作成します。

これにより、ユーザーはデザインエディタ上で複数の変更をリスクなしに編集できます。すべての編集が完了したら、スクリプトを直接実行したり、新しいSQLウィンドウでスクリプトを編集用に開いたり、スクリプトをファイルに保存したり、またはすべての編集を破棄してスクリプトを削除したりすることができます。
スクリプトをSQLエディタのウィンドウで開き、テキストフィールドの最大長を設定します。この最大長は、Composer列の最大長と一致するように設定します

スクリプトをエディタウィンドウから実行し、データベースを再読み込みすることで、デザインエディタでの変更内容を確認できます。

データベースの操作に慣れていない方でも、使いやすい「デザインエディタ」は、データベースの探索をサポートする便利な機能の一つです。無料トライアル版をダウンロードして、DatabaseSpyがどのようにクエリの実行、データの可視化、管理、比較、および結果のグラフ化を簡素化するか、ぜひご自身で体験してみてください。