- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL Server的数据库完整性及实现方法
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语句定义触发器对应的表、执行的事件和触发器的指令。当发生事件后,会引发触发器执行,通过执行其指令,保证数据完整性。 触发器的用途是维护行级数据的完整性,它不能返回结果集。与CHECK约束相比,触发器能强制实现更加复杂的数据完整性,能执行操作或级联操作,能实现多行数据间的完整性约束,能维护非正规化的数据。 * 2015 完整性类型 约束类型 完整性功能描述 域完整性 默认 插入数据时,如果没有明确提供列值,则用
文档评论(0)