當前位置:首頁 » 操作系統 » 資料庫表的完整性

資料庫表的完整性

發布時間: 2022-06-01 01:49:24

A. 關系資料庫的三個完整性約束是什麼各是什麼含義

可分為三種類型:與表有關的約束、域(Domain)約束、斷言(Assertion)。

1、與表有關的約束:是表中定義的一種約束。可在列定義時定義該約束,此時稱為列約束,也可以在表定義時定義約束,此時稱為表約束。包括列約束(表約束+NOTNULL)和表約束(PRIMARYKEY、foreignkey、check、UNIQUE)。

2、域(Domain)約束:在域定義中被定義的一種約束,它與在特定域中定義的任何列都有關系。

3、斷言(Assertion):在斷言定義時定義的一種約束,它可以與一個或多個表進行關聯。不必與特定的列綁定,可以理解為能應用於多個表的check約束,因此必須在表定義之外獨立創建斷言。

(1)資料庫表的完整性擴展閱讀:

完整性約束中包含四個完整性,即域完整性,實體完整性、參照完整性和用戶定義完整性。

1、域完整性為保證資料庫欄位取值的合理性。屬性值應是域中的值,這是關系模式規定了的。除此之外,一個屬性能否為NULL,這是由語義決定的,也是域完整性約束的主要內容。

2、實體完整性,指關系的主關鍵字不能重復也不能取「空值"。一個關系對應現實世界中一個實體集。現實世界中的實體是可以相互區分、識別的,也即它們應具有某種惟一性標識。

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

4、用戶定義完整性,則是根據應用環境的要求和實際的需要,對某一具體應用所涉及的數據提出約束性條件。

B. 什麼是資料庫的完整性它與完整性有什麼區別

資料庫的完整性的全名叫做:關系資料庫的參照完整性(Referential
Integrity),一般是用在表示多個表之間關系時用的,而且經常使用。比如說,現在有兩個表:
Student(StudentNumber,
StudentName)

Teacher(TeacherNumber,
TeacherName,
StudentNumber)
其中Teacher表中的studentNumber是外鍵,並且Student表中的StudentNumber是主鍵,因此肯定會有如下的參照完整性:Teacher表中的studentNumber的值必須在Student表中的StudentNumber已經存在。
這就是所謂的參照完整性,它是一個很普遍的概念。

C. VF中。資料庫完整性包括哪三個完整性

有四個完整性,包括實體完整性、域完整性、參照完整性和用戶定義的完整性。

1、實體完整性:表中行的完整性。主要用於保證操作的數據非空、唯一且不重復。即實體完整性要求每個關系(表)有且僅有一個主鍵,每一個主鍵值必須唯一,而且不允許為「空」或重復。

2、域完整性:資料庫表中的列必須滿足某種特定的數據類型或約束。其中約束又包括取值范圍、精度等規定。CHECK、FOREIGN KEY 約束和DEFAULT、 NOT NULL定義都屬於域完整性的范疇。

3、參照完整性:屬於表間規則,是對於更新、插入或刪除表間數據的完整性。通常,在客觀現實中的實體之間存在一定聯系,在關系模型中實體及實體間的聯系都是以關系進行描述,因此,操作時就可能存在著關系與關系間的關聯和引用。

4、用戶定義完整性:是對數據表中欄位屬性的約束,包括欄位的值域、欄位的類型和欄位的有效規則(如小數位數)等約束,是由確定關系結構時所定義的欄位的屬性決定的。

(3)資料庫表的完整性擴展閱讀:

資料庫完整性設計原則

1、要根據業務規則對資料庫完整性進行細致的測試,以盡早排除隱含的完整性約束間的沖突和對性能的影響。

2、要有專職的資料庫設計小組,自始至終負責資料庫的分析、設計、測試、實施及早期維護。資料庫設計人員不僅負責基於DBMS的資料庫完整性約束的設計實現,還要負責對應用軟體實現的資料庫完整性約束進行審核。

3、應採用合適的CASE工具來降低資料庫設計各階段的工作量。好的CASE工具能夠支持整個資料庫的生命周期,這將使資料庫設計人員的工作效率得到很大提高,同時也容易與用戶溝通。

D. 從三個方面闡述在資料庫系統中如何保證數據的完整性

數據完整性一般包括域完整性、實體完整性、參照完整性三部分。

