第五章-数据完整性.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章-数据完整性.ppt

第5章 数据完整性 5.1 数据完整性的基本概念 5.2 约束 5.3 默认值 5.4 规则 5.5 标识列IDENTITY 5.6 自定义数据类型 教学要求:通过本章学习,读者应掌握以下内容: 使用各种约束保证数据库的完整性 使用规则、默认值来保证数据完整性 对实现数据完整性的各种方法进行分析 5.1 数据完整性的基本概念 数据完整性包括实体完整性、域完整性、参照完整性和用户定义的完整性。 1.实体完整性(Entity Integrity) 实体完整性用于保证数据库中数据表的每一个特定实体都是唯一的。它可以通过主键约束(PRIMARY KEY)、唯一键约束(UNIQUE)、索引或标识属性(IDENTITY)来实现。 2.域完整性(Domain Integrity) 域完整性就是保证数据库中的数据取值的合理性,即保证指定列的数据具有正确的数据类型、格式和有效的数据范围。通过为表的列定义数据类型以及检查约束(CHECK)、默认定义(DEFAULT)、非空(NOT NULL)和规则实现限制数据范围,保证只有在有效范围内的值才能存储到列中。 3.参照完整性(Referential Integrity) 参照完整性定义了一个关系数据库中,不同的表中列之间的关系(父键与外键)。要求一个表中(子表)的一列或列组合的值必须与另一个表(父表)中的相关一列或列组合的值相匹配。被引用的列或列组合称为父键,父键必须是主键或唯一键,通常父键为主键,主键表是主表。 引用父键的一列或列组合称为外键,外键表是子表。如果父键和外键属于同一个表,则称为自参照完整性。子表的外键必须与主表的主键相匹配,只要依赖某一主键的外键存在,主表中包含该主键的行就不能被删除。 当增加、修改或删除数据库表中记录时,可以借助参照完整性来保证相关联表之间数据的一致性。 4.用户定义的完整性(User-defined Integrity) 这是由用户定义的完整性。用户可以根据自己的业务规则定义不属于任何完整性分类的完整性。由于每个用户的数据库都有自己独特的业务规则,所以系统必须有一种方式来实现定制的业务规则,即定制的数据完整性约束。 用户定义的完整性可以通过自定义数据类型、规则、存储过程和触发器来实现。 5.2 约束 约束是通过限制列中数据、行中数据以及表之间数据取值从而保证数据完整性的非常有效和简便的方法。 5.2.1 主键(PRIMARY KEY)约束 PRIMARY KEY约束在表中定义一个主键,唯一的标识表中的行。一个表只能有一个PRIMARY KEY约束。 当向表中的现有列添加PRIMARY KEY约束时,SQL Server将检查列中现有的数据以确保现有数据遵从主键的规则,即无空值、无重复值。 当PRIMARY KEY约束由另一表的FOREIGN KEY约束引用时,不能删除被引用的PRIMARY KEY约束,要删除它,必须先删除引用的FOREIGN KEY约束。 每个表都应有一个主键。主键可以是一列或列组合。 1.利用Management Studio定义(删除)主键 2.利用T-SQL语句定义(删除)主键 (1)在创建表时创建主键约束 其语法格式如下。 语法格式1: CREATE TABLE 数据表名 (列名 数据类型 [CONSTRAINT 约束名] PRIMARY KEY [CLUSTERED︱NONCLUSTERD][,…]) 语法格式2: CREATE TABLE 数据表名 ( [CONSTRAINT 约束名] PRIMARY KEY [CLUSTERED︱NONCLUSTERD] (列名1[,…n]) [,…]) 【例5.1】删除原有kc表,重新创建kc表,字段定义不变,同时将课程号设置为主键。 USE xsgl DROP TABLE kc GO CREATE TABLE kc ( 课程号 CHAR(4) NOT NULL CONSTRAINT pk_kch PRIMARY KEY, 课程名 CHAR(16) NOT NULL, 学分 SMALLINT, 学时数 SMALLINT ) (2)向已有表中添加主键约束 其语法格式如下。 ALTER TABLE 表名 ADD [CONSTRAINT 约束名] PRIMARY KEY(列名1[,…n]) [,…]) --添加主键 ALTER TABLE cj ADD CONSTRAINT pk_xhkch PRIMARY KEY(学号,课程号) GO (3)删除主键约束 其语法格式如下。 ALTER TABLE 表名 DROP CONSTRAINT 约束名 例如要删除cj表中的主键约束,可以利用如下语句: ALTER TABLE cj DROP CONSTRAINT pk_xh

文档评论(0)

docinpfd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5212202040000002

1亿VIP精品文档

相关文档