sql >> データベース >  >> RDS >> Database

リレーショナルモデル

    リレーショナルモデルは、最も人気のあるロジックデータモデルであり、SQLデータベースに基づいています。

    リレーショナルモデル 2つの単純な概念に基づいています:

    • テーブル
    • 関係

    リレーショナルモデルは1969年にさかのぼり、英国のコンピューター科学者であるエドガーF.コッドの作品にまでさかのぼります。コンピュータープログラマーとして、私たちは新しい光沢のあるものに好奇心を持って目を向けていますが、50年間、コンピューターに関するすべての中心となることができるテクノロジーは、間違いなく研究する価値があります。

    モデルがテーブルに基づいているという事実は、テーブルを使用して物事を整理することに慣れているため、非常に直感的に使用できます。たとえば、Excelスプレッドシートについて考えてみてください。

    PostgreSQL、Oracle、MySQL、SQLite、MS SQL ServerなどのSQLベースのデータベースでは、ERモデルを使用して分析されたデータは、リレーショナルモデルを使用してモデル化でき、ほぼ即座にSQLデータベース形式に変換できます。リレーショナルモデルの実際の実装と見なされますが、これについては他の投稿で説明します。

    この投稿では、リレーショナルモデルの基礎となる理論と概念について説明します。数学的な用語ではなく、実際の意味を説明します。

    学生の場合、私がここに書いているのは教科書に書かれていることではないことに気付くかもしれませんが、学習資料で表現されているより正式な概念を理解するために、もっと簡単に読むことができるかもしれません。

    テーブル

    リレーショナルモデルでは、テーブル アイテムのコレクションです。

    行と列で構成されています:

    名前 年齢
    フラビオ 36
    ロジャー 7
    Syd 6
    タプル

    テーブルの各エントリは、タプルと呼ばれます。 。 記録という用語を使用することもできます または

    タプルは、次のようにテーブルの行を表します。

    フラビオ 36
    属性

    属性は、タプル内の1つのアイテムです。

    この例では:

    フラビオ 36

    「フラビオ」は属性です。 36は別の属性です。

    タプルはユニークです

    テーブル内のすべてのタプルは一意です。

    リレーショナルモデルでは、データを重複させることはできません。つまり、テーブルのすべての行は、少なくとも1つの属性で異なっている必要があります。

    リレーションキー

    タプルが一意であることを保証するのは、関係キーです。 。

    重要なのは、一意に識別する必要がある1つの属性です。 タプル。

    リレーションキーが属性のセットである場合は、非冗長である必要があります 。つまり、キーの属性の1つを削除すると、キーはその一意性を保証できなくなります。

    複数のキーを判別できる場合、それらのキーの1つが主キーとして識別されます。 。

    キー整合性制約

    テーブル内のタプルのキー属性は、nullであってはなりません繰り返さないでください

    キーが与えられると、あいまいさなしに特定のタプル/行を指すことができなければなりません。

    ドメインの制約

    すべての属性には、保持できる値に関するルールがあります。 。

    たとえば、数値を保存することにした場合、文字列を保存することはできません。また、名前に10文字を超える文字列を保存しないことを決定する場合があります。

    これをタイプと呼ぶこともできます 。

    参照整合性の制約

    テーブルにセカンダリテーブルへの参照、または同じテーブル内の他のタプルが含まれている場合は、参照が壊れないようにするルールに従う必要があります。

    特に、次の方法で参照を壊さないようにする必要があります。

    • 他のテーブルで、ポイントするレコードの主キーの削除または編集を回避します。
    • 他のテーブルで指すために、存在しないキーを使用して新しいレコードを挿入することは避けてください。
    • 新しいキーが他のテーブルに存在することを確認せずに、ポイントするレコードのキーを変更しないでください。

    DBMS(データベース管理システム)は、参照整合性の実装を支援する手段を実装します。


    1. シーケンス番号mysqlで列を更新する

    2. 削除列が存在しません

    3. サードパーティのクラウド上のOracleRAC

    4. JSON_UNQUOTE()–MySQLのJSONドキュメントから引用符を削除します