开篇:润墨网以专业的文秘视角,为您筛选了一篇SQL Server中数据完整性实现机制分析范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘要:为了分析sql server中数据完整性的机制,先介绍了SQL Serve各种机制,重点分析了约束,并以图书馆管理系统中的数据库为例建立主键约束、外键约束、唯一键约束、检查约束、默认值约束。最后归纳总结几种约束使用场合。
关键词:数据完整性;约束;主键;外键
中图分类号:TP311.132.3 文献标识码:A 文章编号:1007-9599 (2012) 13-0000-02
在向数据库中添加、删除、修改时,出现错误是难免的,为了确保数据质量,SQL Server通过约束和触发器可以保证数据库中数据的完整性。在复杂的数据库中,约束有较多的应用。本文重点介绍约束。
一、数据完整性
数据的完整性是指存储在数据库的数据的一致性和准确性。数据的完整性的类型有三种:域的完整性、实体完整性、引用完整性。域完整性指特定列的项的有效性。实体完整性将行定义为特定表的唯一实体。引用完整性确保键值在所有表中一致。这类一致性要求不引用不存在的值,如果一个键值发生更改,则整个数据库中,对该键值的所有引用要进行一致的更改。在SQL Server中有6种机制确保数据的完整性,这6种机制是数据类型、规则、默认值、约束、触发器、和XML架构。数据完整性机制如表1
二、约束
在SQL Server中约束来实现数据的完整性如表2。可能通过DEFAULT、CHECK、FOREIGN KEY、NULL几种约束实现域的完整性;通过PRIMARY KEY、UNIQUE实现实体完整性;通过FOREIGN KEY、CHECK实现引用完整性。
下面就图书馆管理系统分析这些约束。数据库library包含readers、books、borrow 3张表如图1。
(一)主键约束
表通常具有包含唯一标识表中每一行的值的一列或一组列。这样的一列或多列称为表的主键 (PK),用于强制表的实体完整性。在创建或修改表时,可以通过定义 PRIMARY KEY 约束来创建主键。
在readers表中BorrowerID设为主键,books表中BookID设为主键,borrow表中BookID与BorrowerID设为组合主键。下面一段代码是实现borrow表的主键约束。
ALTER TABLE borrow
ADD CONSTRAINT PK_borrow PRIMARY KEY(BookID, BorrowerID)
(二)外键约束
外键(FK)是用于建立和加强两个表数据之间的链接的一列或多列。当创建或修改表时可通过定义 FOREIGN KEY 约束来创建外键。
在borrow表中BookID与BorrowerID都设为外键。如BookID设为外键。
ALTER TABLE borrow
ADD CONSTRAINT FK_borrow_readers
FOREIGN KEY (BookID)
REFERENCES books (BookID)
(三)唯一键约束
可以使用 UNIQUE 约束确保在非主键列中不输入重复的值。可以将readers表中的StudentNum设为唯一键约束。
ALTER TABLE readers
ADD CONSTRAINT un_readers UNIQUE(StudentNum)
(四)检查约束
通过限制列可接受的值,CHECK 约束可以强制域的完整性。将readers表中的Sex设为CHECK约束,取值只能是男或女。
ALTER TABLE readers
ADD CONSTRAINT CK_readers CHECK(Sex=’男’ OR Sex=’女’)
(五)默认值约束
不希望有可为空的列,因此最好是为列定义 DEFAULT 定义。Borrow表的BorrowBookNum设为默认值约束。
ALTER TABLE readers
ADD CONSTRAINT DEF_borrow DEFAULT(10) FOR BorrowBookNum
三、小结
每一种约束有它使用的场合,也各有区别。主键约束和唯一约束都强调实体唯一性,但一张表只有一个主键约束,而可以有多个唯一键约束。检查约束和数据类型限制可限制非法数据输入。外键约束时,SQL Server 将防止用户执行下列操作:
在主表中没有关联行的情况下在相关表中添加或更改行;
在主表中更改值(可导致相关表中出现孤立行);
在有匹配的相关行的情况下删除主表中的行。
参考文献:
[1]微软公司.SQL Server 2005数据库开发与实现[M].北京:高等教育出版社,2007
[2]钱冬云.SQL Server 2005数据库应用技术[M].北京:清华大学出版社,2010
[3]微软公司.SQL Server 2005联机从书