新编数据库技术-MySQL 教案全套 王若宾 第1-11章 认识数据库-基于Web的图书馆管理系统开发_第1页
新编数据库技术-MySQL 教案全套 王若宾 第1-11章 认识数据库-基于Web的图书馆管理系统开发_第2页
新编数据库技术-MySQL 教案全套 王若宾 第1-11章 认识数据库-基于Web的图书馆管理系统开发_第3页
新编数据库技术-MySQL 教案全套 王若宾 第1-11章 认识数据库-基于Web的图书馆管理系统开发_第4页
新编数据库技术-MySQL 教案全套 王若宾 第1-11章 认识数据库-基于Web的图书馆管理系统开发_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

《新编数据库技术--MySQL》教案(学期名称)第1讲王若宾老师授课日期授课班级教案主题认识数据库学时分配(线下课程,本单元学时数)2(混合式课程,线上/线下学时数)2主讲教师王若宾教学目标理解数据库作为数字化转型基础设施的核心价值,明确学习数据库技术的必要性。区分数据库与Excel、数据仓库、应用软件的本质差异,建立对数据库系统的准确认知。掌握数据库的定义及分类,理解数据库管理系统(DBMS)与数据库应用系统的构成关系。梳理数据库技术发展的三个阶段(导航模型、关系模型、后关系模型)及其典型特征。了解数据库技术与人工智能、物联网的融合趋势,认识主流数据库产品的分类标准。培养从业务视角分析数据管理需求的能力,为后续数据库设计与应用奠定基础。教学重点数据库与相似概念的区分解决方案:采用对比教学法,通过Excel学生信息表与MySQL数据表的实操对比,展示数据库的事务管理特性;结合图书馆管理系统案例,用流程图说明数据库(OLTP)与数据仓库(OLAP)的应用场景差异,配套课后练习题强化区分。数据库技术发展脉络梳理解决方案:以时间轴为主线,制作动态演化图表,重点标注1970年关系模型提出(EdgarCodd图灵奖贡献)、2000年后NoSQL兴起两个关键节点,结合MongoDB与MySQL的性能测试实验,直观呈现技术迭代动因。3.数据库产品分类体系构建解决方案:设计“开源/非开源”与“关系/非关系”二维分类矩阵,通过小组任务让学生完成PostgreSQL(开源关系型)、Redis(开源非关系型)、Oracle(非开源关系型)的特征标签匹配,课堂展示并点评。教学难点数据库系统层级关系理解解决方案:开发“数据库系统三层蛋糕”模型教具,底层为DBMS(如MySQL),中层为数据表/视图等对象,顶层为图书管理系统应用,通过“切蛋糕”演示各层依赖关系,布置绘制个人博客系统层级结构图的作业。关系模型核心思想转化解决方案:设计“实体-关系”角色扮演游戏,学生分别扮演“学生”“课程”实体及“选课”关系,用绳子连接表示外键约束,通过“寻找选修同一课程的学生”情景模拟,理解关系代数的连接运算本质。3.技术发展趋势的前沿认知解决方案:组织“数据库未来论坛”,提供Gartner最新技术成熟度曲线报告,分组研讨AI原生数据库(如CockroachDB)的自优化特性,要求每组提交包含应用场景、潜在风险的分析简报。教学设计思路采用“认知冲突-概念建构-实践迁移”的三阶教学模式,以教育部《新工科研究与实践项目指南》为政策依据,重构教材第一章内容体系。课前通过“医院挂号系统数据管理”情境视频引发认知冲突,学生带着“Excel为何无法支撑挂号业务”的疑问进入课堂。课中实施“概念澄清-历史演化-未来展望”的逻辑链条:先通过对比实验破除“数据库=高级Excel”的迷思,再以图灵奖得主贡献为主线串联技术史,最后通过产业案例研讨实现理论到应用的迁移。实践环节采用“微型项目驱动”,要求学生基于本章知识完成“校园二手书交易平台”的数据库需求分析报告,包含数据实体识别、存储技术选型等内容,培养工程思维。评价体系融合过程性评价(课堂辩论、实验报告)与终结性评价(概念地图绘制、技术简报),特别设置跨专业案例分析题,适应“四新”背景下复合型人才培养需求。教学过程导入环节(15分钟)播放“12306购票系统崩溃事件”新闻片段,提出核心问题:“为何Excel无法替代数据库支撑春运售票?”引导学生观察教材图1.1的Excel表与数据库表对比,发现数据库表中隐藏的“触发器”“约束”等业务规则,引出本章学习目标。新课讲授(60分钟)模块1:数据库的本质(20分钟)•展示教材1.1节政策文件节选,分析数据库作为“四新”教育通用能力模块的定位•演示实验:在Excel与MySQL中分别模拟“图书借阅-归还”流程,对比事务完整性保障机制•总结数据库定义:强调DBMS的ACID特性(原子性、一致性、隔离性、持久性)模块2:技术演进史(25分钟)•动态演示导航模型(1960sIDS系统)的树状结构局限性,对比关系模型(1970sOracle)的二维表优势•分组任务:根据表1.2数据,用时间轴软件制作“数据库模型演化图谱”,标注关键技术突破点•案例分析:用“双十一秒杀”场景解释数据库的高并发处理优势模块产品与趋势(15分钟)•构建分类矩阵:横轴开源/非开源,纵轴关系/非关系,填入教材1.6节产品并分析适用场景•4.课堂实践(30分钟)开展“数据库产品选型辩论会”:•正方:为高校选课系统推荐MySQL(开源关系型)•反方:推荐MongoDB(文档型数据库)要求结合本章知识点阐述选型理由,教师点评时重点关注对事务需求、数据结构的分析能力5.总结提升(15分钟)•概念地图绘制:学生用思维导图软件完成“认识数据库”核心概念梳理(包含3个以上层级)•预告下次课内容:数据库系统架构,布置预习任务——安装MySQL并截图反馈安装过程中的关键配置步骤课后作业与评价基础作业(必做)•完成教材“思考与练习”第2题:简述三个发展阶段数据模型特征,要求结合表1.2补充每个模型的适用场景•绘制“数据库-数据仓库-数据湖”的Venn图,标注三者在数据时效性、处理模式、应用目标上的交集与差异拓展任务(选做)•技术调研:下载官方文档,撰写800字报告分析其与MySQL在事务隔离级别上的实现差异•跨专业案例:医学专业学生分析电子病历系统的数据存储需求,商学院学生设计电商订单数据库的初步ER图3.评价标准•过程性评价(40%):课堂辩论表现(逻辑清晰度、知识点运用准确性)、实验报告完整性•终结性评价(60%):概念地图的知识覆盖率(≥8个核心概念)、技术简报的行业趋势预判合理性•创新加分:提交自制的数据库技术发展时间轴动画视频或开发简易数据库分类查询小程序总结与反思教学效果预期通过“问题导向-实验验证-辩论深化”的教学流程,预计90%学生能准确区分数据库与Excel的本质差异,85%学生能完整叙述关系模型的核心贡献,为后续SQL语言学习奠定认知基础。教学改进方向•技术演示环节:增加国产数据库(如OceanBase)的案例分析,强化自主可控意识•跨专业适配:为非计算机专业学生设计“专业+数据库”融合任务(如历史学专业的古籍数据库设计)•评估方式:引入数据库产品体验报告替代部分笔试内容,提升实践能力评价权重3.思政元素融入在技术发展史部分介绍王选院士的汉字激光照排系统数据库应用,培养科技自信;在数据安全讨论中渗透《数据安全法》要求,强化合规意识,实现知识传授与价值引领的统一。《新编数据库技术--MySQL》教案(学期名称)第2-3讲王若宾老师授课日期授课班级教案主题认识MySQL学时分配(线下课程,本单元学时数)4(混合式课程,线上/线下学时数)4主讲教师王若宾教学目标理解MySQL的客户机/服务器架构及与单机模式、浏览器/服务器模式的区别。

