亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        關(guān)系數(shù)據(jù)庫中外鍵的作用與設(shè)置

        2021-11-25 20:43:26徐愛蕓
        科學(xué)與生活 2021年16期

        徐愛蕓

        摘要:關(guān)系數(shù)據(jù)庫外鍵是用于與另一張表的關(guān)聯(lián),保證了數(shù)據(jù)的完整性和一致性。設(shè)置不同的選項靈活運用,可以減少冗余,提高系統(tǒng)的性能。

        關(guān)鍵詞:外部關(guān)鍵字;表關(guān)聯(lián);數(shù)據(jù)完整性;數(shù)據(jù)一致性

        1 前言

        在關(guān)系數(shù)據(jù)庫中,維護(hù)數(shù)據(jù)的一致性和完整性可以通過手工方式更新使得多個表之間的數(shù)據(jù)保持一致;設(shè)計更復(fù)雜的程序設(shè)計邏輯并編寫應(yīng)用程序可以維護(hù)數(shù)據(jù)庫的完整性和一致性;在服務(wù)器端通過設(shè)置表的觸發(fā)器,一旦執(zhí)行更新和刪除表中的某些數(shù)據(jù)行,事件自動觸發(fā)以維護(hù)預(yù)定義的某些動作,維護(hù)數(shù)據(jù)庫的一致性;利用數(shù)據(jù)庫級別的外鍵處理方式來幫助維護(hù)數(shù)據(jù)庫完整性,是最簡單的方式。通過外鍵(FK)建立和加強(qiáng)兩個表數(shù)據(jù)之間的連接,在更新或者刪除數(shù)據(jù)行時可以保持?jǐn)?shù)據(jù)庫的完整性,更加可靠。

        2 外鍵存在的意義

        如果有學(xué)生的信息(學(xué)號s#,姓名sname,系號d#、系名dname)需要存儲,可以有一下幾種方式:

        2.1信息都存入到一個表中

        如果所有信息都放在同一個表中,即S(s#,sname,d#、dname),同一個系部的信息存儲次數(shù)與該系學(xué)生人數(shù)相同。這種表結(jié)構(gòu)存在嚴(yán)重的信息冗余(d#、dname列),如果學(xué)生人數(shù)比較多,這一問題表現(xiàn)的越嚴(yán)重,且還會帶來修改復(fù)雜,插入異常,刪除異常等,導(dǎo)致數(shù)據(jù)庫使用異常。

        2.2建立兩個表的邏輯連接

        把學(xué)生信息與系部信息分開存儲,即S(s#,sname,d#)和D(d#、dname),解決了數(shù)據(jù)冗余的問題,但兩張表并沒有建立關(guān)聯(lián),在內(nèi)容和邏輯關(guān)系上不能保持同步和一致,且存在插入異常和刪除異常問題,依然無法保證數(shù)據(jù)完整性。

        2.3 建立兩個表邏輯上的物理連接

        這種方案為S表添加了外鍵d#,指向D表的主鍵d#,該約束起到了保護(hù)數(shù)據(jù)完整性的作用:如果刪除D的系部信息d#已經(jīng)在S表中使用,則該條數(shù)據(jù)無法刪除;無法向S表中添加系部d#不存在的系部信息。這樣就消除了數(shù)據(jù)冗余、插入異常、刪除異常等。

        外鍵用于與另一張表的關(guān)聯(lián),使兩張表形成了物理關(guān)聯(lián),外鍵只能引用主表中主碼的值,控制存儲在外鍵表中的數(shù)據(jù)能保持與主表中的數(shù)據(jù)一致性,從而保證了數(shù)據(jù)的完整性。

        3 外鍵選項設(shè)置

        為了靈活有效的保證數(shù)據(jù)的一致性和完整性,在定義數(shù)據(jù)庫外鍵時有一個可選項,用來設(shè)置當(dāng)主鍵表中的被參照屬性的數(shù)據(jù)發(fā)生變化時,外鍵表中相應(yīng)屬性的事件觸發(fā)限制。

        (1)cascade級聯(lián)更新或級聯(lián)刪除:當(dāng)主鍵表被參照屬性的值執(zhí)行更新或刪除操作時,外鍵表參照屬性的值相應(yīng)會同步更新或刪除,該條數(shù)據(jù)在父表和子表中的記錄都被成功更新或者刪除。

        (2)restrict受限更新或受限刪除:如果想要更新或刪除主鍵表中的記錄,而在外鍵表中有關(guān)聯(lián)該主鍵表的記錄,則不允許更新或刪除主鍵表中的記錄。即數(shù)據(jù)沒有被更新或刪除,父表和子表都沒有變動。

        (3)set null置空:當(dāng)主鍵表被參照屬性的值執(zhí)行更新或刪除時,外鍵表中相應(yīng)的參照屬性的值置為null,前提條件是在設(shè)計外鍵表的時候該屬性要允許為null,否則會出錯。即該條記錄在父表中被刪除,在子表中對應(yīng)記錄的外鍵值被置為null。

        (4)set defaule置為默認(rèn)值:當(dāng)主鍵表被參照屬性的值執(zhí)行更新或刪除時,外鍵表中相應(yīng)記錄的參照屬性的值置為默認(rèn)值。

        4 外鍵選項功能的實現(xiàn)

        (1)CASCADE級聯(lián)規(guī)則實現(xiàn)

        在S(s#,sname,d#)中對外鍵設(shè)置了on update on delete規(guī)則:

        foreign key(d#) references ?D(d#) on update cascade ?on delete cascade

        假如院系表D中的某個系修改了信息,那么在S表中屬于該系學(xué)生的信息一并被修改;假如刪除了D表中的某個系,則在S表中該系的學(xué)生信息一并被刪除了,自動修改或刪除子表數(shù)據(jù)。這樣的聯(lián)動效應(yīng)使得系統(tǒng)的性能更好,這就是外鍵的作用,保持?jǐn)?shù)據(jù)的一致性、完整性。

        (2)NO ACTION或RESTRICT規(guī)則實現(xiàn)

        在S(s#,sname,d#)中對外鍵設(shè)置了no action規(guī)則:

        foreign key(d#) references ?D(d#) on update no action on delete no action

        當(dāng)在S表中設(shè)置外鍵取值為No Action或者Restrict時,則當(dāng)在主鍵表D中修改或刪除一條系的記錄時,系統(tǒng)首先檢查該記錄在外鍵表S中是否有對應(yīng)記錄,如果有學(xué)生在該系,則不允許修改或刪除(即外鍵表約束主鍵表)。

        (3)SET NULL規(guī)則實現(xiàn)

        在S(s#,sname,d#)中對外鍵設(shè)置了set null規(guī)則:

        foreign key(d#) references ?D(d#) on update set null on delete set null

        當(dāng)取值為Set Null時,則當(dāng)在主鍵表D中修改或刪除一條系的記錄時,首先檢查該記錄在S表中是否有對應(yīng)外鍵,如果有則將S表中對應(yīng)的記錄的系的值(外鍵值)設(shè)置為null。這里也是外鍵表約束主鍵表,不過這就要求該外鍵允許取null。

        (4)SET DEFAULT規(guī)則實現(xiàn)

        在S(s#,sname,d#)中對外鍵設(shè)置了set default

        foreign key(d#) references ?D(d#) on update set default on delete set default

        當(dāng)取值為Set Default時,則當(dāng)在主鍵表D中修改或刪除一條系的記錄時,首先檢查該記錄在S表中是否有對應(yīng)外鍵,如果有則將S表中對應(yīng)的記錄的系的值(外鍵值)設(shè)置為默認(rèn)值。

        結(jié)束語

        外鍵是用來控制數(shù)據(jù)庫中數(shù)據(jù)的數(shù)據(jù)完整性的,阻止非法數(shù)據(jù)的存入,減少數(shù)據(jù)庫冗余性,避免了臟數(shù)據(jù)的產(chǎn)生,保證數(shù)據(jù)一致性有很大作用。外鍵是數(shù)據(jù)庫一級的一個完整性約束,是參照完整性的數(shù)據(jù)庫實現(xiàn)方式.

        參考文獻(xiàn)

        [1]劉亞軍,數(shù)據(jù)庫原理與應(yīng)用[M]清華大學(xué)出版社:北京 2020.7

        [1]萬常選,數(shù)據(jù)庫系統(tǒng)原理與設(shè)計(第3版)[M]清華大學(xué)出版社:2018.1

        午夜日本精品一区二区| 97se亚洲精品一区| 亚洲综合网在线观看首页| 国产日韩午夜视频在线观看| 精品综合久久88少妇激情| 一女被多男玩喷潮视频| 亚洲av无码久久寂寞少妇| 91久久综合精品国产丝袜长腿| 久久老熟女一区二区三区| 国产对白国语对白| 精品成人乱色一区二区| 国产69精品一区二区三区| 国产丝袜美腿中文字幕| 日韩av无码久久一区二区| 无套内谢孕妇毛片免费看看| 一区二区三区国产97| 亚洲sm另类一区二区三区| 乱人妻中文字幕| 五月婷婷六月激情| 综合图区亚洲偷自拍熟女| 日本精品一区二区三区二人码| 东京无码熟妇人妻av在线网址| 国产免费人成视频在线播放播| 性感的小蜜桃在线观看| 国产播放隔着超薄丝袜进入| 18级成人毛片免费观看| 国产91精品丝袜美腿在线| 亚洲天堂二区三区三州| 国产麻豆成人精品av| 日韩精品成人无码AV片| 精品国产中文久久久免费| 成人乱码一区二区三区av| 国产精品密播放国产免费看| 亚洲国产成人精品一区刚刚| 国产 一二三四五六| 国产成人麻豆精品午夜福利在线| 无码伊人久久大香线蕉| 男女主共患难日久生情的古言 | 国产在线无码不卡影视影院| 116美女极品a级毛片| 亚洲综合网一区二区三区|