版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
教案二:索引和数据完整性——实施数据完整性(2学时)一、授课内容本节课主要讲授MySQL数据库中数据完整性的概念和六种约束的使用方法,具体包括以下内容:(一)数据完整性概述1.数据完整性的概念保证数据的正确性、有效性和一致性就是实施数据完整性的要求。完整性约束通过逻辑表达式定义列的有效值,通过建立表间关系确保一个表中的数据改动不会使另一个表中的数据失效。2.数据完整性的四种类型(1)实体完整性一个表中的每一条记录必须唯一且不能为空,通过指定主键来保证。可以通过索引、UNIQUE约束、PRIMARYKEY约束和AUTO_INCREMENT属性等实现。(2)域完整性限制字段的值域,保证列的任何值都在取值范围。一般通过FOREIGNKEY约束、CHECK约束、DEFAULT定义、NOTNULL定义保证。(3)参照完整性定义主表主键与从表外键之间的关系,要求外键的取值必须参照主键的取值范围。通过FOREIGNKEY约束、CHECK约束和触发器等实施。(4)用户自定义完整性针对具体业务逻辑设置完整性约束,通过列级和表级约束、存储过程和触发器等实现。(二)六种完整性约束1.主键约束(PRIMARYKEY)(1)主键约束的作用主键能够唯一标识表中每一行记录,一个表只能设置一个主键,主键的值不能为NULL。(2)列级主键约束定义格式:[CONSTRAINTconstraint_name]PRIMARYKEY。单列主键可定义为列级约束。(3)表级主键约束定义格式:[CONSTRAINTconstraint_name]PRIMARYKEY(column_name[,...])。多列组合主键必须定义为表级约束,列数最大值为16。(4)注意事项一个表只能包含一个PRIMARYKEY约束;主键约束中定义的所有列都必须定义为NOTNULL,如未指定则系统自动设置为NOTNULL。2.外键约束(FOREIGNKEY)(1)外键约束的作用外键约束定义表与表之间的关系,用于建立和加强两个表数据之间的连接,强制参照完整性。外键只能引用所引用表的PRIMARYKEY或UNIQUE约束中的列。(2)表级外键约束语法[CONSTRAINTconstraint_name]FOREIGNKEY(column_name)REFERENCESref_table(ref_column)[ONDELETE{CASCADE|NOACTION}][ONUPDATE{CASCADE|NOACTION}]。(3)级联操作ONDELETECASCADE:主键表中某行被删除时,外键表中所有相关行也被删除。ONUPDATECASCADE:主键表中某行键值被修改时,外键表中所有相关行的外键值也自动修改。NOACTION为默认值,表示禁止删除或修改被引用的行。(4)注意事项外键约束只能引用同一服务器同一数据库中的表;外键约束仅能引用PRIMARYKEY或UNIQUE约束中的列。3.非空值约束(NOTNULL)(1)非空值约束的作用限制数据列不能为空,对于有非空值约束的字段在添加或更新记录时必须给出确定的值。(2)设置方式使用ALTERTABLEtable_nameCHANGECOLUMN列名数据类型NOTNULL来设置非空约束。(3)注意事项NULL不是零或空白,NULL表示该列的值未知或没有值。4.唯一性约束(UNIQUE)(1)唯一性约束的作用限制约束列在表的范围内不允许有两行包含相同的非空值,可以有NULL属性但最多只能有一行为NULL。(2)创建方式可以在建表时定义,也可以使用Workbench的Indexes选项卡创建。定义格式:[CONSTRAINTconstraint_name]UNIQUE(column_name[,...])。(3)唯一性约束与主键约束的区别一个表可以定义多个唯一性约束但只能定义一个主键约束;主键约束不允许NULL值,唯一性约束允许NULL值(最多一行);每个UNIQUE约束都会生成一个索引。5.检查约束(CHECK)(1)检查约束的作用对输入列或整个表中的值设置检查条件(通常是一个取值范围),保证数据库的数据完整性。只有符合检查约束条件的值才能输入该列。(2)语法格式[CONSTRAINTconstraint_name]CHECK(logical_expression)。(3)注意事项每列可以指定多个CHECK约束;列级CHECK约束只能引用被约束的列;搜索条件必须取值为布尔表达式,不能引用其他表。6.默认值约束(DEFAULT)(1)默认值约束的作用通过定义列的默认值,确保在没有为某列指定数据时,由MySQL来指定列的值。默认值可以是常量、表达式或NULL值。(2)语法格式[CONSTRAINTconstraint_name]DEFAULTconstant_expression[forcolumn_name]。(3)注意事项每列中只能有一个默认约束;默认约束只能用于INSERT语句;不能应用于timestamp类型和AUTO_INCREMENT属性的列;可以使用CURRENT_TIMESTAMP、CURRENT_USER等系统提供的值。二、教学目标(一)知识目标1.理解数据完整性的概念和四种类型2.掌握主键约束(PRIMARYKEY)的定义和使用3.掌握外键约束(FOREIGNKEY)的定义、级联操作4.掌握非空约束(NOTNULL)、唯一性约束(UNIQUE)的使用5.掌握检查约束(CHECK)和默认值约束(DEFAULT)的使用(二)能力目标1.能够使用SQL语句创建和管理各种完整性约束2.能够根据业务需求选择合适的约束类型保证数据完整性3.能够设计表间关系并正确设置外键约束和级联操作(三)素养目标1.培养学生从设计阶段就考虑数据完整性的规范意识2.增强学生对数据库设计质量的重视程度三、教学重点与难点(一)教学重点1.数据完整性的四种类型及其含义2.主键约束和外键约束的定义和使用3.级联删除和级联修改的设置4.六种约束的定义语法和使用方法(二)教学难点1.外键约束中级联操作(CASCADEvsNOACTION)的理解2.唯一性约束与主键约束的区别3.列级约束与表级约束的适用场景4.参照完整性的实际应用——多表间约束关系的设计四、教学实施(一)导入环节(5分钟)通过实际案例引入:假设一个学生选课系统,如果选课表中录入了一个不存在的学号,或者一门课程被删除后选课表中仍然有该课程的记录,会导致什么问题?这些就是数据完整性需要解决的问题。本节课将学习如何通过约束来保证数据库中数据的正确性、有效性和一致性。(二)讲授环节(55分钟)1.数据完整性概述(10分钟)(1)讲解数据完整性的概念(2)讲解四种数据完整性类型通过学生表-课程表-选课表的关联关系,逐一举例说明实体完整性、域完整性、参照完整性和用户自定义完整性的含义和保证方式。2.主键约束(10分钟)(1)讲解主键约束的定义和特点唯一性、非空性、一个表只能有一个主键。(2)演示列级和表级主键约束演示例5-8:为选课表增加组合主键约束,设置学号和课程编号的组合为主键。强调系统自动将主键列设置为NOTNULL。3.外键约束(15分钟)(1)讲解外键约束的定义和作用以学生表、课程表、选课表为例,说明选课表的学号和课程编号应作为外键分别引用学生表和课程表。(2)讲解级联操作详细讲解ONDELETECASCADE和ONUPDATECASCADE的机制,通过具体场景说明:删除一门课程时,选课表中该课程的所有选课记录是否自动删除。(3)演示外键约束的创建和级联操作效果演示例5-9:为选课表增加两个外键约束。演示删除和更新主表数据时,从表数据的自动变化。强调外键只能引用PRIMARYKEY或UNIQUE约束的列。4.其他四种约束(20分钟)(1)非空值约束(NOTNULL)演示例5-10:为课程表的课程名称字段设置非空值约束。强调NULL与空字符串的区别。(2)唯一性约束(UNIQUE)演示例5-11:创建student_2表,设置身份证号唯一性约束。对比唯一性约束与主键约束的区别。(3)检查约束(CHECK)演示例5-12:为选课表的成绩列添加检查约束,确保成绩在0至100之间。(4)默认值约束(DEFAULT)演示例5-13:修改学生表,设置is_bonus字段默认约束为0。讲解DEFAULT可以使用CURRENT_TIMESTAMP等系统值。(三)实践环节(25分钟)【课堂练习】学生根据student数据库,完成以下约束操作:练习1:为选课表(student_course)添加主键约束,设置学号和课程编号的组合为主键练习2:为选课表添加外键约束,学号引用学生表,课程编号引用课程表练习3:将外键约束设置为级联删除(ONDELETECASCADE),然后测试删除学生表中某条记录,观察选课表的变化练习4:为课程表的name列设置非空约束练习5:为选课表的mark列添加检查约束,确保成绩在0~100之间练习6:为选课表添加默认值约束,设置mark的默认值为0(四)课堂总结(5分钟)1.提问:数据完整性有哪四种类型?2.提问:主键约束和唯一性约束有什么区别?3.提问:外键约束的级联删除和级联修改分别是什么含义?4.总结本节课重点,布置课后习题(教材习题5的选择题、填空题和问答题)五、总结与反思(一)本节课总结本节课系统学习了MySQL的数据完整性机制。数据完整性包括实体完整性、域完整性、参照完整性和用户自定义完整性四种类型。MySQL提供了六种约束来保证数据完整性:NOTNULL约束、PRIMARYKEY约束、FOREIGNKEY约束(含级联操作)、UNIQUE约束、CHECK约束和DEFA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物业维修的施工组织方案与技术措施
- 小学数学教师专业技能知识测试试卷及答案
- 新员工入厂安全培训考试题及答案
- 新版《接触镜验配》考试复习题库及答案
- 证券从业资格考试题库及答案解析
- 液化石油气库站工技能考核考试试卷及答案
- 医疗器械师岗位医疗器械使用与维护考试试卷及答案
- 植物育种学复习思考题答案及答案
- 中职智能家居笔试题目及答案
- 注册电器工程师试卷及答案
- 2026副主任医师副高-中医骨伤科学(副高)076历年题库含答案详解
- 2026年工伤保险条例解读课件(知识竞赛版)
- 《学习指导与练习 语文 基础模块 上册》参考答案
- 《机床数控技术 第2版》课件全套 杜国臣 第1-6章 绪论、数控加工工艺基础 -数控机床机械结构
- 小学生必读图书目录
- 同济大学《房屋建筑学》(第5版)配套题库
- 太平洋雇主责任保险(2016版)条款
- 高分子的聚集态结构
- GB/T 20634.1-2006电气用非浸渍致密层压木第1部分:定义、命名和一般要求
- 常见症状发热
- 劳务费工作量说明表
评论
0/150
提交评论