- 1、本文档共66页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章数据完整性的设计与实现资料
第4章 数据完整性的设计与实现 本章学习目标 掌握数据完整性的分类; 掌握如何创建主键约束; 掌握设置惟一性约束的方法; 掌握设置默认约束的方法; 掌握设置检查约束的方法; 掌握设置外键约束的方法。 4.1 概 述 数据的完整性主要涉及以下几个方面: (1)实体完整性。 (2)域完整性。 (3)参照完整性。 (4)用户定义的完整性。 本章主要介绍前三种数据完整性的设计与实现方法。 完整性的概念 之所以要引入数据完整性是为了在数据的添加、删除、修改等操作中不出现数据的破坏或多个表数据不一致 数据完整性是指存储在数据库中的数据正确无误并且相关数据具有一致性 完整性的类型 实体完整性 实体:表中的记录,一个实体就是指表中的一条记录。 实体完整性:在表中不能存在完全相同的记录,且每条记录都要具有一个非空且不重复的主键值。 实现实体完整性的方法:设置主键、惟一索引、惟一约束、指定IDENTITY属性 完整性的类型 域完整性 域完整性:向表中添加的数据必须与数据类型、格式及有效的数据长度相匹配。 实现实体完整性的方法:CHECK约束、外键约束、默认约束、非空定义、规则以及在建表时设置的数据类型 完整性的类型 参照完整性 参照完整性:又称为引用完整性。是指通过主键与外键相联系的两个表或两个以上的表,相关字段的值要保持一致。 实现实体完整性的方法:外键约束 完整性的类型 用户定义的完整性 用户定义的完整性:是根据具体的应用领域所要遵循的约束条件由用户自己定义的特定的规则。 约束的类型 约束:SQL Server提供的自动强制数据完整性的一种方法。它通过定义列的取值规则来维护数据的完整性。 常用约束:NOT NULL,CHECK、UNIQUE、PRIMARY KEY、FOREIGN KEY、DEFAULT 约束的类型 主键约束:在表中定义一个主键来惟一标识表中的每行记录 特点:每个表中只能有一个主键,主键可是一列,也可是多列;主键不能为空;主键值不能重复; 约束的类型 UNIQUE约束:它主要用来限制表的非主键列中的值不能重复。 特点:一个表中可以定义多个惟一约束 约束的类型 NOT NULL约束:它用来设定某列值不能为空。 特点:如果设定某列为NOT NULL,则在添加记录时,则此列必须插入数据。 约束的类型 CHECK约束:它使用逻辑表达式来限制表中的列可以接受哪些数据值。 例如:成绩值应该在0-100之间,则可以为成绩字段创建CHECK约束,使取值在正常范围内。 约束的类型 DEFAULT约束:它为表中某列建立一个默认值,当为表中添加记录时,如果没有提供输入值,则自动以默认值赋给该列。 特点:默认值可以为常量、函数或表达式。使用默认值可以提高数据输入的速度。 约束的类型 FOREIGN KEY约束 外键:是指一个表中的一列或列组合,它虽不是该表的主键,但是另一个表的主键。 特点:实现两表之间相关数据的一致性。 约束的创建 创建约束的时间:在建表的同时进行创建,也可在已存在的表上创建。 如何创建:在企业管理器中创建,或在查询分析器中用SQL命令创建 4.2 实体完整性的设计与实现 实体完整性要求数据表中的每一行在表中是惟一的实体。采用以下三种方式,即主键约束、IDENTITY属性和惟一性约束。 4.2.1 主键约束 通过定义主键,能够惟一地确定表中的每一条记录。定义为主键的列不允许为空,且image和text类型的列不能被指定为主键。可以将数据表中的一列或多列的组合定义为主键。 1.通过企业管理器管理主键约束 例4-1 在“图书基本信息表”中为“图书编码”字段设置主键约束。 2.使用Transact-SQL语句设置主键约束 CONSTRAINT constraint_name PRIMARY KEY [CLUSTERED|NONCLUSTERED] (column_name[,…n]) 2.使用Transact-SQL语句设置主键约束 其中各参数的说明如下: constraint_name:用于指定约束的名称,约束的名称在数据库中应该是惟一的。如果不指定,则系统会自动生成一个约束名。 2.使用Transact-SQL语句设置主键约束 CLUSTERED|NONCLUSTERED:用于指定索引的类型,即聚簇索引或者非聚簇索引,CLUSTERED为默认值。 column_name:用于指定主键的列名。主键最多由16个列组成。 2.使用Transact-SQL语句设置主键约束 例4-2 重新创建“读者基本信息表”,并为其中的“读者编号”字段设置主键约束。 create table memberinfo (memberid char (12) not null primary key,memname ch
文档评论(0)