999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2021-10-25 13:24:08孫楓
快樂學習報·教師周刊 2021年11期

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

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

引言

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

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

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

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

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

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

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

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

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

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

缺省值即默認值,是為列提供數(shù)據(jù)的一種方式,如果用戶在進行插入操作時不為列輸入任務數(shù)據(jù),則使用缺省值自動輸入。可利用表設計器創(chuàng)建表時指定默認值,也可在使用Create Table語句中的Default子句指定默認值。

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

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

(t_id?char(10),

t_name varchar(10),

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

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

規(guī)則是用以限制存儲在表中或用戶自定義數(shù)據(jù)類型的值,是獨立的數(shù)據(jù)庫對象,只有將規(guī)則綁定到列或用戶自定義數(shù)據(jù)類型時,規(guī)則才能起作用,而表中的每列或每個用戶定義數(shù)據(jù)類型只能和一個規(guī)則綁定。如果要刪除規(guī)則,則應先解除綁定。

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

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

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

Exec sp_bindrule ‘r_age’,’teacher.age’

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

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

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

2.3.1主鍵約束(PRIMARY KEY)

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

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

(d_id?char(10) PRIMARY KEY, --系部編號,設置為主鍵

d_name varchar(20),

d_leader varchar(10))

2.3.2外鍵約束(FOREIGN KEY)

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

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))

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

2.3.3唯一約束(UNIQUE)

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

Create Table Department

(d_id?char(10) PRIMARY KEY,

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

d_leader varchar(10) UNIQUE))?--系部領導,唯一約束

2.3.4檢查約束(CHECK)

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

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ù)實體完整性,有些表中字段雖然不需要設置主鍵字段,但其信息不允許為空值,則可利用非空約束來設置。

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自動編號約束(IDENTITY)

自動編號約束又稱作標識列,采用數(shù)字編號的方式依次增加一個增量。是為那些數(shù)字順序遞增的列準備的約束,可以自動完成數(shù)值添加。

Create Table Department

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

--系部編號,整型,主鍵約束,自動編號(增量為1)

d_name varchar(20) UNIQUE,

d_leader varchar(10) UNIQUE))

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

3結(jié)束語

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

作者簡介:

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

參考文獻:

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

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

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

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

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

主站蜘蛛池模板: 亚洲无线观看| 国产精品久久久久无码网站| 国产日本视频91| 在线观看视频一区二区| 午夜毛片免费观看视频 | 免费无码网站| 国产精品免费福利久久播放| 无码网站免费观看| 91毛片网| 国产成人1024精品| 亚洲av成人无码网站在线观看| 3D动漫精品啪啪一区二区下载| 久久人妻xunleige无码| 国产幂在线无码精品| 国产美女精品在线| 久久人人妻人人爽人人卡片av| V一区无码内射国产| 亚洲国产成人精品一二区 | 无码专区在线观看| 在线另类稀缺国产呦| 久久情精品国产品免费| 国产日韩久久久久无码精品 | 欧美精品亚洲精品日韩专| 亚洲中文字幕手机在线第一页| 国产经典三级在线| 日韩 欧美 小说 综合网 另类| 成人亚洲视频| 久996视频精品免费观看| 亚洲三级视频在线观看| 3p叠罗汉国产精品久久| 无码日韩人妻精品久久蜜桃| 国产亚洲欧美在线专区| 99久久精品免费看国产免费软件| 久久国产亚洲欧美日韩精品| 久久国产乱子| 午夜小视频在线| 99er精品视频| 91在线播放国产| 国产精品香蕉在线| 国产女人在线观看| 香蕉国产精品视频| 欧美一区二区三区香蕉视| 毛片基地视频| 97国产在线播放| 久久人搡人人玩人妻精品| 免费99精品国产自在现线| 国产美女在线免费观看| 亚洲天堂2014| 亚洲中文字幕在线观看| 97国产在线观看| 婷婷五月在线| 91成人试看福利体验区| 日本爱爱精品一区二区| 国产理论最新国产精品视频| 中文字幕2区| 中文字幕欧美日韩高清| 精品丝袜美腿国产一区| 精品伊人久久久香线蕉| 91麻豆久久久| 久久久久亚洲av成人网人人软件 | 亚洲日韩高清在线亚洲专区| 亚洲综合色区在线播放2019| 久久精品人人做人人爽电影蜜月| 亚洲高清无码精品| 尤物视频一区| 国产第四页| 欧美日韩导航| 亚洲天堂首页| 国内自拍久第一页| 欧美成人aⅴ| 日韩高清一区 | 综合五月天网| 欧美一级在线播放| 欧美综合一区二区三区| 天堂岛国av无码免费无禁网站 | 欧美亚洲国产精品久久蜜芽| 91福利国产成人精品导航| 欧美色香蕉| 欧美一区中文字幕| 午夜少妇精品视频小电影| 久久女人网| 九九精品在线观看|