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

資料庫的完整性約束

發布時間: 2022-02-12 04:48:33

『壹』 關系資料庫的三個完整性約束是什麼各是什麼含義

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

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

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

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

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

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

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

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

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

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

『貳』 什麼是資料庫的完整性約束條件

資料庫完整性(Database
Integrity)是指資料庫中數據的正確性和相容性,其目的是防止垃圾數據的進出。資料庫完整性由各種各樣的完整性約束來保證,因此可以說資料庫完整性設計就是資料庫完整性約束的設計。加在資料庫之上的語義約束條件就是資料庫完整性約束條件。
完整性約束條件作用對象可以使關系、元組、列三種。
●列約束主要是列的數據類型、取值范圍、精度、排序等約束條件。
●元組的約束是元組中各個欄位間的聯系的約束。
●關系的約束是若干元組間、關系集合上以及關系之間的聯系的約束。
完整性約束條件涉及這三類對象,其狀態可以是靜態的,也可以是動態的。所謂靜態約束是指資料庫每一確定狀態時的數據對象所應滿足的約束條件。它是反映資料庫狀態合理性的約束,這是最重要的一類完整性約束。
動態約束是指資料庫從一種狀態轉變為另一種狀態時,新、舊值之間所應滿足的約束條件。
完整性約束條件可分為以下六類:
●靜態列級約束
●靜態元組約束
●靜態關系約束
●動態列級約束
●動態元組約束
●動態關系約束
1.
靜態列級約束是對一個列的取值域的說明,包括以下幾個方面:
(1)對數據類型的約束,包括數據的類型、長度、單位、精度等;
(2)對數據格式的約束。例如規定日期的格式為YYYY-MM-DD;
(3)對取值范圍或取值集合的約束。例如規定學生的成績取值范圍為0~100;
(4)對空值的約束,規定哪些列可以為空值,哪些列不能為空值;
2.
靜態元組約束就是規定元組的各個列之間的約束關系。例如,訂貨關系中包含發貨量、訂貨量等列,規定發貨量不得超過訂貨量。
3.
靜態關系約束是指在一個關系的各個元組之間或者若干關系之間存在的約束。常見的靜態約束有:
(1)實體完整性約束;
(2)引用完整性約束;
(3)函數依賴約束;大部分函數依賴約束都在關系模式中定義。
(4)統計約束;即欄位值與關系中多個元組的統計值之間的約束關系。例如,規定部門經理的工資不得高於本部門職工平均工資的5倍,不得低於本部門職工平均工資的2倍。
4.
動態列級約束是修改列定義或列值時應滿足的約束條件,包括下面兩方面:
(1)修改列定義時的約束。例如,將允許空值的列改為不允許空值時,如果該列目前已存在空值,則拒絕這種修改。
(2)修改列值時的約束。修改列值時有時需要參照其舊值,並且新舊值之間需要滿足某種約束條件。例如,職工調整後的工資不得低於其調整前的原來工資;職工婚姻狀態的變化只能是由未婚到已婚、已婚到離異、離異到再婚等幾種情況。
5.
動態元組約束是指修改元組的值時元組中各個欄位間需要滿足某種約束條件。例如,職工工資調整時新工資不得低於原工資+工齡*1.5等。
6.
動態關系約束是加在關系變化前後狀態上的限制條件。例如,在集成電路晶元設計資料庫中,一個設計中用到的所有單元的工藝必相同,因此,在更新某個設計單元時,設計單元的新老工藝必須保持一致。

『叄』 資料庫完整性約束

這個只能約束位數,不能約束輸入的日期是否合法,盡量做到程序中

『肆』 什麼是資料庫的數據完整性有哪些數據完整性約束在access中如何實現

資料庫的數據完整性是一組完整性規則的集合。完整性規則是數據及其聯系所具有的制約和依存規則,用以保證數據的正確、有效和相容,使數據系統值和現實系統狀態一致。
完整性約束包括:實體完整性,參照完整性和用戶定義的完整性
實體完整性在Access中通過主鍵實現。參照完整性在Access中通過創建表間關系實現。用戶定義的完整性在Access中通過定義有效性規則實現。

『伍』 什麼是關系資料庫的三個完整性有哪五個約束條件

實體完整性約束、參照完整性約束、用戶自定義完整性約束。
五個約束條件:非空、唯一、主碼、外碼、檢查。

『陸』 SQL 建立資料庫 表(完整性約束)

資料庫可以在SQL2000/2005/2008企業管理器中直接建立;

建表

USEDB

GO

CREATETABLET1---建立T1表

(M_1INTPRIMARYKEYNOTNULL,

M_2CHAR(20),

M_3CHAR(20),

N_1INT

)

GO

CREATETABLET2---建立T2表

(N_1INTPRIMARYKEYNOTNULL,

N_2CHAR(20),

N_3CHAR(20)

)

GO

ALTERTABLET1

---為T1表建立外鍵(當有數據插入T1時,會檢查T1中的N_1在T2中是否存在)

ADDCONSTRAINTFK_T1_N_1FOREIGNKEY(N_1)REFERENCEST2(N_1)

