當前位置:首頁 » 數據倉庫 » 外鍵約束實現資料庫的參照完整性
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

外鍵約束實現資料庫的參照完整性

發布時間: 2022-08-30 20:26:26

『壹』 什麼是外鍵約束

外鍵約束是指用於在兩個表之間建立關系,需要指定引用主表的哪一列。

外鍵約束對子表如此檢查處理:

在子表上進行INSERT、UPDATE操作的限制是,要和主表中的主鍵值匹配,或為NULL,否則不允許。

外鍵約束對父表如此檢查處理:

在父表_上進行UPDATE、DELETE操作的限制,取決於在定義子表的外鍵時指定的ONUPDATE、ONDELETE子句(不同的DBMS支持的情況不盡相同)。眾ONDELETE子句各選項的作用:

1、NoACTION:刪除主表記錄,如果子表中有和主表匹配的記錄,則不允許(產生一個錯誤提示)。此為默認操作(不指定ONDELETE子句,系統自動採取的操作)。

2、CASCADE(級聯):刪除主表記錄,也將刪除子表中的匹配記錄。

3、SETNULL:刪除主表記錄,將子表中的匹配記錄的外鍵值改為NULL。

4、SETDEFAULT:刪除主表記錄,將子表中的匹配記錄的外鍵值改為默認值。眾ONUPDATE子句各選項的作用。

(1)外鍵約束實現資料庫的參照完整性擴展閱讀

外鍵的用途是確保數據的完整性。它通常包括以下幾種:

1、實體完整性,確保每個實體是唯一的(通過主鍵來實施)

2、域完整性,確保屬性值只從一套特定可選的集合里選擇

3、關聯完整性,確保每個外鍵或是NULL(如果允許的話)或含有與相關主鍵值相配的值。

約束的主要目的是控制存儲在外鍵表中的數據,但它還可以控制對主鍵表中數據的修改。例如,如果在 publishers 表中刪除一個出版商,而這個出版商的 ID 在 titles 表中記錄書的信息時使用了。

則這兩個表之間關聯的完整性將被破壞,titles 表中該出版商的書籍因為與 publishers 表中的數據沒有鏈接而變得孤立了。

FOREIGN KEY 約束防止這種情況的發生。如果主鍵表中數據的更改使之與外鍵表中數據的鏈接失效,則這種更改是不能實現的,從而確保了引用完整性。

如果試圖刪除主鍵表中的行或更改主鍵值,而該主鍵值與另一個表的 FOREIGN KEY 約束值相關,則該操作不可實現。

若要成功更改或刪除 FOREIGN KEY 約束的行,可以先在外鍵表中刪除外鍵數據或更改外鍵數據,然後將外鍵鏈接到不同的主鍵數據上去。

『貳』 資料庫 什麼是實體完整性、參照完整性

關系的完整性主要包括域完整性、實體完整性和參照完整性三種。
1.域(列)完整性

域完整性是對數據表中欄位屬性的約束,通常指數據的有效性,它包括欄位的值域、欄位的類型及欄位的有效規則等約束,它是由確定關系結構時所定義的欄位的屬性決定的。限制數據類型,預設值,規則,約束,是否可以為空,域完整性可以確保不會輸入無效的值.。
2.實體(行)完整性

實體完整性是對關系中的記錄唯一性,也就是主鍵的約束。准確地說,實體完整性是指關系中的主屬性值不能為Null且不能有相同值。定義表中的所有行能唯一
的標識,一般用主鍵,唯一索引
unique關鍵字,及identity屬性比如說我們的身份證號碼,可以唯一標識一個人.
3.參照完整性

參照完整性是對關系資料庫中建立關聯關系的數據表間數據參照引用的約束,也就是對外鍵的約束。准確地說,參照完整性是指關系中的外鍵必須是另一個關系的主
鍵有效值,或者是NULL。參考完整性維護表間數據的有效性,完整性,通常通過建立外部鍵聯系另一表的主鍵實現,還可以用觸發器來維護參考完整性

