資料庫表間的關系
㈠ 如何定義資料庫表之間的關系
唯一需要注意的是,外鍵欄位的數據類型必須和主鍵的數據類型相同。但是有些系統可以允許這條規則有一個例外,它允許在數字和自動編號(autonumbering)欄位(例如在SQL伺服器系統中訪問Identity和AutoNumber)之間建立關系。此外,外鍵的值可以是空(Null),盡管強烈建議在沒有特別原因的情況下,不要讓外鍵為空。你有可能永遠都不會有機會來使用需要這項功能的資料庫。 現在回到我們的示例關系表,並開始輸入合適的外鍵。(請繼續在紙上打草稿——在你的資料庫系統中創建真正的數據表還為時過早。要知道在紙上糾正錯誤要容易得多。)要記住,你正在把主鍵的值添加到關系表裡。只要調用實體之間的關系就行了,而其他的就簡單了: 書籍和分類是有關系的。 書籍和出版社是有關系的。 書籍和作者是有關系的。 作者和郵政編碼(ZIP)是有關系的。 郵政編碼和城市是有關系的。 城市和州是有關系的。 這一步並不是一成不變的,你可能會發現在規范化的過程中加入外鍵會更容易一些。在把欄位移動到一個新的數據表時,你可能要把這個新數據表的主鍵添加到原來的數據表裡,將其作為外鍵。但是,在你繼續規范化剩餘數據的時候,外鍵常常會發生改變。你會發現在所有這些數據表被全部規范化之後,一次添加所有的外鍵,這樣效率會更高。 操作數據表 現在讓我們一次操作一個數據表,就從Books數據表開始,它在這個時候只有三個欄位。很明顯,Authors、Categories和Publishers數據表的主鍵會被添加到Books里。當你完成的時候,Books數據表就有了七個欄位: Books Title (PK) ISBN (PK) Price FirstNameFK (FK) Authors.FirstName many-to-many LastNameFK (FK) Authors.LastName many-to-many CategoryFK (FK) Categories.Category many-to-many PublisherFK (FK) Publishers.Publisher one-to-many 要記住,Authors數據表裡的主鍵是一個基於姓和名兩個欄位的復合關鍵字。所以你必須要把這個兩個欄位都添加到Books數據表裡。要注意,外鍵欄位名的結尾包含有FK這個後綴。加入這個後綴有助於提高可讀性和自我歸檔。通過名稱這種方式來區別外鍵會使得追蹤它們更簡單。如果主鍵和外鍵的名稱不同,這沒有關系。 這里出現了三種關系:Books和Authors、Books和Categories,以及Books和Publishers。這三種關系中所存在的兩種問題可能沒有那麼明顯: Books和Authors之間的關系:一本書可以有多個作者。 Books和Categories之間的關系:一本書可以被歸入多個類。 這兩者的關系是多對多的關系。先前我告訴過你,數據表不能直接實現這樣的關系,而需要第三個聯系表來實現。(Books和Publishers的關系是一對多的關系,就像現在所說的,這樣是沒有問題的。) 這兩個新發現的多對多關系將需要一個聯系表來包含來自每個數據表的主鍵,並將其作為外鍵。新的聯系表是:BooksAuthorsmmlink TitleFK (FK) Books.Title one-to-many ISBNFK (FK) Books.ISBN one-to-many FirstNameFK (FK) Authors.FirstName one-to-many LastNameFK (FK) Authors.LastName one-to-many BooksCategoriesmmlink TitleFK (FK) Books.Title one-to-many ISBNFK (FK) Books.ISBN one-to-many CategoryFK (FK) Categories.Category one-to-many 沒有必要更改Categories、Authors或者Publishers數據表。但是,你必須把FirstNameFK、LastNameFK和CategoryFK這三個外鍵從Books里移走: Books Title (PK) ISBN (PK) Price PublisherFK (FK) Publishers.Publisher one-to-many 現在,讓我們轉到Authors數據表上來,它現在有兩個欄位。每個作者都和ZIPCodes數據表中的郵政編碼的值相關。但是,每個郵政編碼會和多個作者相關。要實現這種一對多的關系,就要把ZIPCodes數據表中的主鍵添加進Authors數據表作為外鍵: Authors FirstName (PK) LastName (PK) ZIPCodeFK (FK) ZIPCodes.ZIPCode one-to-many 至此,你已經准備好了處理剩下的地址部分了。看到它們被分在不同的數據表裡是很讓人奇怪的,但是這是遵照BCNF正確規范化數據的結果。每個郵政編碼的值只會有一個對應的城市值和州值。每個城市和州的值只會被輸入進其對應的數據表裡一次。ZIPCodes和Cities數據表需要外鍵欄位來實現這些關系: ZIPCodes ZIPCode (PK) CityFK (FK) Cities.City one-to-many Cities City (PK) StateFK (FK) States.State one-to-many States State (PK) 從一個到九個 最後,你有了九個數據表:Books、Authors、Categories、Publishers、ZIPCodes、Cities、States、BooksAuthorsmmlink和BooksCategoriesmmlink。圖A是這個示例數據表的資料庫最終的圖形形式。很難想像一個簡單的數據表會被分成九個數據表。 圖A 最初的一個數據表現在需要九個數據表了 由於這個示例資料庫很簡單,你可能會問這些關系有什麼作用。看起來仍在保存冗餘的數據,只不過形式不同罷了——通過外鍵來實現。這是因為我們的數據表現在只有很少幾個欄位。試想一下有十幾個欄位的數據表,會是什麼樣的一個情形。需要承認的是,你仍然需要把數據表的主鍵作為外鍵保存進關系表裡,但是至多可能最多增加一到兩個欄位。比較一下為這個數據表裡的每一條記錄都添加十幾個條目的情形吧。
㈡ 資料庫表間關系有哪幾種,分別是什麼
屬性的表間關系有三種類型:一對一、一對多和多對多。 如果指的是表的參照完整性,則是:主外鍵關系。 如果是某些資料庫操作上的相關性,則是:級聯關系。
㈢ 什麼是指資料庫中數據與數據之間的關系
在資料庫鄭消中,數據之間的關系被稱為「關系(Relationship)」,它是指不同表之間數據的聯系。關系分為三種類型:一對一、一對多和多對多。一對一關系指兩個表中的數據只有一對一的關系,一個表中的主鍵對應另一個譽賀表中的外鍵;一對多關系指一個表中的數據可以對應到另一個表中的多條數據,一個表中的記錄對應另一個表中多個記錄;多對多關系指兩個表中的數據互相關聯,每個表中的記錄都可以對應到另一個表中的多個記喊虛知錄。
關系是資料庫設計的重要概念之一,是保證數據准確性和完整性的關鍵。一個好的資料庫設計必須建立正確的數據關系,以保證數據的一致性和完整性。關系型資料庫通過多個表之間的關系來存儲和管理數據,使得數據的查詢、修改和更新更加高效和方便。
㈣ 簡述在access資料庫中創建表間關系的步驟
1、首先,打開軟體,打開你的資料庫的幾個表。點擊上面的【資料庫工具】,在關系選項組里選擇【關系】。
㈤ 資料庫和表有什麼關系
資料庫是由基本表組成的,換句話說資料庫就是各種表的集合。當然,資料庫除了基本表,還有函數等
㈥ 在access2010中表和資料庫的關系
一個資料庫只能包含一個表。
在Access2010中,資料庫和表的關系是一個資料庫可以包含多個表。表之間可以有關系,也可以相互獨立。作為一個資料庫管理系統,Access通過各種資料庫對象來管理信息。
Access中的資料庫對象有7種,表是其中的一種,Access所提供的這些對象都存放在同一個資料庫文件中。
㈦ 關系資料庫表之間有哪幾種關系類型
表間關系分類:一對一,一對多,多對多。作用:建立永久關系和臨時關系
㈧ 對於關系型資料庫表之間存在什麼和什麼關系
存在一對一和一對多,多對多型鉛關系。
根據今日指晌頭條資料,關系型資料庫表之間關系一般分為:卜逗好一對一和一對多,多對多關系。
關系型資料庫,全稱叫關系型資料庫管理系統。
㈨ Access怎麼建立數據表間的關系
1、首先,在打開Access資料庫之後,我們創建兩個數據表作為示例。