數(shù)據(jù)庫(kù)完整性

  • 實(shí)體完整性

    • 在CREATE TABLE時(shí)用PRIMARY KEY定義,分為列級(jí)約束條件(寫(xiě)在列后面)和表級(jí)約束條件(寫(xiě)在表的最后)。

    • 定義主碼相當(dāng)于UNIQUE+NOT NULL。

    • 全表掃描十分耗時(shí),因此會(huì)自動(dòng)在主碼上建立一個(gè)索引。如B+樹(shù)索引,提高效率。

  • 參照完整性

    • 在CREATE TABLE時(shí)用FOREIGN KEY定義那些列為外碼,用REFERENCES指明這些外碼參照那些表的主碼。

    • 違約處理:拒絕執(zhí)行(NO ACTION)為默認(rèn)策略,級(jí)聯(lián)操作(CASCADE),設(shè)置為空值。

    • 違約處理實(shí)例:ON DELETE CASCADE,ON UPDATE NO ACTION.

    • 對(duì)于參照完整性,除了定義外碼,還應(yīng)該定義外碼列是否允許空值。

  • 用戶(hù)自定義完整性

    • 屬性上的約束條件:NOT NULL,UNIQUE,CHECK短語(yǔ)(檢查列值滿(mǎn)足某表達(dá)式)

    • 元組上的約束條件:使用CHECK短語(yǔ),可以設(shè)置不同列之間的取值相互約束條件。

    • (check短語(yǔ)里的內(nèi)容同where語(yǔ)句)

  • 完整性約束命名子句

    • 創(chuàng)建語(yǔ)法:CONSTRAINT<約束名><約束條件>,實(shí)例:CONSTRAINT?。睿幔恚濉HECK(age>30)

    • 修改完整性限制,在ALTER TABLE時(shí)修改

    • 刪除:DROP CONSTRAINT?。睿幔恚?/p>

    • 增加:ADD CONSTRAINT name CHECK(num BETWEEN?。?AND 100)

    • 更新:先刪除原來(lái)的約束條件,在增加新的約束條件

  • 域的完整性約束

    • 域是具有相同數(shù)據(jù)類(lèi)型的值的集合。

    • CREATE DOMAIN建立域以及約束就可以用來(lái)定義屬性。實(shí)例:CREATE DOMAIN name CHAR(5) NOT NULL

    • 可以用ALTER DOMAIN修改域。

  • 斷言

    • 使用斷言指定一般性的約束,任何使斷言不為真值的操作都會(huì)被拒絕執(zhí)行。

    • 語(yǔ)句格式:CREATE?。粒樱樱牛遥裕桑希巍。紨嘌悦荆迹茫龋牛茫俗泳洌?/p>

    • 刪除斷言:DROP?。粒樱樱牛遥裕桑希危紨嘌悦?/p>

  • 觸發(fā)器

    • 觸發(fā)器即事件-條件-動(dòng)作規(guī)則。當(dāng)特定事件發(fā)生,對(duì)條件進(jìn)行檢查,成立就執(zhí)行動(dòng)作。

    • 觸發(fā)器只能定義在基本表上,不能定義在視圖上。

    • 觸發(fā)事件可以為INSERT,DELETE,UPDATE或者為其組合,以及UPDATE OF<觸發(fā)列>

    • 觸發(fā)器類(lèi)型有行級(jí)觸發(fā)器(FOR?。牛粒茫取。遥希祝┖驼Z(yǔ)句級(jí)觸發(fā)器(FOR?。樱裕粒裕牛停牛危裕?/p>

    • 格式


 CREATE TRIGGER?。加|發(fā)器名>
{BEFORE|AFTER}?。加|發(fā)事件> ON<表名>?。该饔|發(fā)器激活時(shí)間,
REFERENCING?。危牛祝希蹋摹。遥希住。粒樱甲兞浚?FOR EACH {ROW|STATEMENT}
[WHEN<觸發(fā)條件>]<觸發(fā)動(dòng)作體>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容