公開日:2022年10月27日最終更新日: 2022年10月27日
組織で大量のデータを扱っているならば、データモデリングが必要となります。データモデリングは組織が保有する情報を集約したり管理方法を定義したりするプロセスです。
AWSを中心にシステムを構築しているならば、AWSを活用したデータモデリングができるため、今回はこちらについて解説します。
目次 <Contents>
AWSにおけるデータモデリングとは
最初にAWSにおけるデータモデリングとはどのような作業であるのかを簡単にご説明します。
データモデリングとは
データモデリングとは、データの用件を洗い出し、決められたスコープの中でデータモデルを作成する作業です。データモデルについては後ほどご説明しますが、事前に定義した形式に沿ってデータやとその関連性などを示したものです。
データモデル図やそこに書かれている情報を利用してデータの関係性を把握します。
データモデルを利用して情報の関係が明確になれば、大量のデータを活用しやすくなります。システムが肥大化してしまうとデータをうまく活用できないことがありますが、データモデリングによって最大限、活用できるようになるのです。
データモデリングが必要とされる理由
データモデリングが必要とされる理由は、どのようなデータが存在するのか把握するためです。企業や組織内には様々なシステムがあり、それぞれが大量のデータを保有しています。
しかし、それらの保有状況について人間が記憶して管理するのは現実的ではありません。そのため、データモデリングによってデータを可視化できるようにし、その内容を企業として活用していきます。
また、現状どのようなデータがどのように保有されているかを把握できると、今後のシステム設計などに活用できます。すでに存在するデータはうまく活用するのが理想的であり、「現状把握」にデータモデリングが利用されるのです。
データモデリングの種類
一般的にデータモデルは以下の3種類に分けられます。
- 概念データモデル
- 論理データモデル
- 物理データモデル
概念データモデル
概念データモデルは、基本的なエンティティと重要なエンティティに着目したデータモデルです。データの実装方法は考慮せず、現在のデータや構造をそのままモデル化したものだと考えましょう。
概念データモデルは、一般的なデータモデリングのルールに従ったものではなく、現実を図式で示したものです。そのため、AWSにおいてもデータモデリングサービスを利用するのではなく、RDSのデータ構造を図示するなどして実現します。
論理データモデル
概念データモデルよりも、詳細な情報が示されたデータモデルです。一般的には概念データモデルに「属性」を付与してデータを把握しやすくします。また、データベースとして適切な状況を維持するために、データの正規化を進めなければなりません。
属性の付与や正規化についてはいくつもの理論があります。そのため、どの手法が正しいとは言い切れず、AWSにおいても自己責任でのデータモデリングが求められています。
物理データモデル
実際に採用するデータベースを念頭において、どのようなデータを実装するか示したものです。データベース製品にはそれぞれ特徴があるため、それらの特徴を踏まえてデータモデルを作成します。データモデルの知識だけではなく、データベース製品に依存する知識も必要です。
基本的には上記でご説明した論理データモデルをベースに作成されます。大半は論理データモデル通りに作成されますが、製品の仕様として何かしら制約があると、その点をクリアできるように修正されます。
AWSにおけるデータモデリングのプロセス
AWSでデータモデリングを行う場合、どのようなプロセスになるのか4ステップに分けてご説明します。
1. RDSを利用したデータモデルの構築
まずはデータモデリングの対象となるデータを構築します。AWSでデータをモデリングするならば、RDSにデータを集約するのが理想的です。EC2にデータベースサーバー構築することも可能ですが、AWSの機能を最大限利用したいならばRDSを活用しましょう。
ただ、既存のシステムがAWSで構築されていれば良いですが、そうではない場合もあるはずです。この場合、データモデリングを整理するために、RDSにデータを格納しなければなりません。
2. エンティティやプロパティ・関係の特定
データモデル内のエンティティを洗い出し、データの全体像を把握します。また、データのプロパティや関係についても特定しておき、データモデリングの次のステップへと繋げなければなりません。
エンティティの洗い出しは、RDSなどAWSのサービスで確認が可能です。ただ、データの関連性などはデータベースの情報から把握することが難しいかもしれません。必要に応じてビジネス部門の担当者にヒアリングし、現場ではどのようにデータが利用されているのかを掴む必要があります。
3. データモデリング手法の決定
対象となるデータが決定すれば、データモデリング手法に沿ってデータモデリングを進めます。データモデリング手法にはいくつもの理論がありますが、例えば以下の手法が挙げられます。
- 階層型データモデリング
- グラフデータモデリング
- リレーショナルデータモデリング
- オブジェクト指向データモデリング
詳細なやり方については割愛しますが、これらのデータモデリング手法を利用して、データモデリングを進めなければなりません。なお、1回のデータモデリングで一つの手法だけにこだわる必要はありません。
例えば、RDSでリレーショナルデータベースを利用しているならば、リレーショナルデータモデリングを軸とし、必要に応じて違うデータモデリングを使用すれば良いのです。
4. データモデリングの実施
データモデリングの手法まで決定すれば、続いてはデータモデリングを実施します。RDSを直接操作することもあれば、データモデリングに適したサービスを利用することもある状況です。
今回はデータモデリングの実施に役立つサービスを2つご紹介します。
Amazon Neptune
Amazon NeptuneはAWSで提供されているデータベースサービスで、グラフDBと呼ばれるものに該当します。
ノードとエッジによってデータの関係性を示したもので、まさしくデータモデリングで求めれているものです。「エッジ」については一般的なリレーショナルデータベースには存在しない概念であるため、データモデリングのように関係性を示したい場合に役立ちます。
なお、Amazon Neptuneはあくまでもデータベースであり、データモデリングのためだけに提供されているわけではありません。ノードとエッジの表現に対応できることを踏まえ、自分自身でデータモデリングしたりデータを投入する必要があります。
AWSはマネージドサービスが中心ですが、Amazon Neptuneだけでデータモデリングが実現できるわけではなく準備が必要です。
AWS Amplify DataStore
AWS Amplify DataStoreはデータの読み書きや監視をするためのストレージリポジトリです。
データモデリングにおいてはいくつもの専門的な知識が必要ですが、AWS Amplify DataStoreにはデータを軸に必要なサービスが提供されています。データを操作する際に利用される言語についても習得する必要がなく、直感的に利用できるインターフェースでデータモデルの構築やデータの取得が可能です。
直感的に利用できるサービスであり、データモデリングの効率を高めてくれるものです。ただ、マネージドサービスであることから、実装できる内容には限界があります。
データモデリングには様々な手法があり、複雑な処理を要するものもあります。そのような難易度の高いものについては、AWS Amplify DataStoreでの対応が難しいかもしれません。
まとめ
AWSでのデータモデリングについて解説しました。
データモデリングはデータを整理したりデータ同士の関連性を示したりする作業です。大量のデータを漠然と保有していても意味がないため、データモデリングによりデータを整理します。
AWSにはデータモデリングに役立つサービスがありますが、マネージドサービスで提供されているわけではありません。データモデリングの知識を習得しつつ、サービスを選択してデータを処理していくようにしましょう。