ホームページ  >  記事  >  バックエンド開発  >  データベースとその関係を理解する

データベースとその関係を理解する

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-04 19:25:02691ブラウズ

1.データベースとは何ですか?
データベースは、電子的に保存されたデータの構造化されたコレクションであり、そのデータへの簡単なアクセス、管理、更新を容易にするように設計されています。これは、情報が表に整理され、必要なデータを効率的に取得できるようにするデジタル ファイリング システムと考えることができます。

Understanding Databases and Their Relationships

データベースの主要コンポーネント:

  1. データ: これは、名前、住所、取引の詳細などの生の情報を指します。
  2. テーブル: データベースは、行と列に編成されたスプレッドシートに似たテーブルで構成されます。各行はレコード (個々のエントリ) を表し、各列はフィールド (そのエントリに関する特定の情報) を表します。
  3. DBMS:データベース管理システム (MySQL、PostgreSQL、Oracle など) は、データベース内のデータを作成、読み取り、更新、削除するためのツールを提供します。

2.関係とは何ですか?
一般に、関係とは、2 つ以上のエンティティ間の接続または関連性を指します。データベースのコンテキストでは、リレーションシップは、あるテーブルのデータが別のテーブルのデータにどのように関係するかを定義します。これらの関係は、複数のテーブルにわたるデータの整理と構造化に不可欠であり、冗長性 (データの重複) を回避し、データの整合性を強化するのに役立ちます。

表記例:
Understanding Databases and Their Relationships

Understanding Databases and Their Relationships
3.データベース関係の種類
データベース関係は 2 つのテーブル間の定義された接続であり、あるテーブルのレコードが別のテーブルのレコードにどのように関連するかを指定します。データベース関係には主に 3 つのタイプがあります:

3.1 1 対 1 の関係
1 対 1 の関係では、テーブル A の各レコードはテーブル B の 1 つのレコードに対応し、その逆も同様です。このタイプのリレーションシップは、2 つのテーブルに同じエンティティに関する異なるタイプの情報が含まれている場合によく使用されます。

例: 各人はパスポートを 1 つだけ持ち、各パスポートは 1 人だけに割り当てられます。

スキーマ図:
Understanding Databases and Their Relationships
注目ポイント:

外部キーの配置: パスポートは個人に依存するため、PERSON テーブルのパスポート ID の代わりに PERSONID がパスポート テーブルに含まれます。人が存在すればパスポートも存在します。プロフィールはユーザーなしでは意味がありません。依存関係のあるテーブルには外部キーが含まれています。
関係の方向: データベース関係図の矢印は、どのテーブルに他方を参照する外部キーが含まれているかを示します。データベース スキーマ内の 1 対 1 の関係を読み取る場合、多くの場合、外部キー (FK) 側から開始すると、より明確なコンテキストが提供されます。
テーブル表現
Understanding Databases and Their Relationships
Golang 構造体の詳細

Understanding Databases and Their Relationships

3.2 1 対多の関係

1 対多の関係は、1 つのテーブル (「1」側) の 1 つのレコードが別のテーブル (「多」側) の複数のレコードに関連付けられる場合に発生します。ただし、「多くの」テーブルの各レコードは、「1 つの」テーブルの 1 つのレコードにのみリンクされます。

例: 1 人のユーザーが複数の投稿を作成できます。各投稿は単一のユーザーを参照し、Users テーブルと Posts テーブルの間に 1 対多の関係を確立します。
スキーマ図
Understanding Databases and Their Relationships
特徴:

  1. 単一エンティティ: 「1」側は単一エンティティを表します。
  2. 複数の関連付け: 「多」側は、その単一のエンティティに関連付けられた複数のエンティティで構成されます。
  3. 外部キー: 「多数の」テーブルには、「1 つの」テーブルの主キーを参照する外部キーが含まれています。 テーブル表現 Understanding Databases and Their Relationships GoLang 構造体 Understanding Databases and Their Relationships 3.3 多対多の関係

多対多のリレーションシップでは、1 つのテーブル内の複数のレコードを別のテーブル内の複数のレコードに関連付けることができます。この関係は通常、両方のテーブルの主キーを参照する外部キーを保持するジャンクション (または結合) テーブルを使用して実装されます。
スキーマ図
Understanding Databases and Their Relationships

ジャンクション テーブルを使用しない例:

Understanding Databases and Their Relationships

ジャンクション テーブルを使用しない場合の欠点

  1. データの冗長性 複数の行にわたってデータを複製する必要がある場合、不整合が発生し、ストレージ要件が増加します。
  2. 柔軟性の制限: ジャンクション テーブルを使用しないと、リレーションシップ自体に関する追加属性 (タイムスタンプやステータスなど) を保存する機能が制限され、クエリが複雑になり、データ モデルの豊富さが低下します。

ジャンクション テーブルを使用する利点:
Understanding Databases and Their Relationships

  1. 冗長性の削減: ユーザー テーブルとロール テーブルには冗長性がありません。各ユーザーと各ロールは 1 回だけ保存されます。
  2. 明確で管理可能な関係: ジャンクション テーブルは、多対多の関係を混乱なく明確に定義します。これにより、ユーザーの役割を追加または削除するプロセスが簡素化されます。 GoLang 構造体表現

Understanding Databases and Their Relationships

いつ、なぜテーブル

Understanding Databases and Their Relationships

以上がデータベースとその関係を理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。