關聯式資料庫 定義資料庫表之間的關係

2022-07-22 02:24:13 字數 1920 閱讀 7264

關係型別

你和家人有很多關係。例如,你和你母親是親戚。你只有乙個母親,但她可能有幾個孩子。你和你的兄弟姐妹是親戚——你可能有很多兄弟姐妹,當然,他們也會有很多兄弟姐妹。如果你結婚了,你和你的配偶都有配偶——彼此——但一次只有乙個。資料庫關係非常相似,因為它們是表之間的關聯。關係有三種型別:

建立關係

當您開始建立相關表之間的關係時,您可能已經非常熟悉這些資料了。因此,此時的關聯比開始時更明顯。資料庫系統依賴於在兩個表中找到的匹配值來形成關係。找到匹配項後,系統將從兩個表中提取資料以建立虛擬記錄。例如,您可能希望檢視特定作者編寫的所有書籍。在這種情況下,系統將匹配圖書和作者表之間的值。重要的是要記住,大多數情況下,生成的記錄是動態的,這意味著對虛擬記錄所做的任何更改通常都將返回到底層表。

這些匹配值是主鍵和外鍵值。(關係模型不要求關係基於主鍵。您可以使用表中的任何候選鍵,但使用主鍵是公認的標準。)您在第2部分中了解了主鍵—主鍵唯一標識表中的每個記錄。a

外來鍵簡單地說,就是乙個表在另乙個表中的主鍵。因此,您沒有什麼可做的—只需將主鍵字段作為外來鍵新增到相關表中即可。

唯一需要考慮的是外來鍵字段必須與主鍵具有相同的資料型別。某些系統允許此規則的乙個例外,並且允許數字與自動編號字段之間的關係(例如sql server中身份訪問中的自動編號)。此外,外鍵值可以為null,儘管建議您在沒有非常具體的原因的情況下不要將外來鍵保留為null。您可能永遠不會使用需要此功能的資料庫。

返回到您的示例表,並根據需要開始輸入外來鍵。(繼續使用紙面列表—在資料庫系統中實際建立表還為時過早。在紙上改正錯誤要容易得多。)請記住,您要將主鍵值新增到相關表中。簡單地回憶一下實體之間的關係,剩下的就容易了:

這個特定步驟不是用石頭寫的,您可能會發現在規範化過程中新增外來鍵更容易。將字段移動到新錶時,可能會將新錶的主鍵作為外來鍵新增到原始表中。但是,在繼續規範化剩餘資料時,外來鍵通常會發生更改。您可能會發現,在所有表完全規範化之後,一次完成所有這些任務更有效。

讓我們從books表開始,一次遍歷每個表,此時該錶只有三個字段。具體而言,將「作者」、「類別」和「發布者」表中的主鍵新增到圖書中。完成後,「帳簿」表有七個字段:

書標題(主鍵)

國際標準書號(主鍵)

**名作者。名字多對多

作者。姓多對多

類別( fk )類別。類別多對多

出版社。出版商一對多

請記住,authors表中的主鍵是基於名字和姓氏欄位的複雜鍵。因此,必須將這兩個字段新增到「帳簿」表中。請注意,外來鍵欄位名稱包含fk字尾。新增字尾提高了可讀性,並且是自文件化的。如果以外鍵的名稱標識外來鍵,您可能會發現跟蹤外來鍵更容易。如果主鍵和外來鍵的名稱不同,也沒關係。

存在三種關係:書籍與作者、書籍與類別和書籍與出版商。您可能不太清楚的是其中兩種關係的問題:

這兩種關係表示多對多關係。前面我們已經告訴過您,表不能直接適應這些關係,需要第三個鏈結表。(圖書與出版商之間的關係是一對多的關係,就像目前所說的那樣。) )

新發現的兩種多對多關係都需要乙個鏈結表,其中包含每個表中的主鍵作為外來鍵。新的鏈結資料表為:

圖書作者

書名。標題一對多

書。一對多

名作者。名字一對多

作者。姓氏一對多

圖書分類

書名。標題一對多

書。一對多

類別( fk )類別。一對多類別

不需要更改「類別」、「作者」或「發布者」表。但是,必須從帳簿中刪除名為fk、lastnamefk和categoryfk的外來鍵:圖一在此過程結束時,顯示示例圖書資料庫的圖形表示。很難想象乙個簡單的資料表可以分成九個。

圖一原始表現在需要九個表。

由於示例的簡單性,您可能想知道這種關係業務如何幫助您。看起來您仍然以外鍵的形式儲存冗餘資料,只是不同而已。那是因為我們的表現在只有幾個字段。試著想象一張有十幾個欄位的桌子。當然,您仍然必須將該錶的主鍵儲存為相關表中的外鍵值,但這最多可能構成乙個或兩個額外字段。與為每個記錄新增該表中的所有十幾個條目的替代方案相比。

mysql資料庫表關係 資料庫 表關係

上節回顧 1.建表語法 注意點 2.資料型別 今日內容 1.表之間的關係 多對一,多對多,一對一 2.複製表 分表 為什麼要分表?乙個表中 要儲存個人資訊又要儲存部門資訊 會導致大量的資料冗餘 所有資料存放在同乙個表中 將導致以下幾個問題 1.浪費空間 不致命 2.結構混亂 3.修改資料時 如果有一...

關聯式資料庫與非關聯式資料庫

關係型資料庫,是指採用了關係模型來組織資料的資料庫。關係模型是在1970年由ibm的研究員e.f.codd博士首先提出的,在之後的幾十年中,關係模型的概念得到了充分的發展並逐漸成為主流資料庫結構的主流模型。簡單來說,關係模型指的就是二維 模型,而乙個關係型資料庫就是由二維表及其之間的聯絡所組成的乙個...

關聯式資料庫與非關聯式資料庫

關係型資料庫,是指採用了關係模型來組織資料的資料庫。關係模型是在1970年由ibm的研究員e.f.codd博士首先提出的,在之後的幾十年中,關係模型的概念得到了充分的發展並逐漸成為主流資料庫結構的主流模型。簡單來說,關係模型指的就是二維 模型,而乙個關係型資料庫就是由二維表及其之間的聯絡所組成的乙個...