《数据完整性的含义.ppt》由会员分享,可在线阅读,更多相关《数据完整性的含义.ppt(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据完整性的含义一、数据完整性的含义 数据完整性是指存储在数据库中的数据,应该保持一致性和可靠性。在SQL SERVER中可以通过规则和默认等数据库对象及各种约束,来保证数据的完整性。它分为四类:实体完整性:表的每一行在表中是唯一的实体。要求所有行都具有唯一标识,可以通过建立唯一索引表、UNIQUE、PRIMARY KEY和IDENTITY约束等措施来审判庭实体完整性域完整性:指列的完整性,要求域中指定的列(字段)的数据具有正确的数据类型、格式和有效的数值范围它通过默认值、foreign key和check等约束以及默认、规则等数据库对象来实现。参照完整性:是指两个表的主关键字和外关键字的数据
2、,应对应一致。用户定义的完整性:允许用户定义不属于其他任何一类完整的特定规则。主要有规则rule、缺省值default、约束constraint和触发器trigger二、规则规则就是数据库中,对存储在数据库中表的列(字段)或用户自定义数据类型中的值的规定和限制。它具有独立性,它可以有一个规则及多个check约束规则。它必须在INSERT和UPDATE语句之前给出。创建:create rule rule_name as condition_expression说明:condition_expression是定义规则的条件,可以是WHERE子句中任何有效的表达式,并且可以包含诸如算术运算符、关系运
3、算符和IN、LIKE、BETWEEN之类的元素。它不能引用列或其他数据库对象,可以包含不引用数据库对象的内置函数。它包含一个变量,每个局部变量的前面都有一个符号民,该表达式引用通过UPDATE或INSERT语句输入的值。且规则的第一个字符必须是create rule enter_university_date_ruleas enter_date=1953-01-01and enter_date=getdate()-创建入学日期规则,假定某大学是1953年建校。create rule age_rule as old_scope between 17 and 28-创建学生年龄必须在一定范围的规则
4、create rule sex_rule as xb_scope in(男,女)-创建学生性别只能是男、女create rule scope_rule as cj_scope between 0 and 100-创建学生的成绩规则创建规则选中库新建规则绑定:Sp_bindrule,例:sp_bindrule enter_university_date_rule,学生表.入学年份解除:Sp_unbindrule 例:sp_unbindrule 学生表.入学年份删除:Drop rule 例:drop rule enter_university_date_rule查看规则及属性选中库单击规则选中规则
5、右键单击属性绑定列选择表和列。使用规则的限制条件规则只能处理常量和函数,不能用来查找表和比较表中的列表中的每列只能与一条规则绑定,若再绑定则旧规则将被新规则代替若规则与某列或某个用户定义的数据类型绑定,则不能被直接删除须先解除后删除使用规则时,要确保规则的值与其绑定列的数据类型一致三、默认(default)含义:是一种数据库的对象,与默认值约束的功能一样。它用来向无值的列(字段)提供一个预先指定的值。且在创建后,必须和某一列绑定才能生效。创建:create default as例:默认时间为当前系统时间create default time_default as getdate()默认学生入学
6、年龄为18create default age_limited as 18创建:绑定:sp_bindefault,例:sp_bindefault age_limited,学生表.年龄解除:sp_unbindefault 例:sp_unbindefault 学生表.年龄删除:drop default 例:drop default age_limited声明create table 默认值语法:create table 表名(字段名 数据类型 default 常量表达式null|not null|identity,)说明:default定义可适用于除定义为timestamp或带identity属性
7、的列以外的任何列。例create table default_example(pid int not null,names char(8),sex char(2)default男 not null,age int default 18)insert into default_example(pid,names,sex)values(101,苏晴,女)insert into default_example(pid,names,age)values(201,马山,20)select*from default_example用alter table添加或删除默认值例:alter table defa
8、ult_exampleReplace age default 19alter table default_exampleadd pid1 int default 101默认和默认值的使用限制每列只能有一个默认绑定,且值与绑定的数据类型一致,与该列的规则一致解除绑定后才可删除。在UPDATE中使用默认值Update default_exampleSet sex=defaultWhere age=18查看规则和默认select name from sysobjects where type in(r,d)列出某个数据库中的所有规则和默认查看与表中列有关的规则和默认sp_help四、约束含义:限制了用户可能输入到表或字段中的值Primary key ,unique,foreign key,check,default定义:create table和alter table分为表级约束和字段级约束