首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

資料庫核心術語 13 概念精解:從關係模型到完整性規則的理論基石

     編輯:關於SqlServer

關係模型三要素

  1. 關係模型:以二維表 (關係) 表示實體集,以外鍵表示實體間聯繫的資料模型。由多個關係模式組成。
  2. 關係模式:即記錄類型定義,包含 **模式名、屬性名、值域名、主鍵**。僅描述資料特性 (意向結構)。
  3. 關係實例:某一時刻的具體關係內容,即**一張填滿資料的二維表** (延伸結構)。

結構基本單位

  1. 屬性:關係模型中的**欄位**。
  2. 域:屬性允許的**取值範圍** (資料型別、長度、約束)。
  3. 元組:關係中的**一列記錄** (Row/Tuple)。

鍵與完整性核心

  1. 候選鍵:能唯一識別元組的**最小屬性集合**。
  2. 主鍵:使用者從候選鍵中選定的**唯一識別鍵** (Primary Key)。
  3. 外鍵:某關係的主鍵在另一關係中出現,建立**參照關係**。如 `SC.S#` 參照 `S.S#`。
  4. 實體完整性規則:主鍵屬性**不允許空值**,否則失去唯一識別能力。
  5. 參照完整性規則:外鍵值**必須為空值、或等於被參照關係的某個主鍵值** — 「不引用不存在的實體」。
    注意:(1) 外鍵與主鍵可異名、同域。(2) 可自參照。(3) 外鍵是否允許空視業務而定。

語言分類

  1. 過程性語言:必須指定 **「做什麼」與「怎麼做」** 的操作步驟。如 Pascal、C、Java、Python。
  2. 非過程性語言:僅指定 **「要什麼資訊」**,不指定操作步驟。各類關係查詢語言 (SQL、QBE、Quel) 均屬此類。優化器負責決定執行路徑。

圖解關係

關係模式 (Schema/Intension)
    │
    ├── 模式名: Student
    ├── 屬性: S#(PK), Name, Age, Dept#
    ├── 域: S#(CHAR(8)), Name(VARCHAR(20)), Age(INT), Dept#(CHAR(4))
    └── 主鍵: S#
          │
          ▼
關係實例 (Instance/Extension)  ← 某一時刻的具體資料
    ┌────┬──────┬─────┬──────┐
    │ S# │ Name │ Age │Dept# │
    ├────┼──────┼─────┼──────┤
    │001 │ Alice│ 20  │ CS   │  ← 元組
    │002 │ Bob  │ 21  │ EE   │
    └────┴──────┴─────┴──────┘
          ▲
          │
外鍵參照  │
    ┌─────┴──────┐
    │  Dept(Dept#, DName)  │  ← 被參照關係 (主鍵 Dept#)
    └────────────┘

結語

這 13 個術語構成關係資料庫理論的**骨架**。搞清 **模式 vs 實例、屬性 vs 域、元組 vs 記錄、候選/主/外鍵、兩大完整性規則、過程 vs 非過程語言**,才能在設計、開發、優化、溝通中不跑偏、不瞎聊。理論不死,實戰更靈。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved