版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第页XX大学
教案
202X~202X学年第1学期课程名称数据库系统教学承担单位数理学院系部(教研室)统计与信算系授课班级24信算任课教师郑冬松职称副教授XX大学教务处制二○二年九月
表SEQ表\*ARABIC11第八单元触发器的应用授课时间202X年X月X日授课周次第11周授课方式(请打√)理论课R讨论课□实验课□习题课□其他□课时安排2授课题目(教学章、节或主题):第八单元触发器的应用教学目的、要求:了解触发器的概念和分类;掌握创建、执行、修改和删除触发器的方法;掌握INSERTED表和DELETE表的使用;掌握DDL触发器的创建和使用;掌握触发器的禁用和启动。教学重点及难点:触发器的创建和触发时机(重点);使用触发器实现数据完整性(难点)。教学基本内容和过程(可增加页)1、课堂导入上节知识回顾(10分钟):先简要回顾一下存储过程的创建和执行,然后通过超星拍照互动检验学生对存储过程的掌握情况,互动题如下:创建一个能够向SC表中插入学生学号,课程号,成绩的存储过程。createprocproc_indata@ssnochar(5),@ccnochar(6),@ggradeintasinsertintoscvalues(@ssno,@ccno,@ggrade)执行如下:Execproc_indata‘95003’,’1’,77根据学生答题情况,适当讲解。完成后,引出本章节内容(3分钟):第7章我们学习了存储过程,存储过程的执行,需要我们在查询窗口使用exec存储过程名称,来调用指定的存储过程,也就是说一般的存储过程需要我们喊他,他才做事。但有些时候我们希望某些存储过程能够自动执行,例如,在销售管理过程中产品售出,有了新的销售订单,产品存库存以和已销售量都应该相应的发生改变,而且是自动改变。这时候就要用到一类新的存储过程--触发器。触发器是一类特殊的存储过程,它能够对系统的dml事件做出响应,自动实现一些功能,我们通常用它来实现数据的完整性。2、教学内容与时间安排触发器概述。(5分钟)特殊的存储过程,自动执行,用于维护数据完整性。存储过程的分类DML触发器、DDL触发器超星互动,选择题:触发器是一种特殊类型的存储过程,被捆绑到(A)或视图上。数据表索引数据库函数本题互动目的是抓住学生的注意力。DML触发器的定义和创建(25分钟)什么是DML触发器(针对数据表的插入、更新、删除而引发的触发器)创建触发器的Transact-sql语句CREATETRIGGER触发器名称ON{表名|视图名}{FOR|AFTER|INSTEADOF}{[INSERT][,][DELETE][,][UPDATE]}ASSQL语句注意:for和after同义是后触发(引发触发器的事件发生后执行),insteadof是替代触发器特别提出只在触发器中才有的,inserted和deleted表,以及他们使用的场合。此时,及时通过超星选择题互动,加强学生记忆。通过例子演示讲解如何编写出发器代码,以及如何引发触发器执行例1.限制职工的基本工资必须在相应工作的最低工资和最高工资之间。CREATETriggertri_SaON职工表AFTERINSERT,UPDATEASIFEXISTS(SELECT*FROM职工表aJOIN工作表bONa.工作号=b.工作号WHERE基本工资NOTBETWEEN最低工资AND最高工资)ROLLBACK--撤消已执行的操作本例注意解释说明为什么在触发器里可以撤销刚刚的DML操作--事务机制。例2.限制职工表中“浮动工资”列的取值必须在“基本工资”的0~30%范围内。CREATETriggertri_FsaON职工表forINSERT,UPDATEASIFEXISTS(SELECT*FROMINSERTEDWHERE浮动工资NOTBETWEEN0AND基本工资*0.3)ROLLBACK触发:insertinto职工表(职工号,工作号,基本工资,浮动工资)values('05','01',1000,400)本例使用了触发器特有的inserted表,注意说明此表的作用。例3.限制不能将不及格学生的成绩改为及格,如果违反约束,给出提示信息:“不能将不及格成绩改为及格”。CREATETriggertri_ChagradeONSCforUPDATEASIFEXISTS(SELECT*FROMINSERTEDaJOINDELETEDbONa.Sno=b.SnoANDa.Cno=b.CnoWHEREb.Grade<60ANDa.Grade>=60)BEGINROLLBACKPRINT'不能将不及格成绩改为及格!'END此例,以启发学生思考为主,可以使用伪代码,再逐步用规范代码替代,培养学生思维以及向规范代码转换的能力。同时,进一步加强对2个临时表应用场景的体会。前触发型触发器定义(前触发型触发器与后触发型触发器的区别),超星选择互动--增强记忆例4.用前触发器实现例1限制职工基本工资必须在相应工作的最低工资和最高工资之间。CREATETriggertri_SaON职工表INSTEADOFINSERTASIFNOTEXISTS(SELECT*FROMinsertedaJOIN工作表bONa.工作号=b.工作号WHERE基本工资NOTBETWEEN最低工资AND最高工资)INSERTINTO职工表SELECT*FROMINSERTED可以和截胡类比。DDL触发器的应用场景和创建(15分钟)防止对数据库架构进行某些更改以响应数据库架构中的更改记录数据库架构中的更改或事件创建代码:CREATETRIGGER触发器名ON{ALLSERVER|DATABASE}[WITHENCRYPTION]{FOR|AFTER}{DDL事件}[,...n]ASsql_statement举例:例5:创建一个触发器,用于禁止用户删除学生选课数据库中的表。createtriggerndrop_tabondatabasefordrop_tableasprint'不要随意删除表,还需要用的!'rollback注意和普通触发器的区别,一个是ondatabase一个是on表名。管理触发器(5分钟)触发器的查看(图形化操作)触发器的修改(Altertrigger)触发器的删除(droptrigger触发器名)触发器的应用(15分钟)应用1、创建一个触发器,当添加一个新学生的时候,默认在sc表中插入这个学生选修1号课程,成绩为空。createtriggercha_sconstudentforinsertasdeclare@ccchar(5)select@cc=snofrominsertedinsertintoscvalues(@cc,'1',null)应用2、创建一个触发器,当删除学生基本信息时,同时删除学生的选课信息。createtriggerdell_sconstudentfordeleteasdeletefromscwheresnoin(selectsnofromdeleted)应用3、创建一个触发器,当删除学生基本信息时,如果学生有选课,则提示不能删除,没有,则直接删除。Createtriggerdell_stuOnstudentFordeleteAsIfexists(select*fromdeleteddjoinscond.sno=sc.sno)BeginPrint‘不能删除有选课的学生!’rollbackend前2个应用,老师引导,师生一起完成,或老师适当引导,要求学生弹幕,最后一个应用,老师给于一定提示,要求学生拍照或弹幕。3、课程案例。穿插在课程之中,仍然以学生选课数据库中创建各种触发器为主。4、单元小结通过本单元的学习,了解触发器的定义和作用,会使用代码创建dml触发器和ddl触发器,了解这些触发器的触发时机,会利用触发器自动维护数据的完整性。5、教学方法操作演示、理论讲授、多媒体课件、超星互动6、课后作业布置第8章课后习题
表SEQ表\*ARABIC12第九单元数据库安全管理授课时间202X年X月X日授课周次第12周授课方式(请打√)理论课R讨论课□实验课□习题课□其他□课时安排2授课题目(教学章、节或主题):第九单元数据库安全管理教学目的、要求:掌握SQLServer2022的安全机制;掌握登录名、用户名、角色之间的联系和区别;掌握管理服务器安全;掌握管理数据库安全;掌握管理数据对象安全。教学重点及难点:利用登录名、用户名、角色确保服务器、数据库和数据对象的安全性。教学基本内容和过程(可增加页)1、课堂导入上节知识回顾(10分钟):通过2个习题回顾上节触发器的内容。建立一个触发器,使得不能删除信息系的学生信息。创建一个统计表,自动统计student表中的每个系的人数。第1题在超星中进行拍照互动,第2题启发思维,逐步引导学生解决问题。参考答案:createtriggerppp--不能删除信息系onstudentfordeleteasifexists(select*fromdeletedwheresdept='信息系')Rollback先创建tongji表:Createtabletongji(系别char(20),人数int)再创建触发器:Createtriggertri_tjOnstudentForinsert,update,deleteAsIf(selectcount(*)fromtongji)>0--若统计表中有数据DeletefromtongjiInsertintotongji--重新统计数据并插入到统计表中Selectsdept,count(*)fromstudentGroupbysdept第1题根据学生答题情况,适当讲解。完成后,引出本章节内容(3分钟):前面第7章第8章,我们学习了存储过程和触发器,存储过程可以提高数据库的执行效率,常使用存储过程,还可以提高数据库的安全性,触发器可以自动维护数据库的完整性,保障数据库中的数据的正确性和现实业务需求保持一致。今天我们学习数据库的安全管理,了解数据库系统是通过何种方式或手段实现数据的安全。2、教学内容与时间安排安全控制概述。(5分钟)安全控制模型。SQLserver的安全控制机制。第一个过程,确认用户是否是数据库服务器的合法账户(验证连接权-登录名);第二个过程,确认用户是否是要访问的数据库的合法用户(验证数据库访问权-数据库用户);第三过程,确认用户是否具有合适的操作权限(验证操作权-权限)。可以通过图示帮助学生理解安全控制的3个过程。登录名(15分钟)身份认证模式(两种:windows和混合)登录名的建立和管理(windows登录名的创建、SQL登录名的创建)首先图形化界面操作,特别是windows登录名,步骤比较繁琐,操作演示较为复杂,主要是如何切换windows用户;SQL登录名设置前一定要先设置身份认证模式为混合模式。用T-SQL语句建立登录名CREATELOGINlogin_name{WITH<option_list1>|FROM<sources>}<sources>::=WINDOWS[WITH<windows_options>[,...]]<option_list1>::=PASSWORD='password'[,<option_list2>[,...]]举例:例1.创建SQLServer身份验证的登录帐户。登录名为:SQL_User2,密码为:abc。CREATELOGINSQL_User2WITHPASSWORD='abc'例2.创建Windows身份验证的登录帐户。从Windows域帐户创建[bachelor007/adong]登录帐户。--adong账号要先创建起来-通过控制面板或者此电脑-右键-管理-本地用户和组-用户,然后使用代码或图形化操作进行,代码如下:CREATELOGIN[bachelor007\adong]FROMWINDOWS例3.创建SQLServer身份验证的登录帐户。登录名为:SQL_User3,密码为:123。要求该登录帐户首次连接服务器时必须更改密码。CREATELOGINSQL_User3WITHPASSWORD='123'MUST_CHANGE,check_expiration=on删除登录名安全性-登录名-右键-删除语句:DROPLOGINSQL_User2数据库用户(10分钟)建立数据库用户2种方式:展开数据库-安全性-右键-新建用户代码:CREATEUSERuser_name[{{FOR|FROM}{LOGINlogin_name}]例5.让SQL_User2登录帐户成为学生选课数据库中的用户,并且用户名同登录名。CREATEUSERSQL_User2forloginsql_user2注意:数据库用户和登录名最好一致,非必须。登录名和数据库用户完整代码示例:例6.首先创建名为Duang且具有密码的SQLServer身份验证的服务器登录名,然后在学生选课数据库中创建与此登录帐户对应的数据库用户。CREATELOGINDuangWITHPASSWORD=‘123';CREATEUSERDuangFORLOGINDuang;注意概念的区分:服务器登录名与数据库用户是两个完全不同的概念。具有登录名的用户可以登录到SQLServer实例上,而且只局限在实例上进行操作。数据库用户是登录名以什么样的身份在该数据库中进行操作,是登录名在具体数据库中的映射。删除数据库用户代码:DROPUSERuser_name管理权限(35分钟)权限种类及用户分类对象权限(是对表、视图等对象中数据的操作权)Alter\Delete\Insert\Update\Select\Excute\References语句权限(创建对象的权限)CRAETETABLE:创建表的权限。CREATEVIEW:创建视图的权限。CREATEPROCEDURE:创建存储过程的权限。CREATEFUNCTION:创建函数的权限。隐含权限(指由SQLServer预定义的服务器角色、数据库角色、数据库拥有者和数据库对象拥有者所具有的权限)用户分类:系统管理员\数据库对象拥有者\普通用户权限的管理授予(grant)收回(revoke)拒绝(deny)权限管理的图形化操作演示(有些繁琐,注意操作位置和顺序)代码操作(必须掌握)-对象权限例1.为用户user1授予Student表的查询权。GRANTSELECTONStudentTOuser1例2.为用户user1授予SC表的查询权和插入权。GRANTSELECT,INSERTONSCTOuser1例3.收回用户user1对Student表的查询权。REVOKESELECTONStudentFROMuser1例4.拒绝user1用户具有SC表的更改权。DENYUPDATEONSCTOuser1这页PPT超星互动,题型为选择题,针对前面所讲基础知识。综合演练:创建一个登录名,ppp,可以使用该登录名,访问学生选课数据库,并且可以对student表进行查询和更新操作。建议学生写代码一气呵成代码操作(必须掌握)-语句权限例5.授予user1具有创建表的权限。GRANTCREATETABLETOuser1withgrantoption例6.授予u1和u2具有创建表和视图的权限。GRANTCREATETABLE,CREATEVIEWTOu1,u2例7.收回授予user1创建表的权限。REVOKECREATETABLEFROMuser1例8.拒绝user1创建视图的权限。DENYCREATEVIEWTOuser1角色(15分钟)角色的定义(具有相同权限的一组用户)建立角色(createroleabc)对角色授权(和对用户授权一样)为角色添加用户例9.将Windows登录名bachelor007\Win_User1添加到Software角色中。EXECsp_addrolemember'Software',‘BACHELOR007\mmmm'例10.将SQL_User2添加到Admin角色中(假设该角色已存在)。EXECsp_addrolemember'Admin','SQL_User2'删除角色中的用户例11.删除Admin角色中的SQL_User2成员。EXECsp_droprolemember'Admin','SQL_User2'补充:execsp_helprotectNULL,'user1'--查看用户拥有的权限,包括对象权限和语句权限execsp_helpuser'user1'--查询用户属于那个角色3、课程案例。在学生选课数据库中进行数据库用户和角色以及权限的设置和管理。4、单元小结通过本单元的学习,了解数据库的安全机制,特别是SQLServer安全三过程,区分数据库用户和登录名,以及明白2者之间的联系,学会从建立登录名到具有一定权限操作数据库的全过程,掌握角色的使用,能够通过角色一次性给多个用户授权或者回收权限,学习SQLSERVER通过图形化方式进行权限管理的方法,重点掌握核心的DCL语句。5、教学方法操作演示、理论讲授、多媒体课件、超星互动6、课后作业布置第9章课后习题
表SEQ表\*ARABIC13第十单元事务管理授课时间202X年X月X日授课周次第13周授课方式(请打√)理论课R讨论课□实验课□习题课□其他□课时安排2授课题目(教学章、节或主题):第十单元事务管理教学目的、要求:理解事务的基本概念,明确事务作为数据库操作逻辑单元的核心作用;掌握事务的ACID属性(原子性、一致性、隔离性、持久性)及其实践意义;熟练使用SQLServer2022事务控制语句(BEGIN/COMMIT/ROLLBACK/SAVETRANSACTION);了解事务隔离级别的概念,掌握SQLServer2022支持的6种隔离级别及其适用场景;识别并发事务中的典型问题(丢失更新、脏读、不可重复读、幻读),掌握并发控制方法(锁机制等);能够通过案例实现事务管理,解决实际业务中的数据一致性问题。教学重点及难点:教学重点:-事务的ACID属性及其实例解析;-事务控制语句(BEGIN/COMMIT/ROLLBACK/SAVETRANSACTION)的使用;-6种隔离级别的对比(防止的问题、并发性能、适用场景);-并发事务问题(脏读、不可重复读、幻读等)的识别与解决;教学难点:-隔离级别的实际应用选择(平衡一致性与并发性能);-死锁的成因、检测及避免方法;-事务粒度的合理控制(避免过大或过小)。教学基本内容和过程(可增加页)1、课堂导入上节知识回顾(10分钟):建立sql登录名ads,并建立与之对应的数据库用户,使该用户登录后能访问学生选课数据库,并能查询和更新student表中数据。参考答案:Createloginads--创建登录名adsWithpassword=’123’;Createuserads--在学生选课数据库上创建数据库用户ads并和登录名对应Forloginads;Grantselect,updateonstudenttoads--给数据库用户ads授予权限根据学生答题情况,适当讲解,注意说明登录名和数据库用户的区别,建议学生可以把登录名和数据库用户弄成一样的。完成后,引出本章节内容(3分钟):前面第9章,我们学习了数据库的安全管理,安全管理也是为了保护数据,让数据免受意外破坏,或者是在意外破坏下能快速恢复。数据库在多任务并发的情况下也可能会出现问题,数据库的事务管理机制,就是尽可能避免在多任务并发的情况下数据出现问题的措施。本单元将学习SQLServer2022中事务的基础原理、控制方法及并发场景下的处理策略。教学内容与时间安排第一课时:事务基础与控制(40分钟)事务的基本概念(5分钟):定义(逻辑单元、“全成或全不执行”)、核心目的(数据一致性),结合银行转账案例说明。事务的ACID属性(8分钟):通过表格解析原子性、一致性、隔离性、持久性的含义及示例(如转账回滚体现原子性,订单与库存联动体现一致性)。SQLServer事务控制语句(10分钟):讲解BEGIN/COMMIT/ROLLBACK/SAVETRANSACTION的语法、作用及使用场景(提交成功操作、回滚错误操作、保存点部分回滚)。基础案例演示(15分钟):银行转账事务:代码实现“检查余额→扣款→存款→提交/回滚”逻辑,演示余额不足时的回滚效果;多表操作事务:用TRY...CATCH实现“插入用户+创建订单”的原子性,模拟插入失败时的回滚。第一课时小结(2分钟):强调ACID属性的核心地位及控制语句的使用逻辑。第二课时:隔离级别与并发控制(40分钟)隔离级别的概念(8分钟):定义(并发下事务隔离程度)、作用(平衡一致性与性能),介绍SQLServer2022支持的6种隔离级别。并发事务的问题(9分钟):图解丢失更新、脏读、不可重复读、幻读的场景(如多用户同时下单导致的幻读)。并发控制方法(10分钟):讲解锁机制(共享锁、排他锁、更新锁、意向锁)及隔离级别设置语句(SETTRANSACTIONISOLATIONLEVEL);结合死锁案例(两事务互相等锁),说明检测(SQLServer每5秒自动检测)及避免方法(统一资源访问顺序、缩短锁持有时间)。实践案例演示(10分钟):快照隔离级别的无锁读取,演示“启用快照→会话1读快照→会话2修改提交→会话1仍读快照”的效果。第二课时小结(3分钟):总结隔离级别与并发控制的核心逻辑,强调实践中粒度控制与性能优化。3、课程案例。以“银行转账系统”“电商订单管理”为核心案例:案例1:通过银行转账(单表多操作)演示事务控制语句与ACID属性;案例2:通过电商订单(多表关联)演示TRY...CATCH的错误处理;案例3:通过多用户并发下单场景,演示隔离级别对并发问题的解决效果。4、单元小结通过本单元学习,需掌握:事务的核心是ACID属性,通过BEGIN/COMMIT/ROLLBACK保证操作“全成或全不执行”;隔离级别是并发控制的关键,需根据业务场景选择(如金融交易用可串行化,电商用快照隔离);实践中需控制事务粒度、优化锁使用、避免死锁,平衡数据一致性与系统性能。5、教学方法操作演示、理论讲授、多媒体课件、超星互动6、课后作业布置第10章课后习题
表SEQ表\*ARABIC14第十一单元数据库的日常维护授课时间202X年X月X日授课周次第14周授课方式(请打√)理论课R讨论课□实验课□习题课□其他□课时安排2授课题目(教学章、节或主题):第十一单元数据库的日常维护教学目的、要求:了解数据库的常见故障类型;掌握SQLServer2022数据库的各种备份和恢复方法;掌握数据库各种格式文件的导入和导出操作。教学重点及难点:备份的种类和方法;数据的导入、导出。教学基本内容和过程(可增加页)1、课堂导入上节知识回顾(5分钟):提问:事务的ACID属性是?如何避免死锁?完成后,引出本章节内容(3分钟):前面第10章,我们学习了数据库的事务管理,事务管理也是为了保护数据,让数据并发场景下能正常访问,安全管理也好,事务管理也好,都是避免数据出现意外进而影响用户正常使用的措施,但即使这样也难以保证数据绝对不出问题,保证数据在遭受意外破坏的情况下快速恢复才是根本。到底怎样才能实现数据在出现意外后快速恢复呢?在本章我们将学习数据的备份和恢复以及数据的导入导出等数据库的日常维护工作,掌握这些数据库的日常维护工作,我们才能把数据库管理做得更好,减少数据库或数据遭受意外破坏给我们带来的损失。2、教学内容与时间安排备份数据库。(35分钟)备份内容及备份时间主要是用户数据库,宜采用周期备份的形式备份设备备份设备含义:永久备份设备和临时备份设备(也就是临时指定备份到磁盘的某处,某个文件)创建备份设备:SSMS创建备份设备备份设备-右击鼠标-新建备份设备用T-SQL创建备份设备sp_addumpdevice[@devtype=]'device_type',[@logicalname=]'logical_name',[@physicalname=]‘physical_name’注意各参数的意思,可参看例题:举例:建立一个名为bmm的磁盘备份设备,其物理存储位置及文件名为D:\dump\bmm.bak。EXECsp_addumpdevice'disk','bmm','D:\dump\bmm.bak'释义:创建一个磁盘备份设备bmm,对应磁盘上的文件是d盘dump文件夹下面的bmm.bak。SQLServer支持的备份类型完整备份完整备份也就是全备份,备份某一时刻(备份结束时刻)的完整数据库,完整备份是最重要的备份,是其他备份的基础和前提。差异备份备份从上次完整备份之后改变的内容(比完整备份快)事务日志备份(注意恢复模式的设置)备份从上次备份之后的日志记录。(最快)备份策略完整备份完整备份+日志备份完整备份+差异备份+日志备份三种不同的策略适合不同的数据库不同的用户需求。实现备份用SSMS工具实现任务-备份-备份数据库用T-SQL备份数据库BACKUPDATABASE数据库名TO{<备份设备名>}|{DISK|TAPE}={'物理备份文件名'}[WITH[DIFFERENTIAL][[,]{INIT|NOINIT}]]DIFFERENTIAL:进行差异备份;INIT:本次备份数据库将重写备份设备;NOINIT:本次备份数据库将追加到备份设备上。用T-SQL备份日志BACKUPLOG数据库名TO{<备份设备名>}|{DISK|TAPE}={'物理备份文件名'}[WITH[{INIT|NOINIT}][{[,]NO_LOG|TRUNCATE_ONLY|NO_TRUNCATE}]]NO_LOG和TRUNCATE_ONLY:备份日志后截断不活动的日志。NO_TRUNCATE:备份日志后不截断不活动日志。例1.对“学生选课”数据库进行一次完整备份,备份到bpp备份设备上(假设此备份设备已创建好),并覆盖掉该备份设备上已有的内容。BACKUPDATABASE学生选课TObppWITHINIT注:init就是覆盖已有内容的意思,若不写,默认是不覆盖(追加)。例2.对“学生选课”数据库进行一次差异备份,也备份到bpp备份设备上,并保留该备份设备上已有的内容。BACKUPDATABASE学生选课TObppWITHDIFFERENTIAL,NOINIT注:第二次为差异备份,备份完整备份后发生的数据变化和活动。例3.对“学生选课”进行一次事务日志备份,直接备份到D:\LogData文件夹下(假设此文件夹已存在)下的学生选课_log.bak文件上。BACKUPLOG学生选课TODISK='D:\LogData\学生选课_log.bak'注:日志备份,备份上一次备份后的日志记录,本例指定磁盘上的文件为临时备份设备。恢复数据库(25分钟)恢复数据库有两种情况数据库还存在,但其中的数据或其他内容出现了损坏,即在服务器上还存在该数据库;数据库已经完全被损坏或者被删除,即在服务器中已经不存在该数据库了。恢复的顺序恢复最近的完整备份;恢复最近的差异备份(如果有);恢复自差异备份之后的所有日志备份(按备份的先后顺序)。恢复的实现SSMS图形化实现数据库上点右键-任务-还原-数据库注:还原前断开数据库用户的连接,若要多次还原,记得将数据库置于还原状态SQL代码实现RESTOREDATABASE数据库名FROM备份设备名[WITHFILE=文件号 [,]NORECOVERY [,]RECOVERY]FILE=文件号:标识要还原的备份;NORECOVERY:表明对数据库的恢复操作还没有完成,可以继续恢复后续的备份。RECOVERY:默认选项,表明对数据库的恢复操作已经完成,恢复后的数据库是可用的。用T-SQL恢复日志RESTORELOG数据库名FROM备份设备名[WITHFILE=文件号 [,]NORECOVERY [,]RECOVERY]例1.假设已对学生选课数据库进行了完整备份,并备份到MyBK_1备份设备上,假设此备份设备只含有对学生选课数据库的完整备份。则恢复学生选课数据库的语句为: RESTOREDATABASE学生选课FROMMyBK_1说明:备份设备只有完整备份,恢复简单,无需额外参数。例2.假设完整备份、差异备份、事务日志备份都备份到备份设备ggg上了,则恢复过程如下:首先恢复完整备份RESTOREDATABASE学生选课FROMgggWITHFILE=1,NORECOVERY然后恢复差异备份RESTOREDATABASE学生选课FROMgggWITHFILE=2,NORECOVERY最后恢复日志备份RESTORELOG学生选课FROMggg进一步体会,完整备份是恢复的基线。SQL代码备份与恢复(完整案例代码)sp_addumpdevice'disk','bpp','d:\data\bpp.bak'backupdatabase学生选课tobppwithinitdeletefrom学生选课.dbo.studentwhereSno='95022'backupdatabase学生选课tobppwithdifferential,noinitbackuplog学生选课tobppdeletefrom学生选课.dbo.studentwhereSno='95021'restoredatabase学生选课frombppwithfile=1,norecovery,replaceALTERDATABASE[学生选课]SETOFFLINEWITHROLLBACKIMMEDIATErestorelog学生选课frombppwithfile=4,recovery数据导入和导出。(10分钟)【例1】将学生选课数据库的表导出为EXCEL文件。【例2】创建new_student数据库,将在上例导出的student.xls文件导入到new_student数据库。【例3】补充:将学生选课数据库所有对象生成脚本。任务-生成脚本-选择对象-高级设置-保存到文件或者查询窗口或者剪贴板例1、2直接演示,书本也有参考;例3生成脚本的导出方法,特别注意如何导出数据的生成脚本,见下图:3、课程案例。以学生选课数据库为例,进行数据的备份、恢复、导入和导出。4、单元小结通过本单元的学习,了解数据库的日常维护工作,了解备份的种类和策略,体会针对不同的数据库需求使用不同的备份策略;掌握数据库恢复常用的方法,包括图形化恢复方式和代码方式;掌握数据库操作中常见的数据导入、导出问题的处理方式。5、教学方法操作演示、理论讲授、多媒体课件、超星互动6、课后作业布置第11章课后习题
表SEQ表\*ARABIC15第十二单元数据库应用系统开发基础授课时间202X年X月X日授课周次第15周授课方式(请打√)理论课R讨论课□实验课□习题课□其他□课时安排2授课题目(教学章、节或主题):第十二单元数据库应用系统开发基础教学目的、要求:了解pymssql和pyodbc库的特点、安装方法及适用场景;掌握Python连接SQLServer数据库的配置与实现步骤,包括异常处理;熟练使用Python执行SQL查询、插入、更新、删除操作,理解事务提交的重要性;了解学生上机签到系统的开发流程,初步掌握简单数据库应用系统的设计思路。教学重点及难点:教学重点:Python连接SQLServer的步骤;使用Python执行查询、增删改操作的方法;教学难点:中文编码处理(如latin1与gbk转换);事务提交机制(mit());学生上机签到系统中存储过程调用与前后端交互逻辑。教学基本内容和过程(可增加页)1、课堂导入上节知识回顾(5分钟):根据上节课程内容实际完成情况,老师演示或者要求学生演示数据导出(场景:机房且可以屏幕广播)。导出学生选课数据库到student.xls文件。导出学生选课数据库的脚本。完成后,引出本章节内容(3分钟):通过前面章节的学习,我们了解了数据库的基本概念,掌握了sqlserver数据库管理系统的使用,并能够较熟悉的使用sql语句进行各项数据库和数据操作,包括建库、建表,对数据的增删改查,写存储过程、触发器等,学了这些数据库技术到底有什么用处呢?或者说,在具体的程序设计过程中如何使用这些数据库技术呢?本章,我们将带领大家学习本章:数据库应用系统开发基础。2、教学内容与时间安排Python数据库连接库(20分钟)①介绍pymssql库:说明其专为SQLServer设计,支持高级T-SQL特性,演示安装命令(pipinstallpymssql)及导入方法(importpymssql);②介绍pyodbc库:强调其依赖ODBC驱动,支持多数据库(SQLServer、MySQL等)及中文编码,演示安装(pipinstallpyodbc)及导入;③对比两者差异:结合文档示例说明适用场景(如签到系统用pyodbc处理中文)。Python连接SQLServer数据库(20分钟)①连接步骤讲解:配置信息(server、user、password等)、建立连接(pymssql.connect())、游标创建、异常处理(try-except);②演示案例:运行例12.1代码,讲解配置管理器中TCP/IP协议及1433端口设置的必要性,展示“连接成功”与错误提示的对比效果。数据库基本操作(25分钟)①查询操作:演示例12.2,讲解cursor.execute()、fetchall()用法,重点说明中文处理(encode('latin1').decode('gbk'));②增删改操作:分别演示例12.3(插入)、例12.4(更新)、例12.5(删除),强调“增删改后必须调用mit()提交事务,否则操作无效”;③学生实操:让学生模仿代码,对“学生选课”数据库执行简单查询与插入,教师巡视指导。应用系统开发示例(15分钟)①简述学生上机签到系统需求:班级选择、学生签到、记录展示;②核心开发要点:Flask框架搭建、pyodbc连接数据库、存储过程(showsno、Addqd)调用、前端JS动态更新学生列表;③演示关键代码:展示get_students(获取学生信息)、add_sign(签到逻辑)函数,说明存储过程输出参数的处理。3、课程案例。以“学生选课”数据库为例,综合演示:用pymssql连接数据库并查询学生信息;插入一条新学生记录后,通过查询验证插入结果;展示签到系统中“选择班级-学生签到-查看记录”的完整流程。4、单元小结通过本单元的学习,了解两种python连接库的特点、连接数据库的步骤、增删改查操作及事务提交、签到系统开发核心逻辑;强调实践中需注意中文编码和异常处理。5、教学方法操作演示、理论讲授、多媒体课件、超星互动6、课后作业布置第12章课后习题
表SEQ表\*ARABIC16第十三单元关系规范化与数据库设计授课时间202X年X月2X日授课周次第16周授课方式(请打√)理论课R讨论课□实验课□习题课□其他□课时安排2授课题目(教学章、节或主题):第十三单元关系规范化与数据库设计教学目的、要求:掌握基本的函数依赖理论与算法基础;掌握1、2、3范式的定义及转换方法;了解数据库设计的方法和步骤;掌握使用E-R图的方法及E-R图向关系模式转换的技巧。教学重点及难点:闭包,最小函数依赖集的计算;范式定义及转换;E-R图及E-R图向关系模式的转换。教学基本内容和过程(可增加页)1、课堂导入上节知识回顾(5分钟)可以让学生弹幕提高参与度:python如何连接sqlserver数据库?两个库各有什么特点适合什么场景?完成后,引出本章节内容(3分钟):通过前一章节的学习,我们掌握了数据库应用系统设计的基础,知道了如何用py
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专项应急演练实施操作细则
- 膜结构安装施工方案
- 阀门常见故障的预防及排除方法
- 高新区项目质量标准化管理专项方案
- 棉纺织企业车工日常检查安全操作规程
- 安全管理工程质量验收管理制度
- 2026年【安全生产监管人员】考试试卷及答案
- 存在职业病危害企业安全管理员运行操作安全操作规程
- 驾驶证满分学习考试精-选全国通-用题目和答案
- 农机驾驶员(高级)联合收割机跨区作业2025冲刺精-选卷
- 2026年哈尔滨城市发展投资集团面向社会招聘53人笔试模拟试题及答案详解
- 2026交管12123学法减分题库(含完整答案解析全国)
- 2025-2030商业航天产业发展政策环境与市场增长空间报告
- 乙醇(酒精)化学品安全技术说明书(MSDS-SDS)
- 初中九年级物理上册期中考试题及答案【完整版】
- 企业年度评优与表彰管理办法
- 电控配电用电缆桥架(JBT 10216-2025)
- 高处作业人员安全教育培训
- 输液安全警示教育
- 学院学生宿舍管理服务项目方案投标文件(技术方案)
- 《含能材料与应用》课件
评论
0/150
提交评论