データリポジトリ(Data Repository)とは、大量の電子的データを保存・共有するための情報基盤を指す言葉です。システム開発などのソフトウェアエンジニアリングの世界では、仕様やデザイン、ソースコード、テスト情報、インシデント情報など、システムの設計・開発に関するあらゆる情報を統合的に蓄積するために、データリポジトリを使います。コンピュータなどのハードウェアやソフトウェアで構築したITシステムのみを指す言葉として使われる以外に、運営体制や人的基盤などを含んだ広義の意味で使われることもあります。なお、リポジトリは「貯蔵庫」「収納庫」を意味する英単語です。
システムで発生する情報を一元管理
ソフトウェアエンジニアリングにおけるデータリポジトリという概念は、データディクショナリの発展形です。データディクショナリは、項目や形式、属性などの規定された形式に沿って、使用するデータや情報を登録し、企業内の情報資源を管理します。データディクショナリがデータの管理を主な目的とするのに対し、データリポジトリはシステム開発の各工程で発生する情報や成果物をメタ情報とともに管理することを目的としています。
例えば、データリポジトリでは開発や保守をはじめとするソフトウェアのライフサイクル全体を通して発生する 情報を一元管理できます。仕様、デザイン、ソースコード、テスト情報、インシデント情報といった、ソフトウェアのライフサイクルで発生するあらゆる情報や成果物を関連するメタ情報と結び付けて、データベースとしてリポジトリに蓄積・保存します。
チーム内やプロジェクト内、あるいは企業全体でそれらの情報を共有することで、同じ機能をもつコードの重複開発を排除したり、過去に開発した機能やソースコードの再利用を進めて効率的に開発したりできます。ソフトウェアを構成する多数のデータやプログラムのソースファイルをリポジトリに蓄積し、バージョンを管理することで、複数の開発者による修正内容の競合などを防いだり、どの時点でどんな修正が行われたのかという修正履歴を簡単に把握したりもできるようになります。
また、Linuxディストリビューションでは、パッケージ管理システムがインストールされているソフトウェアパッケージの情報をリポジトリに登録します。これによって、ユーザーがソフトウェアパッケージの格納位置やバージョン情報などを意識するリポジトリは各種CASEツールを統合することなく、新しいソフトウェアを導入したり、バージョンの更新をしたりす ることができるようになっています。
大量データを保存するものはすべてリポジトリ
ここまでは、ソフトウェアエンジニアリングの世界におけるデータリポジトリを説明してきました。ただ、それ以外にもメタ情報を付加する形で大量のデータを保存するものは幅広くデータリポジトリと呼ぶことが可能です。例えば、データウェアハウスやデータレイク、データマート、データキューブといったデータ分析や、レポーティングのためのデータベースもデータリポジトリと言えます。
それ以外に、分析・共有・レポート作成のためにデータセットを収集・管理・保存するデータリポジトリもあります。一方、大学や研究機関が主体となり、研究や教育成果を電子的に蓄積・保存する取り組みが進められています。これは「学術機関リポジトリ」と呼ばれているもので、まったく別のものとなります。