『叄』 關系資料庫中,關系的完整性約束包括哪幾種,它們分別有什麼作用

關系的完整性約束通常包括域完整性,實體完整性、參照完整性和用戶定義完整性。

1、域完整性是保證資料庫欄位取值的合理性,是最簡單、最基本的約束。在當今的關系DBMS中,一般都有域完整性約束檢查功能。

2、實體完整性,作用是指在傳輸、存儲信息或數據的過程中,確保信息或數據不被未授權的篡改或在篡改後能夠被迅速發現。按實體完整性規則要求,主屬性不得取空值,如主關鍵字是多個屬性的組合,則所有主屬性均不得取空值。

3、參照完整性,作用是定義建立關系之間聯系的主關鍵字與外部關鍵字引用的約束條件。關系資料庫中通常都包含多個存在相互聯系的關系,關系與關系之間的聯系是通過公共屬性來實現的。根據實體完整性要求,主關鍵字不得取空值。

4、用戶定義完整性作用是根據應用環境的要求和實際的需要,對某一具體應用所涉及的數據提出約束性條件。這一約束機制一般不應由應用程序提供,而應有由關系模型提供定義並檢驗,用戶定義完整性主要包括欄位有效性約束和記錄有效性。

(3)外鍵約束實現資料庫的參照完整性擴展閱讀:

關系完整性模型

關系完整性模型中常用的關系操作包括:選擇、投影、連接、並、交、差等查詢操作和增加、刪除、修改操作兩大部分。查詢的表達能力是其中最重要的部分。

關系操作的的特點是集合操作方式,即操作對象和結構都是集合。這種操作方式也為一次一集合的方式。相應地,非關系數據模型的數據操作方式則為一次一記錄的方式。

早期的關系操作能力通常用代數方式或邏輯方式來表示,分別稱為關系代數和關系演算。關系代數用對關系的運算來表達查詢要求的方式。關系代數、元組關系演算和域關系演算三種語言在表達能力是完全等價的。

關系語言是一種高度非過程化的語言,用戶不必請求DBA為其建立特殊的存取路徑,存取路徑的選擇由DBMS的優化機制來完成,此外,用戶不必求助於循環結構就可以完成數據操作。

『肆』 資料庫管理系統實現參照完整性的方式和措施是什麼

關系的完整性主要包括域完整性、實體完整性和參照完整性三種。 1.域完整性 域完整性是對數據表中欄位屬性的約束,它包括欄位的值域、欄位的類型及欄位的有效規則等約束,它是由確定關系結構時所定義的欄位的屬性決定的。 2.實體完整性 實體完整性是對關系中的記錄唯一性,也就是主鍵的約束。准確地說,實體完整性是指關系中的主屬性值不能為Null且不能有相同值。 3.參照完整性 參照完整性是對關系資料庫中建立關聯關系的數據表間數據參照引用的約束,也就是對外鍵的約束。准確地說,參照完整性是指關系中的外鍵必須是另一個關系的主鍵有效值,或者是NULL。

『伍』 實現數據完整性有那些方法

數據的完整性靠添加約束實現。實現完整性約束的方法依類別不同而不同。完整性約束可以分為兩大類:靜態約束和動態約束。

1、靜態約束

靜態約束是對資料庫狀態的約束,有可分為固定約束、隱含約束和顯示約束。

2、固定約束

是數據模型固有的約束,如關系的屬性是原子的,即滿足INF的約束。固有約束在DBMS實現時已經考慮。

3、隱含約束

指隱含於數據模式中的約束,一般用數據定義語言(DDL)語句說明,並存於數據目錄中。例如,域完整性約束、實體完整性以及參照完整性約束,都由相應的DDL語句說明。

4、顯示約束

