資料庫中外來鍵的概念及作用是什麼?

2023-01-29 12:25:08 字數 4541 閱讀 4213

1樓:清愷樂

如果公共關鍵字在一個關係中是主關鍵字,那麼這個公共關鍵字被稱為另一個關係的外來鍵。由此可見,外來鍵表示了兩個關係之間的聯絡。以另一個關係的外來鍵作主關鍵字的表被稱為主表,具有此外來鍵的表被稱為主表的從表。

外來鍵又稱作外關鍵字。

外來鍵的作用就是可以讓表b是來自表a中,也就是保證了資料的規範性;如果要刪除a表中的某個資料,那麼首先要刪除b表中同樣的資料,這保證了資料的完整。

資料庫(database)是按照資料結構來組織、儲存和管理資料的建立在計算機儲存裝置上的倉庫。

簡單來說是本身可視為電子化的檔案櫃——儲存電子檔案的處所,使用者可以對檔案中的資料進行新增、擷取、更新、刪除等操作。

在經濟管理的日常工作中,常常需要把某些相關的資料放進這樣的「倉庫」,並根據管理的需要進行相應的處理。

嚴格來說,資料庫是長期儲存在計算機內、有組織的、可共享的資料集合。資料庫中的資料指的是以一定的資料模型組織、描述和儲存在一起、具有儘可能小的冗餘度、較高的資料獨立性和易擴充套件性的特點並可在一定範圍內為多個使用者共享。

這種資料集合具有如下特點:儘可能不重複,以最優方式為某個特定組織的多種應用服務,其資料結構獨立於使用它的應用程式,對資料的增、刪、改、查由統一軟體進行管理和控制。

2樓:匿名使用者

表a中有欄位(如身份證號)做了主鍵,表b中也有這個欄位(身份證號),這裡的身份證號一定來自表a同樣欄位裡的內容,那麼表b的這個欄位就叫表a欄位的外來鍵,也就是兩個表以身份證號這個欄位建立了聯絡。

表a中身份證號欄位裡面的身份證號一定是唯一的,不能有重複,而表b裡面的同一個身份證號可以出現多次。這稱為表a身份證號欄位與表b身份證號欄位建立了一對多的關係。

外來鍵的作用就是可以讓身份證號保證是來自表a中,也就是保證了資料的規範性;如果要刪除a表中的某個身份證號,那麼首先要刪除b表中同樣的身份證號,這保證了資料的完整性。

資料庫中外來鍵的概念及作用。

3樓:愛可生雲資料庫

外來鍵的設計初衷是為了在資料庫端保證對邏輯上相關聯的表資料在操作上的一致性與完整性。

優點:精簡關聯資料,減少資料冗餘。

避免後期對大量冗餘處理的額外運維操作。

降低應用**複雜性,減少了額外的異常處理。

相關資料管理全由資料庫端處理。

增加文件的可讀性。

特別是在表設計開始,繪製 er 圖的時候,邏輯簡單明瞭,可讀性非常強。

缺點:效能壓力。

外來鍵一般會存在級聯功能,級聯更新,級聯刪除等等。在海量資料場景,造成很大的效能壓力。比如插入一條新記錄,如果插入記錄的表有 10 個外來鍵,那勢必要對關聯的 10 張表逐一檢查插入的記錄是否合理,延誤了正常插入的記錄時間。

並且父表的更新會連帶子表加上相關的鎖。

其他功能的靈活性不佳。

比如,表結構的更新等。

資料庫中的外來鍵是什麼意思?

4樓:匿名使用者

設表t1,t2中都有一個name欄位,而且是t1的主鍵。

那麼如果設t2中的name為外來鍵的話。

向t2中新增資料的時候,如果name值不在t1之中就會報錯。

資料庫中主鍵和外來鍵是幹嘛用的?

5樓:匿名使用者

主外來鍵的存在是依託兩個實體之間的關係而存在的;

比如班級與學生的關係:

一個班級可以有多個學生,並且一個學生只能屬於一個班級,這就是一對多的關係;

那麼設計資料庫的時候就應該在學生表記憶體放班級的id作為外來鍵,為什麼不在班級表內放學生呢?

因為,你想一想班級表內如果放學生那麼記錄可能就是這樣:

1班id 1班 xx同學id

1班id 1班 xx同學id

..這是不允許的,班級表內班級為主鍵,是唯一的不允許相同記錄的;

下面簡單給你講下大概建成的表結構。

--建班級表。

create table class(

classid int primary key,--定義班級id為主鍵。

classname varchar(15)

)--建學生表。

