スキーマの進化 - 百科事典
コンピュータサイエンスにおいて、スキーマのバージョン管理とスキーマの進化は、データベース構造の変更に直面しても現在のデータとソフトウェアシステムの機能を維持する必要性を扱います。この問題はスキーマの変更に限られていません。実際には、指定されたスキーマの下に保存されているデータやそのスキーマに対するクエリ(そしてそれに基づくアプリケーション)に影響を与えます。
データベースの設計は時々「現在の」インスタンスとして作成され、そのためスキーマの進化は考慮されません。(これは「すべてのものに適用可能」とされるデータベースが属性の変動をカバーしていない場合とは異なり、関連しています。)この仮定は、伝統的な情報システムの文脈ではほぼ現実的ではありませんが、大量の歴史的情報を保持するシステムや、開発の分散性と協力性によってさらに強い変化への圧力にさらされるウェブ情報システムなどの文脈では受け入れられません(伝統的な設定よりも39%から500%以上の強い圧力です)。この歴史的遺産により、2008年時点でのスキーマの進化プロセスは特に負担が大きいとされています。実際には、アプリケーションのデータ管理コアが進化する最も難しく重要なコンポーネントの1つであると広く認識されています。鍵となる問題は、スキーマの進化がクエリやアプリケーションに与える影響です。ウィキペディアの「スキーマの進化」記事(2008年)に示されるように(MediaWikiの進化の分析を提供しています)、各進化ステップはスキーマに対して動作するクエリの最大70%に影響を与える可能性があり、その後手動で再作業する必要があります。
2008年には、データベースコミュニティにより12年以上にわたって緊急の問題として認識されていました。スキーマの進化をサポートすることは、スキーマのバージョン間の複雑なマッピングを含む難しい問題であり、ツールのサポートはこれまで非常に限られていました。スキーマの進化の背後にある核心問題であるマッピング構成とマッピング可逆性に関する近年の理論的進歩は、一般大衆にはほとんどアクセス不能です。特に時系列データベースが問題を感じています。
関連研究
スキーマの進化に関する豊富な文献は以下のURLに集約されています:http://se-pubs.dbs.uni-leipzig.de/pubs/results/taxonomy%3A100
UCLA大学はMediaWikiのスキーマの進化に関する分析を行いました:スキーマの進化ベンチマーク
PRISMは、滑らかな関係スキーマの進化をサポートするツール:Prism:スキーマの進化ツール
PRIMAは、スキーマの進化中のトランザクション時間データベースをサポートするツール:PRIMA:スキーマの進化中のトランザクション時間データベースをサポート
Parioとdeltasqlは、完全に自動化されたスキーマの進化を含むソフトウェア開発ツールの例です。