- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8讲 数据库完整性
An Introduction to Database System 第8讲 数据库完整性 第8章 数据库完整性 数据库的完整性是指数据的正确性、有效性和相容性,防止错误数据进入数据库,保证数据库中数据的质量。 正确性是指数据的合法性; 有效性是指数据是否属于所定义的有效范围; 相容性是指描述同一现实的数据应该相同。 数据库中是否存在完整的数据关系到数据库系统能否真实地反映现实世界。它是衡量数据库中数据质量好坏的一种标志,是确保正确的数据被存放在正确的位置的一种手段。 数据完整性种类 根据数据完整性机制所作用的数据库对象和范围不同,数据完整性可分 : 实体完整性 域完整性 引用完整性 用户定义完整性 1.实体完整性 实体是指表中的纪录,一个实体就是表中的一条纪录。完整性要求在表中不能存在完全相同的纪录,而且每条记录都要具有一个非空且不重复的主键值。这样就能保证事物的唯一性。 实现实体完整性的方法主要有主键约束、唯一索引、唯一约束和指定IDENTITY属性。 2、域完整性 组成记录的列称为域,域完整性也可称为列完整性。域完整性要求向表中指定列输入的数据必须具有正确的数据类型、格式以及有效的数据范围。 实现域完整性的方法主要有CHECK约束、外键约束、默认约束、非空定义、规则以及在建表时设置的数据类型。 第8章 数据库完整性 8、参照完整性 参照完整性又称为引用完整性。参照完整性是指作用于有关联的两个或两个以上的表,通过使用主键和外键或主键和唯一键之间的关系,使表中的键值在所有表中保持一致。 实现参照完整性的方法主要有外键约束。 主键是定义一个表中起主要作用的数据项,这些数据项的数据在表中是唯一的。 外键是定义一个表中的某数据项的数据,要参照另一个表的主键数据。即没有在另一个表的主键数据中出现的数据,不允许在这个表的外键数据项中出现。 外键:依赖于别的表的数据 唯一键:在表中唯一,一张表可以有多个唯一键,正如可以识别你的身份的可以是身份证,学生证,军人证 学生(学号,姓名,系号) 系别(系号,系名) “学生基本信息表”的主键是“学号”,“课程表”的主键是“课程号”,“学生选课表”的主键是“学号”和“课程号”两个字段。 主键与唯一键的区别主要为: 1、 唯一键主要用在非主键的一列或多列上。 2、 唯一键允许该列上存在NULL值,而主键 决不允许出现这种情况。 8、可以在一个表上设置唯一键,而在一个表中只能设置一个主键。 第8章 数据库完整性 4、用户定义的完整性 用户定义的完整性是应用领域需要遵守的约束条件,其允许用户定义不属于其他任何完整性分类的特定业务规则。所有的完整性类型都支持用户定义完整性。 第8章 数据库完整性 SQL Server实现数据完整性的具体方法 SQL Server实现数据完整性的主要方法有4种:约束、默认、规则和触发器。 约束 约束通过限制列中的数据、行中的数据和表之间数据来保证数据完整性。 第8章 数据库完整性 8.1 非空约束 8.2 唯一约束 8.8 主码约束 8.4 检查约束 8.5 缺省值约束 8.6 外码约束 创建约束 使用CREATE语句创建约束的语法形式如下: CREATE TABLE 表名(,列名类型[列级约束][,…n] [,表级约束[,…n]] ) 其中,列级约束的格式和内容为: [CONSTRAINT约束名] {PRIMARY KEY | UNIQUE | [FOREIGN KEY(列名)REFERENCES被参照表(主码)] | DEFAULT常量表达式 | CHECK逻辑表达式 } 8.1 非空约束 非空(NOT NULL)约束 非空约束用来强制数据的域完整性,它用于设定某列值不能为空。如果指定某列不能为空,则在进行插入记录时,此列必须要插入数据。 在CRETE TABLE 中的属性定义后面加上NOT NULL关键字即可。 例: 建立一个“学生选课”表SC,Sno不能为空。 CREATE TABLE SC( Sno CHAR(5) not null, Cno CHAR(8), Grade int
文档评论(0)