create table students(

studentid int primary key,--定義學生id為主鍵。

classid int ,-外來鍵值,跟班級表classid 屬性型別相同。

stuname varchar(20),-學生姓名。

---定義外來鍵。

foreign key(classid) references class(classid) -本表classid是基於class表classid的外來鍵。

如上定義了主外來鍵後,兩個表間的關係就是一對多的關係了,並且學生表內的classid必須依託班級表的classid存在,也就是說外來鍵必須要主鍵存在的時候才能建立,例如:

--在班級表為空的情況往學生表插入一條記錄是不允許的:

insert into students(studentid,classid,stuname)values(1,1,'小明')

系統會丟擲異常提示主鍵表班級表內班級id不存在這樣是不允許插入的;

必須要先往班級表內插入一條記錄:

insert into class(classid,classname)values(1,'一班')

後才能執行插入前面一條往學生表插入資訊的語句。

---可瞭解一些了?真累啊。

6樓:匿名使用者

為了保證兩個表某些資料的一致性。作為外來鍵,它裡面的資料必須是在主建中所存在的。舉個例子:

有兩個關係:

student(s#,sname,d#),即學生這個關係有三個屬性:學號,姓名,所在系別。

dep(d#,dname),即院系有兩個屬性:系號、系名則s#、d#是主鍵,也是各自所在關係的唯一候選鍵,d#是student的外來鍵。

7樓:匿名使用者

建立不同表之間的關係啊。

資料庫表中什麼是外健,外來鍵的作用

8樓:匿名使用者

舉個例子:

student表是學生表 裡面有欄位:學號和姓名 學號是主鍵sc表是成績表 裡面有欄位:學號和學科號 還有成績 這裡面的學號就是外來鍵,關聯著 student表的主鍵學號。

簡單來說:一個表的外來鍵關聯著 另外一個表的主鍵外來鍵的作用 保持資料完整性 ..

拿上面的例子說:如果學生表 學號為1的記錄刪除了 ,那成績表sc裡面對應有學號為1的記錄 是不是應該也刪除呢? 所以一般設定級聯刪除 這樣刪除了主鍵 外來鍵的值跟著刪除。。。

在資料庫中的外來鍵與主鍵的關係是什麼,為什麼要設外來鍵?

9樓:隨o天

1、外來鍵的概念:外來鍵是關聯式資料庫三個完整性的五個約束條件之一,是表與表之間建立的一種關係。在oracle資料庫的scott/tiger使用者中,表dept和emp通過外來鍵進行了關聯。

在這裡dept表叫主表,emp表叫從表,外來鍵是欄位deptno。

2、加入外來鍵的條件:a、兩個表有相同屬性欄位,取值範圍相同;

b、外來鍵在主表中是主鍵或者是唯一欄位;

c、外來鍵可以是多個欄位的組合。

記住一句話:從表的外來鍵是主表的主鍵或唯一欄位。

資料庫裡面不建立主外來鍵關係有什麼好處?

10樓:何曼婷囖

不建議建立,使用外來鍵有利於維持資料完整性和一致性,但是對於開發來說是非常不利的。

每次做delete 或者update都必須考慮外來鍵約束,會導致開發的時候很痛苦,而且需要更為複雜的錯誤捕獲機制。

做資料處理時會受到很多的束縛,有些地方本來就可以允許有部分冗餘,但是由於設計了外來鍵約束,只能放棄。

出現bug的時候追蹤很麻煩。

資料庫的三個層次:

物理資料層是資料庫的最內層,是物理存貯裝置上實際儲存的資料的集合。這些資料是原始資料,是使用者加工的物件,由內部模式描述的指令操作處理的位串、字元和字組成。

概念資料層是資料庫的中間一層,是資料庫的整體邏輯表示。指出了每個資料的邏輯定義及資料間的邏輯聯絡,是存貯記錄的集合。它所涉及的是資料庫所有物件的邏輯關係,而不是它們的物理情況,是資料庫管理員概念下的資料庫。

使用者資料層是使用者所看到和使用的資料庫,表示了一個或一些特定使用者使用的資料集合,即邏輯記錄的集合。

在資料庫中的外來鍵與主鍵的關係是什麼?為什麼要設外來鍵?

11樓:老師小喬

要了解外來鍵與主鍵的關係首先先來了解一下參照關係與被參照關係。

細看:r(kr,f,..s(ks,..

)。f是關係r的非碼屬性,ks為s的主碼。若f與ks相對應則f為r的外碼。

r為參照關係(從表),s為目標關係(主表),或被參照關係。這樣的話主鍵與外來鍵的關係已經存在其中了:kr為r的主鍵,f為外碼但是關係s的主鍵(意思是指:

值要麼為null要麼一一對應)。

現實中的實體之間經常會存在一些聯絡,在關係模型中實體及實體間的聯絡都是用關係來描述的。自然就會有了關係與關係之間的引用。若要實現關係與關係之間的引用,就得引入外來鍵的概念。

資料庫中關係的性質是什麼,簡述資料庫關係的性質?

1.資料庫的基本概念 資料庫,資料庫管理系統,資料庫系統。2.資料模型,實體聯絡模型及e r圖,從e r圖匯出關係資料模型。3.關係代數運算,包括集合運算及選擇 投影 連線運算,資料庫規範化理 論。4.資料庫設計方法和步驟 需求分析 概念設計 邏輯設計和物理設計的相關策略。你說指的關係性質是什麼?麻...

資料庫表的物理結構是什麼 什麼是資料庫表結構

就是表的定義結構。什麼是資料庫表結構 資料表是由表名 表中的欄位和表的記錄三個部分組成的。設計資料表結構就是定義資料表檔名,確定資料表包含哪些欄位,各欄位的欄位名 欄位型別 及寬度,並將這些資料輸入到計算機當中。表的結構 1 確定表名。表名要確保其唯一性,表的名稱要與用途相符,簡略 直觀 見名知意。...

資料庫恢復的重要依據是什麼,劃分資料庫型別的主要依據是什麼

sql server 資料庫伺服器是比較普遍使用的伺服器器種類,也是恢復較多的型別之一。1 如完全丟失資料庫檔案,用一般資料恢復方式不能恢復2 表被刪除,甚至被重寫,錶行被刪除 3 索引錯誤,或者iam斷裂 4 資料庫大面損壞,可以指定任意表或者欄位提取資料5 系統表損壞甚至完全損壞,可以提取指定資...