掌握IP地址、端口、TCP/IP协议等网络基础术语在MySQL中的应用。

完成MySQL社区版的下载、安装与配置,确保服务正常启动。

熟练使用Workbench图形化工具连接服务器并进行数据库浏览操作。

掌握命令行工具(cmd)连接MySQL服务器及执行基础SQL命令的方法。

了解MySQL系统数据库(如information_schema、mysql)的作用及访问方式。

教学重点1.客户机/服务器(C/S)架构理解

解决方案:通过微信客户端与服务器通信类比,结合图示对比单机模式(如单机版Office)、B/S模式(如网页版邮箱)的差异,重点演示MySQL服务器启动与客户端连接的交互过程。

2.MySQL安装配置中的关键参数设置

解决方案:采用“任务驱动法”,分步讲解端口号(3306)、root密码设置、配置类型(DevelopmentComputer)的选择,提供错误排查手册(如端口冲突解决、服务启动失败处理)。

3.命令行工具的基础操作

解决方案:设计“命令速查卡”,包含mysql-uroot-p登录、showdatabases、useworld、select*fromcitylimit10等核心命令,通过“练习-纠错-强化”三步训练法巩固记忆。

教学难点1.网络术语与MySQL服务的关联

解决方案:构建“IP-端口-服务”映射模型,通过修改hosts文件模拟远程连接,使用telnet命令测试3306端口连通性,直观理解网络通信原理。

2.环境变量配置与命令行访问权限

解决方案:提供Windows系统环境变量配置流程图,对比配置前后的命令执行差异,演示使用管理员权限启动cmd解决“mysql不是内部命令”错误。

3.Workbench与命令行工具的功能取舍

解决方案:设计对比实验,同一任务(如查询city表数据)分别用两种工具实现,总结Workbench可视化优势与命令行高效性的适用场景。

教学设计思路采用“理论铺垫-实践操作-深度拓展”三层教学架构,以“认识MySQL”为核心主题展开。

理论层:通过生活案例(如网购系统数据存储)引入数据库必要性,结合软件架构演进史讲解C/S模式的优势,利用动画演示MySQL客户端-服务器数据交互流程。

实践层:实施“安装-连接-操作”阶梯式任务链,每个任务配备“操作指南+常见错误库”,设置“小组互助”环节解决个性化问题。

拓展层:引入系统数据库探秘、环境变量原理等进阶内容,通过“思考题+拓展任务”引导学生建立知识体系,培养问题解决能力。

教学方法融合讲授法、演示法、任务驱动法,工具使用上兼顾图形化与命令行,满足不同学习风格需求

教学过程1.导入(15分钟)

提问:“网购时商品信息如何实时更新?”引出数据库概念,展示MySQL在Facebook、YouTube等平台的应用案例,明确学习目标。

2.软件架构与网络基础(30分钟)

讲解:对比单机模式(如Access)、C/S模式(MySQL)、B/S模式(phpMyAdmin)的区别,重点分析MySQL的C/S架构组成。

演示:使用网络调试工具抓取MySQL客户端连接服务器的数据包,解析IP地址()、端口(3306)、TCP协议的作用。

3.MySQL安装配置(45分钟)

任务1:指导学生从官网下载MySQLCommunityServer8.0,区分MSI安装包与ZIP压缩包的差异。

任务2:分步演示安装流程,重点讲解“Custom”安装类型选择、数据目录设置(避免中文路径)、HighAvailability配置(Standalone模式)。

任务3:通过Windows服务面板验证MySQL80服务状态,使用netstartmysql80命令启动服务。

4.客户端工具使用(60分钟)

模块1:Workbench操作

-演示创建连接(主机,端口3306,用户root)

-浏览world数据库的city表结构,执行“SelectRows-Limit1000”查看数据

模块2:命令行操作

-配置环境变量(Path添加C:\MySQL\MySQLServer8.0\bin)

-执行基础命令:

mysql-uroot-p

showdatabases;

useworld;

selectname,populationfromcitywhereCountryCode='CHN'limit5;

5.系统数据库探索(30分钟)

讲解:information_schema(元数据)、mysql(用户权限)、performance_schema(性能监控)的作用,演示查询命令:

selecttable_namefrominformation_schema.tableswheretable_schema='world';

6.课堂小结与答疑(15分钟)

回顾关键知识点,解答学生操作中遇到的典型问题(如忘记root密码、服务启动失败),布置课后任务。

课后作业与评价基础任务(必做):

1.撰写实验报告,记录MySQL安装过程中的3个关键配置项及其作用。

2.使用两种工具(Workbench+命令行)完成以下操作并对比:

-创建名为school的数据库

-在school库中创建student表(包含id[int],name[varchar(20)]字段)

-插入3条测试数据

3.整理常用命令速查表(至少10条),标注语法要点。

拓展任务(选做):

1.尝试远程连接实验室另一台主机的MySQL服务,分析连接失败的可能原因。

2.查询performance_schema数据库,统计当前MySQL服务器的连接数。

评价方式:

-过程性评价(60%):课堂操作完成度、小组互助贡献度

-结果性评价(40%):实验报告质量、作业任务完成准确性

-评价标准:配置参数理解(20%)、工具使用熟练度(30%)、问题解决创新性(30%)、报告规范性(20%)

总结与反思教学总结:

本课围绕MySQL的“是什么-怎么装-怎么用”逻辑主线,通过理论讲解与实践操作相结合,使学生掌握了数据库基础概念、MySQL安装配置流程及客户端工具使用方法。重点突破了C/S架构理解、网络参数配置、命令行操作等难点,为后续SQL编程奠定基础。

教学反思:

1.学生常混淆“服务启动”与“客户端连接”的概念,下次课可增加服务进程查看(tasklist|findstrmysql)的演示。

2.环境变量配置仍是薄弱环节,需制作“图文+视频”教程放在课程平台供课后复习。

3.部分学生对系统数据库兴趣浓厚,可增设“数据库探秘”选修课拓展深度。

改进方向:

-引入Docker容器化部署MySQL,简化环境配置复杂度

-设计“故障案例库”,包含10种常见错误的排查流程

-增加跨平台操作内容(Linux下的MySQL安装),适应不同系统需求

通过持续优化教学内容与方法,逐步提升学生的数据库应用能力与问题解决思维。

《新编数据库技术--MySQL》教案(学期名称)第4-6讲王若宾老师授课日期授课班级教案主题库和表学时分配(线下课程,本单元学时数)6(混合式课程,线上/线下学时数)6主讲教师(本单元授课教师,可以多人)教学目标理解数据库库和表的基本概念及关系,能准确描述库、表、记录、字段等术语。

掌握MySQL数据库中库的创建、修改和删除操作,能使用SQL语句和Workbench工具完成库管理。

掌握表的结构设计与操作,包括创建表、修改表结构和删除表,能根据需求定义合适的字段和数据类型。

学会表数据的增删改查基本操作,能正确使用INSERT、UPDATE、DELETE语句操作表数据。

理解数据完整性约束的重要性,掌握域完整性、实体完整性和参照完整性的实现方法。

了解MySQL常用存储引擎的特点,能根据应用场景选择合适的存储引擎。

教学重点1.库和表的创建与管理

解决方案:通过图书馆管理系统案例,演示使用CREATEDATABASE、CREATETABLE语句创建库和表,结合Workbench图形化操作,让学生直观感受创建过程,同时强调命名规范和语法格式。

2.数据完整性约束的应用

解决方案:以学生表和借阅表为例,详细讲解主键(PRIMARYKEY)、外键(FOREIGNKEY)、非空(NOTNULL)、CHECK约束的定义和作用,通过实例验证约束效果,加深学生理解。

3.SQL语句的正确使用

解决方案:针对库表操作、数据操作等关键SQL语句,进行语法解析和错误案例分析,组织学生进行语句编写练习,通过Workbench执行并查看结果,强化语句使用能力。

教学难点1.参照完整性中外键的设置与作用

