CoreData概要
2007/03/30 (Fri) 22:07:46 JST
Tigerの新しい機能である Core Data は、Model-View-Controller (MVC) に基づく、十分に要素化されたアプリケーションの開発というCocoaのビジョンを完全なものにする、堅固で柔軟かつ強力なデータモデルフレームワークです。 CocoaのビジョンはInterface Builderから始まりました。 世界最高水準の開発ツールであるlInterface Builderは、MVCのViewにあたるユーザーインターフェース全体を手早く簡単に開発でき、開発の手間を軽減します。 Mac OS X 10.3 Pantherではこのビジョンを拡張し、ユーザーインターフェースとデータモデルを仲介するコードを削減するため、Cocoaバインディングとしてビルド済みのコントローラオブジェクトを提供しました。
しかしTiger以前では、アプリケーションのデータモデルの大部分の処理である生成、管理、ディスクへの保存は、開発者にとって退屈な仕事でした。 さらにどのアプリケーションも何らかのデータモデルを持つようになってからは、誰もがこの問題に直面することになりました。 Core Dataはこの退屈な仕事を完全に変えてしまいます。 まず、今までと同じくInterface Builderはユーザーインターフェースの開発を簡単にし、Core Dataを使うとアプリケーションのデータモデルをグラフィカルに手早く定義でき、コードからのアクセスも簡単になります。 次にCore Dataはアンドゥ、リドゥ、データの永続化などの基本的な機能を提供し、アプリケーション開発に革新をもたらします。
技術的に説明すると、Core Dataはオブジェクトグラフを管理、永続化するフレームワークと言えます。 具体的には、メモリ中のデータオブジェクトを、アプリケーションのモデルレイヤーとして組織化します。 Core Dataはこれらのオブジェクトの変更を追跡し、アンドゥが実行されたときなど必要に応じて変更を戻すことができます。 アプリケーションのデータへの変更が保存されると、Core Dataは永続用ストアにオブジェクトを保存します。 さらに一般的な形式のファイルにもデータを保存し、Finderで管理したり、Spotlightで検索したり、CDにバックアップしたり、友人や家族、同僚にメールで送ったりすることもできます。
Core Dataは、WebObjectsのEnterprise Objects Frameworkに代表される業務用レベルのデータベースアプリケーションフレームワークのコンセプトの上に作られています。 しかし間違えないで欲しいのは、Core Dataはオブジェクト - リレーショナルデータベースフレームワークではない、ということです。代わりにデータベースのデータ管理方法を元にした新しいコンセプトを持ち、規模の大小に関わらずどんなアプリケーションにも必要となるデータモデルを扱うための、一般的なデータ管理の手段を提供します。 予定管理アプリケーションからベクターアート描画プログラムまで作れるようになります。 限界はありません。 データオブジェクトを管理するアプリケーションなら、Core Dataの恩恵を受けられるでしょう。
この記事では、Core Dataがどのように動くのかということと、新しく革命的な技術を使いこなすのに必要な、基本的なコンセプトを紹介します。 はじめに、Core Dataのデータモデル「管理オブジェクトモデル (managed object model) 」の定義を見ていきましょう。
Inverse Pages: DevelopingWithCoreData