固有約束、隱含約束是最基本的約束,但概括不了所有的約束。數據完整性是多種多樣的,且依賴於數據的語義與應用,這些約束只有顯式地說明,故稱顯式約束。顯式約束的說明一般有三種方法:

①用過程說明約束。這種方法不約束的說明和檢驗交給應用程序,應用程序中可以插入一些過程,以檢驗資料庫更新是否違反給定的約束,如果違反約束,則回滾事務。檢驗約束的過程一般用通用高級程序語言編寫,可以表達各式各樣的約束。這是一種普遍方法。

②用語言說明約束。斷言指資料庫狀態必須滿足的邏輯條件。資料庫完整性約束可以看成一系列斷言的集合。為了表示約束,DBMS須提供斷言說明語言。

③用觸發子表示約束。觸發子是一個軟體機制,其功能相當於WHENEVERTHEN,即一旦給定條件成立,系統就引發相應的動作。利用觸發子可以表示約束,以違反約束作為條件,以違反約束的處理作為動作。

動作不限於回滾事務,也可以給用戶一個消息或過程。在系統中定義一批觸發之後,就會監督資料庫狀態,一旦出現違反約束的更新,就會引發相應的動作。

5、動態約束

動態約束不是對資料庫狀態的約束,而是資料庫從一個狀態變為另一個狀態時應遵守的約束,例如在更新職工表時,工資、工齡這些屬性值一般只會增加,不會減少。動態約束一般也是顯式說明的。

在上述約束中,固有約束必然實施,隱含約束在大部分現代DBMS中基本實施或部分實施,顯式和動態約束只在個別DBMS中實施。

(5)外鍵約束實現資料庫的參照完整性擴展閱讀

知識點①:對數據操作語句來說,數據存儲到資料庫中,如果我們不對其進行分析和處理的話那麼數據就是沒有價值的,這種用戶對數據中數據的操作大多數查詢和修改的,修改包括了增加新的數據刪除舊的數據以及更改已有的數據。

那麼sql語言提供了功能強大的數據查詢以及修改功能,那麼他的查詢功能是html語言的核心功能,這是資料庫中使用得最多的操作,那麼查詢語句也是SQL語言中比較復雜的一個語句。

知識點②:其實查詢語句是資料庫操作中最基本和最重要的女婿之一,它的功能是從資料庫中檢索滿足條件的數據,查詢的數據源可以來自一張表也可以來自多張表甚至是仕途,那麼他的查詢功能是由領航。

或者多煮幾路組成的一個記錄集合,並允許選擇一個或多個欄位來作為,輸出欄位了,查詢語句的基本結構可以描述,在一些結構中,我們可以對指定的輸出欄位以及用於指定數據的來源,那麼他有什麼單表查詢呢,數據源只設計一張表查詢的話是為了幫助讀者更好地理解SQL語句中的執行情況,這里指大部分查詢語句均列出來返回了結果。

『陸』 SQL中的外部鍵約束有什麼用

設置資料庫中的外鍵約束是為了保證資料庫的參照完整性。sql
server
2005中的關系表之間的連接,用外鍵表中的外鍵引用主鍵表中的主鍵、一旦創建了關系並將關系成功地加入到了資料庫中,就能夠保證數據的參照完整性、

『柒』 資料庫的五種約束關系是什麼主外鍵有什麼用。求教

額,這是資料庫原理的基礎知識,比如連接,分左外連接,右外連接,外連接。
以左外連接為例
代碼大概為
select
*
from
data1
left
join
data2
on
data1.num=data2.num
where
data1.name='我'
可以連接不同的表。
主鍵,外鍵等的都是基礎的東西,主鍵相當於一列數據的身份證號碼,是唯一的。
外鍵就是說這個單元格的數據,是別的表的主鍵
。。。。。。
建議lz買本《資料庫原理》看看,一個星期就看會了。這個需要系統的學一下,半路出家學不到什麼東西
關於sql語句代碼,只有4種,select,update,insert,delete
非常簡單