解决方案:使用图书表和借阅表的关联关系,分步骤演示外键的创建过程,通过插入不存在主表记录的测试案例,展示外键约束的效果,帮助学生理解表间引用关系。

2.不同存储引擎的特点与选择

解决方案:对比MyISAM和InnoDB存储引擎的事务支持、外键支持、性能等方面的差异,结合图书馆系统不同表的需求场景,引导学生分析选择合适存储引擎的依据。

3.表结构修改与数据操作的安全性

解决方案:强调修改表结构(如ALTERTABLE)和删除数据(如DELETE)操作的谨慎性,演示添加WHERE条件限制的重要性,通过误操作案例警示学生,培养安全操作意识。

教学设计思路以大学图书馆借阅管理系统为贯穿案例,采用“理论讲解-案例演示-实践操作-总结拓展”的教学模式。

首先,结合系统背景介绍数据库应用场景,引出库和表的基本概念,通过对比生活中的表格,帮助学生理解二维表结构。

然后,按照“库操作-表结构操作-表数据操作-完整性约束-存储引擎”的逻辑顺序,依次讲解各知识点。每个知识点先进行理论阐述,再展示SQL语句和Workbench操作步骤,接着让学生动手实践,最后通过案例验证和错误分析巩固所学。

在教学过程中,注重理论与实践结合,利用案例驱动学生思考,通过小组讨论和课堂练习加深理解,培养学生数据库设计和操作的实际能力。

教学过程一、导入(10分钟)

通过提问“图书馆如何管理大量图书和借阅信息?”引出数据库的必要性,介绍图书借阅管理系统背景,展示系统涉及的实体(学生、图书、借阅记录),激发学生学习兴趣。

二、库和表的基本概念(15分钟)

讲解数据库基础术语:库(Schema)、表(Table)、行(Row/Record)、列(Column/Field),结合学生表实例(学号、姓名、性别),说明表的二维结构,对比关系代数中的关系、元组、属性概念。

三、库操作(25分钟)

1.创建库:演示使用CREATEDATABASElibrary;语句和Workbench创建库的步骤,强调字符集设置(如utf8)。

2.修改库:讲解ALTERDATABASE语句修改库字符集,如ALTERDATABASElibraryDEFAULTCHARACTERSETutf8;。

3.删除库:演示DROPDATABASElibrary;语句,强调删除操作的不可逆性,提醒谨慎操作。

学生实践:创建名为“mylib”的库,修改其字符集为utf8mb4,最后删除该库。

四、表结构操作(30分钟)

1.创建表:以学生表(tb_student)为例,讲解CREATETABLE语句,包括字段定义(学号CHAR(11)、姓名VARCHAR(20)等)和数据类型选择(数字类、字符串类等)。

2.修改表结构:通过ALTERTABLE语句演示添加字段(ADD)、修改字段名(CHANGE)、删除字段(DROP),如ALTERTABLEtb_studentADDCOLUMNsexENUM('男','女')AFTERname;。

3.删除表:演示DROPTABLEtb_student;语句,对比删除表数据和删除表结构的区别。

学生实践:创建图书表(tb_book),包含ISBN(主键)、书名、价格字段,修改表添加出版社字段,最后删除该表。

五、表数据操作(30分钟)

1.插入数据:讲解INSERT语句,批量插入学生数据,如INSERTINTOtb_studentVALUES('16100101','马诗','男'),('16130201','博文','女');。

2.修改数据:使用UPDATE语句修改指定记录,如UPDATEtb_studentSETname='博文一'WHEREstu_num='16130201';,强调WHERE条件的重要性。

3.删除数据:演示DELETEFROMtb_studentWHEREname='博文一';和DELETEFROMtb_student;(删除全表数据)。

学生实践:向图书表插入3条图书记录,修改其中一条记录的价格,删除一条记录。

六、数据完整性约束(30分钟)

1.域完整性:讲解非空约束(NOTNULL)和CHECK约束,如创建学生表时定义姓名NOTNULL,图书价格CHECK(price>0ANDprice<1000)。

2.实体完整性:以学号为主键为例,讲解PRIMARYKEY约束,演示创建复合主键(如借阅表中学号、图书条码、借阅日期组合主键)。

3.参照完整性:以借阅表的图书ISBN外键关联图书表为例,讲解FOREIGNKEY约束,测试插入不存在ISBN的借阅记录,观察约束效果。

学生实践:创建借阅表(tb_borrow),设置外键关联学生表和图书表,插入测试数据验证约束。

七、存储引擎(15分钟)

介绍MyISAM和InnoDB存储引擎的特点,对比事务支持、外键支持、性能等,结合图书馆系统中图书表(InnoDB,需事务)和日志表(MyISAM,查询快)的场景,说明选择依据。

八、课堂小结与作业布置(5分钟)

总结本节课重点内容,强调库表操作、完整性约束和SQL语句的核心要点,布置课后作业和实践任务。

课后作业与评价一、基础作业(必做)

1.完成教材中“思考与练习”部分的选择题,巩固库表操作关键字等基础知识。

2.按要求创建“学生成绩管理系统”数据库(score_db),包含学生表(student)、课程表(course)、成绩表(score),定义合适的字段、数据类型和完整性约束。

3.对创建的表进行数据插入(各表至少5条记录)、修改(如修改某学生某课程成绩)、删除(如删除一门课程记录)操作,写出相应SQL语句。

二、拓展作业(选做)

1.比较MyISAM和InnoDB存储引擎在插入1000条记录时的性能差异,记录执行时间并分析原因。

2.尝试在Workbench中使用ER图设计图书馆管理系统的表结构,导出SQL脚本并执行。

三、评价方式

1.作业评价:检查SQL语句的正确性、表结构设计的合理性、完整性约束的应用是否恰当。

2.实践评价:通过课堂实操表现、小组任务完成情况,评估学生使用Workbench和SQL语句的熟练程度。

3.提问与讨论:课堂提问和课后讨论中,关注学生对概念的理解和问题解决能力。

总结与反思本节课围绕数据库库和表的基本操作展开,通过图书馆管理系统案例,将抽象的数据库概念与实际应用相结合,帮助学生掌握了库表的创建、修改、删除,数据的增删改查以及完整性约束等核心知识点。

在教学过程中,采用理论讲解与实践操作同步进行的方式,大部分学生能够跟上教学节奏,完成指定的实践任务。但仍有部分学生在SQL语句语法和外键设置方面存在困难,需要在后续课程中进行针对性辅导。

反思本节课,可进一步改进的地方:一是增加更多错误案例分析,让学生学会排查SQL语句错误;二是引入小组合作项目,让学生共同设计和实现一个小型数据库应用系统,提升综合应用能力。

此外,课后应鼓励学生利用在线编程平台多加练习,巩固所学知识,为后续数据库查询、事务处理等内容的学习打下坚实基础。

《新编数据库技术--MySQL》教案(学期名称)第7-8讲王若宾老师授课日期授课班级教案主题数据库设计与规范化学时分配(线下课程,本单元学时数)4(混合式课程,线上/线下学时数)4主讲教师(本单元授课教师,可以多人)教学目标理解数据库设计的基本流程,包括需求分析、概念设计、逻辑设计、物理设计及实施运行五个阶段。

掌握实体-联系(E-R)模型的构成要素,能准确识别实体、属性及联系类型。

