---
title: "DatabaseSpyを使って、未知のデータベースを探索する"
date: "2017-07-12"
categories: 
  - "database"
  - "software"
  - "tools"
tags: 
  - "database-tool"
  - "databasespy"
description: Altova DatabaseSpyが、直感的な可視化ツールと編集機能を通じて、開発者やデータ専門家が未知のデータベースを効率的に理解し、活用するのをどのように支援するかをご覧ください。
---
Status: #blog

Tags:  #database-tool #databasespy

Categories: [database + sql](/blog/ja/category/database-sql.md) 
# DatabaseSpyを使って、未知のデータベースを探索する

新しいアプリケーションを開発するソフトウェアエンジニア、様々な企業でデータ分析を行う専門家、さらにはデータベース管理者でさえ、見慣れないデータベースに遭遇することがあり、テーブルや関連性を迅速に把握するための[データベースツール](https://www.altova.com/ja/databasespy)が必要となることがあります。

Altova DatabaseSpyは、グラフィカルなデータベース設計エディターを備えた、ユニークなマルチデータベース向けクエリ、設計、および比較ツールです。このツールを使用することで、ユーザーは未知のデータベースを扱う際に、テーブル、関連性、さらにはデータベースの種類によって異なるデータ型定義などを、迅速に視覚的に把握することができます。

![](/blog/images/shutterstock_124714339.jpg)

<!--more-->

[DatabaseSpy](https://www.altova.com/ja/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の接続ウィザードは、未知のデータベースを探索する際に役立ちます](/blog/images/Connection-Wizard.png)

![データベース監視プロジェクトウィンドウ](/blog/images/Project-Window.png)

DatabaseSpy プロジェクトは、複数のデータベース、さらには異なる種類のデータベースへの接続を含めることができます。オンラインブラウザのヘルパーウィンドウを使用すると、テーブルの一覧をすぐに確認し、行数を取得することができます

![DatabaseSpyのオンラインブラウザを使って、未知のデータベースを探索する](/blog/images/Online-Browser.png)

より複雑なデータベースの場合、オンラインブラウザでは、SQL Serverのサンプルデータベース「AdventureWorks」の例のように、複数のデータベーススキーマ、ビュー、ストアドプロシージャ、関数などが表示されます

![AdventureWorksデータベースのオンラインブラウザ表示](/blog/images/AdventureWorks.png)

弊社は、デジタル音楽ストアのデータベースに興味を持っており、その理由として、弊社もまた、別のメディアファイル群に関するメタデータを含むCSVファイルを持っており、このデータをデータベースに追加したいと考えているからです。このCSVファイルには、以下の項目が含まれています

![データベースに追加する新しいデータが記載されたCSVファイル](/blog/images/CSV-fields.png)

オンラインブラウザのウィンドウで、トラックテーブルの横にある「＋」ボタンをクリックするか、さらに良い方法として、そのテーブルを新しいデザインエディタのウィンドウで開くことができます

![DatabaseSpyのデザインエディターを使って、未知のデータベースを探索する](/blog/images/design-1.png)

「Track」テーブルには、他のテーブルを参照するキーが含まれています。右クリックするとコンテキストメニューが表示され、参照されているテーブルを追加できます。これにより、エンティティ関係図のように、テーブル間の関係を視覚的に把握し、より包括的な情報を得ることができます。

![デザインエディタを使用して、未知のデータベースを探索する](/blog/images/design-2.png)

この図と、CSVファイル内の新しい項目を比較すると、問題点が明らかになります。私たちのデータには、曲のアーティストとアルバムのアーティストという、それぞれ別の項目が含まれています。これは、映画のサウンドトラックなど、アルバムが「Various Artists（様々なアーティスト）」のように一般的に表記される場合を考慮したものです。しかし、それでも私たちは、それぞれの曲に対して、正しいアーティスト情報を記録したいと考えています。

現在のトラックテーブルには、各トラックの演奏者を特定する情報が含まれていません。代わりに、アルバムIDを参照しており、そのアルバムIDはさらにアーティストテーブルを参照することで、アルバムのアーティスト情報を特定しています。

### データベースのテーブルをグラフィカルなインターフェースで編集します

問題ありません！「トラック」テーブルの「単価」列のすぐ下に表示されている「プラス」アイコンをクリックすると、テーブルに新しい列を追加できます。DatabaseSpyは、デフォルト値が設定された状態でその列を追加します

![DatabaseSpyで、既存のデータベーステーブルをグラフィカルインターフェースを使って編集します](/blog/images/design-3.png)

まず、新しい列の名前を変更し、データ型を設定できます。DatabaseSpyでは、このデータベースで使用可能なデータ型を一覧表示するポップアップメニューが用意されており、そこから適切なデータ型を選択できます。新しい「トラックアーティスト」列は、アルバムのアーティストIDを上書きする必要がある場合にのみ使用されるため、あまり頻繁には使用されません。そのため、作曲者列のように、制限付きのテキストデータ型として設定しておけば十分です。

![DatabaseSpyで、新しい列のデータ型を選択します](/blog/images/design-4.png)

上記のスクリーンショットで、列名「TrackArtist」の横にあるプラス記号にご注意ください。DatabaseSpyは、図を編集する際に、実際にデータベースを直接変更することはありません。代わりに、DatabaseSpyは自動的に別のウィンドウにデータベース変更スクリプトを作成します。

![DatabaseSpyにおけるデータベース変更スクリプト](/blog/images/change-script.png)

これにより、ユーザーはデザインエディタ上で複数の変更をリスクなしに編集できます。すべての編集が完了したら、スクリプトを直接実行したり、新しいSQLウィンドウでスクリプトを編集用に開いたり、スクリプトをファイルに保存したり、またはすべての編集を破棄してスクリプトを削除したりすることができます。

スクリプトをSQLエディタのウィンドウで開き、テキストフィールドの最大長を設定します。この最大長は、Composer列の最大長と一致するように設定します

![未知のデータベースを探索し、SQLエディタを使って変更を加える](/blog/images/script-edit.png)

スクリプトをエディタウィンドウから実行し、データベースを再読み込みすることで、デザインエディタでの変更内容を確認できます。

![未知のデータベースを探索し、変更内容を確認する ](/blog/images/new-table.png)

データベースの操作に慣れていない方でも、使いやすい「デザインエディタ」は、データベースの探索をサポートする便利な機能の一つです。[無料トライアル版をダウンロード](https://www.altova.com/ja/databasespy/download)して、DatabaseSpyがどのようにクエリの実行、データの可視化、管理、比較、および結果のグラフ化を簡素化するか、ぜひご自身で体験してみてください。
