SQLServer第4章(第二部分)设计数据完整性_第1页
SQLServer第4章(第二部分)设计数据完整性_第2页
SQLServer第4章(第二部分)设计数据完整性_第3页
SQLServer第4章(第二部分)设计数据完整性_第4页
SQLServer第4章(第二部分)设计数据完整性_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

教学提示:数据库中的数据是从外界输入的,而数据的输入由于种种缘由,会发生输入无效或错误的信息。那么保证数据正确性、全都性和牢靠性,就成了数据库系统关注的重要问题。通过本章的学习,读者应当把握数据完整性的概念以及如何实施数据完整性。教学要求:应把握:数据完整性概念各种约束治理技术默认治理技术使用规章第四章(其次局部)设计数据的完整性1数据完整性的概念2使用约束实施数据完整性实体完整性(EntityIntegrity)域完整性(DomainIntegrity)参照完整性(ReferentialIntegrity)用户定义的完整性(User-definedIntegrity)数据完整性的实现方式[NOT]NULL〔非空〕约束PRIMARYKEY〔主键〕约束UNIQUE〔惟一性〕约束CHECK〔检查〕约束DEFAULT〔默认〕约束FOREIGNKEY〔外键〕约束第4章设计数据的完整性3默认治理技术4使用规章5使用IDENTITY〔标识符〕列创立默认绑定默认解除绑定默认删除默认创立规章绑定规章解除绑定规章删除规章第4章设计数据的完整性创立IDENTITY列使用IDENTITY函数第4章设计数据的完整性1数据完整性2使用约束3默认技术4使用规章5标识列6实训7小结定义类型图示数据完整性用于保证数据库中数据的正确性、全都性和牢靠性。1数据完整性的概念

实体完整性(EntityIntegrity)

域完整性(DomainIntegrity)

参照完整性(ReferentialIntegrity)

用户定义完整性(User-definedIntegrity)第4章设计数据的完整性1.1实体完整性〔EntityIntegrity〕1数据完整性的概念〔1〕实体完整性用于保证数据库中数据表的每一个特定实体的记录都是唯一的

1数据完整性实体完整性域完整性参照完整性自定义完整性完整性实现2使用约束3默认技术4使用规章5标识列6实训7小结第4章设计数据的完整性1.2域完整性〔DomainIntegrity〕1数据完整性的概念〔2〕域完整性是指保证指定列的数据具有正确的数据类型、格式和有效的数据范围。

1数据完整性实体完整性域完整性参照完整性自定义完整性完整性实现2使用约束3默认技术4使用规章5标识列6实训7小结第4章设计数据的完整性1.3参照完整性〔ReferentialIntegrity〕1数据完整性的概念〔3〕当增加、修改或删除数据库表中记录时,可以借助参照完整性来保证相关联表之间数据的全都性1数据完整性实体完整性域完整性参照完整性自定义完整性完整性实现2使用约束3默认技术4使用规章5标识列6实训7小结第4章设计数据的完整性1.4用户定义完整性〔User-definedIntegrity〕1数据完整性的概念〔4〕这是由用户定义的完整性。用户定义完整性可以定义不属于其他任何完整性分类的特定业务规章1数据完整性实体完整性域完整性参照完整性自定义完整性完整性实现2使用约束3默认技术4使用规章5标识列6实训7小结第4章设计数据的完整性1.5数据完整性的实现方式1数据完整性的概念〔5〕声明数据完整性和过程数据完整性1数据完整性实体完整性域完整性参照完整性自定义完整性完整性实现2使用约束3默认技术4使用规章5标识列6实训7小结第4章设计数据的完整性2使用约束实施数据完整性2.1[NOT]NULL〔[非]空〕约束2.2PRIMARYKEY〔主键〕约束2.3UNIQUE〔惟一性〕约束2.4CHECK〔检查〕约束2.5DEFAULT〔默认〕约束2.6FOREIGNKEY〔外键〕约束1数据完整性2使用约束3默认技术4使用规章5标识列6实训7小结第4章设计数据的完整性2使用约束实施数据完整性〔1〕CREATETABEL数据表名(列名数据类型[CONSTRAIN约束名]NULL|NOTNULL[,…])说明:NULL和NOTNULL分别代表允许为空和不允许为空,不写为允许为空。2.1[NOT]NULL〔[非]空〕约束【例4_1】创立学生信息表,同时设置NOTNULL约束【例4_2】添加NOTNULL约束到表中1数据完整性2使用约束非空主键唯一性检查默认外键3默认技术4使用规章5标识列6实训7小结第4章设计数据的完整性2使用约束实施数据完整性〔2〕语法格式1:CREATETABEL数据表名(列名数据类型[CONSTRAIN约束名]PRIMARYKEY[CLUSTERED|NONCLUSTERED][,…])说明:语法格式1定义单列主键,CLUSTERED和NONCLUSTERED分别代表聚拢索引和非聚拢索引。2.2PRIMARYKEY(主键)约束【例4_3】创立学生信息表并设置学号列为主键1数据完整性2使用约束非空主键唯一性检查默认外键3默认技术4使用规章5标识列6实训7小结第4章设计数据的完整性2使用约束实施数据完整性〔3〕语法格式2:CREATETABEL数据表名([CONSTRAIN约束名]PRIMARYKEY[CLUSTERED|NONCLUSTERED](列名1[,…n])[,...])说明:语法格式2定义多列组合主键,CLUSTERED和NONCLUSTERED分别代表聚拢索引和非聚拢索引。2.2PRIMARYKEY(主键)约束【例4_4】创立教学成绩表并设置组合主键【例4_5】修改表添加组合主键约束1数据完整性2使用约束非空主键唯一性检查默认外键3默认技术4使用规章5标识列6实训7小结第4章设计数据的完整性2使用约束实施数据完整性〔4〕语法格式1:

CREATETABEL数据表名(列名数据类型[CONSTRAIN约束名]UNIQUE[CLUSTERED|NONCLUSTERED][,...])说明:语法格式1定义单列唯一约束2.3UNIQUE(唯一性)约束【例4_6】创立专业信息表并设置名称列为唯一约束1数据完整性2使用约束非空主键唯一性检查默认外键3默认技术4使用规章5标识列6实训7小结第4章设计数据的完整性2使用约束实施数据完整性〔5〕语法格式2:

CREATETABEL数据表名([CONSTRAIN约束名]UNIQUE[CLUSTERED|NONCLUSTERED](列名1[,…n])[,...])

说明:语法格式2定义多列组合唯一约束2.3UNIQUE(唯一性)约束【例4_7】修改表设置唯一约束1数据完整性2使用约束非空主键唯一性检查默认外键3默认技术4使用规章5标识列6实训7小结第4章设计数据的完整性2使用约束实施数据完整性〔6〕语法格式:CREATETABEL数据表名([列名数据类型][CONSTRAINT约束名]CHECK〔规律表达式〕[,...])说明:假设是在现有表中添加检查约束,可以设置WITHNOCHECK,对现有数据强制约束约束检查2.4CHECK(检查)约束【例4_8】创立学生信息表并定义CHECK约束【例4_9】在学生信息表表上添加CHECK约束,限定联系列的输入长度和取值范围,对现有数据不检查,即原有的号码照旧有效1数据完整性2使用约束非空主键唯一性检查默认外键3默认技术4使用规章5标识列6实训7小结第4章设计数据的完整性2使用约束实施数据完整性〔7〕语法格式1:CREATETABEL数据表名(列名

数据类型[CONSTRAINT约束名]DEFAULT默认值[,...])

语法格式2:CREATETABEL数据表名([CONSTRAINT约束名]DEFAULT默认值FOR列[,...])

2.5DEFAULT(默认)约束【例4_10】创立学生信息表并设置默认约束【例4_11】在教师信息表上添加默认约束1数据完整性2使用约束非空主键唯一性检查默认外键3默认技术4使用规章5标识列6实训7小结第4章设计数据的完整性2使用约束实施数据完整性〔8〕语法格式1:

CREATETABEL数据表名(列名数据类型[CONSTRAIN约束名][FOREIGNKEY]

REFERENCES参照主键表[(参照列)]

[ONDELETECASCADE|ONUPDATECASCADE][,...])

说明:语法格式1定义单列外键约束。ONDELETECASCADE表示级联删除,即父表中删除被引用行时,也将从引用表中删除引用行;ONUPDATECASCADE表示级联更新,即父表中更新被引用行时,也将在引用表中更新引用行。2.6FOREIGNKEY(外键)约束【例4_12】创立表并定义外键1数据完整性2使用约束非空主键唯一性检查默认外键3默认技术4使用规章5标识列6实训7小结第4章设计数据的完整性2使用约束实施数据完整性〔9〕语法格式2:

CREATETABEL数据表名([CONSTRAIN约束名][FOREIGNKEY][〔列[,…n]〕]references参照主键表[〔参照列[,…n]〕]ONDELETECASCADE|ONUPDATECASCADE[,...])说明:语法格式2定义多列组合外键约束。2.6FOREIGNKEY(外键)约束【例4_13】在教学成绩表中添加外键约束,参照表为学生信息表

1数据完整性2使用约束非空主键唯一性检查默认外键3默认技术4使用规章5标识列6实训7小结第4章设计数据的完整性3默认治理技术3.1创立默认3.2绑定默认3.3解除绑定默认3.4删除默认1数据完整性2使用约束3默认技术4使用规章5标识列6实训7小结第4章设计数据的完整性3默认治理技术〔1〕语法格式:

CREATEDEFAULT默认名称AS常数表达式

说明:默认值名称必需符合标识符的规章。常数表达式是指只包含常量值的表达式〔不能包含任何列或其他数据库对象的名称〕。可以使用任何常量、内置函数或数学表达式。3.1创立默认【例4_14】在教学成绩治理数据库中创立一个默认对象1数据完整性2使用约束3默认技术创立绑定解除删除4使用规章5标识列6实训7小结第4章设计数据的完整性3默认治理技术〔2〕语法格式:sp_bindefault[@defname=]”默认名称”,[@objname=]”对象名”[,[@futureonly=]”futureonly_flag”]说明:可以绑定到列或用户自定义类型。futureonly_flag仅在将默认值绑定到用户定义的数据类型时才使用,将此参数设置为futureonly时,只有当包含用户定义数据类型的新表创立时,这个默认值才生效。。3.2绑定默认【例4_15】将上一节所创立的默认df_学历绑定到教师信息表的学历列【例4_16】将默认值绑定到用户定义的数据类型。【例4_17】使用futureonly_flag。1数据完整性2使用约束3默认技术创立绑定解除删除4使用规章5标识列6实训7小结第4章设计数据的完整性3默认治理技术〔3〕语法格式:sp_unbindefault[@objname=]‘对象名’[,[@futureonly=]”futureonly_flag”]说明:在解除绑定时不必指出默认名称,由于在指定的对象上只有一个默认存在。3.3解除绑定默认【例4_18】为列解除绑定的默认对象【例4_19】为用户自定义数据类型解除默认值绑定。【例4_20】使用futureonly_flag。1数据完整性2使用约束3默认技术创立绑定解除删除4使用规章5标识列6实训7小结第4章设计数据的完整性3默认治理技术〔4〕语法格式:

DROPDEFAULT默认值名[,...n]说明:使用DROPDEFAUL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论