GO

---------------

刪除table2中數據的時候table1中有N_1的信息也要刪除

建個觸發器

USEDB

GO

CREATETRIGGERinfor_delONT2FORDELETE

AS

BEGIN

DELETEFROMT1WHEREN_1IN(SELETEN_1FROMDELETED)

GO

--------------------------

SQL2008下已通過執行

『柒』 SQL資料庫的完整性約束是用來干什麼的

保證數據的正確完整性,避免對資料庫的增刪改等操作帶來的錯誤。
舉個例子,一條數據表結構為
學號 姓名 。。。
其中學號為主鍵,但是你試圖添加一條資料庫記錄 : 張三 。。。
而學號為空 NULL 這樣則是添加不成功的,這就是完整性約束。

『捌』 怎麼檢查資料庫的完整性約束

數據完整性
強制數據完整性可確保資料庫中的數據質量。例如,如果輸入了 employee_id 值為 123 的職員,那麼該資料庫不應允許其他職員使用同一 ID 值。如果計劃將 employee_rating 列的值范圍設定為從 1 到 5,則資料庫不應接受 6。如果表有一 dept_id 列,該列存儲職員的部門編號,則資料庫應只允許接受公司中的有效部門編號。

對表進行計劃有兩個重要步驟:標識列的有效值和確定如何強制列中的數據完整性。數據完整性有四種類型:

實體完整性

域完整性

引用完整性

用戶定義完整性
實體完整性
實體完整性將行定義為特定表的唯一實體。實體完整性強製表的標識符列或主鍵的完整性(通過索引、UNIQUE 約束、PRIMARY KEY 約束或 IDENTITY 屬性)。

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

引用完整性
在輸入或刪除記錄時,引用完整性保持表之間已定義的關系。在 Microsoft® SQL Server™ 2000 中,引用完整性基於外鍵與主鍵之間或外鍵與唯一鍵之間的關系(通過 FOREIGN KEY 和 CHECK 約束)。引用完整性確保鍵值在所有表中一致。這樣的一致性要求不能引用不存在的值,如果鍵值更改了,那麼在整個資料庫中,對該鍵值的所有引用要進行一致的更改。

強制引用完整性時,SQL Server 禁止用戶進行下列操作:

當主表中沒有關聯的記錄時,將記錄添加到相關表中。

更改主表中的值並導致相關表中的記錄孤立。

從主表中刪除記錄,但仍存在與該記錄匹配的相關記錄。

『玖』 資料庫定義完整性約束!!!急!!!

1:在關系Student中插入學生年齡值應在15~35之間

ALTER TABLE Student
ADD CONSTRAINT chk_Student_age
CHECK ( Sage >= 15 AND Sage <= 35 );

2:在關系SC中插入元組時,其sno值和cno值必須分別在Student中和Course中出現

ALTER TABLE SC
ADD CONSTRAINT FK_SC_Student
FOREIGN KEY (Sno) REFERENCES Student;

ALTER TABLE SC
ADD CONSTRAINT FK_SC_Course
FOREIGN KEY (Cno) REFERENCES Course;

3:在關系SC中修改grade值時,必須仍在0~100之間

ALTER TABLE SC
ADD CONSTRAINT chk_SC_grade
CHECK ( grade >= 0 AND grade <= 100 );

4:在刪除關系Course中一個元組時,首先要把關系SC中具有同樣cno值的元組全部刪去

-- 這個是在 第 2 題的基礎上面, 增加一個 ON DELETE CASCADE
ALTER TABLE SC
ADD CONSTRAINT FK_SC_Course
FOREIGN KEY (Cno) REFERENCES Course
ON DELETE CASCADE;

5:在關系Student中把某一個sno值修改為新值時,必須同時把關系SC中那些同樣的sno值也修改為新值

-- 這個是在 第 2 題的基礎上面, 增加一個 ON UPDATE CASCADE

ALTER TABLE SC
ADD CONSTRAINT FK_SC_Student
FOREIGN KEY (Sno) REFERENCES Student
ON UPDATE CASCADE;

熱點內容
跳轉頁源碼 發布:2024-09-17 03:13:05 瀏覽:542
html文件上傳表單 發布:2024-09-17 03:08:02 瀏覽:783
聊天軟體編程 發布:2024-09-17 03:00:07 瀏覽:725
linuxoracle安裝路徑 發布:2024-09-17 01:57:29 瀏覽:688
兩個安卓手機照片怎麼同步 發布:2024-09-17 01:51:53 瀏覽:207
cf編譯後沒有黑框跳出來 發布:2024-09-17 01:46:54 瀏覽:249
安卓怎麼禁用應用讀取列表 發布:2024-09-17 01:46:45 瀏覽:524
win10設密碼在哪裡 發布:2024-09-17 01:33:32 瀏覽:662
情逢敵手迅雷下載ftp 發布:2024-09-17 01:32:35 瀏覽:337
安卓如何讓軟體按照步驟自動運行 發布:2024-09-17 01:28:27 瀏覽:197