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

資料庫的參照完整性

發布時間: 2023-03-10 12:37:44

『壹』 資料庫,參照完整性規則包括什麼么

資料庫有3個完整性規則
實體完整性規則
參照完整性規則
用戶定義完整性規則
其中參照完整性定義:如果屬性集K是關系模式R1的主鍵,還是關系模式R2的外鍵,那麼在R2的關系中,K的取值只能有兩種情況:1
為空
2
等於R1中K的值
也就是說不允許引用不存在的實體,這就是參照完整性包含的東西,你應該知道什麼是主鍵
什麼是外鍵的
祝你好運

『貳』 資料庫的完整性是什麼啊!

資料庫的完整性的全名叫做:關系資料庫的參照完整性(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-08-22 09:10:40 瀏覽:880
農村醫保金融卡密碼是多少 發布:2025-08-22 08:33:59 瀏覽:662
iphone8手機如何快捷鍵清除緩存 發布:2025-08-22 08:21:57 瀏覽:425
linux編程java 發布:2025-08-22 07:57:40 瀏覽:310
steam刪文件夾 發布:2025-08-22 07:57:38 瀏覽:52
bytec語言 發布:2025-08-22 07:37:34 瀏覽:387
蘋果手機怎麼上傳視頻到qq空間 發布:2025-08-22 07:10:03 瀏覽:638
淘寶androidsdk 發布:2025-08-22 06:52:04 瀏覽:940
編程掙錢嗎 發布:2025-08-22 06:31:21 瀏覽:1003
敬請存儲 發布:2025-08-22 06:25:42 瀏覽:612