数据库管理与开发项目教程---教案---12项目七:保护数据完整性.docx
《数据库管理与开发项目教程---教案---12项目七:保护数据完整性.docx》由会员分享,可在线阅读,更多相关《数据库管理与开发项目教程---教案---12项目七:保护数据完整性.docx(10页珍藏版)》请在咨信网上搜索。
1、项目七保证数据完整性任务1实现域完整性任务2实现实体完整性任务3实现参照完整性实训十一实现sale数据库完整性复习:1、清写出使用T-SQL语句创建索引的语法。2、索引的分类都包括哪些?3、请写出使用1X1索引查询student表的语句?4、请对索引1X1写出显示索引、重命名为1X2、删除索引1X2语句?5、请写出使用T-SQL语句创建视图的语法。答案:1、CREATE UNIQUE nonclustered nonclusteredINDEX索引名ON表名(字段)2、聚集索引、非聚集索引、唯一索引、符合索引3、select * from studentwith(indcx(IXl)4、EXE
2、C sp heIpindex StudentEXEC sp_rename student. 1X1, 1X2DROP INDEX student. 1X25、CREATE VIEW v_StudentASSELECT语句任务1实现域完整性数据完整性就是用于保证数据库中的数据在逻辑上的一致性、正确性和可靠性。强制数据完 整性可确保数据库中的数据质量。数据完整性一般包括3种类型:域完整性、实体完整性、参照完整性。域完整性又称为列完整性,指给定列输入的有效性,即保证指定列的数据具有正确的数据类 型、格式和有效的数据范围。实现域完整性可通过定义相应的CHECK约束、默认值约束、默 认值对象、规则对象等
3、方法来实现,另外,通过为表的列定义数据类型和NOT NULL也可以 实现域完整性。表完整性按需求在XS数据库完成以下实体完整性相关的操作。1. 通过修改XSDA表,在学号(如果该字段上己经有约束,那么先把约束删除)字段上创 建 PRIMARY KEY 约束。2. 在book表的“书名”字段上创建UNIQUE约束。参照完整性设“course”表为主表“stucou”表为从表通过修改表定义两个表之间的参照关系答案:域完整性1. 使用CREATE语句创建表book (书号char (6)、书名char (20)、类型char (20) 价 格int)字段。给“价格”字段定义一个名为max_price
4、的check约束,使得价格不超过 200 oUSE XSCREATE table book(书号 char (6),类型 char (20),价格 int CONSTRAINT max price CHECK (价格 =200)GO2. 定义一个名为type_rule的规则,并绑定到book表的“类型”字段,使得“类型” 字段只接受该规则中列出的值(计算机类、科普类、文学类、自然科学)。USE XSGO此处加GO是因为CREATE RULE必须是批查询中的第一条语句CREATE RULE type_rule AS 类型IN (,计算机、,科普类,文学类,,自然科学,)GOUSE XSEXEC
5、sp_bindrule type_rulebook.类型GO3. 解除第2题中的规则绑定关系。USE XSEXEC sp_unbindrule book.类型GO4. 删除第2题中的规则。USE XSDROP RULE type_ruleGO5. 修改book表,为“类型”字段设置-个默认值约束,约束名为BookType,默认值为 “NEW BOOK”。USE XSALTER TABLE bookADD CONSTRAINT BookType DEFAULT NEW BOOK FOR 类型GO6. 从book表中删除默认值约束BookTypc。USE XSALTER TABLE bookDRO
6、P CONSTRAINT BookTypeGO7. 定义默认值对象Day,取值为geldateO。USE XSGOCREATE DEFAULT Day AS getdate () 1-该语句必须是批查询中的第一条语句GO8. 修改XSDA表,向学生表中添加字段“入学时间”。USE XSGOALTER TABLE XSDAADD 入学时间 datetime nullGO9. 将默认值对象Day绑定到XSDA表的“入学时间”字段。USE XSGOEXEC sp_bindefault DayXSDA.入学时间GO1().定义一个用户定义数据类型:Today。USE XSGOEXEC spaddtyp
7、e Today,datetimeNULLGO11. 将默认值对象Day绑定到用户自定义数据类型ToDayoUSE XSGOEXEC sp_bindefault Day, TodayGO12. 修改book表,向book表中添加字段“购买日期”,定义类型为ToDay。ALTER TABLE bookADD购书时间Today nullGO13. 解除默认值对象Day与XSDA表入学时间”、自定义数据类型Today的绑定关系。EXEC sp_unbindefault XSDA.入学时间EXEC sp_unbindefault TodayGo14. 删除默认值对象Day。DROP DEFAULT Da
8、y15. 阐述数据完整性的作用、分类,以及每类完整性都由哪些约束实现。数据完整性就是用于保证数据库中的数据在逻辑上的一致性、正确性和可靠性。强制数据完整性可确保数据库中的数据质量。数据完整性一般包括3种类型:域完整性、实体完整性、 参照完整性。实现域完整性可以通过定义CHECK约束、规则、默认值约束、默认值对象等。实体完整性可以通过索引、PRIMARY KEY约束、UNIQUE约束或IDENTITY属性来实现。 参照完整性是对两个相关联的表(主表与从表)进行数据插入和删除时,保证它们之间 数据的一致性。可以使用从表FOREIGN KEY定义从表的外键,主表的主键或唯一键 PRIMARY KEY
9、或UNIQUE约束(不允许为空),可实现主表与从表之间的参照完整性。定 义表间参照关系应先定义主表主键约束(或唯一键约束),再对从表定义外键约束。表完整性1. 通过修改XSDA表,在学号(如果该字段上己经有约束,那么先把约束删除)字段上创 建 PRIMARY KEY 约束。ALTER TABLE XSDAADD CONSTRAINT XSDA_pk PRIMARY KEY CLUSTERED (学号)GO一删除主键索引要与建立主键索引的方法匹配,如果用SSMS建立只能在SSMS中删除主键:-如果 是用T-SQL建立的主键约束,则可以用T-SQL和SSMS两种方法删除主键约束ALTER TABL
10、E XSDADROP CONSTRAINT XSDA_pkGO2. 在book表的“书名字段上创在UNIQUE约束。USE XSALTER TABLE bookADD CONSTRAINT book_uk UNIQUE NONCLUSTERED (书号)GO参照完整性例如,KCXX表中每门课程的学分应在010之间,为了对学分这一数据项输入的数据范围进 行限制,可以在定义KCXX表结构的同时通过定义学分的CHECK约束来实现。CHECK约束添加check约束语法ALTER TABLE table_name WITH CHECK | WITH NOCHECKADD CONSTRAINT check
11、_name CHECK (logical_expression)说明:关键字ADD CONSTRAINT表示在己经定义的table_name表中增加一个约束定义,约束 名由 check_name 指定,约束表达式为 logical_expression。WITH CHECK 选项表示 CHECK 约束同时作用于己有数据和新数据;当省略该选项,取默认设置时,也表示CHECK约束同时 作用于2有数据和新数据;WITH NOCIIECK选项表示CHECK约束仅作用于新数据,对2有数 据不强制约束检查。【例7. 13USE XkGOALTER TABLE StudentADDCONSTRAINTCK_
12、StuNoCHECK(StuNolike0-9 0-90-90-90-90-90-90-9,)GO删除CHECK约束语法格式:ALTER TABLE tablenameDROP CONSTRAINT check_name说明:在table_name指定的表中,删除名为check_name的约束。一【例7. 14USE XkGOALTER TABLE StudentDROP CONSTRAINT CK_StuNoGO创建表时创建CKECK约束语法格式:CREATE TABLE table_name/*指定表名(column_name datatype NOT NULL | NULL/*定义列名、
13、数据类型、是否空值CONSTRAINT check_name CHECK (logical_expression),n) /*定义 CHECK 约束 说明:关键字CHECK表示定义CHECK约束,其后的logical_expression是逻辑表达式,称 为CHECK约束表达式。【例8-1在XS数据库中创建学生信息表XSXX并定义CHECK约束。USE XSCREATE TABLE XSXX(学号 char (6),姓名 char(8),性别char(2) CHECK (性别IN C男,女), 定义CHECK约束入学口期datetime)GO默认值DEFAULT约束添加default约束语法格
14、式1:ALTER TABLE table_name/*指定表名ADD CONSTRAINT default_name DEFAULT constraint_expression FOR column_name ,n/*对己存在的列添加默认值约束说明:此格式是对表中己存在的列添加默认值约束。语法格式2:ALTER TABLE table_name/*指定表名ADD column name datatype NOT NULL | NULL/*为增加的新列定义列名、数据类型、是否空值CONSTRAINT default_name DEFAULT constraint_expression,n /*定
15、义默认值约束 说明:此格式是对表增加新列时定义默认值约束。一【例7. 18USE XkGOALTER TABLE StuCouADD CONSTRAINT DF_StuCouState DEFAULT (报名)FOR StateGOALTER TABLE StuCouADD birthday datetime null CONSTRAINT DF_birthday DEFAULT (2000/1/1)GO删除default约束ALTER TABLE StuCoudrop constraint DF_birthdayALTER TABLE StuCoudrop column birthdayGO
16、创建表时,创建default约束语法格式:CREATE TABLE table_name/*指定表名(column name datatype NOT NULL | NULL /*定义列名、数据类型、是否空值CONSTRAINT default name fDEFAULT constraint expression,n)/*定义默认值约束说明:table_namo为创建的表名,column_name为列名,datatype为对应列的数据类型; DEFAULT关键字表示其后的constraint_cxprcssion表达式为默认值约束表达式,此表达式 只能是常量、系统函数或NULL。对于time
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 管理 开发 项目 教程 教案 12 保护 数据 完整性
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。