欢迎来到天天文库
浏览记录
ID:43215023
大小:314.00 KB
页数:36页
时间:2019-10-03
《数据库完整性及SQL》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、8.1完整性约束条件及完整性控制8.2SQLServer的数据完整性及其实现8.3案例6:活期储蓄管理系统数据库的完整性控制8/17/2021数据库的完整性是指数据的正确性、有效性和相容性,防止错误数据进入数据库,保证数据库中数据的质量。正确性是指数据的合法性;有效性是指数据是否属于所定义的有效范围;相容性是指描述同一现实的数据应该相同。数据库是否具备完整性涉及到数据库系统中的数据是否正确、可信和一致,保持数据库的完整性是非常重要的。8/17/20218.1完整性约束条件及完整性控制为了保证数据库的完整性,DBMS必须提供一种功能来保证数据库中的数
2、据是正确的,避免由于不符合语义的错误数据的输入和输出。检查数据库中数据是否满足规定的条件称为“完整性检查”。数据库中数据应满足的条件称为“完整性约束条件”,有时也称为完整性规则。完整性控制DBMS中执行完整性检查的子系统称为“完整性子系统”。它的主要功能有:定义完整性功能,即提供定义完整性约束条件的机制。检查完整性功能,即检查用户发出的操作请求,看其是否违背了完整性约束条件。控制完整性功能,即监视数据操作的整个过程,如果发现有违背了完整性约束条件的情况,则采取一定的动作来保证数据的完整性。8/17/2021完整性规则完整性子系统是根据“完整性规则集
3、”工作的。完整性规则集是由DBA或应用程序员事先向完整性子系统提出的有关数据约束的一组规则。每个完整性规则有三个部分组成:(1) 什么时候使用规则进行检查(称为规则的“触发条件”);(2) 要检查什么样的错误(称为“约束条件”);(3) 若检查出错误,应该怎样处理(称为“ELSE”子句)。8/17/2021RDBMS中的完整性规则在RDBMS中,完整性规则分为三类:域完整性规则域完整性规则是使基本表的列输入有效。域完整性主要由用户定义的完整性组成。控制域完整性有效的方法有:限制数据类型、格式、可能的取值范围、修改列值时必须满足的条件等。实体完
4、整性规则实体完整性规则用来约束现实世界中的实体是可区分的,即它们具有惟一性标识。这一规则在关系模型中的体现是基本表所有主属性都不能取空值(NULL)。参照完整性规则参照完整性规则用来约束具有参照关系的两个表中,主码和外码的数据要保持一致。8/17/20218.2SQLServer的数据完整性及其实现SQLServer具有较健全的数据完整性控制机制,它使用约束、默认、规则和触发器4种方法定义和实施数据库完整性功能。8.2.1SQLServer中的几种约束SQLServer的数据完整性种类SQLServer2000中的数据完整性包括域完整性、实体完整性
5、和参照完整性3种。域完整性域完整性为列级和元组级完整性。它为列或列组指定一个有效的数据集,并确定该列是否允许为空值(NULL)。实体完整性实体完整性为表级完整性,它要求表中所有的元组都应该有一个惟一标识,即主关键字。参照完整性参照完整性是表级完整性,它维护从表中的外码与主表中主码的相容关系。8/17/2021SQLServer数据完整性方式SQLServer使用声明数据完整性和过程数据完整性两种方式实现数据完整性。声明数据完整性声明数据完整性通过在对象定义中定义、系统本身自动强制来实现。声明数据完整性包括各种约束、默认和规则。过程数据完整性过程数据
6、完整性通过使用脚本语言(Transact-SQL)定义,系统在执行这些语言时强制实现数据完整性。过程数据完整性包括触发器和存储过程等。SQLServer实现数据完整性的具体方法SQLServer实现数据完整性的主要方法有4种:约束、默认、规则和触发器。约束约束通过限制列中的数据、行中的数据和表之间数据来保证数据完整性。8/17/2021表8-1SQLServer2000约束的5种类型和其完整性功能完整性类型约束类型完整性功能描述域完整性DEFAULT(默认)插入数据时,如果没有明确提供列值,则用默认值作为该列的值CHECK(检查)指定某个列或列组可
7、以接受值的范围,或指定数据应满足的条件实体完整性PRIMARYKEY(主码)指定主码,确保主码不重复,不允许主码为空值UNIQUE(惟一值)指出数据应具有惟一值,防止出现冗余参照完整性FOREIGNKEY(外码)定义外码、被参照表和其主码8/17/2021使用CREATE语句创建约束的语法形式如下:CREATETABLE<表名>(,<列名><类型>[<列级约束>][,…n][,<表级约束>[,…n]])其中,<列级约束>的格式和内容为:[CONSTRAINT<约束名>]{PRIMARYKEY[CLUSTERED
8、NONCLUSTERED]
9、UNIQ
10、UE[CLUSTERED
11、NONCLUSTERED]
12、[FOREIGNKEY]REFERENCES<被参照表>[(<主码>
此文档下载收益归作者所有