域完整性就是欄位的取值范圍是合法的,在指定的取值范圍內,用check來定義;
實體完整性就是每個關系表都要有主鍵,且不能是空的,不能有重復記回錄;
參照完整性就是指外鍵要和另外一個表對應的主鍵值相同,且兩者必須同時在各自的表中出現;

我只能說這么多了,具體的話看書本的例子,答有實例能使你更加明白,在這里說再多也沒用,呵呵!

E. 資料庫的完整性包含哪些完整性約束

數據完整性約束指的是為了防止不符合規范的數據進入資料庫,在用戶對數據進行插入、修改、刪除等操作時,DBMS自動按照一定的約束條件對數據進行監測,使不符合規范的數據不能進入資料庫,以確保資料庫中存儲的數據正確、有效、相容。

資料庫的完整性約束包含以下類型:

1) 與表有關的約束:是表中定義的一種約束。可在列定義時定義該約束,此時稱為列約束,也可以在表定義時定義約束,此時稱為表約束。

2) 域(Domain)約束:在域定義中被定義的一種約束,它與在特定域中定義的任何列都有關系。

3) 斷言(Assertion):在斷言定義時定義的一種約束,它可以與一個或多個表進行關聯。

(5)資料庫表的完整性擴展閱讀:

數據的完整性

分為以下四類:

1) 實體完整性:規定表的每一行在表中是惟一的實體。

2) 域完整性:是指表中的列必須滿足某種特定的數據類型約束,其中約束又包括取值范圍、精度等規定。

3) 參照完整性:是指兩個表的主關鍵字和外關鍵字的數據應一致,保證了表之間的數據的一致性,防止了數據丟失或無意義的數據在資料庫中擴散。

4) 用戶定義的完整性:不同的關系資料庫系統根據其應用環境的不同,往往還需要一些特殊的約束條件。用戶定義的完整性即是針對某個特定關系資料庫的約束條件,它反映某一具體應用必須滿足的語義要求。

F. 關系資料庫完整性有哪幾類 分別可以使用那些技術實現

關系資料庫完整性有域(列)、實體(行)、參照(引用)整性類。

1、域(列)完整性的技術實現:通常指數據的有效性,它包括欄位的值域、欄位的類型及欄位的有效規則等約束,它是由確定關系結構時所定義的欄位的屬性決定的。

2、實體(行)完整性的技術實現:關系中的主屬性值不能為Null且不能有相同值。

3、參照(引用)完整性的技術實現:對關系資料庫中建立關聯關系的數據表間數據參照引用的約束,也就是對外鍵的約束。

數據完整性分析

資料庫採用多種方法來保證數據完整性,包括外鍵、約束、規則和觸發器。系統很好地處理了這四者的關系,並針對不同的具體情況用不同的方法進行,相互交叉使用,相補缺點。

從外界輸入的,而數據的輸入由於種種原因,會發生輸入無效或錯誤信息。保證輸入的數據符合規定,成為了資料庫系統,尤其是多用戶的關系資料庫系統首要關注的問題。

G. 資料庫中 什麼是數據完整性

資料庫中的數據是從外界輸入的,而數據的輸入由於種種原因,會發生輸入無效或錯誤信息。保證輸入的數據符合規定,成為了資料庫系統,尤其是多用戶的關系資料庫系統首要關注的問題。數據完整性因此而提出。本章將講述數據完整性的概念及其在SQL Server 中的實現方法。

數據完整性(Data Integrity)是指數據的精確性(Accuracy) 和可靠性(Reliability)。它是應防止資料庫中存在不符合語義規定的數據和防止因錯誤信息的輸入輸出造成無效操作或錯誤信息而提出的。

資料庫採用多種方法來保證數據完整性,包括外鍵、約束、規則和觸發器。系統很好地處理了這四者的關系,並針對不同的具體情況用不同的方法進行,相互交叉使用,相補缺點。

(7)資料庫表的完整性擴展閱讀:

數據完整性分為以下3類:

1、域完整性:

是指一個列的輸入有效性,是否允許為空值。強制域完整性的方法有:限制類型(通過設定列的數據類型)、格式(通過CHECK約束和規則)或可能值的范圍(通過FOREIGN KEY約束、CHECK約束、DEFAULT定義、NOT NULL定義和規則)。

2、實體完整性:

是指保證表中所有的行唯一。實體完整性要求表中的所有行都有一個唯一標識符。這個唯一標識符可能是一列,也可能是幾列的組合,稱為主鍵。

