SQLServer的数据库完整性和实现方法.pptVIP

  • 40
  • 0
  • 约2.16千字
  • 约 9页
  • 2019-05-18 发布于安徽
  • 举报
2015 SQL Server的数据库完整性及实现方法 数据库的完整性:数据完整性就是指存储在数据库中的数据正确无误并且相关数据具有一致性。数据库中是否存在完整的数据关系到数据库系统能否真实的反映现实世界。它是衡量数据库中数据好坏的一种标志,是确保正确的数据被存放在正确的位置的一种手段。例如:学校的学生学号必须是唯一的;性别只能为男或女;学生所在的系必须是学校已开设的系等。 1.数据库完整性的分类 (1)域完整性 域完整性为列级和元组级完整性。它为列或列组指定一个有效的数据集,并确定该列是否允许为空。域完整性要求向表中指定列输入的数据必须具有正确的数据类型、格式以及有效的数据范围。实现域完整性的方法主要有CHECK约束、外键约束、默认约束、非空定义、规则以及在建表时设置的数据类型。 (2)实体完整性 实体完整为表级完整性,它维护表中所有元组都应该有唯一的标识符,这个标识符就是平常所说的主码。实现实体完整性的方法主要有主键约束、唯一索引、唯一约束和指定属性 。 (3)参照完整性 引用完整性是指作用于有关联的两个或两个以上的表,通过使用主键和外键或主键和唯一键之间的关系,使表中的键值在所有表中保持一致。 2.数据完整性的两种方式 (1)声明数据完整性 声明数据库完整性通过在对象定义、系统本身自动强制来实现。声明数据完整性包括各种约束、默认和规则。 (2)过程数据完整性 过程数据完整性通过使用脚本语言定义,系统在执行这些语言时,强制完整性实现。过程数据完整性包括触发器和存储过程等。 3.实现数完整性的具体方法 SQL Server实现数据完整性的主要方法有约束、默认、规则和触发器,实现数据约束方法要通过数据对象的定义和管理。 (1)SQL Server约束的类型 约束类型和完整性功能 完整性类型 约束类型 完整性功能描述 域完整性 默认 插入数据时,如果没有明确提供列值,则用默认值作为该列的值。 检查 指定某个列或列组可以接受的范围,或指定数据应满足的条件。 实体完整性 主码 指定主码,确保主码值不重复,并不允许主码为空值。 唯一值 指出数据应具有唯一值,防止出现冗余。 参照完整性 外码 定义外码、被参照表和主码。 3.实现数完整性的具体方法 (2)声明数据完整性约束的定义 声明数据完整性约束可以在创建表和修改表语句中定义。约束分列级约束和表级约束两种:列级约束定义时,直接跟在列后,与列定义子句之间无“,”分隔;元组级约束和表级约束要作为语句中的单独子句,与列定义子句或其他子句之间用“,”分隔。 3.实现数完整性的具体方法 例: CREATE TABLE S_B (学号 CHAR(5), 书号 CHAR(5), 借阅时间 DATATIME, 归还时间 DATATIME, CONSTRAINT P_Y PRIMARY KEY (学号,书号)) 此例题就是建立了一个表级主键。 在student库中,建立一个民族表(民族代码,民族名称),将民族代码指定为主键。 CREATE TABLE 民族 ( 民族代码 char(2) CONSTRAINT pk_mzdm PRIMARY KEY, 民族名称 varchar(30) NOT NULL) GO 此例题就是建立了一个列级主键 3.实现数完整性的具体方法 (3)默认和规则 默认(DEFAULT)和规则(RULE)都是数据库对象。当它们被创建后,可以绑定到一列或几列上,并可以反复使用。当使用INSERT语句向表中插入数据时,如果设有为绑定有DEFAULT的列指定数据,系统就会将DEFAULT指定的数据插入;如果绑定有RULE的列,则所插入的数据必须符合RULE的要求。 默认和规则与约束相比,功能较低但开支大。所以,如果默认和规则可以使用约束方法表示,要尽可能采用约束数据完整性方法处理。 (4)触发器 触发器是一个特殊的存储过程。在创建触发器时通过CREATE TRIGGER语句定义触发器对应的表、执行的事件和触发器的指令。当发生事件后,会

文档评论(0)

1亿VIP精品文档

相关文档