熟练运用E-R图绘制方法(Chen方法和Crow'sFoot方法)表达数据库概念模型。

理解数据库规范化理论,掌握第一范式(1NF)、第二范式(2NF)、第三范式(3NF)的定义及应用场景。

能够通过案例分析识别非规范化设计中的数据冗余问题,并应用范式理论进行优化。

了解反范式设计的适用场景,学会在实际应用中平衡数据规范化与查询效率。

教学重点1.E-R模型的构建:

解决方案:通过图书馆管理系统案例,采用“识别实体→定义属性→确定联系”三步法,结合Chen方法绘制E-R图,重点练习1:1、1:N、M:N联系的图形化表达。

2.数据库规范化理论:

解决方案:以学生成绩表(含重复组)、借阅记录表(非主属性部分依赖)、学生信息表(传递依赖)为实例,通过“问题诊断→分解优化→验证范式”流程,逐一讲解1NF、2NF、3NF的转化方法。

3.E-R图向关系模型的转换:

解决方案:基于图书馆E-R图,演示实体(如“图书”)转换为表结构、联系(如M:N“借阅”)转换为关联表的具体规则,强调主键与外键的映射关系。

教学难点1.多对多(M:N)联系的处理:

解决方案:通过“读者-图书”借阅关系案例,引入关联实体“借阅记录”,将M:N联系分解为两个1:N联系,配合MySQLWorkbench生成中间表的实操演示。

2.范式判定与分解技巧:

解决方案:设计“范式判定流程图”,以“是否存在重复组→非主属性是否完全依赖→是否存在传递依赖”为判断节点,结合学生表分解案例(拆分专业与学院信息)进行步骤化教学。

3.规范化与性能的平衡:

解决方案:对比电子商务订单表的规范化设计(拆分商品信息)与反范式设计(冗余商品名称),通过查询效率测试实验(模拟10万条数据联表查询耗时),讨论反范式的适用条件。

教学设计思路采用“问题驱动-案例贯穿-工具实操”的教学模式,以图书馆管理系统为核心案例贯穿全章。

理论讲解与实践操作结合:先通过“需求分析→概念设计→逻辑设计”的流程梳理理论框架,再使用MySQLWorkbench完成E-R图绘制与SQL脚本生成。

分层递进教学:从抽象的概念模型(E-R图)到具体的逻辑模型(关系表),再到优化策略(范式与反范式),逐步深化学生对数据库设计的认知。

强调工程化思维:引入数据库工程师、业务分析师等角色分工,通过案例4.2“分阶段建模”展示协作流程,培养学生的系统设计视角。

教学过程1.导入(15分钟)

(1)情境提问:“图书馆如何高效管理图书借阅?如果用一张Excel表记录所有信息会出现什么问题?”引导学生发现数据冗余、更新异常等问题。

(2)案例展示:对比非规范化的“图书借阅总表”(含读者、图书、借阅信息)与规范化后的分表设计,引出本章主题。

2.数据库设计流程(30分钟)

(1)理论讲解:结合图4-1,分阶段解析需求分析(用户访谈、数据流图)、概念设计(E-R模型)、逻辑设计(关系模式)、物理设计(索引、存储引擎)的核心任务。

(2)案例分析:以“大学图书馆管理系统”为例(案例4.1),分组讨论各阶段产出物(如需求规格说明书、E-R图、SQL建表语句)。

3.E-R模型构建(45分钟)

(1)要素解析:通过表4-1,讲解实体(图书、读者)、属性(ISBN、学号)、联系(借阅)的定义,重点区分一元联系(如员工管理)、二元联系(如图书-读者)、多元联系(如供应商-产品-仓库)。

(2)绘图实践:使用Chen方法绘制图书馆E-R图,要求标注主键(下划线)、联系类型(1:N/M:N),教师巡视指导学生修正错误(如漏画关联实体)。

4.数据库规范化(60分钟)

(1)范式讲解:

-1NF:以表4-6“作者列含多个值”为例,通过拆分“图书-作者”关联表实现原子性。

-2NF:以表4-9“图书名称依赖条码号”为例,拆分出“图书表”和“借阅记录表”,消除部分依赖。

-3NF:以表4-13“所在学院依赖专业”为例,拆分出“专业表”,消除传递依赖。

(2)课堂练习:给定“订单表(订单号、顾客号、产品名、价格)”,学生分组完成1NF→3NF的转化,教师点评。

5.反范式设计(20分钟)

(1)场景引入:分析案例4.9“订单表冗余产品名称”的设计,通过查询耗时对比实验(联表查询vs单表查询),说明反范式在高频读场景的优势。

(2)讨论总结:归纳反范式适用条件(如数据更新频率低、查询性能优先)及风险(数据不一致)。

6.工具实操(30分钟)

(1)MySQLWorkbench演示:

-正向工程:从E-R图生成SQL建表语句(含主键、外键约束)。

-逆向工程:导入现有数据库,自动生成E-R图并验证设计规范性。

(2)学生任务:使用工具绘制“运动会管理系统”E-R图(实体:运动员、项目、成绩),并转换为关系表。

课后作业与评价1.基础作业:

(1)绘制“在线购物系统”E-R图,包含实体(用户、商品、订单)及联系(购买、包含),标注联系类型。

(2)将如下非规范化表转换为3NF:学生表(学号,姓名,课程号,课程名,成绩,学院)。

2.拓展作业:

(1)使用MySQLWorkbench实现上述E-R图的物理设计,设置合理的数据类型(如ISBN设为CHAR(13))及索引(如订单表的用户ID索引)。

(2)撰写实验报告:对比规范化设计与反范式设计(在订单表中冗余商品名称)的查询效率(用EXPLAIN分析执行计划)。

3.评价方式:

-过程性评价(40%):课堂E-R图绘制练习、范式分解讨论参与度。

-终结性评价(60%):作业中E-R图规范性(实体完整性、联系正确性)、范式转换正确性、实验报告结论合理性。

总结与反思1.教学总结:

本课通过图书馆管理系统案例,系统讲解了数据库设计流程、E-R建模、规范化理论及工具实操,重点突破了M:N联系处理、范式分解等难点。学生需掌握“从现实世界到数据世界”的分层抽象方法,理解规范化是“消除冗余”而非“追求最高范式”的工程思想。

2.教学反思:

(1)改进方向:下次教学可增加“需求分析文档”模板填写练习,强化学生对“数据字典”“业务规则”等前期产出物的理解。

(2)难点突破:对于范式分解,可引入“函数依赖图”工具,可视化展示属性间依赖关系,降低抽象难度。

(3)实践强化:后续可增加数据库设计竞赛环节(如设计校园门禁系统数据库),提升综合应用能力。

《新编数据库技术--MySQL》教案(学期名称)第9-12讲王若宾老师授课日期授课班级教案主题数据库查询学时分配(线下课程,本单元学时数)8(混合式课程,线上/线下学时数)8主讲教师(本单元授课教师,可以多人)教学目标掌握单表查询的基础语法,包括字段选择、条件筛选和排序操作。

理解并应用聚合函数与分组查询,能对数据进行统计分析。

熟练运用连接查询(内连接、外连接)实现多表数据关联。

掌握嵌套查询的多种形式(标量子查询、列子查询等)及其使用场景。

理解联合查询的语法规则,能合并多个结果集。

了解关系代数理论基础,理解查询操作背后的数学原理。

教学重点1.单表查询条件构造

解决方案:通过图书馆借阅案例,设计多场景练习(如查询'2019年后出版的计算机类图书'),对比使用=、>、LIKE、BETWEEN等操作符的区别,配合真值表分析逻辑组合条件。

2.连接查询类型区分

解决方案:构建t1/t2示范表(含NULL值),通过可视化韦恩图对比内连接、左连接、右连接的结果差异,重点解析ON子句与WHERE子句的执行时机区别。

3.分组查询与聚合函数

解决方案:以学生成绩统计为案例,通过'按学院分组统计平均借阅次数'任务,演示GROUPBY与COUNT/AVG函数的配合使用,强调聚合函数对分组的作用机制。

教学难点1.嵌套查询执行逻辑

解决方案:采用流程图分步拆解标量子查询(如案例5.31)的执行顺序,通过替换法(将子查询结果代入主查询)帮助理解,设计'查找借阅次数超过平均值的学生'等进阶任务。

2.自连接与自然连接应用

解决方案:以'查询同作者的图书'案例,通过别名机制将单表虚拟为双表,对比自然连接与内连接的自动匹配规则,分析重复字段处理方式。

3.关系代数与SQL映射

解决方案:将投影(π)、选择(σ)、连接(⋈)运算对应到具体SQL语句,如π<sub>name,price</sub>(σ<sub>category='TP'</sub>(tb_bibliography))对应SELECTname,priceFROMtb_bibliographyWHEREcategory='TP'。

教学设计思路采用'案例驱动-理论嵌入-实践强化'的三段式教学模式:

1.情境导入:以图书馆借阅管理系统为贯穿案例,从'查询某学生借阅记录'的实际需求出发,自然引入查询概念。

2.分层递进:按'单表→多表→嵌套→联合'的认知顺序组织内容,每个知识点配备基础案例(如案例5.1基础查询)和拓展案例(如案例5.13模糊查询进阶)。

3.理论融合:在关键节点嵌入关系代数理论(如选择运算对应WHERE子句),通过【理论点睛】专栏实现从SQL语法到数学原理的升华。

4.双线训练:设计'语法速查'(如SELECT子句格式)和'任务实施'(如案例5.21HAVING子句应用)并行模块,兼顾语法记忆与动手能力。

教学过程1.导入环节(15分钟)

展示图书馆管理系统界面,提出核心问题:'如何找出信息学院未归还《Python语言及其应用》的学生?',引导学生分解需求为'多表关联+条件筛选',激发学习动机。

2.新课讲授(60分钟)

(1)单表查询:演示案例5.1-5.13,重点讲解SELECT字段指定、WHERE条件组合(AND/OR)、LIMIT分页,现场调试'查询价格在20-50元的TP类图书'语句。

(2)函数与分组:通过案例5.14-5.21,演示COUNT/SUM聚合函数,对比GROUPBY与DISTINCT的去重逻辑,解析HAVING与WHERE的执行优先级。

(3)连接查询:使用t1/t2表动态演示内连接(案例5.25)、左连接(案例5.28)结果差异,强调ON子句的连接条件作用。

3.课堂实践(45分钟)

分组完成三个任务:

①基础任务:实现案例5.32(IN子查询)查询'借阅了3本以上图书的学生'

②进阶任务:用自连接(案例5.26)查询'同专业中年龄比邓承明小的学生'

③挑战任务:用联合查询(案例5.38)合并tb_bibliography和tb_bibliography_2的图书记录

4.总结提升(15分钟)

通过思维导图梳理查询类型体系,布置'查询各学院借阅量前三的图书'综合性任务,预告下节课索引优化内容。

课后作业与评价1.基础作业(必做)

①编写SQL语句实现:

-查询'信息学院'女生的姓名、专业和获奖数量(关联tb_student与tb_inf_student)

-统计各出版社2015年后出版图书的平均价格(保留两位小数)

②分析案例5.34中价格重复问题的解决方案,改写查询语句。

2.拓展作业(选做)

使用EXISTS子查询实现'查询从未借阅过图书的学生',对比IN子句实现方案的效率差异。

3.评价方式

①过程性评价:课堂实践任务完成质量(40%)

②结果性评价:作业中SQL语句的正确性、优化程度(60%),重点检查连接条件、分组逻辑、子查询嵌套层次。

总结与反思1.教学亮点

①案例体系化:图书馆案例贯穿始终,从基础查询(案例5.1)到复杂嵌套(案例5.37)形成完整任务链。

②可视化工具:使用真值表、韦恩图、执行流程图等可视化手段降低抽象概念理解难度。

③理论深度:通过【理论点睛】专栏将关系代数自然融入,培养学生抽象思维能力。

2.改进方向

①需加强对NULL值处理的专项训练,补充COALESCE函数应用案例。

②可增加查询效率分析内容,对比不同写法(如IN与EXISTS)的执行计划差异。

③应设计更多错误案例辨析(如GROUPBY字段缺失),强化语法严谨性。

3.学情反馈

通过课堂提问发现,学生对嵌套查询的执行顺序理解存在困难,下次课可增加断点调试演示环节,逐步显示子查询的中间结果。

《新编数据库技术--MySQL》教案(学期名称)第13-14讲王若宾老师授课日期授课班级教案主题数据库视图与索引应用学时分配(线下课程,本单元学时数)4(混合式课程,线上/线下学时数)4主讲教师(本单元授课教师,可以多人)教学目标理解视图的虚拟表特性及与物理表的本质区别,能准确阐述视图在数据安全和查询简化中的作用。

掌握视图创建(单表/多表)、修改、删除的SQL语法,能独立完成图书馆借阅系统中的视图设计案例。

了解视图算法(TEMPTABLE/MERGE)的执行机制,能分析不同算法对视图更新和查询性能的影响。

掌握索引的分类(普通/唯一/主键/复合)及创建方法,能通过实验验证索引对查询效率的优化效果。

理解索引的存储代价与维护成本,能根据业务场景制定合理的索引策略(如频繁查询字段优先建索引)。

综合运用视图和索引解决实际问题,如设计多表关联视图简化借阅统计,并通过复合索引提升查询性能。

教学重点1.视图的创建与更新

解决方案:采用"图书馆学生信息管理"案例,分步骤演示单表视图(CREATEVIEWv_studentASSELECT...)和多表视图(关联tb_student与tb_borrow)的创建过程,通过对比UPDATE语句在TEMPTABLE与MERGE算法视图上的执行结果(如案例6.9),明确可更新视图的限制条件(无聚合/分组/外连接)。

2.索引的分类与适用场景

解决方案:设计"索引效率对比实验",使用10万行数据的tb_test1(无索引)和tb_test2(name列普通索引),通过SELECTname='name543'的执行时间差(0.047秒vs0.000秒)直观展示索引作用;结合学生表(school+major复合索引)和图书表(ISBN唯一索引)案例,归纳各类索引的适用场景。

3.视图与索引的综合应用

解决方案:以"图书馆借阅统计系统"为项目载体,要求学生先创建包含学号、书名、借阅时间的多表视图v_record,再基于该视图创建借阅量统计视图v_borrowing,最后对v_record中的stu_num字段添加索引优化查询,通过SHOWINDEX验证索引有效性,并分析执行计划(EXPLAIN)中的type字段变化。

教学难点1.视图算法的执行原理

解决方案:通过流程图对比TEMPTABLE(先执行视图查询生成临时表)与MERGE(将视图逻辑合并到外部查询)的执行步骤,结合案例6.8中视图v_student2(TEMPTABLE)无法更新而v_student3(MERGE)可更新的现象,辅以SQL执行时间日志分析,帮助学生理解算法选择对性能的影响。

2.复合索引的最左匹配原则

解决方案:设计"学生表复合索引验证"实验,创建index_sm(school,major)后,通过EXPLAIN分析以下查询的索引使用情况:WHEREschool='信息学院'(使用索引)、WHEREmajor='计算机'(不使用索引)、WHEREschool='信息学院'ANDmajor='计算机'(使用索引),总结最左前缀匹配规律。

3.索引设计的权衡策略

解决方案:引入"索引成本模型",通过案例6.12中10万行数据插入耗时对比(有索引表比无索引表慢20%),讨论索引对INSERT/UPDATE的性能损耗,结合图书馆系统中"借阅记录表频繁插入但查询少"的场景,引导学生制定"查询频繁字段建索引,更新频繁字段少建索引"的策略。

教学设计思路采用"问题驱动-案例实践-原理探究-综合应用"的四阶教学模式,以大学图书馆借阅管理系统为贯穿案例,将抽象的数据库概念转化为可操作的业务场景。

1.情境导入:通过图书馆管理员"查询信息学院学生借阅记录"的真实需求,引出视图简化多表查询和索引加速检索的必要性,展示无视图时需编写6表连接的复杂SQL,激发学生学习兴趣。

2.分层教学:视图模块按"概念→操作→算法→应用"递进,先通过可视化工具(如Navicat)展示视图结构,再动手实践单表/多表视图创建;索引模块采用"对比实验→原理剖析→规则归纳"路径,从10万行数据查询耗时差异切入,延伸到B+树索引结构原理。

3.虚实结合:使用MySQLWorkbench作为实操环境,同步结合动画演示视图数据动态生成过程和索引B+树结构,解决物理表与虚拟表、索引存储与查询路径的抽象理解难题。

4.过程性评价:设置"视图安全审计"(找出含敏感字段的视图漏洞)和"索引失效诊断"(分析使用函数/模糊查询导致索引失效的SQL)两个任务点,通过小组互评和教师点评强化知识应用能力。

教学过程1.导入环节(15分钟)

-问题情境:展示图书馆管理员需查询"信息学院17级学生借阅的TP类图书"的业务需求,对比直接编写多表连接SQL(涉及tb_student、tb_borrow、tb_book、tb_bibliography)与使用预定义视图的代码量差异,引出视图的"简化操作"优势;通过10万条图书记录无索引查询耗时(0.5秒)与有索引查询耗时(0.01秒)的对比视频,引出索引的性能优化作用。

-知识回顾:提问"SELECT*FROMtb_studentWHEREschool='信息学院'"的执行过程,复习表扫描原理,为索引学习铺垫。

2.新课讲授(60分钟)

-视图基础(20分钟)

①概念辨析:展示视图与表的存储结构对比图(视图仅存储SQL逻辑,表存储物理数据),结合案例6.1中v_student视图的数据来源(动态引用tb_student),强调"虚拟表"特性。

②操作实践:以"创建信息学院学生视图"为例,分步演示CREATEVIEW语法,要求学生同步在MySQL中操作,并使用DESCv_student验证结构;通过ALTERVIEW修改视图条件(添加年级筛选)和DROPVIEW删除操作,强化语法记忆。

-视图进阶(15分钟)

①多表视图:解析案例6.6中v_record视图的创建过程(LEFTJOIN连接4张表),重点讲解字段别名(s_name/b_name)的必要性,避免列名冲突;指导学生使用SHOWCREATEVIEWv_record查看视图定义SQL。

②算法选择:演示案例6.8中v_student2(TEMPTABLE)和v_student3(MERGE)的创建,执行UPDATEname='周睿睿1'命令,对比报错结果(1288错误vs成功更新),总结MERGE算法的优势及使用场景。

-索引核心(25分钟)

①类型讲解:结合案例6.13-6.15,分别演示CREATEINDEX(普通索引)、UNIQUE(ISBN字段)、PRIMARYKEY(id字段)、复合索引(school+major)的创建语法,使用SHOWINDEXFROMtb_student查看索引详情。

②效率实验:指导学生运行存储过程auto_insert生成10万行测试数据,执行SELECT*FROMtb_test1WHEREname='name543'(全表扫描)和tb_test2相同查询(索引扫描),记录执行时间并分析EXPLAIN结果(type:ALLvsref)。

3.课堂练习(30分钟)

-基础任务:为图书馆数据库创建"计算机专业学生借阅视图v_cs_borrow",要求包含学号、姓名、书名、借阅日期,需连接3张表并筛选major='计算机',完成后使用SELECT验证数据正确性。

-拓展任务:针对v_cs_borrow视图的查询需求,分析应在哪些基表字段上创建索引,并写出CREATEINDEX语句,通过EXPLAINSELECT*FROMv_cs_borrowWHEREstu_num='17130202'验证索引是否被使用。

4.总结与答疑(15分钟)

-知识梳理:用思维导图回顾视图(创建/更新/算法)和索引(分类/创建/优化)的核心知识点,强调可更新视图的"三不原则"(不聚合、不分组、不外联)和索引设计的"三适原则"(适场景、适字段、适数量)。

-答疑解惑:针对学生提出的"视图嵌套视图是否影响性能"(如v_borrowing基于v_record),通过执行计划分析(EXPLAINSELECT*FROMv_borrowing)说明优化器会合并视图逻辑,无需过度担忧性能问题。

课后作业与评价1.基础作业(40%)

-必做题:完成教材"思考与练习"中的视图创建题(创建包含图书ISBN、书名、作者、出版社的视图v_book_info,并添加WITHCHECKOPTION约束)和索引设计题(为借阅记录表tb_record的borrow_time字段创建普通索引,分析该索引对SELECT*FROMtb_recordWHEREborrow_time>'2023-01-01'的优化效果)。

-提交要求:SQL脚本文件(命名格式:学号_视图索引作业.sql),包含视图创建/修改/删除语句、索引创建语句及执行结果截图(如查询时间对比)。

2.综合项目(50%)

-项目名称:图书馆数据安全与性能优化

-任务描述:

①安全模块:为不同角色设计视图(管理员视图含所有字段,学生视图隐藏联系方式),验证通过视图插入数据时WITHCHECKOPTION的作用(如禁止插入非本学院学生)。

②性能模块:对图书表(tb_bibliography)的category字段(高频筛选)和pub_date字段(高频排序)创建合适索引,使用10万行测试数据对比优化前后的查询性能(提供EXPLAIN执行计划截图)。

-提交形式:项目报告(含需求分析、SQL代码、测试结果、优化总结)+演示视频(3分钟,展示视图使用和索引验证过程)。

3.评价标准

-基础作业:语法正确性(30%)、结果准确性(40%)、代码规范(30%,如命名规范、注释清晰)。

-综合项目:需求理解(20%)、方案合理性(30%,如视图设计符合最小权限原则、索引选择恰当)、性能优化效果(30%,查询时间降低比例)、文档完整性(20%)。

-过程性评价:课堂练习完成度(10%),通过小组互评和教师抽查记录。

总结与反思教学效果预期

通过"案例驱动+实验验证+项目实战"的教学模式,使85%以上的学生能独立完成视图的创建与更新,90%的学生能正确区分索引类型并根据场景选择合适的创建方式,75%的学生能综合运用视图和索引解决简单的数据库性能优化问题(如将多表查询时间从秒级降至毫秒级)。

2.教学改进方向

-难点突破:针对视图算法理解困难的问题,可增加"算法执行模拟"互动环节,让学生扮演TEMPTABLE和MERGE算法的执行流程,通过卡片排序直观展示临时表生成与查询合并的区别。

-技术融合:引入数据库可视化工具(如MySQLWorkbench的ER图和执行计划可视化),帮助学生更直观地理解视图的依赖关系和索引的使用情况。

-分层教学:对于基础薄弱学生,提供"视图操作步骤清单"(含语法模板和常见错误排查);对于学有余力学生,增设"物化视图"拓展内容,对比标准视图与物化视图的适用场景。

3.持续评估机制

-课后访谈:随机选取5-8名学生,了解其对"视图与索引权衡关系"的理解程度,重点关注是否认识到"过多索引会降低写入性能"。

-作业分析:统计作业中视图更新错误(如对含GROUPBY的视图执行UPDATE)和索引失效场景(如使用LIKE'%name')的出现频率,作为下次课的重点复习内容。

-实践反馈:收集学生在综合项目中提出的创新性解决方案(如使用覆盖索引避免回表查询),整理为优秀案例在后续教学中分享。

《新编数据库技术--MySQL》教案(学期名称)第15-16讲王若宾老师授课日期授课班级教案主题MySQL编程基础学时分配(线下课程,本单元学时数)4(混合式课程,线上/线下学时数)4主讲教师(本单元授课教师,可以多人)教学目标了解MySQL变量的分类(系统变量与自定义变量)及作用域差异。掌握常量的类型(字符串、数值、日期等)及使用规范。熟练运用算术、比较、逻辑和位运算符进行表达式计算。理解流程控制语句(IF、CASE、循环)的语法结构及执行逻辑。能够通过案例分析区分用户变量与局部变量的语法规则。培养使用存储过程实现数据逻辑处理的初步能力。教学重点变量类型区分:系统变量(GLOBAL/SESSION)与自定义变量(用户变量/局部变量)的作用域与语法差异。解决方案:通过案例7.1-7.3对比用户变量(@m)与局部变量(DECLAREmINT)的声明方式,结合表7.1制作对比表格,使用Workbench演示作用域范围。运算符优先级与结合性:特别是位运算符与逻辑运算符的混合运算规则。解决方案:以表7.8运算符优先级表为基础,设计复合表达式案例(如`10&15|3^2`),分步拆解执行过程并可视化二进制运算过程。3.流程控制语句嵌套使用:IF多分支结构与CASE语句的适用场景选择。解决方案:通过成绩评级案例(案例7.12-7.13)对比IF-ELSEIF与CASEWHEN的语法简洁性,引导学生根据判断条件类型选择最优结构。教学难点NULL值的特殊处理:涉及NULL参与比较运算(=vs<=>)的结果差异。解决方案:设计对比实验(案例7.5),执行`SELECTNULL=NULL,NULL<=>NULL`观察结果,结合三值逻辑理论解释NULL的传播特性。位运算的实际应用:理解按位与(&)、或(|)在权限控制中的使用场景。解决方案:模拟用户权限管理场景(如权限掩码0b1010代表读写权限),通过`权限&0b1000`判断是否拥有读权限。3.循环控制中的标签使用:ITERATE与LEAVE在多层循环中的跳转逻辑。解决方案:使用带标签的WHILE循环(案例7.14)实现嵌套循环,通过流程图标注ITERATE(跳过本次)与LEAVE(跳出循环)的执行路径。教学设计思路采用“概念-案例-实践”三位一体教学模式,以变量-常量-运算符-流程控制为主线。导入环节:通过电商订单状态判断场景(需使用IF语句和比较运算符)引出本章核心内容。知识讲解:-变量模块:先演示系统变量查询(SHOWGLOBALVARIABLES),再通过案例7.2-7.3对比用户变量与局部变量语法。-常量模块:结合表7.2转义字符表,设计字符串常量拼接实验(如'It\'satest')。-运算符模块:按优先级从高到低分组讲解,每组配合2个基础案例+1个综合案例。-流程控制:采用“伪代码→SQL实现→结果验证”三步法,如将成绩评级伪代码转换为存储过程。实践环节:设置“学生信息管理”项目,包含变量赋值、条件判断、循环统计三个任务层级。4.总结环节:使用思维导图梳理知识点关联,强调变量作用域、运算符优先级、流程控制嵌套三个易错点。教学过程导入(10分钟)-情境问题:电商系统需根据订单金额(>1000)和用户等级(VIP)决定折扣,如何用MySQL实现?-引出核心知识点:变量存储金额、比较运算符判断条件、IF语句执行分支。变量与常量(30分钟)-系统变量:-演示`SHOWSESSIONVARIABLESLIKE'autocommit'`,修改`SETSESSIONautocommit=0`观察事务提交变化。-案例7.1实操:查询全局字符集变量`SHOWGLOBALVARIABLESLIKE'%char%'`。-自定义变量:-学生分组练习:一组用用户变量`SET@sum=1+2`,二组用局部变量`DECLAREsumINTDEFAULT0`,对比报错情况。-重点强调局部变量必须在BEGIN/END中声明(案例7.3错误演示)。-常量:-字符串常量实验:执行`SELECT'MySQL\tProgramming'`观察制表符效果。-日期常量:对比`'2023-12-25'`与`STR_TO_DATE('25/12/2023','%d/%m/%Y')`的转换结果。运算符(40分钟)-算术运算符:案例7.4拓展,计算`(10+2)*3DIV4`与`10+2*3DIV4`结果差异,解释优先级。-比较运算符:-三值逻辑演示:`SELECT5>NULL,NULL=NULL,NULL<=>NULL`,结合真值表分析。-LIKE通配符:设计`SELECT'student'LIKE'st%nt'`与`REGEXP'^st.*nt$'`的等价转换。-位运算:-二进制可视化:将10(1010)与15(1111)的&运算拆解为位运算过程图。-实战案例:用`SELECT权限&0b1000AS读权限`判断权限是否开启。流程控制(45分钟)-IF语句:-案例7.12分步实现:创建存储过程ex_IF,逐步添加ELSEIF分支,调试边界值(如80分应判定为B)。-CASE语句:-对比改写:将IF版成绩评级(案例7.12)改写为CASE版(案例7.13),比较代码行数。-循环语句:-WHILE循环:实现1-100求和(案例7.14),添加LEAVEa跳出条件。-REPEAT循环:改写为`REPEAT...UNTILi>100`结构,对比先执行后判断特性。5.课堂实践(25分钟)-任务:创建存储过程calc_bonus,根据员工月薪(变量)和工龄(循环计数)计算年终奖:-若工龄>5年且月薪>8000,奖金=月薪*0.3;-否则按工龄每年增加月薪*0.05(最高15%)。-验收标准:输入月薪10000、工龄6年,输出3000;输入8000、工龄3年,输出1200。6.总结与作业布置(10分钟)-知识梳理:用思维导图回顾变量作用域→运算符优先级→流程控制嵌套的核心要点。-易错点强调:局部变量声明位置、NULL比较使用<=>、循环缺少退出条件导致死循环。课后作业与评价基础题(必做):-完成教材思考与练习1-5题,重点分析第2题全局变量赋值语法(SETGLOBALvsSET@global.)。-编写SQL片段:用CASE语句将订单状态码(0-5)转换为描述('待付款'、'已发货'等)。提高题(选做):-设计存储过程统计学生成绩分布,使用循环+条件判断计算各分数段(90+、80-89等)人数,结果存入临时表。-实现权限验证函数:输入用户权限掩码和目标权限码,返回是否有权限(使用位运算&)。3.评价方式:-代码规范性(变量命名、缩进):占比30%;-逻辑正确性(边界条件处理):占比40%;-性能优化(如减少循环次数):占比30%。-典型错误案例分析:展示学生作业中变量未初始化(DECLAREsumINT而非DEFAULT0)导致的NULL结果问题。总结与反思教学效果预期:-学生能独立区分@变量与DECLARE变量的使用场景;-掌握3种循环结构的适用场景(WHILE先判断/REPEAT至少执行一次);-理解NULL在逻辑运算中的传播规则。教学改进点:-位运算部分可增加可视化工具(如在线二进制转换器)辅助理解;-存储过程调试环节应强调DELIMITER的设置方法,避免语法错误。后续衔接:-本章内容为存储过程与函数(第8章)奠定基础,需预告自定义函数与存储过程的区别;-结合事务控制(后续章节)讲解变量的原子性操作场景。4.学生反馈收集:-通过课堂投票调查最难理解知识点(预设位运算、NULL处理、循环标签);-布置5分钟匿名反馈,收集对案例难度的建议。《新编数据库技术--MySQL》教案(学期名称)第17-18讲王若宾老师授课日期授课班级教案主题数据库复用与存储自动化学时分配(线下课程,本单元学时数)4(混合式课程,线上/线下学时数)4主讲教师(本单元授课教师,可以多人)教学目标理解存储过程和函数的定义及区别,能阐述封装复用思想在SQL层面的体现。

掌握存储过程的创建、调用、删除操作,能使用IN/OUT/INOUT参数设计带参存储过程。

掌握自定义函数的开发方法,能根据业务需求设计返回单值的计算逻辑。

理解游标作用,能使用DECLARE/FETCH/CLOSE语句实现结果集逐行处理。

掌握触发器的创建与使用,能设计BEFORE/AFTER类型触发器保障数据一致性。

能综合运用存储过程、函数、游标和触发器实现图书借阅管理系统核心功能。

教学重点1.存储过程与函数的区别

解决方案:通过案例8.2构建对比表,从返回值(函数必须RETURN)、参数模式(存储过程支持IN/OUT/INOUT)、调用方式(CALLvsSELECT)三个维度进行对比教学,结合图书馆借阅统计场景演示实际应用差异。

2.游标遍历结果集的实现

解决方案:基于案例8.7的借阅记录处理场景,采用四步教学法:声明游标(DECLAREdurationCURSOR)→打开游标(OPEN)→FETCHINTO循环→CLOSE释放资源,配合流程图展示指针移动过程。

3.触发器的事件触发机制

解决方案:以案例8.9的学生表操作为例,设计BeforeInsert(数据校验)和AfterUpdate(日志记录)双场景实验,通过MySQLWorkbench的触发器监控面板实时展示触发顺序。

教学难点1.存储过程参数模式的实际应用

解决方案:设计交互式实验,让学生通过修改案例8.3中的IN参数(图书索书号)、OUT参数(返回ISBN)、INOUT参数(更新借阅时间),观察变量值变化,配套提供参数传递流程图解。

2.游标与异常处理的结合

解决方案:扩展案例8.8,增加DECLARECONTINUEHANDLERFORNOTFOUND异常处理逻辑,通过调试模式展示当游标遍历至最后一条记录时的状态变化,对比有无异常处理的执行差异。

3.触发器与事务的协同

解决方案:基于案例8.10设计图书归还事务场景,在触发器中嵌入事务回滚逻辑,模拟并发归还场景下的数据一致性问题,通过错误日志分析事务隔离级别对触发器的影响。

教学设计思路采用"问题驱动-案例实操-系统集成"的三阶教学模式,以图书借阅管理系统为主线贯穿始终。

第一阶段(基础认知):通过图书馆日常操作(如图书状态查询)引出存储过程必要性,对比传统SQL与封装式代码的复用差异,建立模块化编程思想。

第二阶段(技能训练):按"存储过程与函数→游标→触发器"顺序展开,每个知识点均采用"语法速查+案例实施+错误分析"三步教学:先通过语法模板建立规范认知,再以案例8.1-8.11为蓝本进行实操,最后针对常见错误(如函数缺少DETERMINISTIC声明)进行专题讲解。

第三阶段(综合应用):设计"图书归还自动化处理"综合项目(参考问计AI综合题),要求学生组合使用带事务的存储过程、状态判断函数、批量处理游标及数据同步触发器,完成从需求分析到代码实现的全流程训练。

教学工具采用MySQLWorkbench+Navicat数据可视化,通过断点调试功能展示存储过程执行流程,配合思维导图梳理知识点关联(如第8章思维导图)。教学过程1.导入环节(15分钟)

展示图书馆手动处理借阅的业务流程图,提出三个问题:如何减少重复SQL编写?怎样自动计算借阅时长?如何保证图书状态与借阅记录一致?引出本章四大核心技术:存储过程(代码复用)、函数(计算逻辑)、游标(逐行处理)、触发器(事件响应)。

2.存储过程与函数(60分钟)

基础操作:演示案例8.1创建select_status存储过程,重点讲解DELIMITER分隔符切换(解决分号冲突)和IFEXISTS安全删除。通过案例8.2的select_barcode函数,对比存储过程(CALL调用)与函数(SELECT调用)的语法差异。

参数应用:以案例8.3的return_ISBN存储过程为例,设计参数传递实验:学生输入不同索书号(IN参数),观察OUT参数返回的ISBN变化,分析INOUT参数在return_time过程中如何同时接收和返回时间值。

3.游标(45分钟)

基础操作:基于案例8.7的借阅记录表(tb_record),演示DECLARE定义游标、OPEN打开、CLOSE关闭的基础流程,通过Workbench的执行计划面板展示游标执行效率。

高级应用:改造案例8.8实现借阅时长计算,增加REPEAT循环和FETCHINTO变量赋值,重点讲解CONTINUEHANDLER异常处理机制,对比添加前后的执行结果差异。

4.触发器(40分钟)

创建与使用:参考案例8.9创建inf_tri日志表,分别实现AFTERINSERT(记录新增)和BEFOREDELETE(数据备份)触发器,通过INSERT/DELETE测试数据观察inf_tri表变化。

综合实验:设计图书借阅触发场景:当插入借阅记录时,自动触发存储过程更新图书状态,要求学生分析案例8.10中BEFORE与AFTER触发器的执行顺序。

5.课堂小结与答疑(20分钟)

通过本章思维导图回顾知识点关联,现场解答学生在案例实操中遇到的共性问题(如函数创建1418错误、触发器权限问题),布置阶段性任务:完善案例8.11的触发器管理功能。

课后作业与评价1.基础作业(40%)

(1)完善案例8.6的CountBookBySID存储过程,增加借阅状态筛选参数(已归还/在借),要求使用IF条件判断。

(2)基于案例8.4创建函数get_book_status,输入索书号返回'可借阅'/'已借出'/'超期'状态,需包含DATEDIFF计算超期天数。

2.综合项目(60%)

设计图书借阅自动化系统,需实现:

(1)存储过程:borrow_book(INstu_num,INbarcode),包含库存检查、借阅记录插入、状态更新功能

(2)触发器:在借阅记录删除时自动更新图书状态并记录日志

(3)游标应用:批量生成超期未还提醒(遍历tb_record计算超期天数)

提交要求:包含完整SQL代码、执行截图、300字技术文档(说明各模块设计思路)

3.评价标准

(1)功能完整性(30%):是否实现所有需求功能

(2)代码规范性(20%):命名规范、异常处理、注释完整性

(3)性能优化(20%):是否避免全表扫描(如案例8.11索引设计)

(4)创新性(30%):额外功能(如借阅排行榜函数、权限控制触发器等)

总结与反思1.教学效果评估

通过课堂提问发现,学生对存储过程的参数传递和触发器的事件类型掌握较好,但在游标与事务结合场景中存在理解困难。后续需增加并发场景模拟训练,强化事务隔离级别对存储自动化的影响认知。

2.教学改进方向

(1)技术工具:引入MySQLDebugger插件,实时展示存储过程执行栈,解决学生对游标指针移动的抽象理解问题

(2)案例扩展:增加电商订单处理等跨领域案例,突破图书馆系统单一场景限制

(3)错误库建设:收集学生实操中出现的典型错误(如1418函数创建错误、1175安全更新模式),建立错误代码索引库

3.课程衔接

本章内容为后续数据库性能优化(索引与存储过程协同)和分布式数据库(触发器跨节点同步)奠定基础,下次课将通过性能测试工具对比传统SQL与存储过程的执行效率差异。

《新编数据库技术--MySQL》教案(学期名称)第19-20讲王若宾老师授课日期授课班级教案主题数据库事务学时分配(线下课程,本单元学时数)4(混合式课程,线上/线下学时数)4主讲教师(本单元授课教师,可以多人)教学目标理解事务的基本概念,能够准确描述事务的定义和作用。

掌握事务ACID特性的具体含义,能举例说明原子性、一致性、隔离性和持久性在实际场景中的体现。

熟练掌握事务的基本操作,包括开启事务、提交事务、回滚事务和设置保存点的SQL语法。

识别事务并发执行时可能出现的脏读、不可重复读和幻读问题,并理解其产生原因。

理解四种事务隔离级别(读未提交、读提交、可重复读、可串行化)的特点及适用场景。

能够根据实际需求选择合适的事务隔离级别,解决并发事务带来的数据一致性问题。

教学重点1.事务ACID特性:通过图书馆借阅图书的案例,详细讲解原子性(借阅操作要么全部成功,要么全部失败)、一致性(借阅前后图书总量不变)、隔离性(多个用户同时借阅互不干扰)、持久性(借阅成功后数据永久保存),配合实例加深理解。

2.事务基本操作(提交、回滚、保存点):以学生信息修改为例,演示STARTTRANSACTION开启事务、COMMIT提交事务、ROLLBACK回滚事务以及SAVEPOINT设置保存点的具体SQL语句及执行效果,让学生动手操作练习。

3.事务并发问题及隔离级别:结合学生获奖数修改、新增学生记录等案例,展示脏读、不可重复读、幻读的产生过程,通过对比表格清晰呈现不同隔离级别对并发问题的解决情况,重点讲解MySQL默认隔离级别可重复读的机制。

教学难点1.ACID特性中一致性与隔离性的区别:通过对比分析,强调一致

温馨提示

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

最新文档

评论

0/150

提交评论