什麼是資料庫的完整性
⑴ 什麼是資料庫表的完整性
資料庫表的完整性分為三類:
實體完整性:主要指表中哪些欄位的取值不能為空,比如用來做主鍵的欄位的取值不能為空;
參照完整性:主要是指設置為外鍵的這類欄位,這類欄位的取值必須參照其它表中主鍵欄位的取值而存在,就是說如果被參照的欄位不存在的值被插入到這類欄位中,這個操作是不被允許的;
用戶自定義完整性:主要指用戶為欄位定義的取值范圍,比如年齡的欄位取值必須是大於0的整數
⑵ 資料庫完整性包括哪些
實體完整性約束 就是主鍵約束
參照完整性約束 就是外鍵約束
用戶自定義完整性約束 一般認為是 NULL和NOT NULL ,CHECK
⑶ 什麼是資料庫的完整性約束條件
數據完整性約束指的是為了防止不符合規范的數據進入資料庫,在用戶對數據進行插入、修改、刪除等操作時,DBMS自動按照一定的約束條件對數據進行監測,使不符合規范的數據不能進入資料庫,以確保資料庫中存儲的數據正確、有效、相容。
資料庫的完整性約束包含以下類型:
1) 與表有關的約束:是表中定義的一種約束。可在列定義時定義該約束,此時稱為列約束,也可以在表定義時定義約束,此時稱為表約束。
2) 域(Domain)約束:在域定義中被定義的一種約束,它與在特定域中定義的任何列都有關系。
3) 斷言(Assertion):在斷言定義時定義的一種約束,它可以與一個或多個表進行關聯。
(3)什麼是資料庫的完整性擴展閱讀:
數據的完整性
分為以下四類:
1) 實體完整性:規定表的每一行在表中是惟一的實體。
2) 域完整性:是指表中的列必須滿足某種特定的數據類型約束,其中約束又包括取值范圍、精度等規定。
3) 參照完整性:是指兩個表的主關鍵字和外關鍵字的數據應一致,保證了表之間的數據的一致性,防止了數據丟失或無意義的數據在資料庫中擴散。
4) 用戶定義的完整性:不同的關系資料庫系統根據其應用環境的不同,往往還需要一些特殊的約束條件。用戶定義的完整性即是針對某個特定關系資料庫的約束條件,它反映某一具體應用必須滿足的語義要求。
⑷ 資料庫中 什麼是數據完整性
資料庫完整性
(Database
Integrity)是指資料庫
中數據
的正確性和
相容性
。資料庫完整性由各種各樣的
完整性
約束來保證,因此可以說資料庫完整性設計就是資料庫完整性約束的設計。
⑸ 資料庫的完整性是什麼啊!
資料庫的完整性的全名叫做:關系資料庫的參照完整性(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);
⑹ 什麼是資料庫的完整性和安全性的關系
完整性和安全性是兩個不同的概念。前者是為了防止資料庫中存在不符合語義的數據,防止錯誤信息的輸入和輸出造成的無效操作和錯誤結果,而後者是防止資料庫被惡意的破壞和非法的存取。當然,完整性和安全性是密切相關的。特別是從系統實現的方法來看,某一種機制常常既可以用於安全保護亦可用於完整性保證。
⑺ sql server 的數據完整性指的是的什麼
主要是第二段:
數據完整性(Data Integrity)是指數據的精確性(Accuracy) 和可靠性(Reliability)。它是應防止資料庫中存在不符合語義規定的數據和防止因錯誤信息的輸入輸出造成無效操作或錯誤信息而提出的。數據完整性分為四類:實體完整性(Entity Integrity)、域完整性(Domain Integrity)、參照完整性(Referential Integrity)、用戶定義的完整性(User-definedIntegrity)。
資料庫採用多種方法來保證數據完整性,包括外鍵、約束、規則和觸發器。系統很好地處理了這四者的關系,並針對不同的具體情況用不同的方法進行,相互交叉使用,相補缺點。