E.F. Codd は、データを関係またはテーブルの形式でモデル化するリレーショナル モデルを提案しました。を使用してデータベースの概念モデルを設計した後、 ER図 、概念モデルを、任意の方法で実装できるリレーショナル モデルに変換する必要があります。 RDBMS Oracle SQL、MySQL などの言語です。そこで、リレーショナル モデルが何であるかを見ていきます。
リレーショナル モデルは、テーブルのコレクションを使用して、データとそれらのデータ間の関係の両方を表します。各テーブルには複数の列があり、各列には一意の名前が付いています。テーブルはリレーションとも呼ばれます。リレーショナル モデルは、レコードベースのモデルの一例です。レコードベースのモデルは、データベースがいくつかのタイプの固定形式のレコードで構造化されているため、このように名付けられました。各テーブルには、特定のタイプのレコードが含まれています。各レコード タイプは、固定数のフィールドまたは属性を定義します。テーブルの列は、レコード タイプの属性に対応します。リレーショナル データ モデルは最も広く使用されているデータ モデルであり、現在のデータベース システムの大部分はリレーショナル モデルに基づいています。
リレーショナル モデルとは何ですか?
リレーショナル モデルは、データがリレーショナル データベースにどのように格納されるかを表します。リレーショナル データベースはテーブルの集合で構成され、各テーブルには一意の名前が割り当てられます。表に示されている属性 ROLL_NO、NAME、ADDRESS、PHONE、および AGE を持つリレーション STUDENT について考えてみましょう。
テーブル学生
ROLL_NO | 名前 | 住所 | 電話 | 年 |
---|---|---|---|---|
1 | ラム | デリー | 9455123451 | 18 |
2 | ラメシュ | グルガオン | 9652431543 | 18 |
3 | スジット | ロータク | 9156253131 | 二十 |
4 | スレシュ | デリー | 18 |
b+ 木
重要な用語
- 属性: 属性はエンティティを定義するプロパティです。例えば。; ROLL_NO 、 名前、住所
- 関係スキーマ: 関係スキーマは関係の構造を定義し、関係の名前とその属性を表します。例えば。; STUDENT (ROLL_NO、NAME、ADDRESS、PHONE、および AGE) は、STUDENT のリレーション スキーマです。スキーマに複数の関係がある場合、それはリレーショナル スキーマと呼ばれます。
- タプル: リレーション内の各行はタプルとして知られています。上記のリレーションには 4 つのタプルが含まれており、そのうちの 1 つを次のように示します。
1 | ラム | デリー | 9455123451 | 18 |
- 関係インスタンス: 特定の時点におけるリレーションのタプルのセットは、リレーション インスタンスと呼ばれます。表 1 は、特定の時点における STUDENT のリレーション インスタンスを示しています。データベース内で挿入、削除、または更新が行われるたびに変更される可能性があります。
- 程度: 関係内の属性の数は、関係の次数として知られています。の 学生 上で定義された関係は次数 5 です。
- カーディナリティ: リレーション内のタプルの数は次のように知られています。 カーディナリティ 。の 学生 上記で定義された関係のカーディナリティは 4 です。
- カラム: 列は、特定の属性の値のセットを表します。コラム ROLL_NO リレーション STUDENT から抽出されます。
ROLL_NO |
---|
1 |
2 |
3 |
4 |
- NULL 値: 不明または使用できない値は NULL 値と呼ばれます。空白で表されます。例えば。; ROLL_NO 4 を持つ学生の PHONE は NULL です。
- 関係キー: これらは基本的に、行を一意に識別するために使用されるキーであり、テーブルの識別にも役立ちます。これらには以下の種類があります。
- 主キー
- 候補キー
- スーパーキー
- 外部キー
- 代替キー
- 複合キー
リレーショナル モデルの制約
リレーショナル モデルを設計する際、データベース内に存在するデータに対して保持する必要がある制約と呼ばれるいくつかの条件を定義します。これらの制約は、データベースで操作 (挿入、削除、更新) を実行する前にチェックされます。いずれかの制約に違反すると、操作は失敗します。
Javaのプログラム
ドメインの制約
これらは属性レベルの制約です。属性はドメイン範囲内にある値のみを取ることができます。例えば。; STUDENT リレーションに制約 AGE>0 が適用されている場合、AGE の負の値を挿入すると失敗します。
鍵の完全性
データベース内のすべてのリレーションには、タプルを一意に定義する属性セットが少なくとも 1 つ必要です。これらの属性のセットはキーと呼ばれます。例えば。; STUDENT の ROLL_NO がキーです。 2 人の生徒が同じロール番号を持つことはできません。したがって、キーには 2 つのプロパティがあります。
- すべてのタプルで一意である必要があります。
- NULL 値を含めることはできません。
参照整合性
リレーションの 1 つの属性が同じリレーションの別の属性または他のリレーションからのみ値を取得できる場合、それは と呼ばれます。 参照整合性 。 2 つの関係があるとします。
テーブル学生
ROLL_NO | 名前 | 住所 | 電話 | 年 | 支店コード |
---|---|---|---|---|---|
1 | ラム | デリー | 9455123451 | 18 | CS |
2 | ラメシュ | グルガオン | 9652431543 | 18 | CS |
3 | スジット | ロータク | 9156253131 | 二十 | ECE |
4 | スレシュ | デリー | 18 | それ |
テーブルブランチ
支店コード | 支店名 |
---|---|
CS | コンピュータサイエンス |
それ | 情報技術 |
ECE | エレクトロニクスおよび通信工学 |
履歴書 | 土木工学 |
STUDENT の BRANCH_CODE は、BRANCH の BRANCH_CODE に存在する値のみを取ることができます。これを参照整合性制約と呼びます。別の関係を参照している関係は REFERENCING RELATION (この場合は STUDENT) と呼ばれ、他の関係が参照している関係は REFERENCED RELATION (この場合は BRANCH) と呼ばれます。
UNIX と Windows
リレーショナル モデルの異常
アン 異常 異常または予期された状態または正常な状態から逸脱した何かです。データベースを設計するとき、挿入、更新、削除の 3 つのタイプの異常を特定します。
参照関係の挿入異常
参照元の属性の値が参照先の属性値に存在しない場合、REFERENCING RELATION に行を挿入することはできません。例えば。; BRANCH_CODE「ME」を持つ学生を STUDENT リレーションに挿入すると、BRANCH の BRANCH_CODE に「ME」が存在しないため、エラーが発生します。
参照された関係の削除/更新の異常:
REFERENCED ATTRIBUTE の値が REFERENCING ATTRIBUTE の値で使用されている場合、REFERENCED RELATION から行を削除または更新することはできません。例えば; BRANCH_CODE「CS」を持つBRANCHからタプルを削除しようとすると、「CS」はSTUDENTのBRANCH_CODEで参照されているためエラーになりますが、BRANCH_CODE CVを持つBRANCHから行を削除しようとすると削除されます値はリレーションの参照によって使用されていないためです。以下の方法で対応可能です。
C# チュートリアル
カスケード削除時
REFERENCING ATTRIBUTE で使用される値が REFERENCED RELATION から削除されると、REFERENCING RELATION からタプルが削除されます。例えば。;なぜなら、BRANCH_CODE ‘CS’ を持つ BRANCH から行を削除すると、BRANCH_CODE CS と STUDENT 関係にある行 (この場合は ROLL_NO 1 と 2) が削除されます。
更新カスケード時
REFERENCING ATTRIBUTE で使用される属性値が REFERENCED RELATION で更新されると、REFERENCING RELATION の REFERENCING ATTRIBUTE も更新されます。たとえば、BRANCH_CODE 'CS' を持つ BRANCH の行を 'CSE' に更新すると、BRANCH_CODE CS と STUDENT 関係にある行 (この場合 ROLL_NO 1 と 2) は BRANCH_CODE 'CSE' で更新されます。
スーパーキー
特定の関係において一意の行 (タプル) を識別できるようにする属性のセットは、スーパー キーとして知られています。これらのスーパー キーの中から、主キーとして使用できる適切なサブセットをいつでも選択できます。このようなキーは候補キーとして知られています。主キーとして使用されている 2 つ以上の属性の組み合わせがある場合、それを複合キーと呼びます。
リレーショナル モデルの Codd ルール
Edgar F Codd は、ルールを記述したリレーショナル データベース モデルを提案しました。現在、これらはコッドのルールとして知られています。データベースが完璧であるためには、ルールに従わなければなりません。
詳細については、を参照してください。 リレーショナル モデルの Codd ルール 。
リレーショナル モデルの利点
- 単純なモデル: リレーショナル モデルは他の言語に比べてシンプルで使いやすいです。
- フレキシブル: リレーショナル モデルは、存在する他のリレーショナル モデルよりも柔軟です。
- 安全な: リレーショナル モデルは、他のリレーショナル モデルよりも安全です。
- データの精度: リレーショナル データ モデルではデータがより正確になります。
- データの整合性: データの整合性はリレーショナル モデルで維持されます。
- 操作は簡単に適用できます。 リレーショナル モデルで操作を実行することをお勧めします。
リレーショナル モデルの欠点
- リレーショナル データベース モデルは、大規模なデータベースにはあまり適していません。
- 場合によっては、テーブル間の関係を見つけることが困難になることがあります。
- 構造が複雑なため、クエリの応答時間が長くなります。
リレーショナルモデルの特徴
- データはリレーションと呼ばれる行と列で表されます。
- データは、リレーショナル モデルと呼ばれるテーブル間の関係を持つテーブルに格納されます。
- リレーショナル モデルは、データ定義、データ操作、トランザクション管理などの操作をサポートします。
- 各列には個別の名前があり、属性を表します。
- 各行は 1 つのエンティティを表します。