《數據庫系統概論》課程指南
課程目標
知識:掌握數據庫系統的組成、關係數據庫理論、數據庫設計以及數據庫編程、查詢優化等方面的知識
能力:
具備分析問題並能進行數據庫設計的能力
熟練掌握SQL編程技術,具備數據庫編程的能力
能夠使用ODBC或者JDBC來進行數據庫應用程序的設計的能力
技能:熟練運用關係數據庫理論進行數據庫設計和數據庫編程的技能
教學理念
自我探索,深度引導,理論嚴密,訓練充分,注重學習過程
學習方法
本課程的學習方法是基於上述理念設計的:
自我探索:根據按周進度擬定的計劃,每位同學在上課之前必須認真預習內容,可以看書、觀看電子課件或視頻(先在網站http://abook.hep.com.cn/187532上註冊、登錄並綁定課程),並積極思考,提出問題並試圖回答。在學習的同時,有意識地提高自己的自學能力。
深度引導:在每週開始時,教師將圍繞指定的內容,通過提出啓發性的問題並進行必要分析的方式進行引導。教師講解的內容與相應的課堂幻燈片均是在重點引導的思想下設計的。
理論嚴密:基於數學的思維與推理是貫穿在整個課程的學習要求中的。
訓練充分:在課後指定了必須完成的課外作業。同學必須以積極的態度獨立完成規定的作業。不允許抄襲,切記!
注重學習過程:學習過程分三個階段:課前預習內容、課上聽課討論、課後複習。課前預習內容要求自行觀看預習內容視頻,帶着問題來聽課;課堂上會通過幾個簡單的問題檢查預習內容的情況,然後在課堂授課中會有互動的習題檢查聽課效果,期間還會有課堂討論;課後完成作業。每章結束後會有單元測驗,期中會有期中測驗,考試前會有模擬測驗,目的是注重學習的每個過程和環節,讓知識和能力的培養落實到平時的積累上,而不是考試前的臨時抱佛腳。最終成績的計算如下:
最終成績=平時成績*0.3+實驗成績*0.2+期末考試成績*0.5
平時成績=考勤成績*0.2+課堂表現成績*0.2+單元測驗成績*0.2+期中考試成績*0.4
學習周曆
第一週:(2月27日—3月5日)第一章 數據庫緒論
學習目的
理解數據庫系統的基本概念;
理解數據模型及數據模型的組成要素;
理解系統的三級模式結構;
理解數據庫系統的組成。
學習重點與難點:
重點:
概念模型的基本概念及其主要建模方法E-R方法
關係數據模型的相關概念
數據庫系統三級模式和兩層映像的體系結構
數據庫系統的邏輯獨立性和物理獨立性
預習內容:第1章 數據庫緒論課本、電子課件或者視頻
引導要點:數據模型是數據庫系統的核心和基礎
第二週(3月6日—3月12日)第2章 關係數據庫 2.1—2.3
學習目的
理解關係模型的概念;
掌握關係數據結構及形式化定義;
掌握關係的完整性約束的概念。
學習重點與難點
重點:
關係數據結構及其定義;
關係的三類完整性約束的概念。
預習內容:第2章 關係數據庫課本、電子課件或者視頻
引導要點:關係模型的三類完整性的重要性。
第三週(3月13日—3月19日)第2章 關係數據庫 2.4關係代數
第3章關係數據庫標準語言SQL 3.1--3.4
學習目的
掌握關係代數;
瞭解SQL 概述;
掌握SQL的數據定義;
掌握SQL的查詢;
學習重點與難點
重點:
關係代數中的各種運算(包括並、交、差、選擇、投影、連接、除、及廣義笛卡爾積等);
DDL語言中的表創建語句;
要熟練正確的使用SQL完成對數據庫的查詢。
難點:
用SQL語言正確完成複雜查詢,掌握SQL語言強大的查詢功能。
預習內容:
第2章和第3章相應章節的課本、電子課件或者視頻
引導要點:SQL的數據查詢功能是最豐富的。
第四周(3月20日—3月26日)第3章關係數據庫標準語言SQL 3.5--3.7
學習目的
掌握SQL的數據更新;
掌握SQL的視圖。
學習重點與難點
重點:
要熟練正確的使用SQL完成對數據庫的插入、刪除、更新操作
理解索引和視圖。
預習內容: 第3章相應章節的課本、電子課件或者視頻
引導要點:SQL的視圖的作用以及與基本表的區別。
第五週(3月27日—4月2日)實驗一:數據查詢語句
實驗二:數據更新及視圖
實驗目的
用SQL語句進行單表的簡單查詢和涉及多表的連接查詢和帶聚合運算的查詢;
用SQL語句向各表中添加數據,並做適當的修改與更新;創建視圖,對視圖進行查詢。
第六週(4月3日—4月9日)第4章 數據庫的安全性
第5章 數據庫的完整性
學習目的
瞭解計算機安全性的概念;
理解統計數據庫安全性;
掌握數據庫安全性控制;
掌握數據庫的完整性概念,瞭解數據庫的完整性約束條件;
掌握數據庫的完整性概念與數據庫的安全性概念的區別和聯繫;
掌握數據庫完整性控制機制;
掌握RDBMS的數據庫完整性實現機制,包括實體完整性、參照完整性和用戶自己定義的完整性約束的定義機制、完整性檢查機制和違背完整性約束條件時RDBMS採取的預防措施;
瞭解觸發器的概念和在數據庫完整性檢查中的應用。
學習重點與難點
重點:
存取控制技術、視圖技術和審計技術,使用SQL中的GRANT 語句和 REVOKE 語句來實現數據庫的實現自主存取控制功能;
存取控制機制中用戶權限的授權與回收,合法權限檢查;
數據庫角色的概念和定義用GRANT 語句給角色授權,使用SQL中CREATE ROLE語句創建角色;
掌握視圖機制在數據庫安全保護中的作用;
掌握RDBMS完整性控制機制的三個方面,即完整性約束條件的定義、完整性約束條件的檢查和違約反應。
難點:
強制存取控制(MAC)機制中確定主體能否存取客體的存取規則
RDBMS如何實現完整性的策略,即當操作違反實體完整性、參照完整性和用戶定義的完整性約束條件時,RDBMS如何進行處理,以確保數據的正確與有效。其中比較複雜的是參照完整性的實現機制。
預習內容: 第4章和第5章相應章節的課本、電子課件或者視頻
引導要點: 數據庫的安全性和完整性的重要性。
第七週(4月10日—4月16日) 第6章 關係數據庫理論 6.1--6.2
學習目的
瞭解規範化問題的提出原因;
掌握關係數據庫的規範化理論,包括關係數據庫邏輯設計可能出現的問題
掌握數據依賴的基本概念(包括函數依賴、平凡函數依賴、非平凡的函數依賴、部分函數依賴、完全函數依賴、傳遞函數依賴的概念;碼、候選碼、外碼的概念和定義;多值依賴的概念),範式的概念、1NF、2NF、3NF、BCNF、4NF的概念和判定方法;
掌握數據依賴的公理系統;數據依賴的Armstrong公理系統。
學習重點與難點
重點:
理解模式的插入異常和刪除異常。
理解規範化理論的重要意義。牢固掌握數據依賴的基本概念,範式的概念,從1NF到4NF的定義,規範化的含義和作用。
理解各個級別範式中存在的問題(插入異常、刪除異常、數據冗餘)和解決方法。
難點:
能夠根據應用語義,完整地寫出關係模式的數據依賴集合,並能根據數據依賴分析某一個關係模式屬於第幾範式。各個級別範式的關係及其證明。
預習內容: 第6章相應章節的課本、電子課件或者視頻
引導要點:規範化理論爲數據庫設計提供了理論的指南和工具
第八週(4月17日—4月23日) 第7章 數據庫設計
學習目的
瞭解數據庫設計的概念、數據庫設計方法和技術;
掌握數據庫的概念結構設計;
掌握數據庫的邏輯結構設計;
瞭解數據庫的物理設計;
瞭解數據庫的實施和維護。
學習重點與難點
重點:
掌握數據庫設計步驟和數據庫設計過程中的各級模式設計方法。特別是數據庫概念結構的設計和邏輯結構的設計,這是數據庫設計過程中最重要的兩個環節。
牢固掌握用E-R圖來表示概念模型的方法,掌握E-R圖的設計;
牢固掌握E-R圖向關係模型的轉換的方法。
難點:
E-R圖的設計和數據模型的優化,包括對現實世界進行抽象的能力,提取實體、屬性、實體型之間的聯繫,正確劃分實體與屬性的能力。
真正的難點是理論與實際的結合,應通過諸多實例進行實踐。
預習內容: 第7章 的課本、電子課件或者視頻
引導要點:在實際項目中設計出符合應用需求的數據庫模式和數據庫應用系統。
第九周(4月24日—4月30日) 第8章 數據庫編程
學習目的
瞭解嵌入式SQL的概念;
理解存儲過程的概念,存儲過程的編程;
掌握ODBC編程;
掌握JDBC編程。
學習重點與難點
重點:
掌握嵌入SQL中游標的概念和使用方法;
掌握PL/SQL和存儲過程的基本概念,基本結構,語句語法和用法。
ODBC和JDBC編程。
難點:
理論聯繫實際,能夠在實際安裝的RDBMS上通過編程的方式開發應用程序,完成對數據庫的各種操作。
能夠使用ODBC或JDBC來進行數據庫應用程序的設計,使設計的應用系統可移植性好,並且能同時訪問不同的數據庫,共享數據資源。
預習內容: 第8章 的課本、電子課件或者視頻
引導要點:使用ODBC或JDBC設計數據庫應用程序。
第十週(5月1日—5月7日)實驗三:數據庫的安全性和完整性
實驗四:編寫存儲過程訪問數據庫
實驗目的:
學習自主控制的授權及回收;
學習完整性的建立,以及違反實體完整性的結果;
使用存儲過程進行數據庫應用程序的設計。
第十一週(5月8日—5月14日) 第9章 關係查詢處理和查詢優化
第10章 數據庫恢復技術
學習目的
瞭解關係數據庫查詢優化的重要性;
掌握RDBMS的查詢優化方法,能夠把SQL語句轉換成查詢樹;
瞭解物理優化的方法;
掌握事務的基本概念;
瞭解數據庫恢復的概念;
掌握日誌文件的使用,系統故障、介質故障的恢復方法;
瞭解常用的恢復的實現技術及恢復策略;
瞭解具有檢查點的恢復技術;
瞭解數據庫鏡像。
學習重點與難點
重點:
對查詢樹進行代數優化,轉換成優化的查詢樹;
牢固掌握事務的基本概念和事務的ACID性質。
難點:
能運用本章學習的查詢優化知識,對於比較複雜的查詢,尤其是涉及連接和嵌套的查詢,寫出適合RDBMS自動優化的SQL語句。
正確瞭解所用的DBMS產品提供的恢復技術和恢復方法,能夠根據這些機制正確制定系統的恢復策略。
預習內容:第9章和第10章課本、電子課件或者視頻
引導要點:事務的ACID特性保證了數據的一致性。
第十二週(5月15日—5月21日) 第11章 併發控制
學習目的
理解併發控制的概念;
掌握封鎖(Locking)的概念及其類型;
掌握封鎖協議;
掌握活鎖和死鎖;
掌握併發調度的可串行性;
掌握兩段鎖協議;
瞭解封鎖的粒度。
學習重點與難點
重點:
掌握併發操作產生的數據不一致性(丟失修改、不可重複讀、讀“髒數據”)的確切含義。
封鎖協議與數據一致性的關係;
併發調度的可串行性概念。
難點:
兩段鎖協議與串行性的關係、與死鎖的關係。
具有意向鎖的多粒度封鎖方法的封鎖過程。
預習內容:第11章 併發控制課本、電子課件或者視頻
引導要點: 併發控制機制的作用是協調併發用戶的併發操作以保證併發事務的隔離性和一致性,保證數據庫的一致性。
課程大作業
設計基於數據庫的信息管理系統,如:圖書管理系統、教務管理系統、學生管理系統等等。
目的:
理解數據庫的基本概念和數據庫設計的方法以及數據庫編程的語言,使
之由抽象到具體;
通過課程設計加強學生的實驗手段與實踐技能,培養學生獨立分析問題、
解決問題、應用知識的能力和團隊合作精神、創新精神。
真正培養學生的實踐動手能力,全面提高學生的綜合素質。
要求:
明確課題的設計需求(需求分析,討論決定);
概念模型設計,畫出總體和局部E-R圖;
邏輯模型設計,將E-R圖轉換成數據庫的關係模式;
在SQL SERVER中建立數據庫,寫出建立數據庫的SQL語句;
建立和管理基本表;寫出相關的SQL語句;
建立和管理視圖;寫出相關的SQL語句;
建立和管理索引;寫出相關的SQL語句;
給出部分測試數據,根據應用需求設計若干條用戶可能進行的訪問數據
庫要求,給出具體操作要求和相應的SQL語句(多樣化)或者存儲過程;
分析設計應用系統功能需求,進行應用系統開發(開發工具自選)