関係データベース


関係データベースの制約条件:キー (1)

  • Name
    キー(Key)
    Type
    Description
    • データベースで条件を満たすタプルを検索したり、順序付けたりする際の基準となる属性です。
    1. 候補キー (Candidate Key): タプルを一意に識別するために使用される属性の部分集合 / 一意性と最小性を満たす必要があります。
    2. プライマリキー (Primary Key): 候補キーの中から特に選ばれた主キー(Main Key) / 重複は許されません。NULLの値を持つことはできません。
    3. 代替キー (Alternate Key): 候補キーが複数ある場合、主キー以外の残りの候補キー (サブキー)
    4. スーパーキー (Super Key): 一意性は満たすが、最小性は満たさないキー
    5. 外部キー (Foreign Key): 他のリレーションの主キーを参照する属性または属性の集合
관계형 데이터베이스의 제약 조건 중 키

関係データベースの制約条件:整合性 (2)

  • Name
    整合性
    Type
    Description
    • データベースに格納されたデータの値とそれが表す現実世界の実際の値が一致する正確性

    整合性の種類

    1. エンティティ整合性: プライマリキーは絶対に NULL や重複値を持つことはできません。
    2. 参照整合性: 存在しない外部キーの値を持つことはできません。
    3. ドメイン整合性: 与えられた属性値は定義されたドメインに属する値でなければなりません。
    4. キー整合性: 1 つ以上のキーが存在する必要があります。
  • Name
    データ整合性の強化
    Type
    Description
    • データ整合性はデータの品質に直接影響を与えるため、データ特性に適した適切な整合性を定義し強化する必要があります。
    • データ整合性はアプリケーション、データベーストリガー、制約条件を使用して強化することができます。 (データベーストリガーイベントに整合性条件を実行する手続き型 SQL を追加します。 / データベース制約条件を設定して整合性を維持します)
관계형 데이터베이스의 제약 조건 중 무결성

関係代数と関係解釈 (3)

  • Name
    関係代数
    Type
    Description
    • データベースから必要な情報を導出し、情報を検索するための手続き的な言語です。
    • 演算子と演算規則を提供します。
    • クエリに対する回答を得るために実行するべき演算の順序を指定します。
  • Name
    純粋な関係演算子
    Type
    Description
    1. SELECT(σ): 選択条件を満たすタプルの部分集合を取得し、新しいリレーションを生成する演算 / 水平演算とも呼ばれます。
    2. PROJECT: 与えられた属性リストから指定された属性値だけを抽出し、新しいリレーションを生成する演算(重複があれば除去) / 垂直演算とも呼ばれます。
    3. JOIN: 共通の属性を中心に2つのリレーションを結合して新しいリレーションを生成する演算
    4. DIVISION: Rの属性がSの属性値をすべて持つタプルから、Sが持つ属性を除いた属性だけを取得する演算
  • Name
    一般的な関係演算子
    Type
    Description
    • 一般的な集合演算子である和集合、積集合、差集合を処理するために結合条件を満たす必要があります。 (結合条件には属性の数が同じで、対応する属性ごとのドメインが同じである必要があります。)
    1. 和集合: タプルの和集合を取得し、生成されたリレーションから重複するタプルを削除する演算
    2. 積集合: 2つのリレーションに存在するタプルの積集合を取得する演算
    3. 差集合: 2つのリレーションに存在するタプルの差集合を取得する演算
    4. 直積: 2つのリレーションにあるタプルの順序対を取得する演算
  • Name
    関係解釈
    Type
    Description
    • 関係データの操作を表現する方法です。
    • 欲しい情報を定義するだけの非手続き的な性質を持ちます。
    • 欲しい情報を定義する際に計算式を使用します。

異常 / 関数従属性 (4)

  • Name
    異常(Anomaly)
    Type
    Description
    • テーブル内の一部の属性の依存関係によってデータの重複が発生し、その重複によってテーブルの操作に問題が発生する現象

    異常の種類

    1. 挿入異常(Insertion Anomaly)
    2. 削除異常(Deletion Anomaly)
    3. 更新異常(Update Anomaly)
  • Name
    挿入異常(Insertion Anomaly)
    Type
    Description
    • テーブルにデータを挿入する際、意図しない値によって挿入ができなくなる現象

    例えば、主キーが存在しない場所にはデータを挿入できない。

  • Name
    削除異常(Deletion Anomaly)
    Type
    Description
    • タプルを削除する際に意図しない値も同時に削除されることで連鎖的な削除問題が発生

    主キーでない、2つ以上のキーが存在するキーを使用してデータを削除する際、望ましいデータではなく2つ以上のキーのデータが一度に削除される(重複削除は情報損失)

  • Name
    更新異常(Update Anomaly)
    Type
    Description
    • テーブル内のタプルの属性値を更新する際、一部のタプルの情報だけが更新されて情報の不整合性が生じる現象
  • Name
    関数従属性 (Functional Dependency)
    Type
    Description
    • 関数従属性はデータの意味を表現するもので、現実世界を表現する制約条件であり、同時にデータベースで常に保持される必要のある条件です。

    データベースに学籍番号と名前がある場合、学籍番号 → 名前という関係が成り立つため、学籍番号は決定者、名前は従属者となります。

    1. 完全従属: 主キーに完全に従属している場合
    2. 部分従属: 主キーによって決定される場合
이상 / 함수적 종속