- 1、本文档共54页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第15章 设计数据完整性 本章内容 数据完整性基础 使用约束实施数据完整性 使用规则 使用默认值 使用IDENTITY列 数据完整性基础 数据完整性简述 数据完整性分类 实施数据完整性的途径 数据完整性简述(一) 什么是数据完整性? 衡量数据库中数据质量好坏的一种标志; 是确保数据库中数据一致、正确以及符合企业规则的一种思想; 使无序的数据条理化,确保正确的数据被存放在正确的位置的一种手段; 数据完整性简述(二) 满足数据完整性要求的数据的特点: 数据的值正确无误; 数据的存在必须确保同一表格数据之间的和谐关系; 数据的存在必须确保维护不同表格数据之间的和谐关系; 数据完整性分类 从实施的方式分类 说明性引用数据完整性 引用的行动完整性 从维护数据完整性意义上分类 实体完整性 值域完整性 引用完整性 用户自定义完整性 从实施的方式分类 说明性引用数据完整性(本章重点) 在插入、修改、删除数据时自动实施数据完整性; 引用的行动完整性 通过视图、触发器、存储过程来维护数据完整性; 视图和存储过程不能自动执行。 从维护数据完整性意义上分类 实体完整性 什么是实体 数据库要表示的一个实际的物体或事件; Titles, authors, publishers, sales都是实体; 标识每个数据库实体的唯一性。 实体完整性强制表的标识符列或主键的完整性(通过索引、UNIQUE 约束、PRIMARY KEY 约束或 IDENTITY 属性)。 值域完整性 考虑如何限制想表中输入值的范围 强制域有效性的方法有: 限制类型(通过数据类型) 格式(通过 CHECK 约束和规则) 可能值的范围(通过 FOREIGN KEY 约束、CHECK 约束、DEFAULT 定义、NOT NULL 定义和规则)。 引用完整性(一) 在插入、修改、删除数据时,维护多个表间数据一致性的手段; 引用完整性基于外键与主键之间或外键与唯一键之间的关系; 引用完整性确保键值在所有表中一致,这样的一致性要求不能引用不存在的值; 引用完整性(二) 强制引用完整性时,SQL Server 禁止用户进行下列操作: 当主表中没有关联的记录时,将记录添加到相关表中。 更改主表中的值并导致相关表中的记录孤立。 从主表中删除记录,但仍存在与该记录匹配的相关记录。 引用完整性举例 用户自定义完整性 用户自定义完整性主要是体现实际应用中的业务规则; 用户自定义的完整性可以通过前面三种完整性的实施而得到维护; 比如:规定商业类图书的编号前两个字符必须是BU。 实施数据完整性的途径 使用约束实施数据完整性 PRIMARY KEY 约束 FOREIGN KEY 约束 UNIQUE 约束 CHECK 约束 DEFAULT 定义 为空性 PRIMARY KEY 约束(一) 什么是主键( PRIMARY KEY ) 表中经常有一个列或列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键 当创建或更改表时可通过定义 PRIMARY KEY 约束来创建主键。 PRIMARY KEY 约束(二) 对主键的操作方式: 在创建表时定义主键; 给一个没有定义主键的表加上主键; 修改或删除表上已经定义的主键。 主键能确保主键列: 不存在NULL值; 不存在重复的值。 PRIMARY KEY 约束(三) 使用主键时注意: 定义主键有多种方式,可以在列级别和表级别上进行定义; 不能同时在两个级别上进行定义; 主键也是一种索引,有clustered和nonclustered之分; PRIMARY KEY 约束举例(一) create table test1 ( job_id smallint identity(1,1) primary key, job_type int, job_desc varchar(50) not null default new position... ) go PRIMARY KEY 约束举例(二) create table test1 ( job_id smallint identity(1,1) constraint PK_ID primary key, job_type int, job_desc varchar(50) not null default new position... ) go PRIMARY KEY 约束举例(三) create table test1 ( job_id smallint identity(1,1) , job_type int, job_desc varchar(50) not null default new position…, constraint PK_ID primary key
文档评论(0)