關係模型

關係模型是Data Models帖子中列出的最流行的邏輯數據模型,它是SQL數據庫的基礎。

關係模型是最流行的邏輯數據模型,它是SQL數據庫的基礎。

關係模型基於兩個簡單的概念:

  • 桌子
  • 關係

關係模型的歷史可以追溯到1969年,埃德加·科德(Edgar F.Codd),一位英國計算機科學家。儘管作為計算機程序員,我們習慣於好奇地研究新事物,但50年來,在計算機的所有方面都處於核心地位的技術絕對值得研究。

該模型基於表的事實使其使用起來非常直觀,因為我們習慣於使用表來組織事物。例如,考慮一個Excel電子表格。

對於基於SQL的數據庫(例如PostgreSQL,Oracle,MySQL,SQLite和MS SQL Server等),可以使用關係模型對使用ER模型分析的數據進行建模,並幾乎立即將其轉換為SQL數據庫格式,從而可以被認為是關係模型的實際實現,但我們將在其他文章中討論這一點。

在這篇文章中,我想談談關係模型所基於的理論和概念,它們不是用數學術語表達的,而是在實踐中的含義。

如果您是學生,您可能會發現我在這裡寫的不是您教科書上寫的,但也許您可以更輕鬆地閱讀它,以掌握學習材料中表達的更正式的概念。

桌子

在關係模型中,桌子是項目的集合。

它按行和列進行組織:

姓名 年齡
弗拉維奧 36
羅傑 7
賽德 6

元組

表中的每個條目稱為元組。您也可以使用以下術語記錄或者

元組代表表的一行,如下所示:

弗拉維奧 36

屬性

屬性是元組中的一項。

在此示例中:

弗拉維奧 36

“ Flavio”是一個屬性。圖36是另一個屬性。

元組是唯一的

表格中的每個元組都是唯一的。

在關係模型中,我們不能有重複的數據,這意味著表中的每一行在至少一個屬性上必須不同。

關係鍵

確保元組唯一的是關係鍵

關鍵是必須具備的一種屬性唯一識別一個元組。

如果關係鍵是一組屬性,則必須為非冗餘。這意味著,如果我們刪除鍵的屬性之一,則鍵不能保證其唯一性。

如果可以確定一個以上的鍵,則這些鍵之一將被標識為首要的關鍵

密鑰完整性約束

他們必須在表中的任何元組的關鍵屬性永不為空,並且必須永不重複

給定一個鍵,我們必須能夠毫無歧義地指向一個特定的元組/行。

域約束

每個屬性都有關於它可以擁有什麼價值的規則

例如,如果我們決定存儲數字,則不能存儲字符串。並且我們可能決定不存儲長度超過10個字符的字符串作為名稱。

我們也可以稱之為類型

參照完整性約束

如果一個表包含對輔助表或同一表中其他元組的引用,則我們必須遵守防止引用中斷的規則。

特別是,我們必須避免通過以下方式破壞引用:

  • 避免在另一個表中刪除或編輯指向的記錄的主鍵。
  • 避免插入一個不存在的鍵指向另一個表中的新記錄。
  • 避免更改我們指向的記錄的鍵,而不必確保新鍵在另一個表中存在。

DBMS(數據庫管理系統)將採取措施來幫助我們實現參照完整性。


更多數據庫教程: