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

        ?

        淺談SQL Server數(shù)據(jù)庫(kù)中數(shù)據(jù)完整性的應(yīng)用

        2021-10-25 13:24:08孫楓
        關(guān)鍵詞:約束

        摘要:在數(shù)據(jù)庫(kù)廣泛應(yīng)用的當(dāng)下,保證數(shù)據(jù)的準(zhǔn)確性和有效性顯得尤為重要。文章基于SQL Server數(shù)據(jù)庫(kù),分析了其數(shù)據(jù)完整性的概念及分類,通過(guò)典型例子幫助用戶了解相關(guān)方法的使用。

        關(guān)鍵詞:SQL Server;數(shù)據(jù)完整性;約束

        引言

        在信息技術(shù)迅速發(fā)展的今天,數(shù)據(jù)庫(kù)應(yīng)用越來(lái)越廣泛。如網(wǎng)站、醫(yī)療、交通、高校、政府、企業(yè)等無(wú)一不每天在利用數(shù)據(jù)庫(kù)存儲(chǔ)與管理著大量的數(shù)據(jù)。而往往在數(shù)據(jù)錄入時(shí),會(huì)因種種原因經(jīng)常會(huì)出現(xiàn)重復(fù)、無(wú)效、錯(cuò)誤等信息。在眾多后臺(tái)數(shù)據(jù)庫(kù)管理系統(tǒng)中,因SQL Server有著功能強(qiáng)大、操作簡(jiǎn)便等特點(diǎn),受到了廣大數(shù)據(jù)庫(kù)用戶喜愛,文章基于SQL Server數(shù)據(jù)庫(kù)介紹數(shù)據(jù)完整性機(jī)制以及相關(guān)應(yīng)用[1]。

        1數(shù)據(jù)完整性的概念和分類

        數(shù)據(jù)完整性是指存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)的一致性和準(zhǔn)確性[2]。它是應(yīng)用防止數(shù)據(jù)庫(kù)中存在不符合語(yǔ)義規(guī)定的數(shù)據(jù)和防止因錯(cuò)誤信息的輸入輸出造成無(wú)效操作或錯(cuò)誤信息而提出的。數(shù)據(jù)完整性分為四類:實(shí)體完整性、域完整性、參照完整性和用戶自定義完整性。其定義分別為:

        實(shí)體完整性:是指保證表中所有的行唯一。實(shí)體完整性要求表中的所有行都要有一個(gè)唯一的標(biāo)識(shí)符,即通過(guò)設(shè)置“主鍵”來(lái)實(shí)現(xiàn)。數(shù)據(jù)庫(kù)中的“主鍵”字段則是不能輸入重復(fù)值或空值,所謂“空值”其實(shí)就是“沒(méi)有”或“無(wú)意義”的值。反言之,如果主屬性取了空值,則無(wú)法進(jìn)行唯一標(biāo)識(shí),這與現(xiàn)實(shí)世界的應(yīng)用環(huán)境相矛盾。

        域完整性:是指一個(gè)列的輸入有效性。域完整性主要用于保證給定字段數(shù)據(jù)的輸入有效性,強(qiáng)制域完整性的方法有:限制類型、格式或可能值的范圍。如限制學(xué)生成績(jī)必須在0~100之間,性別只能是“男”或“女”等。

        參照完整性:是指保證主關(guān)鍵字和外部關(guān)鍵字之間的參照關(guān)系。參照完整性又稱引用完整性,利用“外鍵”來(lái)確保相關(guān)聯(lián)的表(兩個(gè)或兩個(gè)以上表)間數(shù)據(jù)的一致性。當(dāng)添加、刪除和修改記錄時(shí),參照完整性可以保證表之間已定義的關(guān)系,確保鍵值在所有表中一致。如向“學(xué)生成績(jī)表”中添加某個(gè)學(xué)生成績(jī)時(shí)必須確保所有添加成績(jī)的學(xué)生必須在“學(xué)生表”中是存在的,否則不允許添加。

        用戶自定義完整性:是指根據(jù)應(yīng)用環(huán)境的要求和實(shí)際的需要,對(duì)某一具體應(yīng)用所涉及的數(shù)據(jù)提出約束性條件。這一約束機(jī)制一般不應(yīng)由應(yīng)用程序提供,而應(yīng)有由關(guān)系模型提供定義并檢驗(yàn),用戶定義完整性主要包括字段有效性約束和記錄有效性。

        2數(shù)據(jù)完整性的應(yīng)用

        為了確保數(shù)據(jù)的完整與有效性,防止數(shù)據(jù)庫(kù)中存在不符合語(yǔ)義規(guī)定的數(shù)據(jù),防止因錯(cuò)誤信息的輸入、輸出而造成無(wú)效的操作或錯(cuò)誤信息,SQL Servr提供了4種手段來(lái)實(shí)現(xiàn)數(shù)據(jù)完整性,即缺省值、規(guī)則、約束和觸發(fā)器等[3]。

        2.1通過(guò)缺省值實(shí)現(xiàn)數(shù)據(jù)完整性

        缺省值即默認(rèn)值,是為列提供數(shù)據(jù)的一種方式,如果用戶在進(jìn)行插入操作時(shí)不為列輸入任務(wù)數(shù)據(jù),則使用缺省值自動(dòng)輸入??衫帽碓O(shè)計(jì)器創(chuàng)建表時(shí)指定默認(rèn)值,也可在使用Create Table語(yǔ)句中的Default子句指定默認(rèn)值。

        SQL語(yǔ)句中利用默認(rèn)值實(shí)現(xiàn)數(shù)據(jù)完整性應(yīng)用例子如下:

        Create Table Teacher???--創(chuàng)建教師表

        (t_id?char(10),

        t_name varchar(10),

        t_professor varchar(10) default(“助教”))--職稱字段默認(rèn)值為助教

        2.2通過(guò)規(guī)則實(shí)現(xiàn)數(shù)據(jù)完整性

        規(guī)則是用以限制存儲(chǔ)在表中或用戶自定義數(shù)據(jù)類型的值,是獨(dú)立的數(shù)據(jù)庫(kù)對(duì)象,只有將規(guī)則綁定到列或用戶自定義數(shù)據(jù)類型時(shí),規(guī)則才能起作用,而表中的每列或每個(gè)用戶定義數(shù)據(jù)類型只能和一個(gè)規(guī)則綁定。如果要?jiǎng)h除規(guī)則,則應(yīng)先解除綁定。

        SQL語(yǔ)句中利用規(guī)則實(shí)現(xiàn)數(shù)據(jù)完整性應(yīng)用例子如下:

        Create Rule r_age as @age<=100 and @age>=1

        --定義規(guī)則年齡限制區(qū)間

        Exec sp_bindrule ‘r_age’,’teacher.age’

        --使用存儲(chǔ)過(guò)程綁定規(guī)則

        2.3通過(guò)約束實(shí)現(xiàn)數(shù)據(jù)完整性

        約束是指在創(chuàng)建表時(shí)設(shè)置各種條件對(duì)輸入、修改的數(shù)據(jù)進(jìn)行監(jiān)測(cè),使不符合語(yǔ)義規(guī)定的數(shù)據(jù)不能進(jìn)入數(shù)據(jù)庫(kù),以確保數(shù)據(jù)的完整性與有效性。SQL Server數(shù)據(jù)庫(kù)提供了主鍵約束、外鍵約束、唯一約束、檢查約束、非空約束與自動(dòng)編號(hào)約束等6種約束方式。

        2.3.1主鍵約束(PRIMARY KEY)

        主鍵約束是為了保證數(shù)據(jù)實(shí)體完整性,用于唯一地標(biāo)識(shí)表中的每一行。主鍵字段不能出現(xiàn)重復(fù)值或空值。在一個(gè)表中只能有一個(gè)主鍵,主鍵可以是一個(gè)字段,也可以是字段的組合。

        Create Table Department --創(chuàng)建系部表

        (d_id?char(10) PRIMARY KEY, --系部編號(hào),設(shè)置為主鍵

        d_name varchar(20),

        d_leader varchar(10))

        2.3.2外鍵約束(FOREIGN KEY)

        外鍵約束是為了保證數(shù)據(jù)參照完整性,用于在建立一個(gè)或多個(gè)表的字段之間的引用聯(lián)系。在創(chuàng)建時(shí)在被引用表上創(chuàng)建主鍵或唯一約束,在引用表的字段上創(chuàng)建外鍵約束。外鍵約束必須是另一個(gè)表的主鍵,這樣在當(dāng)前表上才能稱為外鍵。

        Create Table Teacher

        (t_id?char(10) PRIMARY KEY, --教師工號(hào),設(shè)置為主鍵

        t_name varchar(10),

        t_sex char(2)CHECK(t_sex=’男’or t_sex=’女’),

        t_professor varchar(10) default(“助教”))

        d_id char(10) FOREIGN KEY references Deparment(d_id))

        --系部編號(hào),外鍵,與系部表的“系部編號(hào)”關(guān)聯(lián)

        2.3.3唯一約束(UNIQUE)

        唯一約束要求該列唯一,允許有空值,但只能出現(xiàn)一個(gè)空值。與主鍵約束類似,也具有唯一性,為表中的一列或多列提供數(shù)據(jù)實(shí)體完整性,一個(gè)表可以設(shè)置多個(gè)唯一約束。

        Create Table Department

        (d_id?char(10) PRIMARY KEY,

        d_name varchar(20) UNIQUE,?--系部名稱,唯一約束

        d_leader varchar(10) UNIQUE))?--系部領(lǐng)導(dǎo),唯一約束

        2.3.4檢查約束(CHECK)

        檢查約束是為了保證域完整性,檢查約束可為所屬字段設(shè)定一個(gè)邏輯表達(dá)式來(lái)限定有效取值范圍。檢查約束只在添加和修改記錄時(shí)有效,在刪除時(shí)無(wú)效。一個(gè)列上只能定義一個(gè)檢查約束。

        Create Table Teacher

        (t_id?char(10) PRIMARY KEY,

        t_name varchar(10),

        t_sex char(2)CHECK(t_sex=’男’or t_sex=’女’),

        --教師性別,檢查約束

        t_professor varchar(10) default(“助教”))

        d_id char(10) FOREIGN KEY references Deparment(d_id))

        2.3.5非空約束(NOT NULL)

        非空約束也是為了保證數(shù)據(jù)實(shí)體完整性,有些表中字段雖然不需要設(shè)置主鍵字段,但其信息不允許為空值,則可利用非空約束來(lái)設(shè)置。

        Create Table Teacher

        (t_id?char(10) PRIMARY KEY,

        t_name varchar(10) NOT NULL,?--教師姓名,非空約束

        t_sex char(2)CHECK(t_sex=’男’or t_sex=’女’),

        t_professor varchar(10) default(“助教”))

        d_id char(10) FOREIGN KEY references Deparment(d_id))

        2.3.6自動(dòng)編號(hào)約束(IDENTITY)

        自動(dòng)編號(hào)約束又稱作標(biāo)識(shí)列,采用數(shù)字編號(hào)的方式依次增加一個(gè)增量。是為那些數(shù)字順序遞增的列準(zhǔn)備的約束,可以自動(dòng)完成數(shù)值添加。

        Create Table Department

        (d_id?int identity(1,1)PRIMARY KEY,

        --系部編號(hào),整型,主鍵約束,自動(dòng)編號(hào)(增量為1)

        d_name varchar(20) UNIQUE,

        d_leader varchar(10) UNIQUE))

        若要實(shí)現(xiàn)更為復(fù)雜的數(shù)據(jù)約束,可以使用觸發(fā)器實(shí)現(xiàn),在此不再贅述。

        3結(jié)束語(yǔ)

        通過(guò)上述數(shù)據(jù)完整性的概念與分類闡述,并通過(guò)相關(guān)例子的實(shí)現(xiàn)來(lái)說(shuō)明數(shù)據(jù)完整性是如何建立和實(shí)施。在具體應(yīng)用過(guò)程中,需要結(jié)合實(shí)際情況選擇相應(yīng)方法來(lái)保證數(shù)據(jù)的準(zhǔn)確性和有效性。

        作者簡(jiǎn)介:

        孫楓(1977-),女,江蘇南通人,中學(xué)高級(jí),碩士研究生(方向:現(xiàn)代教育技術(shù)),江蘇省南通第一中學(xué)信息中心教師。

        參考文獻(xiàn):

        [1]陳潔,薛恒威. SQL Server數(shù)據(jù)庫(kù)中數(shù)據(jù)完整性的分析與實(shí)踐[J]河北軟件職業(yè)技術(shù)學(xué)院學(xué)院學(xué)報(bào),2018

        [2]陳金萍,陳艷,姜廣坤. SQL Server2012數(shù)據(jù)庫(kù)項(xiàng)目化教程[M].清華大學(xué)出版社,2017

        [3]從艷. SQL Server數(shù)據(jù)庫(kù)完整性的維護(hù)[J].電腦知識(shí)與技術(shù),2007

        [4]陳增祥. SQL Server數(shù)據(jù)庫(kù)數(shù)據(jù)完整性的研究與分析[J].信息安全與技術(shù),2012

        [5]李浩,周媛媛. SQL Server數(shù)據(jù)完整性及約束[J].科技與企業(yè),2013

        猜你喜歡
        約束
        “碳中和”約束下的路徑選擇
        約束離散KP方程族的完全Virasoro對(duì)稱
        適當(dāng)放手能讓孩子更好地自我約束
        人生十六七(2015年6期)2015-02-28 13:08:38
        不等式約束下AXA*=B的Hermite最小二乘解
        中文字幕日韩人妻高清在线| 精品av天堂毛片久久久| 国产a三级久久精品| 亚洲区精选网址| 人妻秘书被社长浓厚接吻| 一个少妇的淫片免费看| 午夜无码伦费影视在线观看| 国产福利免费看| 日韩极品视频在线观看| 日韩av一区二区观看| 成人av鲁丝片一区二区免费| 1000部精品久久久久久久久| 涩涩国产在线不卡无码| 久久99精品综合国产女同| 亚洲av永久无码精品漫画| 男女肉粗暴进来120秒动态图 | 亚洲第一区无码专区| 日产国产亚洲精品系列| 亚洲午夜久久久久久久久电影网| 国产乱人伦av在线无码| 成人综合久久精品色婷婷| 爱爱免费视频一区二区三区| 久久亚洲色一区二区三区| 国产精品99久久久久久宅男| 人妻无码中文专区久久AV| 精品乱色一区二区中文字幕 | 免费人成在线观看播放国产| 国产精品久久婷婷六月| 亚洲人成在线播放网站| 又白又嫩毛又多15p| 国产高潮流白浆免费观看不卡| 一级内射免费观看视频| 国内精品久久久久国产盗摄| 成年在线观看免费视频| 国产日韩亚洲中文字幕| 国产精品久久久在线看| 骚片av蜜桃精品一区| 人妻丰满熟妇AV无码片| 亚洲一区免费视频看看| 日本一二三区视频在线| 杨幂AV污网站在线一区二区|