SQL_Server_2000_5

上传人:痛*** 文档编号:244262571 上传时间:2024-10-03 格式:PPT 页数:62 大小:214.50KB
返回 下载 相关 举报
SQL_Server_2000_5_第1页
第1页 / 共62页
SQL_Server_2000_5_第2页
第2页 / 共62页
SQL_Server_2000_5_第3页
第3页 / 共62页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第五章 数据完整性,数据完整性概述,数据完整性是指存放在数据库中数据的一致性和准确性,是为了防止数据库中存在不符合语义规范的数据和防止因错误信息的输入,/,输出造成无效操作或错误信息而提出的。,满足数据完整性的数据有如下特点:,数据正确无误,数据的存放必须确保同一表格数据之间的和谐关系,数据的存放必须维护不同表格数据之间的和谐关系,数据完整性的分类:,实体完整性,域完整性,参照完整性,用户定义完整性,实体完整性,实体完整性也称为行完整性,规定表中的每一行在表中表示唯一的实体,即数据库中所有行都具有一个非空且没有重复的标识字段。,可以通过以下措施来保证实体完整性:,建立唯一索引,主健约束,UNIQUE,约束,列设置,IDENTITY,属性,域完整性,域完整性也称为列完整性,用于限制用户向列中输入的内容。,域完整性的种类及实施措施:,限制列值的数据类型,通过数据类型,限制列值的格式,通过,CHECK,约束和规则,限制列值的取值范围,通过外键约束、,CHECK,约束、,DEFAULT,约束、,NOT NULL,,和规则,参照完整性(引用完整性),参照完整性是指两个表的主键和外键的数据应对应一致。,参照完整性保证了表之间数据的致性,防止了数据丢失或无意义的数据在数据库中扩散。,参照完整性表现在以下几个方面:,禁止往外键中插入主键中没有的值,禁止修改外键列,而不修改主键列的值,禁止先从主键列所属的表中删除数据行,可以通过外键约束和,CHECK,约束实现参照完整性。,学号,姓名,性别,9904121,张三,男,9904123,李四,女,9904124,李四,女,课程号,学号,成绩,学分,T1011,9904121,85,2.5,T1011,9904122,90,2.5,用户自定义完整性,用户自定义完整性允许用户自定义不属于其他任何完整性分类的特定规则,所有其他的完整性类型都不支持用户定义完整性。,数据完整性实施,声明式数据完整性,程序化数据完整性,声明式数据完整性,将数据所符合的条件融入到对象定义中,是实施数据完整性的首选。,特点:,通过针对表和字段定义声明的约束,可使声明式数据完整性成为数据定义的一部分。,使用约束、默认值与规则实施声明式数据完整性。,程序化数据完整性,将数据所需的条件以及该条件的实施均通过编写的程序代码完成。,特点:,程序化数据完整性可以通过相关的程序语言及工具在客户端或服务器端实施。,使用存储过程或触发器来实施程序化数据完整性。,实施数据完整性方法比较,方法,影响,功能,开销,事务前后,约束,依存于表的定义,性能最好,中,低,前,默认值,独立的数据对象,可以绑定一个或多个表,中,中,前,规则,独立的数据对象,可以绑定一个或多个表,低,中,前,触发器,依存于表的定义,提供级联和复杂的应用程序功能,可以撤销事务,高,高,后,存储过程,提供级联和复杂的应用程序功能,可以撤销事务,高,高,后,约束(,CONSTRAINT,),约束是,SQL Serve,提供的自动保持数据库数据完整性的一种方法,通过限制行、列中数据和表之间数据来保持数据完整性。,约束是非独立于表结构的。,约束的种类:,主键约束,外键约束,唯一性约束,检查约束,默认约束,(,1,)主键约束,主键约束是指表的一列或几列的组合在表中具有唯一性,即可以唯一地标识表的一条记录。一个表中可以有一个以上的列组合,这些组合可以唯一标识表中的行,每个组合就是候选键。数据库管理员从候选键中选一个作为主键。,主键的要求:,一个表中不能有两行包含相同的主键值,不能在主键的任何列中输入,NULL,值,每个表都应有一个主键,IMAGE,和,TEXT,类型的列不能作为主键,定义主键约束,CONSTRAINT,constraint_name,PRIMARY KEY CLUSTERED,NONCLUSTERED,(Column_name1, Column_name2,),ON,Filegroup,定义主键约束,CONSTRAINT,constraint_name,PRIMARY KEY CLUSTERED,NONCLUSTERED,(Column_name1, Column_name2,),ON,Filegroup,定义主键约束,CONSTRAINT,constraint_name,PRIMARY KEY CLUSTERED,NONCLUSTERED,(Column_name1, Column_name2,),ON,Filegroup,定义主键约束,CONSTRAINT,constraint_name,PRIMARY KEY,CLUSTERED,NONCLUSTERED,(Column_name1, Column_name2,),ON,Filegroup,定义主键约束,CONSTRAINT,constraint_name,PRIMARY KEY ,CLUSTERED,NONCLUSTERED,(Column_name1, Column_name2,),ON,Filegroup,定义主键约束,CONSTRAINT,constraint_name,PRIMARY KEY CLUSTERED,NONCLUSTERED,(,Column_name1, Column_name2,),ON,Filegroup,定义主键约束,CONSTRAINT,constraint_name,PRIMARY KEY CLUSTERED,NONCLUSTERED,(Column_name1, Column_name2,),ON,Filegroup,例,1,例,2,(,2,)外键约束,外键是用于建立和加强两个表数据之间的链接的一列或多列。通过将保存表中主键值的一列或多列到另一个表中,可创建俩个表之间的链接。这个列就称为第二个表的外键。,一个表的外键指向另一个表的候选健,外键约束定义是的表之间的关系。,外键约束实施参照完整性。,不能使用,TEXT,和,IMAGE,数据类型的列创建外键。,创建外键,CONSTRAINT,constraint_name,FOREIGN KEY(Colunm1, Colunm1,),REFERENCES erf_table(ref_column1, ref_column1,),ON FILEGROUP,例,3,(,3,)唯一性约束,唯一性约束指定一个或多个列的组合值具有唯一性,以防止在列中输入重复的值,通过唯一性约束实施数据完整性。,主键具有唯一性,所以主键不能实施唯一性约束。,一个表可以定义多个唯一性约束,但只能定义一个主键约束。,唯一性约束的列可以为,NULL,,但是不允许一行以上的值为,NULL,。,创建唯一性约束,CONSTRAINT,constraint_name,UNIQUE(column_name1, column_name1.),ON FILEGROUP,例,4,(4),检查约束,检查约束限制输入到一列或多列中的可能值,只有符合特定条件和格式的数据才能存到字段中,从而保证数据的域完整性。,检查约束可以包括搜索条件和逻辑表达式,但不能包含子查询。,可以为每列指定多个,CHECK,约束,CONSTRAINT,constraint_name,CHECK NOT FOR REPLICATIONG,(,logical_expression,),例,5,(5),默认约束,用户在表中插入新的数据行时,如没有指定数据,系统就将默认值赋给该列。,默认值约束所提供的默认值可以是常量、函数、,NULL,等。,注意事项:,1,每列只能定义一个默认约束,默认约束只能用于,INSERT,语句。,2,默认约束表达式不能用于数据类型为,timestamp,的列和,IDENTITY,属性的列上。,3,对于用户自定义数据列,如果已经将默认数据库对象与该数据库对象类型相关联时,对此列也不能使用默认约束。,约束表达式不能参照表中的其他列或者其他表、视图或存储过程。,如果不允许空值且没有指定默认,就必须明确指定列值。,创建默认约束,CONSTRAINT,constraint_name,DEFAULT,constant_expression,FOR,column_name,CREATE DEFAULT,default_name,AS,constnat_experssion,EXEC,sp_bindefault,default_name,column_name,例,6,使用企业管理器创建约束,创建主键约束,创建外键约束,创建唯一性约束,创建检查约束,创建默认值约束,规则(,RULE),规则就是创建一套准则,交将其结合到表的列或用户定义数据类型上,添加完之后它会检查添加的数据或者对表所作的修改是否满足所设定的条件。,规则与检查约束的异同,规则是一个向后兼容的功能,用于执行一些与,CHECK,约束相同的功能。,CHECK,约束是用来限制列值的首选标准方法。,规则与,CHECK,约束的不同,规则,CHECK,约束,一列只能应用一个规则,多个,可以直接作用于用户自定义数据类型,不可以,与表或用户自定义数据类型相独立,不独立,(,1,)使用,T-SQL,语言创建规则,创建规则,CREATE RULE,rule_name,AS,condition_expression,例,7,CREATE RULE,r_xb,AS,xb=,男, OR,xb=,女,GO,(,2,)使用,T-SQL,语言绑定规则,绑定规则,Sp_bindrule,rule_name,object_name,例,8,sp_bindrule,r_xb, , ,tt.xb,GO,(,3,)使用,T-SQL,语言删除规则,删除规则,DROP RULE,rule_name,例,9,sp_unbindrule,tt.xb,GO,DROP RULE,r_xb,2,使用企业管理器管理规则,创建规则,绑定规则,删除规则,3,使用规则的注意事项:,规则对已输入到表中的数据不起作用。,规则所指定的数据类型必须与所绑定对象的数据类型一致。,与表列绑定的规则优先于与用户自定义数据类型绑定的规则。,用户可以直接使用一个新的规则来绑定列或用户自定义数据类型。,表的一列或一个用户自定义数据类型只能绑定一个规则,而一个规则可以绑定到多个对象。,Sp_bindrule,只能将规则绑定到当前数据库中的列或用户自定义数据类型上,不能绑定到其他数据库中。,默认值,默认值一种数据库对象,可以绑定到一列或者多列上,也可以绑定到用户自定义数据类型上,其作用类似于默认约束。,默认值与默认约束的异同,默认值,默认约束,是数据库对象,独立于表,嵌入表中,可以绑定到多表,只作用于某表的某列,Create default,Constraint default,(,1,)使用,T-SQL,语言创建默认,创建默认,CREATE DEFAULT,default_name,AS,constnat_expression,例,10,CREATE DEFAULT,d_xb,AS,计算机科学系,(,2,)使用,T-SQL,语言绑定默认,绑定默认,Sp_bindefualt,default_name,object_name,例,11,sp_bindefault,D_xb, , ,tt.xb,(,3,)使用,T-SQL,语言删除默认,解除默认,Sp_unbindefault,object_name,删除默认,DROP DEFAULT,default_name,例,12,sp_unbinddefault,tt.xb,GO,DROP DEFAULT,D_xb,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!