資料庫設計/關係資料模型
關係資料模型由 C. F. Codd 於 1970 年提出。目前,它是使用最廣泛的資料模型。
關係模型為以下方面提供了基礎:
- 關於資料/關係/約束理論的研究
- 大量資料庫設計方法
- 稱為結構化查詢語言 (SQL) 的標準資料庫訪問語言
- 幾乎所有現代商業資料庫管理系統
關係資料模型將世界描述為“相互關聯的關係(或表格)的集合”。
關係,也稱為表格或檔案,是域列表的笛卡爾積的子集,其特徵是名稱。表格中,每一行代表一組相關的數值。行,或記錄,也稱為元組。表格中的列是欄位,也稱為屬性。也可以這樣想:屬性用於定義記錄,而記錄包含一組屬性。
以下步驟概述了關係與其域之間的邏輯關係。
- 給定n 個域表示為 D1、D2、… Dn
- 並且r 是定義在這些域上的關係
- 則 r ⊆ D1×D2×…×Dn
資料庫由多個表格組成,每個表格儲存資料。圖 7.1 顯示了一個包含三個表格的資料庫。
圖 7.1. 包含三個表格的資料庫。
資料庫以有組織的方式儲存資訊或事實。理解如何使用資料庫並充分利用資料庫,需要我們瞭解這種組織方法。
主要的儲存單元稱為列、欄位或屬性。它們將資料的基本元件儲存起來,您的內容可以分解成這些基本元件。在決定建立哪些欄位時,您需要從通用角度考慮您的資訊,例如,找出您將在資料庫中儲存的資訊的通用元件,並避免區分各個專案的資訊的細節。
檢視圖 7.2 中的身份證示例,瞭解欄位與其資料之間的關係。
圖 7.2. A. Watt 的身份證示例。
域是用於建模資料的原子值集。原子值的意思是,域中的每個值在關係模型中都是不可分割的。例如
- 婚姻狀況域具有一組可能性:已婚、單身、離婚。
- 班次域包含所有可能的日期集:{週一、週二、週三…}。
- 薪資域包含所有大於 0 小於 200,000 的浮點數集。
- 姓氏域包含代表人名的字元字串集。
總之,域是一列允許包含的一組可接受值。這基於列的各種屬性和資料型別。我們將在另一章討論資料型別。
就像任何文件或專案的內容都需要分解成其組成的資料位才能儲存在欄位中一樣,它們之間的連結也需要可用,以便可以將它們重新組合成完整的形式。記錄允許我們做到這一點。記錄包含相關的欄位,例如客戶或員工。如前所述,元組是記錄的另一個術語。
記錄和欄位是所有資料庫的基礎。一個簡單的表格讓我們最清楚地瞭解記錄和欄位如何在資料庫儲存專案中協同工作。
圖 7.3. A. Watt 的簡單表格示例。
圖 7.3 中的簡單表格示例向我們展示了欄位如何儲存各種型別的資料。這個表格有
- 一個記錄 ID 欄位:這是一個序數;其資料型別是整數。
- 一個發表日期欄位:顯示為日/月/年;其資料型別是日期。
- 一個作者欄位:顯示為首字母縮寫. 姓氏;其資料型別是文字。
- 一個標題欄位文字:此處可以輸入自由文字。
您可以命令資料庫篩選其資料並以特定方式對其進行組織。例如,您可以要求根據日期限制記錄選擇:1. 所有早於給定日期的記錄,2. 所有晚於給定日期的記錄,或 3. 所有介於兩個給定日期之間的記錄。同樣,您也可以選擇按日期排序記錄。因為包含資料的欄位或記錄被設定為日期欄位,所以資料庫讀取日期欄位中的資訊不僅是數字用斜槓隔開,而是日期,這些日期必須根據日曆系統進行排序。
度是指表格中屬性的數目。在我們圖 7.3 中的示例中,度為 4。
- 表格有一個名稱,該名稱不同於資料庫中的所有其他表格。
- 沒有重複的行;每行都是唯一的。
- 列中的條目是原子的。表格不包含重複組或多值屬性。
- 列中的條目來自同一域,基於它們的資料型別,包括
- 數字(數值、整數、浮點數、小整數……)
- 字元(字串)
- 日期
- 邏輯(真或假)
- 不允許組合不同資料型別的操作。
- 每個屬性都有一個唯一的名稱。
- 列的順序無關緊要。
- 行的順序無關緊要。
- 原子值
- 域中的每個值在關係模型中都是不可分割的
- 屬性
- 資料庫中的主要儲存單元
- 列
- 參見屬性
- 度
- 表格中屬性的數目
- 域
- 用於建模資料的原子值集;一列允許包含的一組可接受值
- 欄位
- 參見屬性
- 檔案
- 參見關係
- 記錄
- 包含相關的欄位;參見元組
- 關係
- 一組域的笛卡爾積的子集,以名稱為特徵;表或檔案的專業術語
- 行
- 參見元組
- 結構化查詢語言 (SQL)
- 標準資料庫訪問語言
- 表
- 參見關係
- 元組
- 行或記錄的專業術語
本章中使用的幾個術語是同義詞。除了上面的關鍵術語外,請參閱下面的表 7.1。替代方案 1 列中的術語最常使用。
表 7.1. 術語及其同義詞,由 A. Watt 編寫。
使用表 7.2 回答問題 1-4。
- 使用正確的術語,識別和描述表 7.2 中的所有元件。
- 欄位 EmpJobCode 的可能域是什麼?
- 顯示了多少條記錄?
- 顯示了多少個屬性?
- 列出表的屬性。
表 7.2. 用於練習問題的表,由 A. Watt 編寫。
資料庫設計 (包括圖片,除非另有說明) 的這一章是 Nguyen Kim Anh 撰寫的 Relational Design Theory 的衍生作品,根據知識共享署名許可證 3.0 許可證授權
以下材料由 Adrienne Watt 撰寫
- 關於關係、表、列和度的部分全部或部分內容
- 關鍵詞
- 練習