この記事は Google 翻訳を使用して処理されました
SQL Series
データベース学習 1 データベース入門: https://blog.yexca.net/ja/archives/86
データベース学習 2 リレーショナル モデル: 本文
データベースの学習 3 SQL言語: https://blog.yexca.net/ja/archives/88以下のはまだ翻訳しないので、中国語(簡体字)のリンクだよ
数据库学习四 关系数据库理论: https://blog.yexca.net/archives/89
数据库学习五 范式: https://blog.yexca.net/archives/90
数据库学习六 数据库设计: https://blog.yexca.net/archives/91
数据库学习七 数据库的控制功能: https://blog.yexca.net/archives/92
リレーショナルモデルの基本用語
リレーショナル データベース システムは、リレーショナル モデルをサポートするデータベース システムです。リレーショナル モデルに関連する基本的な用語は次のとおりです。
- リレーションシップ: リレーションシップは2次元テーブルであり、各リレーションシップにはリレーションシップ名があります。
- タプル: テーブル内の行はタプルであり、ストレージファイル内のレコード値に対応します。
- 属性: テーブル内の列は属性と呼ばれます。各列には属性名があり、属性値はレコード内のデータ項目またはフィールド値に相当します。
- ドメイン: 属性の値の範囲、つまり異なるタプル内の同じ属性の値の範囲
- リレーションシップモデル: リレーションシップの説明はリレーションシップモデルと呼ばれ、リレーションシップ名とその属性セットで構成されます。リレーションシップモデルの形式は次のとおりです:
リレーションシップ名(属性名 1,···,属性名 n)
通常、リレーショナルモデルはリレーショナルファイルの結果に対応する。
- 候補キー: タプルを一意に識別する値を持つ属性または属性の組み合わせ
- 主キー: 関係には複数の候補キーが存在する場合があり、そのうちの1つが主キーとして選択されます。
- 主属性: 候補コード に含まれる属性は主属性と呼ばれ、候補コード に含まれない属性は非主属性と呼ばれます。
- 外部キー: リレーション内の属性または属性グループがリレーションのキーではないが、別のリレーションのキーである場合、その属性または属性グループをリレーションの外部キーと呼びます。
- フルコード: リレーショナルスキーマのすべての属性グループは、このリレーショナルスキーマの候補コードであり、フルコードと呼ばれます。
- スーパーコード(スーパーキー):コードを含む属性のセットはスーパーコードと呼ばれます
関係モデルの定義
関係の記述はリレーショナルモデルと呼ばれ、正式には次のように表現されます: R(U, D, dom, F)
ここで、Rは関係名、Uは関係を構成する属性名のセット、Dは属性グループUの属性の由来となるドメイン、domは属性からドメインへのマッピングのセット、Fは属性データ間の依存関係のセット。
これは通常、R(U)またはR($A_1$, $A_2$, ···)と略記されます。ここで、Rは関係名、Uは属性名セット、$A_1$、···は個々の属性です。名前。
リレーショナル モデルは、リレーショナル データ構造、リレーショナル操作セット、リレーショナル整合性制約の 3 つの部分で構成されます。
リレーショナルデータ構造
リレーショナルモデルにおけるデータの論理的な関係は2次元のテーブルである
関係演算セット
リレーショナルモデルは関係を操作する機能を提供する
一般的なリレーショナル操作には、選択、投影、接続、除算、結合、積、差などのクエリ操作、および追加操作と削除操作が含まれます。
リレーショナル整合性制約
リレーショナル モデルの 3 つの整合性ルールは次のとおりです。
- エンティティの整合性: リレーションシップの主キーの値は空または部分的に空にすることはできません。つまり、主キーの属性、つまり主属性は空の値を取ることはできません。
- 参照整合性: リレーション $R_2$ の外部キーXがリレーション $R_1$ の主キーに対応する場合(基本リレーション $R_1$ と $R_2$ は必ずしも異なるリレーションではなく、同じリレーションである可能性があります)、次に、外部キー X の各値は、リレーション $R_1$ の主キーの値内に見つかる必要があります。見つからない場合は null になります。
- ユーザー定義の整合性: 特定のデータに対してユーザーが指定した制約の検証を指します。
関係代数演算子
オペレーター | シンボル | 意味 |
---|---|---|
集合演算子 | ∪–∩× | 連合違い交差点デカルト積 |
特殊な関係演算子 | σπ⋈÷ | 選ぶ投影接続分割 |
比較演算子 | >≥<≤=≠ | より大きいより大きいか等しい未満以下等しい等しくない |
論理演算子 | ¬∧∨ | 否及びまたは |
従来の集合計算
専門的な関係オペレーター
- 接続
θ 接続、等接続と自然接続
- θ 接続:接続条件が等しくない
- 等価接続:接続条件は等価です
- 自然接続: 重複するプロパティの等価接続を削除します。最もよく使用される接続計算。
- プロジェクター
投影計算は関係の垂直方向から計算を実行し、関係 R で新しい関係を構成するいくつかの属性列 A を抽出し、$π_A(R)$ を計算します。
- 选择
選択計算は関係の水平方向からの計算であり、関係 R の中から所定の条件を満たす要素を選択し、$σ_F(R)$ として計算します。
- 外部接続
外部接続計算は接続計算の拡張であり、接続計算によってメッセージが失われる可能性があります。
- 左外部接続: 左側関係関係のすべてと右側関係関係のいずれかの要素グループが一致しない要素グループを取り出し、右側関係関係からのすべての属性を空の null で埋めます。
- 外部接続: 右側関係系のすべてと左側関係系のいずれかの元組が一致しない元組を取り出し、左側関係系からのすべての属性を空の null で埋めます。 ※全外部接続:左外部接続と右外部接続の操作を完了します。
- 除法
シンボルからSQL言語へ
関係 R:
A | B | C |
---|---|---|
1 | 2 | 3 |
4 | 5 | 6 |
7 | 8 | 9 |
SQL言語への投影
$π_?(?)$
select ? from ?
$π_{A, B, C}(R)$ 或者 $π_{1, 2, 3}(R)$
select A, B, C from R
注:SQL 语言不サポート列 (プロパティ) の順序番号
選択からSQLへ
$π_?(σ_?(?))$
select ? from ? where ?
$π_{A, B, C}(σ_{B >= ‘5’}(R))$ 或者 $π_{1, 2, 3}(σ_{2 >= ‘5’}(R))$
select A, B, C from R where B >= '5'
# または
select A, B, C from R where B >= 5
デカルト積からSQLへ
$π_{R.A, R.B, R.C, S.A, S.B, S.D}(R×S)$
select R.A, R.B, R.C, S.A, S.B, S.D
from R, S
# 昇順で並べ替え
order by R.A asc
SQL言語への自然接続
関係 R(A, B, C) および S(B, C, D)
$π_{R.A, R.B, R.C, S.D}(σ_{R.B = S.B ∩ R.C = S.C}(R×S))$
select R.A, R.B, R.C, S.D
from R, S
where R.B = S.B and R.C = S.C