欢迎来到天天文库
浏览记录
ID:39268293
大小:4.55 MB
页数:87页
时间:2019-06-29
《数据完整性控制》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章数据完整性控制本章学习目标通过本章的学习,达到以下目标:理解数据完整性的概念、类型及实现方式。掌握使用约束来实现数据完整性。掌握使用IDENTITY列实现数据完整性。掌握使用默认值对象和规则实现数据完整性。本章目录数据完整性概述6.1使用约束实现数据完整性6.2使用IDENTITY列6.3默认值和规则6.4实训66.56.1数据完整性概述6.1.1数据完整性定义数据完整性是指数据的精确性和可靠性,主要用于保证数据库中数据的质量。它是为防止数据库中存在不符合语义规定的数据和防止因错误信息的输入/输出造成无效
2、操作或报错而提出的。6.1.2数据完整性类型实体完整性实体完整性,又称行完整性,用于保证表中的每一行数据在表中是唯一的。保证实体完整性的措施:PRIMARYKEY约束、UNIQUE约束或IDENTITY列。域完整性域完整性,又称列完整性,是指数据表特定列输入的有效性。用来保证列值的有效性与正确性。保证域完整性的措施:限制数据的类型或格式、CHECK约束、DEFAULT约束、NOTNULL约束或规则。参照完整性参照完整性,又称引用完整性,是建立在外键与主键或外键与唯一键之间的一种引用规则。保证参照完整性的措施有F
3、OREIGNKEY约束。用户定义完整性用户定义的不属于其他任何完整性类别的特定业务规则,称为用户定义完整性。所有完整性类别都支持用户定义完整性。6.1.3实现数据完整性的方式SQLServer2008中采用两种方式实现数据完整性。1.声明数据完整性声明数据完整性是通过在数据库中定义一系列的数据约束与验证标准,并由数据库系统自身在插入、修改、删除数据时自动实施这些标准的一种数据完整性实现手段。声明数据完整性主要通过定义与使用约束、默认值与规则来实现。2.过程数据完整性过程数据完整性是通过在脚本语言中定义一系列的数
4、据约束与验证标准,并在脚本执行过程中强制完成这些标准的检验。过程数据完整性主要通过定义与使用视图、触发器和存储过程来实现。本章仅介绍声明数据完整性的实现方法与技术。6.2使用约束实现数据完整性6.2.1约束概述1.约束定义约束(constraint)是SQLServer2008提供的自动保持数据库完整性的一种方法。约束就是限制,定义约束就是定义可输入表或表的单个列中的数据的限制条件。2.约束分类在SQLServer中有6种约束:主键约束(primarykeyconstraint)唯一约束(uniqueconst
5、raint)外键约束(foreignkeyconstraint)检查约束(checkconstraint)默认约束(defaultconstraint)非空约束(notnullconstraint)约束与完整性之间的关系完整性类型约束类型描述约束对象实体完整性primarykey每行记录的唯一标识符,确保用户不能输入重复值,并自动创建索引,提高性能,该列不允许使用空值行unique在列集内强制执行值的唯一性,防止出现重复值,表中不允许有两行的同一列包含相同的非空值,该列允许使用空值域完整性check指定某一列可
6、接受的值列default当使用INSERT语句插入数据时,若已定义默认值的列没有提供指定值,则将默认值插入记录中NOTNULL指定某一列的值不能为空参照完整性foreignkey定义一列或几列,其值与其他表的主键或unique列相匹配表与表之间3.约束名在创建约束时,需要创建约束的名称,约束名称必须符合标识符命名规则。建议使用约束类型和其完成任务的从句组合作为约束名。例如,学生信息表的主键使用PK_学生信息表。4.创建约束的语法格式(1)使用CREATETABLE语句创建约束其语法格式如下:CREATETABL
7、E表名(<列定义>[{,<列定义>
8、<表约束>}])其中,参数说明如下。表名:是合法标识符,最多可有128个字符。<列定义>:<列名><数据类型>[{<列约束>}](2)使用ALTERTABLE语句创建约束其语法格式如下:ALTERTABLE表名ADD{<表约束>}在SQLServer中对基本表的约束分为:列约束:是对某一个特定列的约束,包含在列定义中,直接跟在该列的其他定义之后,用空格分隔,不必指定列名。表约束:与列定义相互独立,不包括在列定义中,通常用于对多个列一起进行约束,与列定义用“,”分隔,定义表约束
9、时必须指出要约束的那些列的名称。6.2.2主键约束主键约束(primarykeyconstraint)用于指定表的一列或几列的组合来唯一标识表,即能在表中唯一地指定一行记录,这样的一列或列的组合称为表的主键(primarykey,PK)。定义主键约束的列其值不可为空、不可重复。每个表中只能有一个主键。1.使用SSMS创建主键约束【例6.1】在学生成绩数据库中,创建第1章中设计的系部表,
此文档下载收益归作者所有