目次
リレーショナル データベースの典型的なデータ構造はデータ テーブルであり、これらのデータ テーブルの構成は構造化されています (構造化)。
データをテーブルに配置し、そのテーブルをライブラリに配置します。
データベースには複数のテーブルが存在することがあり、各テーブルにはそれ自体を識別するための名前があります。テーブル名は一意です。
テーブルには、Java や Python の「クラス」の設計と同様に、データをテーブルに格納する方法を定義するプロパティがあります。
1.1 テーブル、レコード、フィールド
ER (エンティティ-リレーションシップ、エンティティ-リレーションシップ) モデルには、エンティティ セット、属性、およびリレーションシップ セットという 3 つの主要な概念があります。
エンティティ セット (クラス) はデータベース内のテーブル (テーブル) に対応し、エンティティ (インスタンス) はデータベース テーブル内の行 (行) に対応し、レコード (レコード) とも呼ばれます。属性 (attribute) はデータベース テーブルの列 (column) に対応し、フィールド (field) とも呼ばれます。
ORM の考え方 (オブジェクト リレーショナル マッピング) は次のことを具体化します。
データベース内のテーブル <----> Java または Python のクラス。
テーブル内のデータ <---> クラス内のオブジェクト (またはエンティティ)。
テーブル内の列 <----> クラス内のフィールド、プロパティ (フィールド)。
1.2 テーブル間の関係
テーブルとテーブル間のデータ レコードの間には関係があります。現実世界のさまざまなエンティティとエンティティ間のさまざまなリンクは、リレーショナル モデルによって表現されます。
1 対 1 の関連付け、1 対多の関連付け、多対多の関連付け、自己参照の 4 つのタイプ。
1.2.1 1対1の関連付け(1対1)
1対1をテーブルとして作成できるため、実際の開発でのアプリケーションはそれほど多くありません。
例:
学生テーブルのデザイン: 学生番号、名前、携帯電話番号、クラス、学部、ID 番号、自宅の住所、所属機関、緊急連絡先...
2 つのテーブルに分割: 2 つのテーブルのレコードは、学生番号を共有するなど、1 対 1 の対応関係を持ちます。
基本情報表(共通利用情報):学籍番号、氏名、携帯電話番号、クラス、学科
ファイル情報フォーム(一般的に使用されない情報): 学生番号、ID 番号、自宅住所、出身地、緊急連絡先など。
テーブル作成の 2 つの原則:
一意の外部キー: メイン テーブルの主キーとセカンダリ テーブルの外部キー (一意) は主キーと外部キーの関係を形成し、外部キーは一意です。
外部キーは主キーです。主テーブルの主キーと副テーブルの主キーは、主キーと外部キーの関係を形成します。
1.2.2 1 対多の関係
一般的なシナリオ例: 顧客テーブルと注文テーブル、カテゴリ テーブルと商品テーブル、部門テーブルと従業員テーブル。
例:
従業員テーブル: 番号、名前、...、部門
部門テーブル:番号、名前、紹介
1 対多のテーブル作成の原則:スレーブ テーブル (マルチパーティ) にフィールドを作成し、そのフィールドはメイン テーブル (1 パーティ) の主キーを指す外部キーとして機能します。
1.2.3 多対多
多対多の関係を表すには、多対多の関係を 2 つの 1 対多の関係に分割する、結合テーブルと呼ばれる 3 番目のテーブルを作成する必要があります。両方のテーブルの主キーを 3 番目のテーブルに挿入します。
例: 学生コース
学生情報表:学生の情報(学籍番号、名前、携帯電話番号、クラス、学科など)を1行で表します。
コース情報テーブル: 1 行がコースの情報 (コース番号、教師、紹介...) を表します。
コース選択情報フォーム: 1 人の学生が複数のコースを選択することも、複数の学生が 1 つのコースを選択することもできます
多対多の関係テーブルの構築原則:
中央のテーブルに少なくとも 2 つのフィールドを含む 3 番目のテーブルを作成する必要があります。これらの 2 つのフィールドは、各パーティの主キーを指す外部キーとして使用されます。
1.2.4 自己参照