3、參照完整性:

是指保證主關鍵字(被引用表)和外部關鍵字(引用表)之間的參照關系。它涉及兩個或兩個以上表數據的一致性維護。外鍵值將引用表中包含此外鍵的記錄和被引用表中主鍵與外鍵相匹配的記錄關聯起來。

H. 如何實現資料庫表的數據完整性

(1)為每個表的必要欄位設置相應約束。
(2)建表間關系,即外鍵關聯。

I. 問題:什麼是資料庫的完整性

答:資料庫的完整性是指數據的正確性和相容性。 問題:資料庫的完整性概念與資料庫的安全性概念有什麼區別和聯系?答: 資料庫的完整性是指數據的正確性和相容性、資料庫的安全性是指保護資料庫.以防止不合法的使用造成的數據泄密、更改或破壞。其相同點是兩者都是對資料庫中的數據進行控制.各自所實現的功能目標不同。問題:什麼是資料庫的完整性約束條件?可分為哪幾類?答: 數據完整性約束是為了保證進入資料庫中的數據的有效性而定義的數據規則、它可以分為以下兩類. ①針對不同的對象可以分為表級約束、元塑級約束和屬性級約束(也稱列約束);表級約束是若干元組間、關系中及關系之間的約束:元組級約束則是元組中的欄位組和欄位間聯系的約束;屬性級約束主要是針對列的類型、取值范圍、精度、排序等而制定的約束條件。②針對數據對象的狀態可以分為靜態約束和動態約束:靜態約束是指資料庫每一確定狀態時的數據對象所應滿足的約束條件.它是反映資料庫狀態穩定時的約束.動態約束是指資料庫從一種狀態轉變為另一種狀態時.新、舊值之間所應滿足的約束條件.它是反映資料庫狀態變遷的約束。 問題: DBMS的完整性控制應具有哪些功能? 答;①定義和存儲完整性功能.②檢查完整性功能;③控制完整性功能。 問題:RDBMS在實現參照完整性時需要考慮哪些方面?答: ①外碼能夠接受空值的問題. ②在被參照關系中刪除元組時.採用級聯刪除、受限刪除或置生值刪除的方法處理參照關系; ③在參照關系中插入元組時.可以使用受限插入、遞歸插入兩種方法處理參照關系. ④修改關系的主碼時 可以採用不允許修改主碼、或允許修改關系主碼.但必須保證主碼的惟一性和非空性方法處理參照關系; ⑤修改被參照關系時,可以採用級聯修改、拒絕修改和置空值修改方法處理參照關系。問題:假設有下面兩個關系模式: 職工(職工號,姓名,年齡,職務,工資,部門號),其中職工號為主碼; 部門(部門號,名稱,經理名,電話),其中部門號為主碼.用SQL語言定義這兩個關系模式.要求在模式中完成以下完整性約束條件的定義: 1)定義每個模式的主碼。 2)定義參照完整性。3)定義職工年齡不得超過60歲。 答: CREATE TABLE職工(職工號 CHAR(5)PRIMARY KEY, 姓名CHAR(8)NOT NULL, 年齡SMALLINT. 職務CHAR(10), 工資DECIMAL(7,2), 部門號CHAR(5)。 CONSTRAINT CI CHECK(年齡 <60). CONSTRAIN C2 FOREIGN KEY(部門號) REFEENCES部門(部門號)); CREAT TABLE部門(部門號CHAR(5)PRIMARY KEY. 名稱CHAR(l). 經理名 CHAR(8). 電話 CHAR(8). CONSTRAINT C3 FOREIGN KEY(經理名) REFERECES職工(姓名));問題:在資料庫中為什麼要並發控制?答; 資料庫的井發控制就是為了控制資料庫,防止多用戶並發使用資料庫時造成數據錯誤和程序運行錯誤,保證數據的完整性。問題:並發操作可能會產生哪幾類數據不一致?用什麼方法能避免這些不一致的情況?答. 井發操作可能會產生丟失修改、不可重復讀和讀「臟」數據的數據不一致問題。用封鎖的方法能避免這些不一致的情況。問題:什麼是封鎖?答. 封鎖是使事務對它要操作的數據有一定的控制能力。封鎖具有三個環節.第一個環節是申請加鎖.第二個環節是獲得鎖;第三個環節是釋放鎖。問題:基本的封鎖類型有幾種?試述它們的含義。 答. 基本的封鎖類型有兩種:排它鎖(簡稱X鎖)和共享鎖(簡稱S鎖)。 排它鎖也稱為獨占或寫鎖、一旦事務T對數據對象A加上排它鎖.則只允許T讀取和修改A.其他任何事務既不能讀取和修改A,也不能再對A加任何類型的鎖 直到T釋放A上的鎖為止。 共享鎖又稱讀鎖、如果事務T對數據對象A加上共享鎖,其他事務只能再對A加S鎖,不能加X鎖,知道事務T釋放A上的S鎖為止。問題:如何用封鎖機制保證數據的一致性?答: 封鎖機製作為井發控制的重要手段.利用封鎖的特性和封鎖協議,它在井發操作保證事務的隔離性.用正確的方式調度並發操作.是一個用戶事務的執行不受其他事務的干擾.從而避免造成數據的不一致性。問題:什麼是封鎖協議?不同級別的封鎖協議的主要區別是什麼? 答. 在對數據對象加鎖時,還需要約定一些規則 這些規則稱為封鎖協議。 一級封鎖協議:是事務T在修改數據之前必須先對其加X鎖.直到事務結束才釋放。一級封鎖協議可有效地防止丟失修改並能夠保證事務T的可恢復性、一級封鎖由於沒有對數據進行加鎖,所以不能保證可重復讀和不讀「贓」數據。 二級封鎖協議;是事務T對要修改的數據必須先加X鎖.直到事務結束才釋放X鎖;要讀取的數據必須先加S鎖.讀完後即可釋放S鎖。M級封鎖協議不但能夠防止丟失修改,還可進一步防止讀「臟」數據。 三級封鎖協議:是事務T在讀取數據之前必須先對其加S鎖.在要修改數據之前必須先對其加X鎖.直到事務結束後才釋放所有鎖、由於三級封鎖協議強調即使事務讀完數據A之後也不釋放S鎖 從而使得別的事務無法更改數據A、三級封鎖協議不但防止了丟失修改和不讀「臟」數據,而且防止了不可重復的隊問題:不同封鎖協議與系統一致性級別的關系是什麼?答: 一級封鎖協議可有效地防止丟失修改,並能夠保證事務T的可恢復性。一級封鎖由於沒有對數據進行加鎖,所以不能保證可重復讀和不讀「臟』數據。 二級封鎖協議不但能夠防止丟失修改.還可進一步防u讀「臟」數據。 由於三級封鎖協議強調即使事務讀完數據A之後也不釋放S鎖,從而使別的事務無法更改數據A。三級封鎖協議不但防止了丟失修改和不讀「勝數據.而且防u了不可重復讀。問題:什麼是活鎖?什麼是死鎖?答; 在多個事務請求對同一數據封鎖時,總是使某一用戶等待的情況稱為活鎖;多事務交錯等待的僵持局面稱為死鎖。問題:試述活鎖的產生原因和解決方法。答; 活鎖是封鎖的無序造成的、解決方法是採用先來先服務的方法,即對要求封鎖數據的事務排隊.使前面的事務先獲得數據的封鎖權。問題:請給出預防死鎖的若干方法。 答: 預防死鎖通常有以下兩種方法; ①一次封鎖法.就是要求每個事務必須一次將所有要使用的數據全部加鎖.否則該事務不能繼續執行. ②順序封鎖法.是預先對數據對象規定一個封鎖順序.所有事務都按這個順序實行封鎖。問題:請給出檢測死鎖發生的一種方法,當發生死鎖後如何解除死鎖?答: 檢測死鎖發生的一種方法是選擇一個處理死鎖代價最小的事務,將其撤銷,釋放此事務持有的所有鎖.使其他事務得以繼續運行下去。 解除死鎖問題有兩類方法:一類方法是採用一定措施來預防死鎖的發生.另一類方法是允許發生死鎖.然後採用一定手段定期診斷系統中有無死鎖.若有則解除之。問題:什麼樣的並發調度是正確的調度?答. 如果一個事務運行過程中沒有其他事務同時運行,即沒有受到其他事務的干擾,那麼就可以認為該事務的運行結果是正常的,可串列性是井發事務正確性的准則 為了保證並發操作的正確性.DBMS的並發控制機制必須提供一定的手段來保證調度是可串列化的。問題:試述兩段鎖協議的概念。 答: 所謂兩段鎖協議是指所有事務必須分兩個階段對數據項進行加鎖和解鎖. ①在對任何數據進行讀、寫操作之前.首先要申請並獲得對該數據的封鎖. ②在釋放一個封鎖之後,事務不再申請並獲得對該數據的封鎖。 即每個事務分成兩個階段,第一階段是申請和獲得封鎖,也稱為擴展階段。在這階段.事務可以申請獲得任何數據項上的任何類型的鎖,但是不能釋放任何鎖。第二階段是釋放到鎖.也稱為收縮階段。在這階段,事務可以釋放任何數據項上的任何類型的鎖。但是不能再申請任何鎖。問題:為什麼要引進意向鎖?意向鎖的含義是什麼?答: 事務 T要對關系 RI加 X鎖時,系統只需檢查根結點資料庫和關系 RI是否已加了不相容的鎖.而不再需要搜索和檢查RI中的每一個元組是否加了X鎖.對任一元組加鎖.必須先對它所在的關系加意向鎖。 意向鎖的含義是.如果對一個結點加意向鎖。則說明該給點的下層結點正在被加銷:對任何一結加鎖時.必須先對它的上層結點加意向鎖。問題:理解並解釋下列術語的含義:封鎖、活鎖、死鎖、排它鎖、共享鎖、並發事務的調度、可串列化的調度、兩段鎖協議。答: ①封鎖.封鎖是使事務對它要操作的數據有一定的控制能力。 ③活鎖:這種在多個事務請求對同一數據封鎖時.總是使某一用戶等待的情況稱為活鎖。 ③死鎖.這種多事務交錯等待的僵持局面稱為死鎖。 ④排它鎖.排名鎖也稱為獨占或寫鎖、一旦事務T對數據對象A加上排它鎖,則只允許T讀取和修改A.其他任何事務既不能讀取和修改A.也不能再對A加任何類型的鎖.直到T釋放A上的鎖為止。 ⑤共享鎖:共享鎖又稱讀鎖、如果事務T對數據對象A加上共享鎖.其他事務只能再對A加S鎖.不能加X鎖.知道事務T釋放A上的S鎖為上。 ③井發事務的調度.多個事務並發執行調度策略稱為並發事務的調度。 ①可串列化的調度:如果多個事務並發執行的結果與按串列執行的結果相同 這種調度策略稱為可串列化的調度。③兩段鎖協議.所謂兩段鎖協議是指所有事務必須分兩個階段對數據項進行加鎖和解鎖。 問題:什麼是資料庫的安全性?答.資料庫的安全性是指保護資料庫.以防止不合法的使用數據泄密、更改或破壞。 問題:資料庫安全性和計算機系統的安全性有什麼關系? 答: 資料庫安全性是計算機系統的安全性的一個部分.資料庫系統不僅要利用計算機系統的安全性保證自己系統的安全性.同時還會提供專門的手段和方法,使安全性能更好。例如在用戶要求進入計算機系統時.系統首先根據用戶輸入的用戶標識進行身份鑒定,只有合法的用戶才准許進入計算機系統:對已進入的用戶 ***S還要進行存取控制,只允許用戶執行合法操作:操作系統也會提供相應的保護措施;數據最後還可以以密碼形式存儲到資料庫中。 問題:試述實現資料庫安全性控制的常用方法和技術。答. ①用戶標識與鑒別:②存取控制:③自主存取控制方法.④強制存取控制方法:⑤視圖機制;③審計.o數據加密。 問題:SQL 語言中提供了哪些數據控制(自主存取控制)的語句?請試舉幾例說明它們的使用方法。答. ①GRANT(授權)語句 例:GRANT SELECTINSRRT ON學生 TO張勇 WITH GRANT OPTION; ②REVOKE(收回)語句 例:REVOKE INSERT ON學生 FROM張勇; 問題:今有兩個關系模式: 職工(職工號,姓名,年齡,職務,工資,部門號); 部門(部門號,名稱,經理名,地址,電話)。 請田SQL 的GRANT和REVOKE語句(加上視圖機制),完成以下授權定義或存取控制功能。 1)用戶王明對兩個表有SELECT權力。 2)用戶李勇對兩個表有INSERT和DELETE權力。 3)用戶劉星對職工表有SELECT權利,對工資欄位具有更新權力。 4)用戶張新具有修改這兩個表的結構的權力。 5)用戶周平具有對兩個表的所有權力(讀、插、改、刪數據),並具有給其他用戶授權的權利。

