Microsoft Access
出典: フリー百科事典『ウィキペディア(Wikipedia)』
Microsoft Access(マイクロソフト・アクセス)とは、マイクロソフトが、Microsoft Windows向けに販売しているリレーショナルデータベースマネージメントシステム、データベースソフトウェアである。
Microsoft Officeの上位エディションにバンドルされ、SQL Serverの姉妹製品ともいわれる。
Microsoft Access(正式名はMicrosoft Office Access)は、マイクロソフト社によるRDBMSであり、Microsoft Jet Database EngineとGUIを組み合わせてMicrosoft Office Professionalにパッケージされて販売されている。Accessは、Access/Jet、SQL Server、OracleやODBC準拠のデータを取り扱うことができる。データベースに精通したソフトウェアデベロッパやデータアーキテクトであれば、きわめて高度なデータベースアプリケーションが開発可能であり、一方、データベースに関する知識に乏しい初心者や、非プログラマで、データベースの理解が多少欠けていても、簡単なアプリケーションの構築が可能である。現在Accessはオブジェクト指向に基づいたアプリケーション作成が可能であるが、完全なオブジェクト指向開発ツールには至っていない。
「Microsoft Access」は、以前マイクロソフトが販売していた通信ソフトウェアの名前でもあった。これはProCommなどといったソフトと競合していたが、販売不振のため製品ラインナップから消滅していた。それから数年後、現在知られているデータベース・ソフトウェアの名前として再登場した。
目次 |
[編集] 歴史
Microsoft Accessのバージョン1.0は、1992年12月にリリースされた。
[編集] 用途
Accessは、規模としては中小企業や大企業の事業部といったスケールから、データの作成や操作をするプログラムを作りたいサンデープログラマといったレベルまで広く使われている。Accessの使い易く強力な設計ツールは、データベースを良く知らない人間であっても、非常に効率的に開発を進めることができる。このため、Accessとは素人向けの開発環境であって、専門家にはあまり用いられていないかのように思われがちである。
ある専門的なアプリケーション開発者はAccessを迅速なアプリケーション開発、特に、巡回セールスマンのためのツールとして提供されるようなプロトタイプとスタンドアローン・アプリケーションの開発に用いている。Accessは、データアクセスがネットワーク経由の場合には力不足であるため、数名以上に利用されるようなアプリケーションは、Oracle、DB2、Microsoft SQL Server、PostgreSQL、MySQL、MaxDB、またはFilemakerのようなソリューションに基いたクライアントサーバシステムに頼りがちである。しかしAccessの「フロントエンド」(フォーム、レポート、クエリ、およびVBコード)は、Access自身、SQL Server、Oracle、その他のODBC──適合する製品を含むデータベース・バックエンドのホストに対して用いることができる。このアプローチは、既存の適合した開発を犠牲にすることなく、開発者が完成したアプリケーション・データをより強力なサーバーへ移すことを可能にする。
Accessを使う利用者の多くがLeszynski命名規則を使用するが、これは万人共通ではない。これはDBMSが強制する規則ではなく、プログラミングの規則である。
[編集] 特徴
プログラマから見たAccessの利点の1つは、そのSQLとの相対的な互換性である。──クエリはSQL文として表示や編集ができる。そしてSQL文はAccessのテーブルを操作するためにマクロやVBAモジュールの中で直接使用することができる。ユーザーはプログラムの形式と論理、そしてオブジェクト指向の可能性の提示のために、VBAと「マクロ」の両方を結合して使うことができる。SQL文の中ではVBAと同じ演算子や関数を用いることができ、モジュール内で定義された利用者独自の関数さえも使用できる。
Accessのレポート作成機能は、有能で洗練された報告書作成の仕事に適していたとしても、他の有名なデータベースレポート作成機能──Crystal Reportsほどには十分に特色があり力強いとは言えない。MSDE (Microsoft SQL Server Desktop Engine) 2000はMS SQL Server 2000のミニ・バージョンだが、Office XPのdeveloper editionに含まれており、Jet Database Engineの代わりにAccessと共に使われるかもしれない(MSDEとMicrosoft Exchange Serverの初期バージョンはデータの膨大な量を取り扱うのに実際にJet Engineを使用しており、その上にそれらのアプリケーション用に「偽の」アプリケーション層を置いた。この事実に関する知識不足は、特に「大規模な」プロジェクトについては、ソフトウェア製品Access/Jetファミリーに対する不当な軽視の一因となった)。
Accessのカット・アンド・ペースト機能は、他のデータベース間(例えばデータやデータベースを通じてOracleとMicrosoft SQL Serverと)を接続する便利なツールである。Accessにはテキスト形式やExcel形式を含め、Windowsと他のプラットフォーム・アプリケーションとの統合を許す様々なインポート・エクスポート機能(又はリンク機能)が付属しており、それらのいくつかはアプリケーション内部からの要求、又はユーザーが手動によって実行できる。例えば、完全実装されたAccessソフトウェアを持たない人たちと完全に書式化されたレポートを共有するための非常にコンパクトなAccessのスナップショット形式がある。Accessはまた、容易にMicrosoft SQL Serverにアップグレードすることができる。
完全なRDBMSと異なり、Accessにはデータベース・トリガおよびストアドプロシージャが存在しない。Accessは基礎となるテーブルに対する変更を引き起こすようなコードをフォームに含めることを認めており、また、Accessに含まれるパススルー・クエリや他の技術を用いて、RDBMSがサポートしているストアドプロシージャを実行することも一般的である。
[編集] 開発
Accessで利用できるプログラミング言語は、他のMicrosoft Officeスイートの製品同様、Visual Basic for Applicationsである。COMコンポーネントの2つのデータベース・アクセス・ライブラリーが提供されている。すなわち、Accessのみで利用可能な従来のData Access Objects (DAO) と、新しいActiveX Data Objects (ADO) である。
Microsoft Accessは小さなプロジェクトには容易に用いることができるが、アプリケーションの設計が貧弱な場合、大規模なプロジェクトに対しては非効率的に働く。
また、ADOやODBC経由でWebサーバとの連携も可能であり、Webアプリケーションのデータベースとしても利用可能ではあるが、Access自体がWebDBとしての利用を想定した設計がされていないものであるため、WebDBとして利用した場合、予期せぬ、かつ解決困難な不具合が生ずる可能性がある。
すべてのデータベースのクエリ、フォーム、及びレポートはデータベースの中に格納され、リレーショナル・モデルの理想と一致するように、それらを物理的に構造化した階層を作ることはできない。
1つの設計技術はAccessのアプリケーションをデータとプログラムに分割することである。1つのデータベースはテーブルとリレーションシップのみを含むべきであり、一方他のデータベースはすべてのプログラム、フォーム、レポート、及びクエリを含み、最初のデータベースのテーブルにリンクする。残念ながらAccessはリンクする場合に相対パスを許可しないため、開発環境は製品環境と同じパスを持たなければならない(ただし、Accessがカレント・パスにバックエンド・ファイルを見つけられない時、ディレクトリ・ツリー内を検索して、あるバックエンド・ファイルを捜し出すことができる独自の「動的リンカ」をVBA内に記述することができる)。
この技術はまた、開発者がアプリケーションを周囲の異なるファイルに分割することを可能にするため、ある種の構造は可能となる。Accessではデータベース・ファイルが大きくなり過ぎたり、ネットワーク上で多人数が同時にデータベースにアクセスした場合などで、データベースが損傷を受ける可能性が高まることが指摘されており、分割は有効な対応策と考えれている。
Access2003では、サービスパック2にアップデートすると、データベースにリンクしているExcelワークシートのデータを更新することができないようにその機能に制約が設けられた。このように開発においては業務アプリケーションとしての機能に影響が出ないようにツール自体のバージョン(リビジョン)管理にも注意が必要である。
[編集] 主な機能
[編集] バージョン・アップ
- Access 1.0
- Access 2.0
- ビルダ、ウィザードの導入
- Access 95
- Access BasicからVBAへ移行
- ActiveXコントロール (DAO) の導入
- レプリケーションの導入
- Access 97
- ハイパーリンクなど、HTML連携の強化
- タブコントロールの導入
- Access 2000
- Access 2002(XP)
- Access 2003