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

        ?

        Sql—Server—2005數(shù)據(jù)參照完整性設(shè)計(jì)

        2012-12-31 00:00:00黃小花

        摘要:本文圍繞參照完整性內(nèi)容展開,提到了與參照完整性相關(guān)的主鍵及外鍵的概念,詳細(xì)描述了參照完整性的含義及功能,最后介紹了在Sql_Server_2005中通過外鍵約束和更新刪除規(guī)則來實(shí)現(xiàn)參照完整性的過程。

        關(guān)鍵詞:參照完整性;外鍵約束;更新及刪除規(guī)則

        中圖分類號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9599 (2012) 17-0000-02

        1 引言

        存放在數(shù)據(jù)庫中的數(shù)據(jù)是從外界輸入的,用戶在手工輸入數(shù)據(jù)時(shí)由于種種原因和疏忽,會(huì)產(chǎn)生輸入錯(cuò)誤或輸入信息無效。當(dāng)數(shù)據(jù)的準(zhǔn)確性得不到保障時(shí),運(yùn)行在數(shù)據(jù)庫上的應(yīng)用程序也會(huì)產(chǎn)生不可預(yù)料的錯(cuò)誤和損失,數(shù)據(jù)完整性也因此而提出。通過數(shù)據(jù)完整性約束,避免了存在不符合語義規(guī)定的數(shù)據(jù)和因錯(cuò)誤信息的輸入而造成無效操作等情況發(fā)生。

        數(shù)據(jù)完整性包括實(shí)體完整性、域完整性、參照完整性和用戶自定義完整性四大類。其中參照完整性是較重要和較難理解的,同時(shí)也是很容易被用戶忽略的,以下主要圍繞參照完整性來介紹。

        2 與參照完整性相關(guān)的概念

        2.1 主鍵

        在關(guān)系型數(shù)據(jù)庫中,為了標(biāo)識(shí)每一個(gè)實(shí)體,創(chuàng)建表時(shí)一般都要定義一個(gè)主鍵。構(gòu)成主鍵的列要能唯一確定表中每一行記錄,如學(xué)生實(shí)體的學(xué)號(hào)、姓名、性別、出生日期等屬性中,學(xué)號(hào)屬性可以作為主鍵,因?yàn)槊總€(gè)學(xué)生的學(xué)號(hào)是唯一的,學(xué)號(hào)確定了,每個(gè)學(xué)生也就確定了。而學(xué)生姓名在這里是不適合作為主鍵的,因?yàn)橐紤]學(xué)生同名的情況發(fā)生;而性別、出生日期更也就更不能作為主鍵來處理。

        某一列定義為主鍵時(shí),則必須滿足以下兩個(gè)點(diǎn):該列上不能取NULL值,并且不能有重復(fù)的值,這兩點(diǎn)缺一不可。在輸入數(shù)據(jù)時(shí)如違反了主鍵的規(guī)定(取NULL值和有重復(fù)的值),系統(tǒng)將拒絕用戶輸入,從而保證了現(xiàn)實(shí)中的實(shí)體完整性和唯一性。

        2.2 外鍵

        現(xiàn)實(shí)中存在的對(duì)象是相互聯(lián)系的,在關(guān)系型數(shù)據(jù)庫中實(shí)體間的聯(lián)系體現(xiàn)在表間的聯(lián)系上。要將彼此孤立的表聯(lián)結(jié)起來,就要求在表中存在一些列,這些列可以讓表間進(jìn)行關(guān)聯(lián),那么外鍵就是可以讓表間相互關(guān)聯(lián)的列。對(duì)外鍵的定義如下:某個(gè)鍵同時(shí)出現(xiàn)在A和B兩個(gè)表中,若在表A中它被定義為主鍵,則在表B中稱為外鍵。如學(xué)生表表中有(學(xué)號(hào)、姓名、性別、出生日期)字段,其中學(xué)號(hào)為主鍵;在成績(jī)表中有(成績(jī)編號(hào),學(xué)號(hào),課程號(hào),成績(jī))字段,則成績(jī)表中的學(xué)號(hào)字段為外鍵。外鍵與主鍵總是不可分的,其中主鍵所在的表稱為主表;外鍵所在的表稱為從表。

        3 參照完整性的理解

        參照完整性是對(duì)相關(guān)聯(lián)的兩個(gè)表間的一種約束,是用于確保表間數(shù)據(jù)的保持一致,避免因一個(gè)表數(shù)據(jù)的修改,導(dǎo)致另一個(gè)表相關(guān)數(shù)據(jù)失效。它通過對(duì)主鍵和外鍵在取值上進(jìn)行檢查,要求所有外鍵的值必須是主鍵的有效值,即外鍵的值要么全部來自于主鍵,要么取空值。

        例如,如果在學(xué)生表和成績(jī)表之間用學(xué)號(hào)建立了關(guān)聯(lián),學(xué)生表是主表,成績(jī)表是從表,那么,在向從表中輸入一條新記錄時(shí),系統(tǒng)要檢查新輸入的學(xué)號(hào)值是否是主表中已存在的學(xué)生學(xué)號(hào),如果存在,則允許執(zhí)行輸入操作,否則拒絕輸入。如果沒有參照完整性,則可在從表中可以輸入任何主表中不存在的學(xué)生成績(jī),試想在現(xiàn)實(shí)生活中,這個(gè)學(xué)生根本就不存在,而卻記錄了該學(xué)生的成績(jī),這是不符合常理的。

        參照完整性還體現(xiàn)在刪除和更新操作。當(dāng)更新、刪除一個(gè)表中的數(shù)據(jù)時(shí),通過參照引用相互關(guān)聯(lián)的另一個(gè)表中的數(shù)據(jù),來檢查數(shù)據(jù)是否正確。例如通過“限制”的原則不允許在主表中修改或刪除外表中已有相應(yīng)值的記錄;再如通過“級(jí)聯(lián)”的原則,要求修改或刪除主表中主鍵值時(shí),從表中外鍵的值也應(yīng)做相應(yīng)的修改或刪除,如在從表中未做相應(yīng)的修改和刪除,會(huì)造成從表中存在大量孤立的無意義的數(shù)據(jù)。

        4 在SqlServer2005中實(shí)現(xiàn)參照完整性

        4.1 強(qiáng)制外鍵約束

        在Sql_Server_2005 management studio中,新建數(shù)據(jù)庫關(guān)系時(shí),創(chuàng)建外鍵約束。

        ①在對(duì)象資源管理器中展開需創(chuàng)建關(guān)系的數(shù)據(jù)庫,右擊“數(shù)據(jù)庫關(guān)系圖”,選擇“新建數(shù)據(jù)庫關(guān)系圖”,添加將要?jiǎng)?chuàng)建關(guān)聯(lián)的表;②在關(guān)系圖中,將主表的主鍵字段拖到從表上。在打開的“表和列”對(duì)話框中選擇相關(guān)聯(lián)的主鍵和外鍵;③在隨后打開的“外鍵關(guān)系”對(duì)話框中,在“強(qiáng)制外鍵約束”選項(xiàng)中有“是”和“否”兩個(gè)選項(xiàng)。這里選擇“是”。

        【注意】要?jiǎng)?chuàng)建參照完整性,必須確保選擇了外鍵約束,外鍵約束表現(xiàn)為:若主表中沒有相應(yīng)的值,則在從表中不能添加相應(yīng)的記錄。(不可以修改從表中主表中有相應(yīng)值的記錄)。(但是可以刪除從表中主表中有相應(yīng)值的記錄)。如強(qiáng)制外鍵約束為“否”,則主表和從表中數(shù)據(jù)的一致性也無法得到保證。

        4.2 更新和刪除規(guī)則

        強(qiáng)制外鍵約束只是設(shè)置參照完整性的第一步,第二步還需設(shè)置更新和刪除規(guī)則。更新和刪除規(guī)則指定當(dāng)數(shù)據(jù)庫的最終用戶嘗試更新或刪除某一行,而該行包含外鍵關(guān)系所涉及的數(shù)據(jù)時(shí)所發(fā)生的情況。

        更新和刪除規(guī)則只有在選擇了強(qiáng)制外鍵約束條件下才生效。在SqlServer2005中更新和刪除規(guī)則共有以下四種設(shè)置:

        ①無操作(限制):當(dāng)更新或刪除主表中與從表有關(guān)數(shù)據(jù)時(shí),將顯示一條錯(cuò)誤信息,告知用戶不允許執(zhí)行該更新或刪除操作。此操作是一種限制的關(guān)系,具體表現(xiàn)在:若外鍵所在表中有相關(guān)記錄,則在主表中不允許更改或刪除相關(guān)的主鍵值。②層疊(級(jí)聯(lián)):更新或刪除外表中所涉及到所有行?!皩盈B”在SQL Server 2000中又叫“級(jí)聯(lián)”關(guān)系,具體表現(xiàn)在:更改或刪除主鍵所在表中數(shù)據(jù)時(shí),外鍵所在的表中的相應(yīng)記錄將自動(dòng)更改或刪除。(注意:要刷新后才能看到效果)

        【注意】在使用層疊更新和刪除時(shí),一定要謹(jǐn)慎,否則將導(dǎo)致數(shù)據(jù)不可控。例如,如果A表級(jí)聯(lián)刪除或更新了B表中的數(shù)據(jù),而B表又級(jí)聯(lián)了C表,C表還級(jí)聯(lián)了D表,那么用戶在刪除或更新A表中一條數(shù)據(jù)時(shí)可能都沒有想到會(huì)把C表、D表中的數(shù)據(jù)給刪除或修改了。正是由于這種級(jí)聯(lián)不好控制,所以層疊功能一般很少用。

        ③設(shè)置空:是SQL_Server_2005新增功能,可將外鍵取空值。具體表現(xiàn)為:在外鍵所在列都可以接受空值的情況下,更改或刪除主鍵的值時(shí),外鍵所在列取NULL值。

        【注意】如果外鍵所在列不可以接受空值,則創(chuàng)建表與表之間的關(guān)系時(shí),不能選擇“設(shè)置空”操作。

        ④設(shè)置默認(rèn)值:是SQL_Server_2005新增功能,可將外鍵取默認(rèn)值。在外鍵所在列已定義了默認(rèn)值情況下,修改或刪除主鍵值時(shí),外鍵所在列值取定義時(shí)的默認(rèn)值。

        【注意】如果外鍵所在列沒有定義默認(rèn)值,則創(chuàng)建表與表之間的關(guān)系時(shí),不能選擇“設(shè)置默認(rèn)值”操作。

        參考文獻(xiàn):

        [1]劉宏.SQL Server 2005 數(shù)據(jù)庫應(yīng)用技術(shù)[M].機(jī)械工業(yè)出版社,2012,2.

        [2]龐英智.SQL Server數(shù)據(jù)庫及應(yīng)用[M].高等教育出版社,2007,12.

        [3]李偉紅. SQLServer2005實(shí)用教程[M];中國水利水電出版社;2008.

        [4]鄭昌厚.淺析SQL Server2005數(shù)據(jù)庫[J];中國對(duì)外貿(mào)易;2010,24.

        [作者簡(jiǎn)介]

        黃小花(1982-),女,江西吉安人,講師,軟件工程碩士,主要研究方向:軟件工程、計(jì)算機(jī)網(wǎng)絡(luò)與數(shù)據(jù)庫。

        亚洲福利一区二区不卡| 久久精品无码鲁网中文电影| 亚洲一区二区三区久久不卡| 我也色自拍俺也色自拍| 美女视频黄是免费| 久久久久久久岛国免费观看| 亚洲人成精品久久久久| 亚洲一区有码在线观看| 日韩人妻无码精品一专区二区三区 | 日韩中文字幕精品免费一区| 在线观看国产激情免费视频| 亚洲av无码无线在线观看| 国产精品jizz视频| 无码av一区在线观看| 亚洲国产一区二区av| 人妻洗澡被强公日日澡电影| 久久久久久av无码免费看大片| 日韩国产自拍精品在线| 美女被男人插得高潮的网站| 国产精品欧美一区二区三区不卡| 久久精品这里只有精品| 青青草视频在线免费视频| 一本色道无码不卡在线观看| 中文字幕亚洲情99在线| 久久99精品这里精品动漫6| 精品嫩模福利一区二区蜜臀| 免费观看羞羞视频网站| 五月天久久国产你懂的| 亚洲国产精品成人av| 无码人妻丰满熟妇区免费| 狼色精品人妻在线视频| 亚洲无码激情视频在线观看| 日本av天堂一区二区三区| 孕妇特级毛片ww无码内射| AV无码一区二区三区国产| 青青草久久久亚洲一区| 又黄又爽又无遮挡免费的网站| 亚洲国产中文在线二区三区免| 日本红怡院东京热加勒比| 美女视频黄是免费| 蜜桃av噜噜一区二区三区|