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

淺談SQL Server數據庫中數據完整性的應用

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

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

關鍵詞:SQL Server;數據完整性;約束

引言

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

1數據完整性的概念和分類

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

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

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

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

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

2數據完整性的應用

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

2.1通過缺省值實現數據完整性

缺省值即默認值,是為列提供數據的一種方式,如果用戶在進行插入操作時不為列輸入任務數據,則使用缺省值自動輸入??衫帽碓O計器創建表時指定默認值,也可在使用Create Table語句中的Default子句指定默認值。

SQL語句中利用默認值實現數據完整性應用例子如下:

Create Table Teacher???--創建教師表

(t_id?char(10),

t_name varchar(10),

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

2.2通過規則實現數據完整性

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

SQL語句中利用規則實現數據完整性應用例子如下:

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

--定義規則年齡限制區間

Exec sp_bindrule ‘r_age’,’teacher.age’

--使用存儲過程綁定規則

2.3通過約束實現數據完整性

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

2.3.1主鍵約束(PRIMARY KEY)

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

Create Table Department --創建系部表

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

d_name varchar(20),

d_leader varchar(10))

2.3.2外鍵約束(FOREIGN KEY)

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

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.3唯一約束(UNIQUE)

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

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)

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

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)

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

Create Table Department

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

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

d_name varchar(20) UNIQUE,

d_leader varchar(10) UNIQUE))

若要實現更為復雜的數據約束,可以使用觸發器實現,在此不再贅述。

3結束語

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

作者簡介:

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

參考文獻:

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

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

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

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

[5]李浩,周媛媛. SQL Server數據完整性及約束[J].科技與企業,2013

主站蜘蛛池模板: 欧美国产日韩在线观看| 国产精品女在线观看| 亚洲综合香蕉| 欧美精品v| 伊人91视频| 国产福利小视频在线播放观看| 亚洲日产2021三区在线| 亚洲伊人天堂| 天天综合亚洲| 国产精品三级专区| 色综合色国产热无码一| 国产在线麻豆波多野结衣| 亚洲性日韩精品一区二区| 在线视频一区二区三区不卡| 国产一级二级三级毛片| 久一在线视频| 亚洲成a∧人片在线观看无码| 欧洲欧美人成免费全部视频| 99re66精品视频在线观看 | 日韩精品久久久久久久电影蜜臀| 日韩A∨精品日韩精品无码| 国产精品成人免费视频99| 久草性视频| 欧美天堂久久| 久久五月视频| 色婷婷成人| 久久国产高潮流白浆免费观看| 亚洲成人高清在线观看| 亚洲av无码成人专区| 中文字幕在线欧美| 99热这里只有精品免费| 亚洲天堂免费| 二级特黄绝大片免费视频大片| 亚洲高清免费在线观看| 久久精品最新免费国产成人| 国产成人综合网在线观看| 一级一级一片免费| 久久成人免费| 国产永久无码观看在线| 欧美一区二区自偷自拍视频| 激情综合网激情综合| 成人国产精品一级毛片天堂| 国产交换配偶在线视频| 欧美精品伊人久久| 欧美精品一二三区| 激情無極限的亚洲一区免费| 波多野结衣中文字幕久久| lhav亚洲精品| 国产在线欧美| 国产精品久久自在自2021| 亚洲综合专区| 久久精品一卡日本电影| 人妻熟妇日韩AV在线播放| 亚洲精品爱草草视频在线| 福利小视频在线播放| 亚洲高清无在码在线无弹窗| 成年网址网站在线观看| 1769国产精品视频免费观看| 国产在线观看91精品| 国产精品所毛片视频| 国产人成网线在线播放va| 亚洲精品色AV无码看| 国产在线高清一级毛片| 天天激情综合| 人妻一区二区三区无码精品一区| 亚洲精品你懂的| 日韩欧美综合在线制服| 亚洲国产成人超福利久久精品| 国产91小视频在线观看| 中文字幕亚洲乱码熟女1区2区| 久久国产精品影院| 欧美亚洲国产日韩电影在线| 亚洲人成人伊人成综合网无码| 欧美成人一级| 国产91丝袜在线播放动漫 | 欧美 国产 人人视频| 激情爆乳一区二区| 日韩免费无码人妻系列| 99在线视频网站| 一区二区三区国产| 精品国产成人a在线观看| 亚洲人成网站18禁动漫无码|