データベーススキーマとは何ですか?
データベーススキーマとは何ですか?
データベーススキーマは、データベース内のデータの編成方法を定義する論理構造です。リレーショナルデータベースと一部の非リレーショナルデータベースは、スキーマを使用してデータの構造、相互接続、および内部プロセスを記述します。データベーススキーマは、ユーザーのアクセシビリティ、スケーラビリティ、およびデータ整合性を高めるために、データの保存と整理に関する論理的なブループリントを提供します。
データベーススキーマにはどのようなメリットがありますか?
データベーススキーマは企業がデータをどのように整理するかを定義するため、データベーススキーマを使用することにはいくつかのメリットがあります。
組織を改善する
企業は情報を明確なデータ構造に整理することで、組織化を改善し、データセット間の関係を明確かつ一貫性のあるものにすることができます。スキーマを明確に定義すると、企業はデータベース管理システムをより簡単にスケールすることもできます。
データの完全性を強化する
企業がスキーマを使用してデータを保存する方法に関するルールを実装することで、複雑なストレージシステムであっても高いレベルの整合性を確保できます。一貫したルールを維持することで、データの有効性を確保し、コンプライアンス要件を満たすことができます。
アクセシビリティを高める
データベーススキーマにより、使用するデータ構造全体をさまざまな方法で確認できます。これらのさまざまなレベルを使用することで、技術的な知識がなくても、設計者、管理者、および利害関係者全員が構造について話し合うことができます。
データベーススキーマを設計する手順はどのようなものですか?
データベース管理システムで一般的に使用されるデータベーススキーマを設計するには、3 つのステップがあります。
1.概念データベーススキーマ
概念データベーススキーマの設計は、データベースの最高レベルのビューであり、細かい詳細を含めずにデータベースの全体像を把握できます。概念データベーススキーマの設計は、通常、手作業ですばやく描きます。
例えば、リレーショナルデータベースはデータをテーブルに格納し、各テーブルが一連の関連データを格納します。概念データベーススキーマは、製品テーブルとその属性、顧客テーブル、およびテーブル間の多対多リレーションシップを記述する場合があります。ただし、概念データベーススキーマには、データ型やアクセス制約などの、より詳細な実装の詳細が含まれない場合があります。
概念スキーマは、詳しく説明し過ぎずに、組織内のデータフロー全体を描くのに役立ちます。
2.論理データベーススキーマ
論理データベーススキーマの設計は、データベース内のデータがどのように構造化されているかの概要を示します。エンティティ間の関係を説明し、データの編成方法に関する詳細を示します。論理データベーススキーマの設計は、通常、デジタルデータモデリングの作業です。
データスキーマ内の各エンティティは、次のような情報に関連して定義されます。
- テーブル名
- エンティティ関係
- 属性名
- デフォルト値
- データ型
- セキュリティ制約
- プロシージャ
- ビュー
- インデックス
- メタデータ
完全な論理スキーマ設計により、新規および既存のデータに制約を設けることで、データの整合性と完全性が確保されます。
論理データベーススキーマには通常、技術的な要件は含まれません。
3.物理データベーススキーマ
物理データベーススキーマは、より広範なデータベース構造内のどこにデータがあるかを正確に記述します。ストレージに関する技術的な詳細、ファイルの場所の識別、特定のストレージ形式、および各テーブルがデータを保存するために使用するインデックス作成方法などが含まれます。物理スキーマの設計は通常、固定されたデータベースの技術設計パターンとユーザー仕様の組み合わせです。
物理スキーマはデータベーススキーマの中で最も概念的でない形式であり、データの場所に関する実際の洞察を提供します。データベースの初期化には、論理スキーマと物理スキーマが必要です。
データベーススキーマをモデル化する方法はどのようなものですか?
異なるビジネスニーズとデータタイプには、異なるタイプのデータベーススキーマスタイルが適しています。製品注文システムなどのオンライントランザクション処理 (OLTP) データベースは、エンティティリレーションシップスキーマモデリング手法を使用します。複雑なビジネスクエリなどのオンライン分析処理 (OLAP) データベースには、スタースキーマやスノーフレークスキーマなどの、異なるモデリング手法が必要になる場合があります。
ここでは、最も一般的なデータベーススキーマスタイルをいくつか紹介します。
エンティティリレーションシップ (ER) スキーマ
エンティティリレーションシップスキーマは、各エンティティをテーブルに割り当て、テーブル間の接続をマッピングします。E-R スキーマには、すべてのデータを 1 対 1、1 対多、多対多などの、複数のブリッジ関係があります。このタイプのリレーショナルデータベーススキーマは、テーブル、列、行を利用してデータシステムを構築し、それらをリレーションシップと制約によって接続します。
スタースキーマ
企業はスタースキーマを利用して、ファクトとディメンションという 2 つの基本原則に基づいて大規模なデータセットを管理および整理できます。スタースキーマのコンテキストでは、ファクトが構造の中心であり、測定に基づいたデータを提供します。このような中心のファクトの例には、トランザクション数、ウェブサイトのクリック数、総購入数などがあります。次に、ディメンションが、どの顧客が購入したか、どこで購入したか、どの製品を購入したかなどの、事実に関する追加情報を提供します。
スノーフレークスキーマ
スノーフレークスキーマは、スタースキーマと同様に、中央のファクトテーブルを使用し、それが複数のディメンションテーブルに接続します。ただし、スタースキーマとは異なり、スノーフレークスキーマのディメンションテーブルには、分岐するさまざまなデータベーステーブルが追加され、それらのディメンションに関する詳細が表示されます。スノーフレークスキーマの使用は、ディメンションとサブディメンションの数が多いデータに役立ちます。スタースキーマとスノーフレークスキーマはどちらもビジネスインテリジェンスでよく使用されます。どちらの方法でも、データベースユーザーはデータのビューを特定のビジネスディメンション別に整理できます。
階層スキーマ
階層データベーススキーマはツリーのような構造を採用していて、最上部にルートノードがあり、他のノードブランチに分岐しています。階層モデルでは、データの各「親」部分は複数の子ノードを持つことができますが、各子ノードが持つことができる親は 1 つのみです。例えば、階層モデルは会社から始めて、各部門に分岐し、さらに各部門の個々の従業員に分岐できます。
OLTP データベーススキーマの設計プロセスはどのようなものですか?
データベーススキーマを設計するプロセスは、データモデリングと呼ばれます。
OLTP システムのデータモデルを作成する主な手順は次のとおりです。
要件の収集
データベースを作成する前に、その目的を特定し、保存したいデータやデータベースの使用方法などの重要な情報の概要を記述する必要があります。最適なデータベースは、次の項目によって異なります。
- 使用する特定のデータ
- データベースを操作するために必要なクエリ
- 生成したいレポート
このステップでは、データベーススキーマの設計プロセスの指針になる目標の概要を示します。
エンティティ関係図の作成
エンティティ関係図 (ERD) は、データベース内のテーブル、データベースオブジェクト、および個々のエンティティがどのように接続されているかを示します。データベースの概念スキーマビューを作成すると、データベースの機能を視覚化し、保存されているデータを把握できます。
この段階で、テーブル、列、データベースオブジェクト、およびインデックスがデータベースで使用する命名規則を定義することもできます。規則は、データを入力するときに全員が標準的なアプローチをとるのに役立ちます。
テーブルへのデータエンティティの整理
ERD マップに基づいて、すべてのデータを特定のテーブルに整理できるようになりました。データベース構造内の各エンティティには、関連する属性を保持する個々の列を持つ独自のテーブルが必要です。特定のデータ値を簡単に識別して取得できるプライマリキーを定義します。
データ構造の正規化
正規化は、データの冗長性を減らし、データの完全性を向上させることを目的としたデータベーススキーマ設計のプロセスです。これには、データ間の関係が適切に構造化され、異常が最小限に抑えられるように、データをテーブルに整理することが含まれます。
いくつかの正規形があり、それぞれに特定の要件があります。連続する各正規形は、データ整合性を高め、スキーマをより堅牢にするために、異なる冗長性または依存関係タイプに対応します。
1NF
1NF では、各列にアトミック (割り切れない) 値が含まれ、各レコードが一意である必要があります。繰り返しグループと複数値フィールドが削除されます。
2NF
2NF は 1NF をベースに構築され、キー以外のすべての属性が完全にプライマリキー全体に機能的に依存するようにします (つまり、部分的な依存関係が排除されます)。
3NF
3NF は、すべての非キー属性はプライマリキーのみに依存し、他の非キー属性には依存しない必要があることを付け加えています (つまり、推移的な依存関係を削除します)。
セキュリティ対策の実施
権限構造を作成して、権限のあるユーザーのみがデータベースにアクセスし、データベースに含まれる情報を表示できるようにします。データベース内のさまざまなユーザーグループに、情報の読み取り、書き込み、削除などの個別の権限を割り当てることができます。これにより、機密データを安全に保つのに役立ちます。権限のあるユーザーのみが機密データを表示または変更できるようにロールベースのアクセス制御を定義します。
テスト
いくつかの基本的なクエリやその他のインタラクションを使用してデータベーススキーマの設計をテストすると、すべてが意図したとおりに機能することが確認されます。この段階でデータベースがどのように機能するかに関するデータを収集することで、スキーマが効果的でパフォーマンス上の問題がないようにするために必要な追加の変更がわかります。
データベーススキーマとデータベースインスタンスの違いは何ですか?
データベーススキーマとは、データベースの全体的な設計を指し、その構造、含まれる可能性のある内容、およびデータセット間の関係に関する情報を提供します。ただし、データスキーマはデータ編成のブループリントに過ぎず、スキーマにはデータが含まれていません。
データベースインスタンスは、データベーススキーマがいつでもデータを記述して保持するアクティブなセッションです。インスタンスは、新しいデータが追加、削除、または更新されるのに応じて、実際のデータ値が常に変化する場所です。データベーススキーマとは異なり、データベースインスタンスにはすべてのデータが含まれます。
データベーススキーマ変換とは何ですか?
データベーススキーマ変換は、既存のデータベーススキーマを新しい形式に適合させるプロセスです。これには、テーブル、列、インデックス、制約、またはテーブル間の関係の追加または変更が含まれる場合があります。
目標は、多くの場合、新しいアプリケーション要件のサポート、パフォーマンスの向上、または別のデータベースシステムへの移行です。スキーマ変換により、より効率的なデータ編成が可能になり、新しいシステムの機能をサポートできます。
データ移行では、ソースデータベースと宛先データベースに応じて、スキーマ変換が必要な場合と必要ない場合があります。
AWS はデータベーススキーマの要件をどのようにサポートできますか?
データモデリングのプロセスは通常、データベースの外部で行われます。モデルが作成されると、Amazon リレーショナルデータベースサービス (RDS) は標準 SQL によるスキーマの作成と管理をサポートします。Amazon RDS は、PostgreSQL、MySQL、Amazon Aurora などのマネージド型リレーショナルデータベース管理システムを提供します。
データベース移行については、AWS Database Migration Service (DMS) が、データベースと分析のワークロードを迅速かつ安全に、AWS に移行するのを支援するマネージド移行サービスです。移行中でもソースデータベースは完全に利用可能な状態に保たれ、データベースに依存するアプリケーションのダウンタイムは最小限に抑えられます。
AWS DMS の DMS スキーマ変換により、異なるタイプのデータベース間でのデータベース移行がより予測しやすくなります。ソースデータプロバイダーの移行の複雑さを評価して、データベーススキーマとコードオブジェクトを変換できます。次に、変換されたコードをターゲットデータベースに適用できます。
AWS DMS Schema Conversion の新しい生成 AI 機能により、最も時間のかかるスキーマ変換タスクの一部が自動化されます。この機能は、商用データベースのスキーマオブジェクトの最大 90% を PostgreSQL への移行環境に自動的に変換します。
AWS Schema Conversion Tool (SCT) を使用して、データベースエンジン間で既存のデータベーススキーマを変換することもできます。
今すぐ無料アカウントを作成して、AWS でのデータベーススキーマ変換を始めましょう。