版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第頁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
提交評論