データベーススキーマとは何ですか?

NS データベーススキーマ データベース内のオブジェクトと情報の間の関係を説明するメタデータのコレクションです。 スキーマを想像する簡単な方法は、テーブル、ストアドプロシージャ、ビュー、および関連するデータアセットを保持するボックスと考えることです。 スキーマは、このボックスのインフラストラクチャを定義します。

データ資産コンテナ

基本的なレベルでは、スキーマはデータ資産のコンテナーとして機能します。 ただし、データベースベンダーが異なれば、スキーマの構造も異なります。 たとえば、Oracleはすべてのスキーマをユーザーアカウントとして扱います。 新しいスキーマを作成するために、データベース管理者は目的のスキーマ名で新しいデータベースユーザーを作成します。

スキーマが重要な理由

スキーマはデータベースの基本的な構造機能を構成するため、ほとんどのデータベース環境では、スキーマレベルでオブジェクトにアクセス許可が適用されます。

たとえば、会社のデータベースに一連のユーザーが含まれている場合があります。 各ユーザーにはスキーマが発生しますが、異なるスキーマへのアクセスは、ホームスキーマ外のユーザーに個別に、きめ細かい権限で付与されます。

ほとんどのデータベース管理ツールはスキーマをリストしません。 代わりに、データベースとユーザーを一覧表示します。

phpMyAdminで「編集権限」を選択します。

たとえば、ある会社がボブとジェーンのユーザーアカウント(スキーマ)を作成します。 また、HRやマーケティングなどの部門のアカウントも作成します。 次に、各部門のアナリストが部門のスキーマアカウントにアクセスできるようにします。

HRアナリストは、HRスキーマ内にテーブルとビューを作成し、従業員名と従業員ID番号をリストするHRテーブルを読み取る(書き込みはしない)ためのアクセスをボブに許可します。 また、HRアナリストは、従業員の電話番号を一覧表示するHRテーブルの読み取りと書き込みを行うためのJaneへのアクセスを許可する場合があります。

この方法でアクセスを許可することにより、適切な役割とユーザーのみが、より大きなデータベース内の自己完結型のデータ資産内のデータを読み取り、書き込み、または変更できます。

すべてのデータベースエンジンは、マルチユーザー環境でデータを分離するための基本的な方法としてスキーマを検討しています。

データベースエンジンが異なれば、ユーザーとスキーマの扱いも異なります。 データベースエンジンのドキュメントを参照して、 構文 ユーザー、スキーマ、およびアクセス許可の付与を取り巻くロジックモデル。

スキーマの作成

スキーマは、構造化照会言語(SQL)を使用して正式に定義されます。 たとえば、Oracleでは、スキーマを所有するユーザーアカウントを作成して、スキーマを作成します。

CREATE USER bob
temporary_passwordで識別
DEFAULTTABLESPACEの例
QUOTA 10MONの例
TEMPORARY TABLESPACE temp
QUOTA 5MONシステム
プロファイルapp_user
パスワードの有効期限;

他のユーザーは、ユーザー名によって、またはユーザーアカウントが追加された1つ以上のロールによって、新しいスキーマへのアクセスを許可されます。

スキーマと。 データモデル

データモデルのように、スキーマは本質的に何もするように構造化されていません。 代わりに、データベースでセグメンテーション権限をサポートするインフラストラクチャです。

データモデルは、特定のキーで結合されたテーブルとビューのコレクションです。 これらのデータ資産は、一緒になってビジネス目的に役立ちます。 データモデルをスキーマに適用することは許容されます。大規模で複雑なデータモデルの場合、それらをスキーマに関連付けると、スマートなデータベース管理が可能になります。 ただし、データモデルにスキーマを使用したり、データモデルをスキーマとして扱ったりする必要は論理的にはありません。

ストアのデータベーススキーマ。

たとえば、人事部門は、スキーマに従業員の業績評価のデータモデルを含めることができます。 これらのレビューのスキーマを作成する代わりに、データモデルを(他のデータとともに)HRスキーマに配置できます。 モデル)であり、データ内のオブジェクトのテーブル名とビュー名のプレフィックスによって論理的に区別されます。 モデル。

データモデルは、次のような非公式の名前を付ける可能性があります パフォーマンス・レビュー、その後、すべてのテーブルとビューの前に pr_. 従業員リストテーブルは、次のように参照される場合があります。 hr.pr_employeeパフォーマンスレビューのための新しいスキーマを必要とせずに。

よくある質問

  • データベーススキーマとデータベース状態の違いは何ですか?

    データベーススキームはデータベースを記述します。 データベースの状態とは、ある時点でのデータベースのコンテンツを指し、データベーススキーマの拡張と見なすことができます。

  • データベースのリレーショナルスキーマとは何ですか?

    リレーショナルスキーマは、相互に関連付けられているテーブルとアイテム間の関係の概要を示します。 スキーマは、グラフィックのイラストやチャートにすることも、SQLコードで記述することもできます。