Microsoft Access 2013: クラウド対応の手軽で斬新な開発ツール
このポストは、11 月 7 日に投稿された Microsoft Access 2013: A Cool New Rapid Development Tool for the Cloud の翻訳です。
Windows Azure SQL データベースやオンプレミスの SQL Server 2012 に適した開発者向けのフレームワークは、数多く存在します。C# や VB.NET などの言語をサポートしている .NET Framework に加え、SQL データベースおよび SQL Server 2012 用の新しい JDBC、PHP、および Node.js のドライバーが Java、PHP、Node.js の各言語を使用する開発者に提供されます。このため、Windows Azure SQL データベースを基盤とするデータ ドリブン アプリケーションの構築に関わる開発者は、これまでにはなかった優秀な言語オプションを使用できます。この記事では、DBA などの方々が SQL データベース (または SQL Server 2012) 上でコードを書かずに迅速にアプリケーションを作成するための斬新な方法をご紹介します。これは、新しい Microsoft Office 2013 スイートの一部である Microsoft Access 2013 の機能を利用したものです。
[View:https://www.youtube.com/watch?v=C-fBWarKkuk&feature=player_embedded]
SharePoint Online (クラウド内でホスティング、Office 365 サブスクリプションで利用可能) または社内の SharePoint Server 2013 を使用すると、組織または部署のコラボレーションを最大限に促進できます。その大きな特長として、社内チームのサイトなどの集約的な場所を作成できること、およびこの場所が十分な拡張性を持ち、Microsoft Access で作成したビジネス アプリケーションなどのすべての情報資産の整理や管理を実施できることが挙げられます。前バージョンである Microsoft Access 2010 では、SharePoint で Web アプリケーションを作成すると、データベース内のテーブルは、そのアプリケーションが格納されている場所に SharePoint リストとして保存されていました。Access 2013 を使用して SharePoint (Office 365 で自動的にホスティング) でクラウド アプリケーションを作成する場合、Access Services が SQL Server または Windows Azure SQL データベースを作成します。Access のオブジェクトはすべてここに格納されます。この新しいアーキテクチャにより、パフォーマンスとスケーラビリティが向上すると同時に、プロフェッショナルな SQL 開発者が Access アプリケーションのデータの拡張や操作などの作業に他のツールやフレームワークを使用できるようになります。
しくみ
Access 2013 でアプリケーションを作成するときには、アプリケーションの運用先となる SharePoint サイトを選択します。アプリケーションのアクセス、管理、アンインストールは、他の SharePoint アプリケーションと同様、このサイトで実行できます。SharePoint でアプリケーションを作成する際には、マイクロソフトがプロビジョニングする SQL Server データベースを使用します。テーブル、クエリ、マクロ、フォームなどのアプリケーションが使用するオブジェクトおよびデータは、すべてここに格納されます。アプリケーションにアクセスし、データ入力やデザイン変更などの操作を実行すると、必ずバックグラウンドでデータベースとの通信が実行されます。Office 365 でアプリケーションを作成する場合、データベースは Windows Azure SQL データベースで作成されます。社内でホスティングしている SharePoint サーバー上でアプリケーションを作成する場合、Access は SharePoint 管理者が選択した SQL Server 2012 のインストール先にデータベースを作成します。どちらの場合も、作成されたデータベースは該当するアプリケーションが占用します。他のアプリケーションと共有されることはありません。
アプリケーションの作成中、開発者はテーブル、クエリ、ビュー、マクロを追加しながら、自分自身やユーザーが必要とする機能を作成します。以下では、各オブジェクトの作成時にデータベース内でどのような処理が実行されているかを説明します。
テーブル
Access アプリケーションにテーブルを追加すると、データベース内で SQL Server テーブルが作成されます。このテーブルには、開発者が Access で指定したものと同じ名前が与えられます。これは、クライアントで作成したフィールドでも同様です。SQL Server データベースで使用されるデータ型は、テキスト フィールドでは nvarchar、数値フィールドでは decimal、int、または float のいずれか、イメージ フィールドでは varbinary(MAX) というように、開発者が想定したものが使用されます。
Access で次のようなテーブルを追加したと仮定します。
SQL Server で作成されるテーブルは次のとおりです。
クエリ
アプリケーションにクエリを追加すると、Access が SQL Server ビューを作成します (パラメーターを使用するクエリの場合はテーブル値関数 (TVF) が作成されます)。このビューまたは TVF の名前には、Access で使用した名前と同じものが使用されます。T-SQL 生成時には書式ルールも使用されるため、SQL Server で定義を直接表示したときも、簡単にその定義を理解できます。
Access で次のようなクエリをデザインしたとします。
SQL Server では、このクエリは書式化されたステートメントとして保存されます。
CREATEVIEW[Access].[MyQuery]
AS
SELECT
[MyTable].[ID],
[MyTable].[String Field],
[MyTable].[Date Field]
FROM
[Access].[MyTable]
WHERE
[MyTable].[Date Field]>DATEFROMPARTS(2012, 7, 16)
データ マクロ
データ マクロには、イベント データ マクロとスタンドアロン マクロの 2 種類があります。
イベント データ マクロを作成するには、デザイン ビューでテーブルを開き、[Table] リボンから任意の [Events] ボタンをクリックします。
イベント データ マクロは、所属先のテーブルに対する AFTER トリガーとして SQL Server に実装されます。
スタンドアロン マクロを作成するには、[Home] リボンから [Create] セクションの [Advanced] ボタンをクリックし、項目の一覧から [Data Macro] を選択します。この種類のマクロではパラメーターが使用できます。また、ストアド プロシージャとして SQL Server に保存されます。
ビュー
Access 2013 のビューとはアプリケーションの一部で、ブラウザーへのデータ表示を担当します。データベースのエキスパートはフォームと呼ぶ場合もあります。ビューもデータベースに格納されます。SQL オブジェクトではなく HTML および JavaScript であるため、Access のシステム テーブルではテキストとして保存されます。
SQL Server スキーマ
データベース内では、Access は 3 つの SQL Server スキーマ (Access、AccessSystem、AccessRuntime) を個別に使用します。
AccessSystem スキーマにはシステム テーブルが存在し、Access Services が認識可能な形式で各オブジェクトの定義が保存されます。また、他にも、アイテムが実行時またはデザイン時のサーフェスで正常に動作するために必要な詳細情報も保存されます。
Access スキーマには、アプリケーション設計者が作成したすべてのテーブル、クエリ、マクロが含まれています。このスキーマに含まれるものはすべて、SQL Server でデザインしたオブジェクトが実装されたものです。
AccessRuntime スキーマには多数のアイテムが格納されていて、Access Services でアプリケーションの実行時の動作を最適化するために使用されます。
まとめ
以上のような詳細な説明がなぜ重要なのか、不思議に思われた方もいらっしゃるでしょう。一部のユーザーは、速度と信頼性が向上したこと以外に、新しい SQL Server バックエンドによる改善点には気付かないかもしれません。技術的な細かいことを気にしないユーザーもいらっしゃいます。一方、上級のユーザーは、Access アプリケーションの外部から SQL Server または Windows Azure SQL データベースに直接接続することができます。これによって、高度な統合や機能拡張の可能性が新たに大きく広がります。これは大きな違いです。
外部接続を有効にする操作は簡単で、[File] メニューをクリックして Backstage に移動します。[Connections] セクションの下に表示されている SQL Server ログイン資格情報を使用して、SQL Server Management Studio や ASP.NET などの SQL Server をサポートしているアプリケーションのデータベースに接続できます。
[Manage Connections] ボタンからは、SQL Server データベースへの接続の管理に使用する各種コマンドが使用できます。ここで、読み取り専用のログインと読み取り/書き込みログインを作成できます。レポート ツールなど、データを変更する必要のないプログラムまたはアプリケーションから SQL Server データベースに接続するときは、読み取り専用のログインを使用します。データベースに接続してデータを変更または追加する必要がある場合には、読み取り/書き込みログインを使用します。たとえば、ASP.NET で作成した Web サイトを公開し、インターネット ユーザーがそのサイトに投稿したアプリケーションを Access データベースに格納するという使い方もできます。
SQL と Access の連携性の高さ
マイクロソフトでは、ここで説明した Access 2013 の変更について大いに期待しており、皆様にもご期待いただいていると考えています。Access 2013 は、データの格納に Windows Azure SQL データベースと SQL Server 2012 の強力なデータ エンジンを活用します。逆に、Access 2013 は、ネイティブの SQL Server および Windows Azure SQL データベース アプリケーションをすばやく作成できる、エンド ユーザーに重宝されるツールになりました。この連携により、さらに高度な統合や機能拡張を進めるためのさまざまな新しいシナリオが実現可能です。マイクロソフトでは、Windows Azure SQL データベースを基盤にして作成される新しい Access アプリケーションから素晴らしい製品が生み出されることを心待ちにしています。
- Andrew Stegmaier、Gregory Leake