データベース設計は、線やボックスを描くだけではありません。この記事では、ベストプラクティスに重点を置いたデータモデリングのプロセスと、ツールを使用してそれらのベストプラクティスを実装し、優れたデータベース設計を作成する方法について考察します。
データベース設計は、データベースの詳細なモデルを作成するプロセスです。データベースモデリングの開始には、事業領域と開発中の機能を把握することが含まれます。
データベース設計プロセスに含まれるステップについて少し確信が持てない場合は、データベース設計ステップのこの説明を参照してください。
モデリングの開始:ビジネスと話し合う
これは情報技術の重要な原則です。必要なデータが利用できるように、データ側からビジネス上の問題を解決しています。ビジネスマンと話し合って、彼らのニーズを理解する必要があります。
次のような質問をする必要があります:
- 「ドメインとは何ですか?」
- 「このドメインの課題は何ですか?」
- 「解決すべき問題は何ですか?」
- 「どのような情報を保持する必要がありますか?」
ビジネスと話をすることで、データベースモデルに影響を与える可能性のあるトレードオフを検討できます。また、モデリングの基盤を築きます。
具体的な例を見てみましょう。会社の会計アプリケーションを考えてみましょう。顧客、サプライヤー、請求書、支払い、勘定科目、残高などをモデル化する必要があります。これらの概念と会計について学ぶ必要があります。これは、話すによってのみ行うことができます ビジネスマンに。
コンセプトを整理する
このビジネスでの最初の作業は、データベースに保存する必要のある「概念」のモデルにつながります(さまざまなレベルのモデルのこの説明を読んでください)。データベースに格納する必要があるものの概念、つまり概念モデルから、論理モデルに移行します。論理モデルは、詳細を重ねるビジネスの概念とルールを文書化します(論理データモデリングが廃止されているかどうかについては、この説明を読むことをお勧めします)。
さまざまなタイプのデータモデルについて不明な点がある場合は、Vertabeloを使用して概念的、論理的、および物理的なデータモデルを実装する方法に関する記事を参照してください。
論理データモデルは、すでに文書化した概念にさらに情報を追加します。データがどのように構造化され、エンティティが互いにどのように関連しているかを説明します。さらに、管理しているデータの種類に関する情報も含まれています。
Vertabeloでは、論理実体関連図(ERD)を使用して論理データモデルを作成できます。 Vertabeloを使用して論理データモデリングを実行する方法の詳細を確認してください。
これは、顧客、サプライヤー、請求書、支払い、およびアカウントの単純でまだ完全ではない論理データモデルです。
Vertabeloを使用することで得られるもう1つの利点は、正確な表記についてあまり心配する必要がないことです。モデリングツールを使用すると、実体関連図(ERD)の表記や記号の詳細ではなく、設計について心配することができます。これは、明らかに、データベース設計プロセス中の懸念事項の中で最も少ないはずです。
体を動かそう
データベースを実際に操作するには、論理モデルから物理モデルに移行する必要があります。 Vertabeloツールを使用すると、論理モデルから物理データモデルを簡単に生成できます。最初に論理データモデルを作成してから、「自動魔法のように」できます。 「論理モデルを選択し、「物理データモデルの生成」をクリックして物理モデルを生成します(正確な手順については、この詳細ガイドを参照してください)。
明らかに、生成された物理データモデルは論理モデルに似ています。ただし、論理データ型は、物理モデルを生成する特定のデータベース管理システム(DBMS)で許可されているデータ型に変換されます。物理モデルは、どの属性がテーブル間の外部キーであるかも示します。インデックスやビューなど、データベースの物理的側面に関連する追加のモデリングを実行することもできます。
さらに、物理データモデルを直接作成することもできます。最初に論理的なものを作成する必要はありません。物理モデルに直接移行することは、ビジネスドメインがより明確に定義されている、より小規模でより方向性のあるモデリングアクティビティに適しています。物理データベースのモデリングプロセスは単純であり、それほど多くの課題を提示するべきではありません。論理データモデルがあると、大規模なプロジェクトに役立ちますが、少なくとも物理モデルがある方が、まったくないよりはましです。
データベース設計の進化
開発者は一般に、データベースモデルは実際のコードを中心に展開する必要があると考えていますが、データモデラーは、コードは比較的静的なデータモデルに基づいて作成する必要があると考えています。今日のデータモデリングは協調的である必要があります 。コードとデータモデルは相互に影響を及ぼします。
したがって、協調的なデータベース設計プロセスとモデリングをサポートするツールが必要です。データモデラーは、ビジネスと協力して概念設計を作成するだけでなく、開発サイクル中に協力して、必要に応じて論理データモデルと物理データモデルを更新する必要があります。モデラーと開発者は、システムのビジネス要件と非機能要件を実際にサポートするまで、モデルを適応させる必要があります。
明らかに、変更は間違いにつながる可能性があります。繰り返しになりますが、ツールがあると役立ちます。データモデルを常に検証するツールは非常に貴重です。 Vertabeloには、論理データモデルと物理データモデルの両方に対する組み込みのライブオンライン検証があり、実装中ではなくモデリング中に問題が検出されます。また、エラーは、共同作業を行うすべての人に表示されたままになります。また、必要に応じて検証設定を調整できます。これは、いくつかのエラーと警告がある不完全なデータモデルの例です。
会計の例に戻ると、開発中に、請求書や支払いにユーロやドルなどの単一の通貨をモデル化するだけでは不十分であることに気付くかもしれません。むしろ、金額をそれぞれの通貨で保管し、会社の簿記が保持されている「基本」通貨に変換する必要があります。また、過去に通貨の換算に使用された為替レートとレートの履歴情報が必要になる場合があります。
これは、Vertabeloのような共同データベースモデリングツールが実際にその価値を証明する場所です。コラボレーションモデリングにVertabeloを使用する方法の詳細については、こちらをご覧ください。クリックしてモデルをチームメンバーと共有するだけです。
物理的な実装
物理モデルの最初のバージョンを入手したら、実際のデータベースでの作業を開始したいと思うでしょう。そのために、Vertabeloはデータベースを作成するためのSQL DDL(データ定義言語)スクリプトを生成します。データベースを作成するSQLスクリプトを生成する方法については、オンラインナレッジベースの記事に記載されているため、ここではすべての詳細を記述しません。
経験からお話ししましょう–これはとても歓迎すべき機能です。さまざまなデータベースSQLDDL構文の気まぐれに対処する必要がなくなり、設計に集中することができます。 。
バージョン管理
さて、上で書いたように、データベースの設計中、ソフトウェア開発中、またはその後のデータベースの実際の使用中など、モデルは進化します。 Vertabeloには2つの優れた機能がありますので、ご承知おきください。
まず、Vertabeloにはバージョン管理が含まれています。データモデルの変更を追跡してバージョンを管理できるため、必要に応じて「時間を戻して」以前のバージョンにロールバックするのは簡単です。規律がある場合は、データベースのドラフトであろうと実際のリリースであろうと、正確な名前でさまざまなバージョンにタグを付けることができます。
データベースモデリング中に長年夢見てきたもう1つの機能は、Vertabeloツールが自動的に機能する機能です。 データモデルのバージョン間で移行スクリプトを生成します。移行スクリプトを手動で繰り返し修正しなければならなかった回数のカウントを失いました。これは、オンライン調査用に2つのバージョンのデータベース間で移行スクリプトを生成する例です。
データモデラーにとって、バージョンを効率的に管理し、バージョン間の変更の影響を把握するツールを手に入れることは、なんとすばらしいことでしょう。
大型モデル
まず、正直に言いましょう。私は常に大きなモデルを扱っているわけではありませんが、時々それらを作成する必要があります。ここでも、Vertabeloはモデルを整理するためのソリューションを提供します。
テーブルをサブジェクトエリアで視覚的にグループ化できます。その方法を知りたい場合は、Vertabeloでの大規模なデータモデルの管理に関するビデオもご覧ください。
この手法は、SQLDDLスクリプトからデータモデルにリバースエンジニアリングする場合にも使用できます。
データベース設計の開始
データベース設計のベストプラクティスをお探しの場合は、この記事をご覧になることをお勧めします。データベース設計を改善するためのヒントについては、この記事を参照する必要があります。また、データベース設計にVertabeloを使い始める方法については、こちらをご覧ください。