J. 資料庫的完整性是什麼啊!

資料庫的完整性的全名叫做:關系資料庫的參照完整性(Referential Integrity),一般是用在表示多個表之間關系時用的,而且經常使用。比如說,現在有兩個表:
Student(StudentNumber, StudentName) 和 Teacher(TeacherNumber, TeacherName, StudentNumber)
其中Teacher表中的studentNumber是外鍵,並且Student表中的StudentNumber是主鍵,因此肯定會有如下的參照完整性:Teacher表中的studentNumber的值必須在Student表中的StudentNumber已經存在。
這就是所謂的參照完整性,它是一個很普遍的概念。1什麼是資料庫的完整性? DBMS的完整性子系統的功能是什麼?資料庫的完整性是指數據的正確性和相容性。DBMS完整性子系統的功能是:(1)監督事務的執行,並測試是否違反完整性規則;(2)如有違反,則採取恰當的操作,如拒絕、報告違反情況,改正錯誤等方法進行處理。2完整性規則由哪幾個部分組成?關系資料庫的完整性規則有哪幾類?完整性規則由三部分組成:觸發條件:即什麼時候使用規則進行檢查;約束條件:即要檢查什麼樣的錯誤;ELSE子句:即查出錯誤後該如何處理。 完整性規則有以下三類:域完整性規則,用於定義屬性的取值范圍;域聯系的規則,定義一個或多個關系中,屬性值間的聯系、影響和約束。關系完整性規則,定義更新操作對資料庫中值的影響和限制。3試詳述SQL中的完整性約束機制?SQL中的完整性約束規則有主鍵約束、外鍵約束、屬性值約束和全局約束等多種形式。△主鍵約束。它是數據中最重要的一種約束。在關系中主鍵值不允許空,也不允許出現重復,體現了關系要滿足實體完整性規則。主鍵可用主鍵子句或主鍵短語進行定義。△外鍵約束。根據參照完整性規則,依賴關系中外鍵或者為空值,或者是基本關系(參照關系)中的該鍵的某個值。外鍵用外鍵關系子句定義,並考慮刪除基本關系元組或修改基本關系的主鍵值的影響,依賴關系可按需要採用RESTRICT、SET NULL、CASCADE方式。△屬性值約束。當要求某個屬性的值不允許空值時,那麼可以在屬性定義後加上關鍵字: NOT NULL ,這是非空值約束。還可以用CHECK子句對一個屬性值加以限制以及使用域約束子句CREATDOMAIN定義新域並加以屬性值檢查。△全局約束。在關系定義時,可以說明一些比較復雜的完整性約束,這些約束涉及到多個屬性間的聯系或不同關系間的聯系,稱為全局約束。主要有基於元組的檢查子句和斷言。前者是對單個關系的元組值加以約束,後者則可對多個關系或聚合操作有關的完整性約束進行定義。4參照完整性規則在SQL可以用哪幾種方式實現?刪除基本關系的元組時,依賴關系可以採取的做法有哪三種?修改基本關系的主鍵值時,依賴關系可以採取的做法有哪三種?參照完整性規則要求"不引用不存在的實體",參照完整性規則在SQL可用以下幾種方式實現:(1)在SQL中採用外鍵子句定義外鍵,並考慮刪除基本關系元組或修改基本關系的主鍵值,對依賴關系產生的影響;(2)在屬性值上進行約束如基於屬性的檢查;(3)全局約束中的基於元組的檢查子句等。刪除基本關系元組或修改基本關系的主鍵值時,依賴關系可以採用的做法有:△RESTRICT方式:只有當依賴關系中沒有一個外鍵值與基本關系中要刪除/修改的主鍵值相對應時,系統才能執行刪除/修改操作,否則拒絕刪除或修改。△SET NULL方式:刪除基本元組時,將依賴關系中所有與基本關系中被刪除主鍵值相對應的外鍵值置為空值。修改基本關系的主鍵值時,將依賴關系中所有與基本關系中被修改主鍵值相對應的外鍵值置為空值。△CASCADE方式:若刪除則將依賴關系中所有外鍵值與基本關系中要刪除的主鍵值相對應的元組一並刪除,若修改則將依賴關系中所有與基本關系中要修改的主鍵值相對應的外鍵值一並修改為新值。5試對SQL2中的基於屬性的檢查約束、基於元組的檢查約束和斷言三種完整性約束進行比較:各說明什麼對象?何時激活?能保證資料庫的一致性嗎?約束形式說明對象激活條件是否保證一致性基於屬性的檢查只對一個屬性值加以約束插入或修改屬性值時不一定基於元組的檢查對單個關系的元組值加以約束在插入或修改元組時不一定斷言多個關系或聚合操作任何變動保證6設教學資料庫的模式如下:S(S#,SNAME,AGE,SEX)SC(S#,C#,GRADE)C(C#,CNAME,TEACHER)試用多種方式定義下列完整性約束:(1)在關系S中插入學生年齡值應在16~25歲之間(2)在關系SC中插入元組時,其S#值和C#值必須分別在S和C中出現。(3)在關系SC中修改GRADE值時,必須仍在0~100之間。(4)在刪除關系C中一個元組時,首先要把關系SC中具有同樣C#的元組全部刪去。(5)在關系S中把某個S#值修改為新值時,必須同時把關系SC中那些同樣的S#值也修改為新值。(1)定義S時採用檢查子句:CREAT TABLE S(S# CHAR(4),SNAME char (10) NOT NULL ,AGE SMALLINT ,PRIMARY key(S#),CHECK (AGE>=16 and AGE<=25) ) (2)採用外鍵子句約束CREAT TABLE SC(S# CHAR(4),C# CHAR(4),GRADE SMALLINT,FOREIGN key(S#) REFERENCE S(S#),FOREIGN key(C#) REFERENCE C(C#))(3)採用元組檢查CREAT TABLE SC(S# CHAR(4),C# CHAR(4),GRADE SMALLINT,FOREIGN key(S#) REFERENCE S(S#),FOREIGN key(C#) REFERENCE C(C#),CHECK (GRADE>=0 and AGE<=100) ) (4)採用外鍵約束CREAT TABLE SC(S# CHAR(4),C# CHAR(4),GRADE SMALLINT,FOREIGN key(S#) REFERENCE S(S#),FOREIGN key(C#) REFERENCE C(C#))若改為:在刪除關系C中一個元組時,同時把關系SC中具有同樣C#的元組全部刪去, 則為:......FOREIGN key(C#) REFERENCE C(C#) ON DELETE CASCADE......(5)採用外鍵約束CREAT TABLE SC(S# CHAR(4),C# CHAR(4),GRADE SMALLINT,FOREIGN key(S#) REFERENCE S(S#) ON UPDATE CASCADE ,FOREIGN key(C#) REFERENCE C(C#))6.20在教學資料庫的關系S、SC、C中,試用SQL2的斷言機制定義下列兩個完整性約束:(1)學生必須在選修Maths課後,才能選修其他課程。(2)每個男學生最多選修20門課程(1)CREAT ASSERTION ASSE1 CHECK( NOT EXISTS( SELECT S FROM SCWHERE C# IN(SELECT C#FROM CWHERE CNAME<>'MATHS')AND S# NOT IN(SELECT S# FROM SCWHERE C# IN(SELECT C#FROM CWHERE CNAME='MATHS')));(2)CREAT ASSERTION ASSE2 CHECK( ALL(SELECT COUNT (SC.C#)FROM S,SCWHERE S.S#=SC.S AND SEX='M'GROUP BY S#)<=20);

熱點內容
博越存儲異常 發布:2025-01-11 01:24:31 瀏覽:916
我的世界還原中國伺服器版圖 發布:2025-01-11 01:18:45 瀏覽:382
pythonopenasfile 發布:2025-01-11 01:17:06 瀏覽:971
hbasejavaapi 發布:2025-01-11 01:11:09 瀏覽:744
我的世界pe版飢餓伺服器 發布:2025-01-11 01:09:39 瀏覽:485
異構資料庫數據同步 發布:2025-01-11 01:09:04 瀏覽:957
c語言三角波 發布:2025-01-11 01:02:11 瀏覽:78
php正則轉義 發布:2025-01-11 01:00:03 瀏覽:691
手拉的箱包上的密碼鎖一般是多少 發布:2025-01-11 00:59:55 瀏覽:8
oppo手機系統更新密碼是多少 發布:2025-01-11 00:56:55 瀏覽:87