一、數(shù)據(jù)完整性簡介
1、數(shù)據(jù)完整性簡介
數(shù)據(jù)冗余是指數(shù)據(jù)庫中存在一些重復(fù)的數(shù)據(jù),數(shù)據(jù)完整性是指數(shù)據(jù)庫中的數(shù)據(jù)能夠正確反應(yīng)實(shí)際情況。
數(shù)據(jù)完整性是指數(shù)據(jù)的可靠性和準(zhǔn)確性,數(shù)據(jù)完整性類型有四種:
A、實(shí)體完整性:實(shí)體的完整性強(qiáng)制表的標(biāo)識符列或主鍵的完整性(通過唯一約束,主鍵約束或標(biāo)識列屬性)。
B、域完整性:限制類型(數(shù)據(jù)類型),格式(通過檢查約束和規(guī)則),可能值范圍(通過外鍵約束,檢查約束,默認(rèn)值定義,非空約束和規(guī)則)。
C、引用完整性:在刪除和輸入記錄時,引用完整性保持表之間已定義的關(guān)系。引用完整性確保鍵值在所有表中一致,不能引用不存在的值。如果一個鍵。
D、定義完整性:用戶自己定義的業(yè)務(wù)規(guī)則,比如使用觸發(fā)器實(shí)現(xiàn)自定義業(yè)務(wù)規(guī)則。

2、數(shù)據(jù)完整性實(shí)現(xiàn)方式

MySQL不支持Check約束,雖然可以在列上添加check約束,但不起作用。
二、實(shí)體完整性實(shí)現(xiàn)
1、實(shí)體完整性的實(shí)現(xiàn)簡介
實(shí)體完整性的實(shí)現(xiàn)有兩種方式:
A、主鍵約束:一張表只能有一列設(shè)置主鍵,值必須唯一,不允許為空,innoDB存儲引擎,主鍵就是索引。
B、唯一值約束:一張表可以有多個列添加唯一值約束,一直允許一條記錄為空值。
實(shí)體完整性,由主鍵和唯一性約束來實(shí)現(xiàn),確保表中記錄有一列唯一標(biāo)識。主鍵又分為Primary key和AUTO_INCREMENT PRIMARY KEY兩種。
2、主鍵
MySQL的主鍵名總是PRIMARY,當(dāng)創(chuàng)建主鍵約束時,如果表的存儲引擎是innoDB,系統(tǒng)默認(rèn)會在所在的列和列組合上建立對應(yīng)的唯一索引,
主鍵約束相當(dāng)于唯一約束與非空約束的組合,主鍵約束列不允許重復(fù),也不允許出現(xiàn)空值;多列組合的主鍵約束,列都不允許為空值,并且組合的值不允許重復(fù)。每個表最多只允許一個主鍵,建立主鍵約束可以在列級別創(chuàng)建,也可以在表級別上創(chuàng)建。
新聞熱點(diǎn)
疑難解答
圖片精選