第一篇:數(shù)據(jù)庫原理-教案
第一章 緒論
內(nèi)容概述
闡述數(shù)據(jù)庫的基本概念,介紹數(shù)據(jù)管理技術(shù)的進展情況、數(shù)據(jù)庫技術(shù)產(chǎn)生和發(fā)展的背景,數(shù)據(jù)模型的基本概念、組成要素和主要的數(shù)據(jù)模型,概念模型的基本概念及ER方法,數(shù)據(jù)庫系統(tǒng)的3級模式結(jié)構(gòu)以及數(shù)據(jù)庫系統(tǒng)的組成。
本章目標(biāo)
本章講解的數(shù)據(jù)庫基本概念和基本知識是學(xué)習(xí)后續(xù)各個章節(jié)的基礎(chǔ)。學(xué)習(xí)本章的目的在于了解基本知識,掌握基本概念,為以后的學(xué)習(xí)打好扎實的基礎(chǔ)。
重點和難點
重點:牢固掌握概念模型的基本概念及其主要建模方法ER方法;掌握關(guān)系數(shù)據(jù)模型的相關(guān)概念、數(shù)據(jù)庫系統(tǒng)三級模式和兩層映像的體系結(jié)構(gòu)、數(shù)據(jù)庫系統(tǒng)的邏輯獨立性和物理獨立性等;對于如何通過ER方法描述現(xiàn)實世界的概念模型要做到能夠舉一反三的程度。
難點:本章的難點是需要掌握數(shù)據(jù)庫領(lǐng)域大量的基本概念。有些概念一開始接觸會感到比較抽象,但不要緊,隨著學(xué)習(xí)的逐漸推進,在后續(xù)章節(jié)中,這些抽象的概念會逐漸變得清晰具體起來。此外,數(shù)據(jù)模型及數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)也是本章的難點。
第二章 關(guān)系數(shù)據(jù)庫
內(nèi)容概述
系統(tǒng)地講解關(guān)系數(shù)據(jù)庫的重要概念,并著重對關(guān)系模型進行講解。關(guān)系模型包括關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合、以及關(guān)系完整性約束三個組成部分。講解關(guān)系代數(shù)、元組關(guān)系演算和域關(guān)系演算。從具體到抽象,先講解實際的語言ALPHA(元組關(guān)系演算語言)和QBE(域關(guān)系演算語言),然后講解抽象的元組關(guān)系演算。本章目標(biāo)
掌握關(guān)系模型的三個組成部分及各部分所包括的主要內(nèi)容;牢固掌握關(guān)系數(shù)據(jù)結(jié)構(gòu)及其定義;關(guān)系的三類完整性約束的概念。為學(xué)習(xí)后面關(guān)系數(shù)據(jù)庫系統(tǒng)打好基礎(chǔ)。
重點和難點
重點:掌握關(guān)系數(shù)據(jù)結(jié)構(gòu)及其定義;關(guān)系的三類完整性約束的概念。需要舉一反三的是:關(guān)系代數(shù)(包括抽象的語言及具體的語言);關(guān)系代數(shù)中的各種運算(包括并、交、差、選擇、投影、連接、除、及廣義笛卡爾積等)、元組關(guān)系演算語言ALPHA及域關(guān)系演算語言QBE等,能夠使用這些語言完成各種數(shù)據(jù)操縱。
難點:由于關(guān)系代數(shù)較為抽象,因此在學(xué)習(xí)的過程中一定要結(jié)合具體的實例進行學(xué)習(xí)。同時,要注意把握由具體語言到抽象語言的原則,即通過對具體語言如ALPHA和QBE的學(xué)習(xí)過渡到對抽象的關(guān)系演算的把握。
實驗內(nèi)容
實驗1 學(xué)習(xí)安裝某一個數(shù)據(jù)庫管理系統(tǒng),通過對某個商用數(shù)據(jù)庫管理系統(tǒng)的安裝使用,初步了解DBMS的工作環(huán)境和系統(tǒng)構(gòu)架,熟悉對DBMS的安裝,為后面的實驗做準(zhǔn)備。
第三章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL
內(nèi)容概述
詳細(xì)介紹關(guān)系數(shù)據(jù)庫語言SQL。SQL是關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。它內(nèi)容十分豐富,功能非常強大。因為關(guān)系數(shù)據(jù)庫系統(tǒng)的主要功能是通過SQL來實現(xiàn)的,因此講解SQL的同時要進一步講述關(guān)系數(shù)據(jù)庫的基本概念。
本章目標(biāo) 牢固掌握SQL,達到舉一反三的掌握SQL的功能。同時通過實踐,體會面向過程的語言和SQL的區(qū)別和優(yōu)點。體會關(guān)系數(shù)據(jù)庫系統(tǒng)為數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)提供良好環(huán)境,減輕用戶負(fù)擔(dān),提高用戶生產(chǎn)率的原因。
重點和難點
重點:關(guān)系模型和關(guān)系數(shù)據(jù)庫是《數(shù)據(jù)庫系統(tǒng)概論》課程的重點,第3章又是重點中的重點。要熟練正確的使用SQL完成對數(shù)據(jù)庫的查詢、插入、刪除、更新操作。在使用具體的SQL時,能有意識地和關(guān)系代數(shù)、關(guān)系演算等語言進行比較,了解他們各自的特點。
難點:用SQL語言正確完成復(fù)雜查詢,掌握SQL語言強大的查詢功能。因此在學(xué)習(xí)過程中一定要多練習(xí),要在安裝好的數(shù)據(jù)庫系統(tǒng)上進行實際操作,檢查你的答案,你查詢的結(jié)果是否正確。只有通過大量練習(xí)才能真正達到舉一反三的熟練程度。
實驗內(nèi)容
實驗2 在安裝好的數(shù)據(jù)庫系統(tǒng)下創(chuàng)建數(shù)據(jù)庫、創(chuàng)建表、創(chuàng)建索引;使用SQL對數(shù)據(jù)庫進行各類查詢操作(單表查詢,連接查詢,嵌套查詢,集合查詢)和更新操作(插入數(shù)據(jù),修改數(shù)據(jù),刪除數(shù)據(jù))。練習(xí)數(shù)據(jù)定義操作,包括基本表的創(chuàng)建、修改及刪除;索引的創(chuàng)建和刪除;視圖的創(chuàng)建和刪除。對視圖的查詢,更新(注意更新的條件)。完成書后作業(yè)的SQL練習(xí)
第四章 數(shù)據(jù)庫安全性
內(nèi)容概述
介紹計算機以及信息安全技術(shù)標(biāo)準(zhǔn)的進展。詳細(xì)講解數(shù)據(jù)庫安全性問題和實現(xiàn)技術(shù)。RDBMS實現(xiàn)數(shù)據(jù)庫系統(tǒng)安全性的技術(shù)和方法有多種,本章講解最重要的存取控制技術(shù)、視圖技術(shù)和審計技術(shù)。講解存取控制機制中用戶權(quán)限的授權(quán)與回收,合法權(quán)限檢查。數(shù)據(jù)庫角色的概念和定義等。本章目標(biāo)
掌握什么是數(shù)據(jù)庫的安全性問題,牢固掌握數(shù)據(jù)庫管理系統(tǒng)實現(xiàn)數(shù)據(jù)庫安全性控制的常用方法和技術(shù)。
重點和難點
重點:使用SQL中的GRANT 語句和 REVOKE 語句來實現(xiàn)數(shù)據(jù)庫的實現(xiàn)自主存取控制功能。使用SQL中CREATE ROLE語句創(chuàng)建角色,用GRANT 語句給角色授權(quán)。掌握視圖機制在數(shù)據(jù)庫安全保護中的作用。
難點:強制存取控制(MAC)機制中確定主體能否存取客體的存取規(guī)則,同學(xué)們要理解并掌握存取規(guī)則為什么要這樣規(guī)定。
實驗內(nèi)容
實驗3 在安裝好的數(shù)據(jù)庫系統(tǒng)下對已經(jīng)建立的數(shù)據(jù)庫創(chuàng)建用戶、角色、視圖;使用SQL對數(shù)據(jù)進行安全性控制,包括:授權(quán)和權(quán)力回收。操作完成后看看已授權(quán)的用戶是否真正具有授予的數(shù)據(jù)操作的權(quán)力了;權(quán)力收回操作之后的用戶是否確實喪失了收回的數(shù)據(jù)操作的權(quán)力。本實驗可以分小組完成。例如,用戶A登錄、建表、建視圖等,授權(quán)一些數(shù)據(jù)操作權(quán)限用戶B,然后用戶B登錄,檢查是否具有授予的數(shù)據(jù)操作權(quán)限。也可以一個人建2個用戶來完成。
第五章 數(shù)據(jù)庫完整性
內(nèi)容概述
詳細(xì)講解數(shù)據(jù)庫的完整性概念。包括,什么是數(shù)據(jù)庫的完整性,數(shù)據(jù)庫的完整性概念與數(shù)據(jù)庫的安全性概念的區(qū)別和聯(lián)系,RDBMS的數(shù)據(jù)庫完整性實現(xiàn)機制,包括實體完整性、參照完整性和用戶自己定義的完整性約束的定義機制、完整性檢查機制和違背完整性約束條件時RDBMS采取的預(yù)防措施。觸發(fā)器的概念和在數(shù)據(jù)庫完整性檢查中的應(yīng)用。本章目標(biāo)
掌握什么是數(shù)據(jù)庫的完整性,掌握用SQL語言定義關(guān)系模式的完整性約束條件。
重點和難點
重點:牢固掌握DBMS完整性控制機制的三個方面,即完整性約束條件的定義、完整性約束條件的檢查和違約反應(yīng)。需要舉一反三的:用SQL語言定義關(guān)系模式的完整性約束條件。包括定義每個模式的主碼;定義參照完整性;定義與應(yīng)用有關(guān)的完整性。
難點:RDBMS如何實現(xiàn)完整性的策略,即當(dāng)操作違反實體完整性、參照完整性和用戶定義的完整性約束條件時,RDBMS如何進行處理,以確保數(shù)據(jù)的正確與有效。其中比較復(fù)雜的是參照完整性的實現(xiàn)機制。
實驗內(nèi)容
實驗4 在安裝好的數(shù)據(jù)庫系統(tǒng)下對已經(jīng)建立的數(shù)據(jù)庫使用SQL對數(shù)據(jù)進行完整性控制(三類完整性、CHECK短語、CONSTRAIN子句、觸發(fā)器)。進行違約操作,用實驗證實,當(dāng)操作違反了完整性約束條件時,系統(tǒng)是如何進行違約處理的
第六章 關(guān)系數(shù)據(jù)理論
內(nèi)容概述
詳細(xì)講解關(guān)系數(shù)據(jù)理論,主要是關(guān)系數(shù)據(jù)庫規(guī)范化理論。包括關(guān)系數(shù)據(jù)庫邏輯設(shè)計可能出現(xiàn)的問題,數(shù)據(jù)依賴的基本概念(包括,函數(shù)依賴、平凡函數(shù)依賴、非平凡的函數(shù)依賴、部分函數(shù)依賴、完全函數(shù)依賴、傳遞函數(shù)依賴的概念;碼、候選碼、外碼的概念;多值依賴的概念),范式的概念、1NF、2NF、3NF、BCNF、4NF的概念和判定方法。數(shù)據(jù)依賴的Armstrong公理系統(tǒng)。本章內(nèi)容分為基本要求部分(《概論》6.1-6.3)和高級部分(《概論》6.4)。前者是計算機大學(xué)本科學(xué)生應(yīng)該掌握的內(nèi)容。后者是研究生應(yīng)該學(xué)習(xí)掌握的內(nèi)容。本章目標(biāo)
關(guān)系數(shù)據(jù)理論既是關(guān)系數(shù)據(jù)庫的重要理論基礎(chǔ)也是數(shù)據(jù)庫邏輯設(shè)計的理論指南和有力工具。要掌握規(guī)范化理論和優(yōu)化數(shù)據(jù)庫模式設(shè)計的方法。
重點和難點
重點:了解什么是一個“不好”的數(shù)據(jù)庫模式。什么是模式的插入異常和刪除異常。規(guī)范化理論的重要意義。牢固掌握數(shù)據(jù)依賴的基本概念,范式的概念,從1NF到4NF的定義,規(guī)范化的含義和作用。需要舉一反三的:四個范式的理解與應(yīng)用,各個級別范式中存在的問題(插入異常、刪除異常、數(shù)據(jù)冗余)和解決方法。
難點:能夠根據(jù)應(yīng)用語義,完整地寫出關(guān)系模式的數(shù)據(jù)依賴集合,并能根據(jù)數(shù)據(jù)依賴分析某一個關(guān)系模式屬于第幾范式。各個級別范式的關(guān)系及其證明。
本章內(nèi)容的理論性較強。要通過具體例子和習(xí)題練習(xí)理解和掌握理論知識
第七章 數(shù)據(jù)庫設(shè)計
內(nèi)容概述
講解數(shù)據(jù)庫設(shè)計方法和技術(shù)。數(shù)據(jù)庫設(shè)計的特點,數(shù)據(jù)庫設(shè)計的基本步驟,數(shù)據(jù)庫設(shè)計過程中數(shù)據(jù)字典的內(nèi)容,數(shù)據(jù)庫設(shè)計各個階段的設(shè)計目標(biāo)、具體設(shè)計內(nèi)容、設(shè)計描述、設(shè)計方法等。本章內(nèi)容的實踐性較強,教師可以少講,讓學(xué)生多讀書并進行實踐。
本章目標(biāo)
了解數(shù)據(jù)庫設(shè)計的重要性和數(shù)據(jù)庫設(shè)計在信息系統(tǒng)開發(fā)和建設(shè)中的核心地位。掌握數(shù)據(jù)庫設(shè)計方法和步驟,使學(xué)生具有設(shè)計數(shù)據(jù)庫模式以及開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng)的基本能力,能在實際工作中運用這些知識、技術(shù)和方法,設(shè)計符合應(yīng)用需求的數(shù)據(jù)庫及其應(yīng)用系統(tǒng)。重點和難點
重點:掌握數(shù)據(jù)庫設(shè)計步驟和數(shù)據(jù)庫設(shè)計過程中的各級模式設(shè)計方法。特別是數(shù)據(jù)庫概念結(jié)構(gòu)的設(shè)計和邏輯結(jié)構(gòu)的設(shè)計,這是數(shù)據(jù)庫設(shè)計過程中最重要的兩個環(huán)節(jié)。牢固掌握用E-R圖來表示概念模型的方法,掌握E-R圖的設(shè)計,E-R圖向關(guān)系模型的轉(zhuǎn)換。
難點: 技術(shù)上的難點是E-R圖的設(shè)計和數(shù)據(jù)模型的優(yōu)化,包括對現(xiàn)實世界進行抽象的能力,提取實體、屬性、實體型之間的聯(lián)系,正確劃分實體與屬性的能力。如何把第6章關(guān)系數(shù)據(jù)理論與本章結(jié)合,用關(guān)系數(shù)據(jù)理論指導(dǎo)數(shù)據(jù)庫的邏輯設(shè)計。真正的難點是理論與實際的結(jié)合。同學(xué)們一般缺乏實際經(jīng)驗,缺乏對實際問題解決的能力。特別是缺乏應(yīng)用領(lǐng)域的知識。而數(shù)據(jù)庫設(shè)計需要設(shè)計人員對應(yīng)用環(huán)境、專業(yè)業(yè)務(wù)有具體深入的了解,這樣才能設(shè)計出符合具體領(lǐng)域要求的數(shù)據(jù)庫及其應(yīng)用系統(tǒng)。要在完成本章習(xí)題的基礎(chǔ)上認(rèn)真完成大作業(yè)。體會這些要點,從而真正掌握本章講解的知識、方法和技術(shù)。
課程大作業(yè) 《數(shù)據(jù)庫設(shè)計與應(yīng)用開發(fā)》
在某個RDBMS產(chǎn)品上,選擇合適的應(yīng)用系統(tǒng)開發(fā)工具為某個部門或單位開發(fā)一個數(shù)據(jù)庫應(yīng)用系統(tǒng)。通過實踐,掌握本章介紹的數(shù)據(jù)庫設(shè)計方法,同時培養(yǎng)團隊合作精神。要求5~6位同學(xué)組成一個開發(fā)小組,每位同學(xué)承擔(dān)不同角色(例如:項目管理員、DBA、系統(tǒng)分析員、系統(tǒng)設(shè)計員、系統(tǒng)開發(fā)員、系統(tǒng)測試員)。具體要求:
* 給出數(shù)據(jù)庫設(shè)計各個階段的詳細(xì)設(shè)計報告;
* 寫出系統(tǒng)的主要功能和使用說明;
* 提交運行的系統(tǒng);
* 寫出收獲和體會,包括已解決和尚未解決的問題,進一步完善的設(shè)想與建議;
每個小組進行60分鐘的報告和答辯,講解設(shè)計方案,演示系統(tǒng)運行,匯報分工與合作情況
第八章 數(shù)據(jù)庫編程 內(nèi)容概述
在數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)中常常使用編程方法對數(shù)據(jù)庫進行操縱。本章講解這些編程技術(shù)涉及的概念和使用的方法。主要包括嵌入式SQL、游標(biāo)的概念;SQL的過程化擴展PL/SQL和存儲過程;使用ODBC設(shè)計開發(fā)數(shù)據(jù)庫應(yīng)用程序的方法。
因為JDBC編程、OLEDB編程與ODBC編程的思路基本相同,限于篇幅本章就不講解JDBC和OLEDB編程,學(xué)生可以通過上機實驗了解這些技術(shù)。本章內(nèi)容的實踐性較強,教師可以少講,讓學(xué)生多讀書并進行實踐。
本章目標(biāo)
掌握開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng)的各種編程方法,具有正確選擇不同的方法和技術(shù)開發(fā)應(yīng)用程序的能力。
重點和難點
重點:了解SQL編程技術(shù)可以有效克服SQL實現(xiàn)復(fù)雜應(yīng)用方面的不足,提高應(yīng)用系統(tǒng)和RDBMS間的互操作性。掌握嵌入SQL中游標(biāo)的概念和使用方法;掌握PL/SQL和存儲過程的基本概念,基本結(jié)構(gòu),語句語法和用法。了解使用ODBC開發(fā)應(yīng)用系統(tǒng)的體系結(jié)構(gòu),掌握ODBC API和ODBC的應(yīng)用程序的工作流程。
難點:理論聯(lián)系實際,能夠在實際安裝的RDBMS上通過編程的方式開發(fā)應(yīng)用程序,完成對數(shù)據(jù)庫的各種操作。能夠使用ODBC來進行數(shù)據(jù)庫應(yīng)用程序的設(shè)計,使設(shè)計的應(yīng)用系統(tǒng)可移植性好,并且能同時訪問不同的數(shù)據(jù)庫,共享數(shù)據(jù)資源。
實驗內(nèi)容
《數(shù)據(jù)庫系統(tǒng)概論》第4版給出了4個實驗,教師可以根據(jù)情況選擇其中部分實驗讓學(xué)生完成。具體實驗要求請參見教科書。實驗
5通過嵌入式SQL訪問數(shù)據(jù)庫 實驗6
使用PL/SQL編寫存儲過程訪問數(shù)據(jù)庫 實驗7
通過ODBC訪問數(shù)據(jù)庫
實驗8
通過JDBC訪問數(shù)據(jù)庫(注:因為JDBC編程與ODBC編程的思路基本相同,限于篇幅本章沒有講解JDBC,同學(xué)可以自學(xué),也可以參考中國人民大學(xué) 數(shù)據(jù)庫系統(tǒng)概論精品課程教學(xué)網(wǎng)站:http://004km.cn/ 中的課程實驗)。
第九章 關(guān)系查詢處理和查詢優(yōu)化
內(nèi)容概述
通過實例講解關(guān)系數(shù)據(jù)庫查詢優(yōu)化的重要性和可能性。講解RDBMS的查詢處理步驟,即查詢分析、查詢檢查、查詢優(yōu)化和查詢執(zhí)行;查詢優(yōu)化的基本概念,查詢優(yōu)化包括代數(shù)優(yōu)化和物理優(yōu)化;代數(shù)優(yōu)化是指關(guān)系代數(shù)表達式的優(yōu)化;物理優(yōu)化則是指存取路徑和底層操作算法的選擇,所以先講解實現(xiàn)查詢操作的主要算法,主要是選擇操作和連接操作的主要算法思想,然后講解關(guān)系代數(shù)表達式等價變換規(guī)則,關(guān)系代數(shù)表達式的優(yōu)化,物理優(yōu)化方法(基于啟發(fā)式規(guī)則的存取路徑選擇優(yōu)化,操作算法的執(zhí)行代價估算方法,基于代價的優(yōu)化方法)。
本章目標(biāo)
本章并不要求學(xué)生掌握RDBMS查詢處理和查詢優(yōu)化的內(nèi)部實現(xiàn)技術(shù),因此沒有詳細(xì)講解技術(shù)細(xì)節(jié)。
本章的目的是希望學(xué)生了解RDBMS查詢處理的基本步驟,查詢優(yōu)化的概念、基本方法和技術(shù),為數(shù)據(jù)庫應(yīng)用開發(fā)中利用查詢優(yōu)化技術(shù)提高查詢效率和系統(tǒng)性能打下基礎(chǔ)。
重點和難點
重點:了解關(guān)系數(shù)據(jù)庫查詢優(yōu)化的重要性。掌握查詢處理各個步驟的主要功能。能夠把SQL語句轉(zhuǎn)換成查詢樹,對查詢樹進行代數(shù)優(yōu)化,轉(zhuǎn)換成優(yōu)化的查詢樹。掌握物理優(yōu)化的基本方法。難點:能運用本章學(xué)習(xí)的查詢優(yōu)化知識,對于比較復(fù)雜的查詢,尤其是涉及連接和嵌套的查詢,寫出適合RDBMS自動優(yōu)化的SQL語句。對于RDBMS不能優(yōu)化的查詢需要重寫查詢語句,進行手工調(diào)整以優(yōu)化性能。不要把優(yōu)化的任務(wù)全部放在RDBMS上。
實驗內(nèi)容
實驗9 查詢優(yōu)化 通過本章實驗,了解你安裝使用的RDBMS的查詢優(yōu)化方法和查詢計劃表示,能夠利用它分析查詢語句的實際執(zhí)行方案和查詢代價,進而通過建立索引或者修改SQL語句來降低查詢代價,達到優(yōu)化系統(tǒng)性能的目標(biāo)。
具體實驗內(nèi)容: 對單表查詢
例如以下的查詢(可以自己給出查詢語句)select * from student
where age>20 ; 2.連接查詢,普通的兩表連接查詢或多表連接查詢
3.嵌套查詢,自己寫幾個帶有子查詢的例子,主要考慮帶有IN和EXISTS謂詞的子查詢,包括相關(guān)子查詢和不相關(guān)子查詢。也可以使用《數(shù)據(jù)庫系統(tǒng)概論》書上列舉的例子。
對以上各種查詢,通過建立索引或者刪除索引(單表查詢語句)、修改連接順序(連接查詢語句)、重寫SQL語句即查詢重寫(嵌套查詢);比較不同查詢計劃執(zhí)行的性能差異,達到降低查詢代價,優(yōu)化性能的目標(biāo)。
第十章 數(shù)據(jù)庫恢復(fù)技術(shù)
內(nèi)容概述
事務(wù)處理技術(shù)主要包括數(shù)據(jù)庫恢復(fù)技術(shù)和并發(fā)控制技術(shù)。因為事務(wù)是數(shù)據(jù)庫恢復(fù)和并發(fā)控制的基本單位,所以首先講解事務(wù)的基本概念和事務(wù)的ACID性質(zhì)。
本章講解數(shù)據(jù)庫恢復(fù)技術(shù)。包括數(shù)據(jù)庫運行中可能發(fā)生的故障類型,數(shù)據(jù)庫恢復(fù)中最經(jīng)常使用的技術(shù)—數(shù)據(jù)轉(zhuǎn)儲和登錄日志文件。講解日志文件的內(nèi)容及作用,登記日志文件所要遵循的原則,針對事務(wù)故障、系統(tǒng)故障和介質(zhì)故障等不同故障的恢復(fù)策略和恢復(fù)方法。具有檢查點的恢復(fù)技術(shù)。數(shù)據(jù)庫鏡像功能。
本章目標(biāo)
掌握事務(wù)的基本概念和事務(wù)的ACID性質(zhì)。了解數(shù)據(jù)庫恢復(fù)技術(shù)的重要性,針對不同的故障類型,掌握恢復(fù)數(shù)據(jù)庫的策略和方法。
重點和難點
重點:牢固掌握事務(wù)的基本概念和事務(wù)的ACID性質(zhì)。要掌握數(shù)據(jù)庫故障恢復(fù)的策略和方法。數(shù)據(jù)庫恢復(fù)的基本原理是數(shù)據(jù)備份,它貌似簡單,實際卻很復(fù)雜。數(shù)據(jù)庫的事務(wù)管理策略(不僅有數(shù)據(jù)庫恢復(fù)策略,還有并發(fā)控制策略)和DBMS緩沖區(qū)管理策略、事務(wù)一致性級別密切相關(guān),同學(xué)們要在學(xué)習(xí)完這些知識后把這些問題聯(lián)系起來,提升對這些技術(shù)的理解和掌握。
難點:掌握日志文件的使用,系統(tǒng)故障、介質(zhì)故障的恢復(fù)方法。對于剛剛學(xué)習(xí)數(shù)據(jù)庫的學(xué)生來講并不體會數(shù)據(jù)庫故障恢復(fù)的復(fù)雜性和重要性。在實際工作中,則必須正確了解所用的DBMS產(chǎn)品提供的恢復(fù)技術(shù)和恢復(fù)方法,并且能夠根據(jù)這些機制正確制定系統(tǒng)的恢復(fù)策略,以保證數(shù)據(jù)庫系統(tǒng)7*24小時正確運行。保證數(shù)據(jù)庫系統(tǒng)在遇到故障時能及時恢復(fù)正常運行,提高抗故障抗災(zāi)難的能力。
實驗內(nèi)容
在安裝好的數(shù)據(jù)庫系統(tǒng)下對已經(jīng)建立的數(shù)據(jù)庫人為地制造事務(wù)內(nèi)部故障和系統(tǒng)故障,檢查系統(tǒng)是否進行了恢復(fù)。
第十一章 并發(fā)控制
內(nèi)容概述 數(shù)據(jù)庫管理系統(tǒng)必須提供并發(fā)控制機制來協(xié)調(diào)并發(fā)用戶的并發(fā)操作以保證并發(fā)事務(wù)的隔離性和一致性,保證數(shù)據(jù)庫的一致性。本章討論數(shù)據(jù)庫并發(fā)控制的基本概念和實現(xiàn)技術(shù)。包括封鎖技術(shù)、封鎖協(xié)議、活鎖和死鎖的概念、并發(fā)調(diào)度的可串行性、沖突可串行化調(diào)度、兩段鎖協(xié)議、封鎖的粒度、意向鎖。
本章目標(biāo)
了解的數(shù)據(jù)庫并發(fā)控制技術(shù)的必要性和重要性。牢固掌握并發(fā)控制的基本概念。
重點和難點
重點:掌握并發(fā)操作產(chǎn)生的數(shù)據(jù)不一致性(丟失修改、不可重復(fù)讀、讀“臟數(shù)據(jù)”)的確切含義。封鎖協(xié)議與數(shù)據(jù)一致性的關(guān)系;并發(fā)調(diào)度的可串行性概念。
難點:兩段鎖協(xié)議與串行性的關(guān)系、與死鎖的關(guān)系。具有意向鎖的多粒度封鎖方法的封鎖過程。
本章內(nèi)容有一定的深度和難度,可以通過對實例的學(xué)習(xí)和習(xí)題的練習(xí)來正確理解和掌握基本概念
第二篇:數(shù)據(jù)庫原理實驗教案
《數(shù)據(jù)庫原理》課程實驗
實驗1 創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表
一、實驗?zāi)康?/p>
熟悉SQL Server Management Studio界面;掌握通過圖形化向?qū)Ш蛨?zhí)行Transact-SQL語句創(chuàng)建數(shù)據(jù)庫的方法。
二、實驗環(huán)境
Windows XP操作系統(tǒng),SQL Server 2005軟件。
三、實驗課時
2課時。
四、實驗內(nèi)容
SQL Server中的一個數(shù)據(jù)庫必須至少包含一個數(shù)據(jù)文件和一個事務(wù)日志文件,所以創(chuàng)建數(shù)據(jù)庫就是建立主數(shù)據(jù)文件和日志文件。
在SQL Server 2005中創(chuàng)建數(shù)據(jù)庫的方法主要有兩種:一是在SQL Server Management Studio窗口中使用可視化界面,通過方便的圖形化向?qū)?chuàng)建,二是通過執(zhí)行Transact-SQL語句創(chuàng)建。
(一)向?qū)Х绞絼?chuàng)建
1、從“開始”菜單選擇“所有程序”→“Microsoft SQL Server 2005”,打開“SQL Server Management Studio”窗口,使用Windows或SQL Server身份驗證建立連接。
2、在“對象資源管理器”窗格中展開服務(wù)器,選擇“數(shù)據(jù)庫”節(jié)點右擊,從彈出的快捷菜單中選擇“新建數(shù)據(jù)庫”命令,打開“新建數(shù)據(jù)庫”窗口。
3、該窗口中有3個頁,分別是“常規(guī)”、“選項”和“文件組”,完成這3個頁的內(nèi)容即可完成數(shù)據(jù)庫的創(chuàng)建。這里,我們僅設(shè)置“常規(guī)”的相應(yīng)內(nèi)容,其他2個頁的內(nèi)容按照默認(rèn)設(shè)置即可。
(1)“數(shù)據(jù)庫名稱”文本框中輸入數(shù)據(jù)庫的名稱,如“sample_st”,再輸入該數(shù)據(jù)庫的所有者,這里使用默認(rèn)值即可。(也可以通過單擊文本框右邊的“瀏覽”按鈕選擇所有者。
(2)“數(shù)據(jù)庫文件”列表中包括兩行,一個是數(shù)據(jù)文件,一個是日志文件。通過單擊下面相應(yīng)的按鈕可以添加或刪除相應(yīng)的數(shù)據(jù)文件。
? 邏輯名稱:指定該文件的文件名。
? 文件類型:用于區(qū)別當(dāng)前文件是數(shù)據(jù)文件還是日志文件。? 文件組:顯示當(dāng)前數(shù)據(jù)庫文件所屬的文件組。
? 初始大?。褐付ㄔ撐募某跏既萘?。在SQL Server 2005中數(shù)據(jù)文件的默認(rèn)值為3MB,日志文件的默認(rèn)值為1MB。? 自動增長:用于設(shè)置在文件容量不夠用時,文件根據(jù)何種增長方式自動增長。
? 路徑:指定存放在文件的目錄。默認(rèn)情況下,SQL Server 2005將存放路徑設(shè)置為其安裝目錄下的data子目錄,單擊該列中的按鈕可以在打開的“定位文件夾”對話框中更改數(shù)據(jù)庫的存儲路徑。
完成上述操作后,單擊“確定”按鈕關(guān)閉“新建數(shù)據(jù)庫”窗口,即完成了數(shù)據(jù)庫的創(chuàng)建,可以在“對象資源管理器”窗格中看到新建的數(shù)據(jù)庫。
(二)語言方式創(chuàng)建
SQL Server 2005使用的Transact-SQL語言是標(biāo)準(zhǔn)SQL的增強版本,使用它提供的Create Database語句同樣可以完成對數(shù)據(jù)庫的建立(參考內(nèi)容見附錄)。
1、單擊“新建查詢”按鈕,創(chuàng)建一個查詢輸入窗口將附錄中的語句復(fù)制到該窗口。選擇創(chuàng)建數(shù)據(jù)庫的命令,單擊工具欄中的“分析”按鈕,可以檢查語法錯誤;單擊“執(zhí)行”按鈕即可執(zhí)行語句,在查詢窗口內(nèi)的“查詢”窗格中可以看到“命令已成功完成”的提示消息。在“對象資源管理器”窗格中刷新,即可看到新建的數(shù)據(jù)庫。
2、繼續(xù)執(zhí)行Create Database之后的語句,在“sample_st”數(shù)據(jù)庫中用Create Table命令依次建立Student、Course和SC這三個數(shù)據(jù)表,利用Insert命令為各數(shù)據(jù)表添加數(shù)據(jù)。(參考內(nèi)容見教材P84)
(三)知識鞏固
仿照附錄內(nèi)容,用SQL-DDL語言創(chuàng)建“產(chǎn)品訂購”數(shù)據(jù)庫,包含四個數(shù)據(jù)表S、P、J和SPJ,表結(jié)構(gòu)及內(nèi)容見教材P122。
實驗2 數(shù)據(jù)庫的簡單查詢
一、實驗?zāi)康?/p>
掌握單表查詢中各個子句(Select、From、Where、Group、Having、Order)的用法,特別要掌握比較運算符和邏輯運算符的使用。
二、實驗環(huán)境
Windows XP操作系統(tǒng),SQL Server 2005軟件。
三、實驗課時
2課時。
四、實驗內(nèi)容
在已建立的數(shù)據(jù)庫和數(shù)據(jù)表的基礎(chǔ)上,用Select語句完成下列查詢操作。
1、查詢?nèi)w學(xué)生的學(xué)號和姓名。
select sn,sno from s
2、查詢?nèi)w學(xué)生的所有基本信息(僅針對Student表)。
select * from s
3、對SC表查詢?nèi)w學(xué)生的選課記錄,在顯示結(jié)果中為“Grade”列增加5分。select score+5 from sc
4、查詢?nèi)w學(xué)生的學(xué)號和姓名,將原來的英文列名設(shè)置中文別名。select sn as 姓名,sno as 學(xué)號 from s
5、顯示所有選課學(xué)生的學(xué)號,去掉重復(fù)結(jié)果。
select distinct sno from sc
6、查詢成績在80分以上的學(xué)生選課記錄
select * from sc where score>80
7、查詢經(jīng)濟系所有學(xué)生的學(xué)號和姓名。
select sn,sno from s where dept='經(jīng)濟系'
8、查詢成績在80~90分的學(xué)生選課記錄。
select * from sc where score between 80 and 90
9、查詢年齡不在22~25的學(xué)生記錄。
select * from s where age not between 22 and 25
10、查詢所有姓“劉”的學(xué)生記錄。
select * from s where sn like'劉%'
11、查詢無考試成績(成績?yōu)榭罩担┑膶W(xué)號、課程號。5
select sno ,cno from sc where score is null
12、查詢考試成績非空值的學(xué)號、課程號。
select sno ,cno from sc where score is null
13、查詢數(shù)學(xué)系年齡小于20歲的學(xué)生記錄。
select * from s where dept ='數(shù)學(xué)系'and age <28
14、查詢選修了“101”或“102”課程的選課記錄。select * from c where cno ='101' or cno ='102'
15、查詢學(xué)生總?cè)藬?shù)。
select count(sno)from s
16、查詢選修了課程的學(xué)生人數(shù)。
select count(distinct sno)from sc
17、查詢選修了“101”課程的學(xué)生的平均成績。
select AVG(score)from sc
where cno='101'
18、查詢學(xué)號為“01003”的學(xué)生的考試總成績。
select sum(score)from sc
where sno=01003
19、查詢“101”課程的最高分和最低分。
select max(score),MIN(score)from sc
where cno='101'
20、查詢每門課程的選課人數(shù)。
select cno,COUNT(sno)from sc
group by cno
21、查詢每個學(xué)生的學(xué)號、選課數(shù)、平均成績和總成績。
select sno,COUNT(cno)/*,AVG(score),sum(score)*/ from sc group by sno
22、查詢選課數(shù)超過2的學(xué)生學(xué)號及其選課數(shù)。
select sno,COUNT(cno)from sc
group by sno
having COUNT(*)>2
23、查詢所有學(xué)生信息,查詢結(jié)果按年齡降序排列。(針對Student表操作)
select * from s order by AGE desc
24、查詢所有學(xué)生信息,查詢結(jié)果按系名升序,同系學(xué)生按年齡降序排列。
select * from s order by dept,AGE desc
25、查詢選課數(shù)超過2的學(xué)生學(xué)號及其選課數(shù),查詢結(jié)果按選課數(shù)降序排列。
select sno,COUNT(cno)from sc group by sno having COUNT(*)>2 order by count(cno)desc
實驗3 數(shù)據(jù)庫的多表查詢
一、實驗?zāi)康?/p>
繼續(xù)熟練SQL-SELECT語句的使用;理解多表查詢的概念;掌握多表連接查詢中各個子句的用法,特別要比較內(nèi)連接和外連接的結(jié)果。掌握非相關(guān)子查詢、相關(guān)子查詢的用法,理解它們的執(zhí)行過程;學(xué)會在SQL Server中用Exists實現(xiàn)交運算,用Not Exists實現(xiàn)差運算。
二、實驗環(huán)境
Windows XP操作系統(tǒng),SQL Server 2005軟件。
三、實驗課時
2課時。
四、實驗內(nèi)容
(一)、在已建立的數(shù)據(jù)庫和數(shù)據(jù)表的基礎(chǔ)上,用Select語句的連接查詢完成下列操作。
1、查詢每個學(xué)生的基本信息及其選課情況。
2、查詢選修“101”課程的學(xué)生學(xué)號、姓名和成績。
3、查詢與“李平”在同一個系學(xué)習(xí)的學(xué)生記錄。
4、查詢與“李平”年齡相同的學(xué)生記錄。
5、查詢選修課程名為“數(shù)據(jù)庫原理”的選課記錄。
6、查詢選修課程名為“數(shù)據(jù)庫原理”的學(xué)生記錄。
7、查詢選修“101”課程且成績≥90的學(xué)號、姓名和成績。
8、查詢“李平”的所有選課記錄。
9、查詢數(shù)學(xué)系學(xué)生選修的課程號,要求結(jié)果中去掉重復(fù)記錄。
10、查詢計算機系選修課程數(shù)≥2的學(xué)號、姓名及平均成績,查詢結(jié)果按平均成績降序。
11、查詢每個學(xué)生的學(xué)號、選修課程號、課程名及成績。
12、查詢所有學(xué)生的選修情況(包括選課和未選課的學(xué)生),要求顯示學(xué)號、姓名、課程號和成績。
(二)、在已建立的數(shù)據(jù)庫和數(shù)據(jù)表的基礎(chǔ)上,用Select語句的嵌套查詢完成下列操作。
1、查詢選修“101”課程且成績≥90的學(xué)號、姓名。
2、查詢“李平”的所有選課記錄。
3、查詢與“李平”在同一個系學(xué)習(xí)的學(xué)生記錄。
4、查詢與“李平”年齡相同的學(xué)生記錄。
5、查詢選修課程名為“數(shù)據(jù)庫原理”的選課記錄,輸出結(jié)果包括學(xué)號和成績。
6、查詢選修課程名為“數(shù)據(jù)庫原理”的學(xué)生記錄,輸出結(jié)果包括學(xué)號、姓名和所在系。
7、查詢學(xué)號為“01003”學(xué)生的選修課程號和課程名。
8、查詢沒有選修“101”課程的學(xué)生學(xué)號和姓名。
9、查詢選修“101”課程或“102”課程的學(xué)生姓名。
10、查詢選修“101”課程和“102”課程的學(xué)生學(xué)號。
11、查詢選修“101”課程但沒選修“102”課程的學(xué)生學(xué)號。
12、查詢沒有選修任何課程的學(xué)生記錄,輸出結(jié)果包括學(xué)號、姓名和所在系。
13、查詢數(shù)學(xué)系學(xué)生選修的課程號,要求結(jié)果中去掉重復(fù)記錄。
14、查詢選修課程至少包含“01003”選修課程的學(xué)生學(xué)號。實驗4 數(shù)據(jù)庫更新、視圖定義及使用
一、實驗?zāi)康?/p>
掌握Insert、Update、Delete語句的使用;對于Insert語句,要求理解默認(rèn)值約束、空值約束在插入記錄時所起的作用。理解視圖的概念,掌握Create View、Drop View語句的使用;掌握基于視圖的查詢語句的使用。
二、實驗環(huán)境
Windows XP操作系統(tǒng),SQL Server 2005軟件。
三、實驗課時
2課時。
四、實驗內(nèi)容
(一)、在已建立的數(shù)據(jù)庫和數(shù)據(jù)表的基礎(chǔ)上,向數(shù)據(jù)庫中添加一個臨時表ST,其結(jié)構(gòu)比Student表結(jié)構(gòu)多一個score字段。用Insert語句向臨時表輸入數(shù)據(jù),輸入有誤時用Update語句進行修改。再用三個更新語句完成下列操作。
1、向Student表添加若干新記錄,內(nèi)容自定。(觀察已定義的表的約束情況)
2、向SC表添加新記錄,內(nèi)容自定,不低于10條(注意不能違反參照完整性)。
3、為臨時表ST添加記錄。
4、把Student表的所有行一次性地加到臨時表ST中。
5、在ST表中把所有學(xué)生的成績加2分。
6、在ST表中把所有學(xué)生的年齡增加1。
7、在ST表中把“李平”的所在系改為“計算機”。
8、在ST表中將選修課程“數(shù)據(jù)庫原理”的學(xué)生成績加2分。
9、在SC表中刪除所有成績?yōu)榭罩档倪x修記錄。
10、刪除計算機系選修成績不及格的選課記錄。
(二)、在已建立的數(shù)據(jù)庫和數(shù)據(jù)表的基礎(chǔ)上,完成下列操作。
1、建立數(shù)學(xué)系學(xué)生的視圖MAST。
2、建立計算機系選修課程名為“數(shù)據(jù)庫原理”的學(xué)生視圖,視圖名:CSTVIEW,該視圖中應(yīng)包括屬性列:學(xué)號、姓名、成績。
3、創(chuàng)建一個名為STSUMVIEW的視圖,包括所有學(xué)生的學(xué)號和總成績。
4、建立學(xué)生選課視圖SCVIEW,包括所有學(xué)生的學(xué)號、姓名、課程號、課程名和成績。
5、通過MAST視圖查詢學(xué)生基本信息。
6、通過SCVIEW查詢成績大于90分的學(xué)生的學(xué)號和成績。
7、查詢計算機系選修課程名為“數(shù)據(jù)庫原理”并且成績大于85分的學(xué)生的學(xué)號和成績。
8、通過MAST視圖將學(xué)號為“01008”學(xué)生的年齡修改為21歲。
9、通過MAST視圖將學(xué)號為“01009”學(xué)生所在系改為“經(jīng)濟”,是否能成功執(zhí)行?若不能成功請說明理由;若修改成功,請再次通過MAST視圖查詢學(xué)生基本信息,是否能查詢到該生?若不能查詢請說明理由。
10、通過SCVIEW視圖將學(xué)號為“01004”學(xué)生的總成績修改為380分,是否能成功執(zhí)行?若不能成功請說明理由。
實驗5 數(shù)據(jù)庫的安全與保護
一、實驗?zāi)康?/p>
理解SQL Server的用戶與權(quán)限管理機制,掌握用對象資源管理器創(chuàng)建服務(wù)器登錄帳號,并同時建立用戶。掌握如何為給定的用戶分配權(quán)限。
二、實驗環(huán)境
Windows XP操作系統(tǒng),SQL Server 2005軟件。
三、實驗課時
2課時。
四、實驗內(nèi)容
用戶與權(quán)限管理
(1)打開“SQL Server Management Studio”窗口,使用對象資源管理器創(chuàng)建兩個服務(wù)器登錄帳號Test1和Test2,并在“sample_st”數(shù)據(jù)庫中創(chuàng)建兩個對應(yīng)的同名用戶。設(shè)置Test1用戶和Test2用戶的默認(rèn)架構(gòu)為guest。
(2)使用Test1身份登錄,并為Test2分配創(chuàng)建數(shù)據(jù)表的權(quán)限;用Test2身份登錄來驗證權(quán)限分配成功。
(3)使用Test1身份登錄,收回剛剛分配給Test2的創(chuàng)建數(shù)據(jù)表的權(quán)限;用Test2身份登錄來驗證權(quán)限回收成功。
五、實驗步驟
1、使用對象資源管理器創(chuàng)建兩個服務(wù)器登錄帳號。以系統(tǒng)管理員身份登錄SQL Server。打開“SQL Server Management Studio”窗口,在對象資源管理器列表中,打開展開“安全性”文件夾,選擇“登錄名”圖標(biāo),單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“新建登錄名”。在打開的對話框中依次建立Test1和Test2,選擇“SQL Server身份驗證”,同時還要輸入密碼,默認(rèn)數(shù)據(jù)庫為“sample_st”。
(2)在“用戶映射”中列出了當(dāng)前登錄帳號可以選擇訪問的數(shù)據(jù)庫如“sample_st”,在其左側(cè)的復(fù)選框中打勾,表示當(dāng)前登錄帳號可以訪問對應(yīng)的數(shù)據(jù)庫,默認(rèn)用戶名與登錄帳號相同。
(3)單擊“確定”按鈕完成創(chuàng)建。
2、創(chuàng)建新的數(shù)據(jù)庫用戶。
在對象資源管理器中選中要訪問操作的數(shù)據(jù)庫,展開“安全性”文件夾,在“用戶”文件夾中查找是否已建立與登錄名Test1和Test2同名的數(shù)據(jù)庫用戶,若已建立,則在屬性中修改其默認(rèn)架構(gòu)為guest;否則右擊鼠標(biāo)在菜單中選擇“新建用戶”選項,出現(xiàn)“數(shù)據(jù)庫用戶-新建”對話框,建立相應(yīng)的用戶。最后,在sample_st數(shù)據(jù)庫的“安全性?架構(gòu)?guest?屬性?權(quán)限”中,為test1和test2用戶分配相應(yīng)權(quán)限。
3、用Grant、Revoke命令實現(xiàn)對用戶的授權(quán)和收權(quán)。
4、用Create命令創(chuàng)建數(shù)據(jù)表驗證授權(quán)和收權(quán)是否成功。
5、以系統(tǒng)管理員身份登錄SQL Server。使用:“GRANT SELECT ON SC TO Test1 WITH GRANT OPTION”命令,再分別以Test1和Test2身份登錄,進行授權(quán)及查詢數(shù)據(jù)表,驗證“WITH GRANT OPTION”能否成功執(zhí)行。
6、以系統(tǒng)管理員身份使用“REVOKE”命令回收上述授權(quán)。
實驗6 數(shù)據(jù)庫的完整性
一、實驗?zāi)康?/p>
通過實驗掌握數(shù)據(jù)庫完整性概念,掌握利用SQL Server 2005實現(xiàn)數(shù)據(jù)庫完整性的基本方法和步驟。
二、實驗環(huán)境
Windows XP操作系統(tǒng),SQL Server 2005軟件。
三、實驗課時
2課時。
四、實驗內(nèi)容
1、建立關(guān)系模式。
完成教材P164第6題,用SQL語言定義“職工”和“部門”兩個關(guān)系模式: 職工(職工號,姓名,年齡,職務(wù),工資,部門號),職工號為主碼 部門(部門號,名稱,經(jīng)理名,電話), 部門號為主碼 要求在模式中完成以下完整性約束條件的定義:(1)定義每個模式的主碼;(2)定義參照完整性;
(3)定義職工年齡不得超過60歲;(4)定義部門名稱必須取值唯一。
2、驗證完整性約束。
使用Insert Values語句向兩個表中各插入5~10條記錄,對下列內(nèi)容進行驗證。(1)驗證主鍵約束:“職工”和“部門”兩個表中是否能接受主碼值相同的記錄,通過實例驗證。
(2)驗證唯一約束:“部門”表中是否能接受名稱相同的兩個不同記錄?為什么?
(3)驗證檢查約束:“職工”表中能否接受年齡不滿足條件的記錄?為什么?
(4)驗證參照完整性:若“部門”表中不存在部門號為“008”的記錄,是否能在“職工”表中插入部門號為“008”的職工記錄?若刪除“001”部門的所有信息,正確的操作步驟是什么?
實驗7 數(shù)據(jù)庫設(shè)計實驗
一、實驗?zāi)康?/p>
通過實驗掌握數(shù)據(jù)庫設(shè)計的基本方法和步驟。
二、實驗環(huán)境
Windows XP操作系統(tǒng),SQL Server 2005軟件。
三、實驗課時
2課時。
四、實驗內(nèi)容
1、選定實驗題目,為某個單位或部門設(shè)計數(shù)據(jù)庫應(yīng)用系統(tǒng),比如:學(xué)生成績管理、機房上機管理、職工檔案管理、商品庫存管理、圖書管理、工資管理等。
2、根據(jù)選定的題目進行需求分析,重點分析數(shù)據(jù)需求和功能需求。
3、概念結(jié)構(gòu)設(shè)計:畫出E-R圖。
4、邏輯結(jié)構(gòu)設(shè)計:設(shè)計數(shù)據(jù)庫和數(shù)據(jù)表的具體結(jié)構(gòu),指出各表的屬性名稱、數(shù)據(jù)類型;說明各表的主碼及表之間的關(guān)聯(lián)情況;說明本設(shè)計是否已達到3NF要求。
5、簡要評價系統(tǒng)設(shè)計的優(yōu)點和不足。
五、實驗要求
1、提交設(shè)計報告,涵蓋實驗內(nèi)容的全部信息,不低于1000字。
2、提交建立應(yīng)用系統(tǒng)數(shù)據(jù)庫的代碼,所有數(shù)據(jù)表中的記錄總數(shù)不低于50條。(請參照實驗2的附錄建立數(shù)據(jù)庫)
實驗8 存儲過程實驗
一、實驗?zāi)康?/p>
通過實驗熟悉使用存儲過程進行數(shù)據(jù)庫應(yīng)用程序設(shè)計的方法
二、實驗環(huán)境
Windows XP操作系統(tǒng),SQL Server 2005軟件。
三、實驗課時
2課時。
四、實驗內(nèi)容
對sample_st數(shù)據(jù)庫,編寫存儲過程,完成下面功能
1、統(tǒng)計任意一門課程的平均成績
2、統(tǒng)計所有課程的平均成績
3、統(tǒng)計任意一門課程的成績分布情況,即按照分?jǐn)?shù)段統(tǒng)計人數(shù)(即<60、60-69、70-79、80-89、90以上)
第三篇:數(shù)據(jù)庫原理實驗教案
《數(shù)據(jù)庫原理》課程實驗
實驗1 創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表
一、實驗?zāi)康?/p>
熟悉SQL Server Management Studio界面;掌握通過圖形化向?qū)Ш蛨?zhí)行Transact-SQL語句創(chuàng)建數(shù)據(jù)庫的方法。
二、實驗環(huán)境
Windows XP操作系統(tǒng),SQL Server 2005軟件。
三、實驗課時
2課時。
四、實驗內(nèi)容
SQL Server中的一個數(shù)據(jù)庫必須至少包含一個數(shù)據(jù)文件和一個事務(wù)日志文件,所以創(chuàng)建數(shù)據(jù)庫就是建立主數(shù)據(jù)文件和日志文件。
在SQL Server 2005中創(chuàng)建數(shù)據(jù)庫的方法主要有兩種:一是在SQL Server Management Studio窗口中使用可視化界面,通過方便的圖形化向?qū)?chuàng)建,二是通過執(zhí)行Transact-SQL語句創(chuàng)建。
(一)向?qū)Х绞絼?chuàng)建
1、從“開始”菜單選擇“所有程序”→“Microsoft SQL Server 2005”,打開“SQL Server Management Studio”窗口,使用Windows或SQL Server身份驗證建立連接。
2、在“對象資源管理器”窗格中展開服務(wù)器,選擇“數(shù)據(jù)庫”節(jié)點右擊,從彈出的快捷菜單中選擇“新建數(shù)據(jù)庫”命令,打開“新建數(shù)據(jù)庫”窗口。
3、該窗口中有3個頁,分別是“常規(guī)”、“選項”和“文件組”,完成這3個頁的內(nèi)容即可完成數(shù)據(jù)庫的創(chuàng)建。這里,我們僅設(shè)置“常規(guī)”的相應(yīng)內(nèi)容,其他2個頁的內(nèi)容按照默認(rèn)設(shè)置即可。
(1)“數(shù)據(jù)庫名稱”文本框中輸入數(shù)據(jù)庫的名稱,如“sample_st”,再輸入該數(shù)據(jù)庫的所有者,這里使用默認(rèn)值即可。(也可以通過單擊文本框右邊的“瀏覽”按鈕選擇所有者。
(2)“數(shù)據(jù)庫文件”列表中包括兩行,一個是數(shù)據(jù)文件,一個是日志文件。通過單擊下面相應(yīng)的按鈕可以添加或刪除相應(yīng)的數(shù)據(jù)文件。
? 邏輯名稱:指定該文件的文件名。
? 文件類型:用于區(qū)別當(dāng)前文件是數(shù)據(jù)文件還是日志文件。? 文件組:顯示當(dāng)前數(shù)據(jù)庫文件所屬的文件組。
? 初始大?。褐付ㄔ撐募某跏既萘?。在SQL Server 2005中數(shù)據(jù)文件的默認(rèn)值為3MB,日志文件的默認(rèn)值為1MB。? 自動增長:用于設(shè)置在文件容量不夠用時,文件根據(jù)何種增長方式自動增長。
? 路徑:指定存放在文件的目錄。默認(rèn)情況下,SQL Server 2005將存放路徑設(shè)置為其安裝目錄下的data子目錄,單擊該列中的按鈕可以在打開的“定位文件夾”對話框中更改數(shù)據(jù)庫的存儲路徑。
完成上述操作后,單擊“確定”按鈕關(guān)閉“新建數(shù)據(jù)庫”窗口,即完成了數(shù)據(jù)庫的創(chuàng)建,可以在“對象資源管理器”窗格中看到新建的數(shù)據(jù)庫。
(二)語言方式創(chuàng)建
SQL Server 2005使用的Transact-SQL語言是標(biāo)準(zhǔn)SQL的增強版本,使用它提供的Create Database語句同樣可以完成對數(shù)據(jù)庫的建立(參考內(nèi)容見附錄)。
1、單擊“新建查詢”按鈕,創(chuàng)建一個查詢輸入窗口將附錄中的語句復(fù)制到該窗口。選擇創(chuàng)建數(shù)據(jù)庫的命令,單擊工具欄中的“分析”按鈕,可以檢查語法錯誤;單擊“執(zhí)行”按鈕即可執(zhí)行語句,在查詢窗口內(nèi)的“查詢”窗格中可以看到“命令已成功完成”的提示消息。在“對象資源管理器”窗格中刷新,即可看到新建的數(shù)據(jù)庫。
2、繼續(xù)執(zhí)行Create Database之后的語句,在“sample_st”數(shù)據(jù)庫中用Create Table命令依次建立Student、Course和SC這三個數(shù)據(jù)表,并建立各自的約束及它們之間的聯(lián)系(外鍵),利用Insert命令為各數(shù)據(jù)表添加數(shù)據(jù)。
(三)知識鞏固
用SQL-DDL語言創(chuàng)建“產(chǎn)品訂購”數(shù)據(jù)庫,包含四個數(shù)據(jù)表S、P、J和SPJ,表結(jié)構(gòu)及內(nèi)容見教材P122。
實驗2 數(shù)據(jù)庫的簡單查詢
一、實驗?zāi)康?/p>
掌握單表查詢中各個子句(Select、From、Where、Group、Having、Order)的用法,特別要掌握比較運算符和邏輯運算符的使用。
二、實驗環(huán)境
Windows XP操作系統(tǒng),SQL Server 2005軟件。
三、實驗課時
2課時。
四、實驗內(nèi)容
在已建立的數(shù)據(jù)庫和數(shù)據(jù)表的基礎(chǔ)上,用Select語句完成下列查詢操作。
1、查詢?nèi)w學(xué)生的學(xué)號和姓名。
2、查詢?nèi)w學(xué)生的所有基本信息(僅針對Student表)。
3、對SC表查詢?nèi)w學(xué)生的選課記錄,在顯示結(jié)果中為“Grade”列增加5分。
4、查詢?nèi)w學(xué)生的學(xué)號和姓名,將原來的英文列名設(shè)置中文別名。
5、顯示所有選課學(xué)生的學(xué)號,去掉重復(fù)結(jié)果。
6、查詢成績在80分以上的學(xué)生選課記錄。
7、查詢經(jīng)濟系所有學(xué)生的學(xué)號和姓名。
8、查詢成績在80~90分的學(xué)生選課記錄。
9、查詢年齡不在22~25的學(xué)生記錄。
10、查詢所有姓“劉”的學(xué)生記錄。
11、查詢無考試成績(成績?yōu)榭罩担┑膶W(xué)號、課程號。
12、查詢考試成績非空值的學(xué)號、課程號。
13、查詢數(shù)學(xué)系年齡小于20歲的學(xué)生記錄。
14、查詢選修了“101”或“102”課程的選課記錄。
15、查詢學(xué)生總?cè)藬?shù)。
16、查詢選修了課程的學(xué)生人數(shù)。
17、查詢選修了“101”課程的學(xué)生的平均成績。
18、查詢學(xué)號為“01003”的學(xué)生的考試總成績。
19、查詢“101”課程的最高分和最低分。20、查詢每門課程的選課人數(shù)。
21、查詢每個學(xué)生的學(xué)號、選課數(shù)、平均成績和總成績。
22、查詢選課數(shù)超過2的學(xué)生學(xué)號及其選課數(shù)。
23、查詢所有學(xué)生信息,查詢結(jié)果按年齡降序排列。(針對Student表操作)
24、查詢所有學(xué)生信息,查詢結(jié)果按系名升序,同系學(xué)生按年齡降序排列。
25、查詢選課數(shù)超過2的學(xué)生學(xué)號及其選課數(shù),查詢結(jié)果按選課數(shù)降序排列。
實驗3 數(shù)據(jù)庫的多表查詢
一、實驗?zāi)康?/p>
繼續(xù)熟練SQL-SELECT語句的使用;理解多表查詢的概念;掌握多表連接查詢中各個子句的用法,特別要比較內(nèi)連接和外連接的結(jié)果。掌握非相關(guān)子查詢、相關(guān)子查詢的用法,理解它們的執(zhí)行過程;學(xué)會在SQL Server中用Exists實現(xiàn)交運算,用Not Exists實現(xiàn)差運算。
二、實驗環(huán)境
Windows XP操作系統(tǒng),SQL Server 2005軟件。
三、實驗課時
2課時。
四、實驗內(nèi)容
(一)、在已建立的數(shù)據(jù)庫和數(shù)據(jù)表的基礎(chǔ)上,用Select語句的連接查詢完成下列操作。
1、查詢每個學(xué)生的基本信息及其選課情況。
2、查詢選修“101”課程的學(xué)生學(xué)號、姓名和成績。
3、查詢與“李平”在同一個系學(xué)習(xí)的學(xué)生記錄。
4、查詢與“李平”年齡相同的學(xué)生記錄。
5、查詢選修課程名為“數(shù)據(jù)庫原理”的選課記錄。
6、查詢選修課程名為“數(shù)據(jù)庫原理”的學(xué)生記錄。
7、查詢選修“101”課程且成績≥90的學(xué)號、姓名和成績。
8、查詢“李平”的所有選課記錄。
9、查詢數(shù)學(xué)系學(xué)生選修的課程號,要求結(jié)果中去掉重復(fù)記錄。
10、查詢計算機系選修課程數(shù)≥2的學(xué)號、姓名及平均成績,查詢結(jié)果按平均成績降序。
11、查詢每個學(xué)生的學(xué)號、選修課程號、課程名及成績。
12、查詢所有學(xué)生的選修情況(包括選課和未選課的學(xué)生),要求顯示學(xué)號、姓名、課程號和成績。
(二)、在已建立的數(shù)據(jù)庫和數(shù)據(jù)表的基礎(chǔ)上,用Select語句的嵌套查詢完成下列操作(含EXISTS量詞)。
1、查詢選修“101”課程且成績≥90的學(xué)號、姓名。
2、查詢“李平”的所有選課記錄。
3、查詢與“李平”在同一個系學(xué)習(xí)的學(xué)生記錄。
4、查詢與“李平”年齡相同的學(xué)生記錄。
5、查詢選修課程名為“數(shù)據(jù)庫原理”的選課記錄,輸出結(jié)果包括學(xué)號和成績。
6、查詢選修課程名為“數(shù)據(jù)庫原理”的學(xué)生記錄,輸出結(jié)果包括學(xué)號、姓名和所在系。
7、查詢學(xué)號為“01003”學(xué)生的選修課程號和課程名。
8、查詢沒有選修“101”課程的學(xué)生學(xué)號和姓名。
9、查詢選修“101”課程或“102”課程的學(xué)生姓名。
10、查詢選修“101”課程和“102”課程的學(xué)生學(xué)號。
11、查詢選修“101”課程但沒選修“102”課程的學(xué)生學(xué)號。
12、查詢沒有選修任何課程的學(xué)生記錄,輸出結(jié)果包括學(xué)號、姓名和所在系。
13、查詢數(shù)學(xué)系學(xué)生選修的課程號,要求結(jié)果中去掉重復(fù)記錄。
14、查詢選修課程至少包含“01003”選修課程的學(xué)生學(xué)號。實驗4 數(shù)據(jù)庫更新、視圖定義及使用
一、實驗?zāi)康?/p>
掌握Insert、Update、Delete語句的使用;對于Insert語句,要求理解默認(rèn)值約束、空值約束在插入記錄時所起的作用。理解視圖的概念,掌握Create View、Drop View等語句的使用;掌握基于視圖的查詢語句的使用。
二、實驗環(huán)境
Windows XP操作系統(tǒng),SQL Server 2005軟件。
三、實驗課時
2課時。
四、實驗內(nèi)容
(一)、在已建立的數(shù)據(jù)庫和數(shù)據(jù)表的基礎(chǔ)上,向數(shù)據(jù)庫中添加一個臨時表ST(sno,sname,dept,sage,cno,cname,score)。用Insert語句向臨時表輸入數(shù)據(jù),輸入有誤時用Update語句進行修改。再用三個更新語句完成下列操作。
1、向Student表添加若干新記錄,內(nèi)容自定。(觀察已定義的表的約束情況)
2、向SC表添加新記錄,內(nèi)容自定,不低于10條(注意不能違反參照完整性)。
3、為臨時表ST添加記錄。
4、把Student表的所有行及其對應(yīng)的選課一次性地加到臨時表ST中。
5、在ST表中把所有學(xué)生的成績加2分。
6、在ST表中把所有學(xué)生的年齡增加1。
7、在ST表中把“李平”的所在系改為“計算機”。
8、在ST表中將選修課程“數(shù)據(jù)庫原理”的學(xué)生成績加2分。
9、在SC表中刪除所有成績?yōu)榭罩档倪x修記錄。
10、刪除計算機系選修成績不及格的選課記錄。
(二)、在已建立的數(shù)據(jù)庫和數(shù)據(jù)表的基礎(chǔ)上,完成下列操作。
1、建立數(shù)學(xué)系學(xué)生的視圖MAST。
2、建立計算機系選修課程名為“數(shù)據(jù)庫原理”的學(xué)生視圖,視圖名:CSTVIEW,該視圖中應(yīng)包括屬性列:學(xué)號、姓名、成績。
3、創(chuàng)建一個名為STSUMVIEW的視圖,包括所有學(xué)生的學(xué)號和總成績。
4、建立學(xué)生選課視圖SCVIEW,包括所有學(xué)生的學(xué)號、姓名、課程號、課程名和成績。
5、通過MAST視圖查詢學(xué)生基本信息。
6、通過SCVIEW查詢成績大于90分的學(xué)生的學(xué)號和成績。
7、查詢計算機系選修課程名為“數(shù)據(jù)庫原理”并且成績大于85分的學(xué)生的學(xué)號和成績。
8、通過MAST視圖將學(xué)號為“01008”學(xué)生的年齡修改為21歲。
9、通過MAST視圖將學(xué)號為“01009”學(xué)生所在系改為“經(jīng)濟”,是否能成功執(zhí)行?若不能成功請說明理由;若修改成功,請再次通過MAST視圖查詢學(xué)生基本信息,是否能查詢到該生?若不能查詢請說明理由。
10、通過SCVIEW視圖將學(xué)號為“01004”學(xué)生的總成績修改為380分,是否能成功執(zhí)行?若不能成功請說明理由。
實驗5 數(shù)據(jù)庫的安全與保護
一、實驗?zāi)康?/p>
理解SQL Server的用戶與權(quán)限管理機制,掌握用對象資源管理器創(chuàng)建服務(wù)器登錄帳號,并同時建立用戶。掌握如何為給定的用戶分配權(quán)限。
二、實驗環(huán)境
Windows XP操作系統(tǒng),SQL Server 2005軟件。
三、實驗課時
2課時。
四、實驗內(nèi)容
用戶與權(quán)限管理
(1)打開“SQL Server Management Studio”窗口,使用對象資源管理器創(chuàng)建兩個服務(wù)器登錄帳號Test1和Test2,并在“sample_st”數(shù)據(jù)庫中創(chuàng)建兩個對應(yīng)的同名用戶。設(shè)置Test1用戶和Test2用戶的默認(rèn)架構(gòu)為guest。
(2)使用Test1身份登錄,并為Test2分配創(chuàng)建數(shù)據(jù)表的權(quán)限;用Test2身份登錄來驗證權(quán)限分配成功。
(3)使用Test1身份登錄,收回剛剛分配給Test2的創(chuàng)建數(shù)據(jù)表的權(quán)限;用Test2身份登錄來驗證權(quán)限回收成功。
五、實驗步驟
1、使用對象資源管理器創(chuàng)建兩個服務(wù)器登錄帳號。以系統(tǒng)管理員身份登錄SQL Server。打開“SQL Server Management Studio”窗口,在對象資源管理器列表中,打開展開“安全性”文件夾,選擇“登錄名”圖標(biāo),單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“新建登錄名”。在打開的對話框中依次建立Test1和Test2,選擇“SQL Server身份驗證”,同時還要輸入密碼,默認(rèn)數(shù)據(jù)庫為“sample_st”。
(2)在“用戶映射”中列出了當(dāng)前登錄帳號可以選擇訪問的數(shù)據(jù)庫如“sample_st”,在其左側(cè)的復(fù)選框中打勾,表示當(dāng)前登錄帳號可以訪問對應(yīng)的數(shù)據(jù)庫,默認(rèn)用戶名與登錄帳號相同。
(3)單擊“確定”按鈕完成創(chuàng)建。
2、創(chuàng)建新的數(shù)據(jù)庫用戶。
在對象資源管理器中選中要訪問操作的數(shù)據(jù)庫,展開“安全性”文件夾,在“用戶”文件夾中查找是否已建立與登錄名Test1和Test2同名的數(shù)據(jù)庫用戶,若已建立,則在屬性中修改其默認(rèn)架構(gòu)為guest;否則右擊鼠標(biāo)在菜單中選擇“新建用戶”選項,出現(xiàn)“數(shù)據(jù)庫用戶-新建”對話框,建立相應(yīng)的用戶。
3、用Grant、Revoke命令實現(xiàn)對用戶的授權(quán)和收權(quán)。
4、用Create命令創(chuàng)建數(shù)據(jù)表驗證授權(quán)和收權(quán)是否成功。
5、以系統(tǒng)管理員身份登錄SQL Server。使用:“GRANT SELECT ON SC TO Test1 WITH GRANT OPTION”命令,再分別以Test1和Test2身份登錄,進行授權(quán)及查詢數(shù)據(jù)表,驗證“WITH GRANT OPTION”能否成功執(zhí)行。
6、以系統(tǒng)管理員身份使用“REVOKE”命令回收上述授權(quán)。
實驗6 數(shù)據(jù)庫的事務(wù)及并發(fā)控制
一、實驗?zāi)康?/p>
通過實驗加深學(xué)生對事務(wù)的基本概念理解語掌握;加深學(xué)生對并發(fā)控制的基本概念理解,認(rèn)識不正確的并發(fā)控制所帶來的危害;加深學(xué)生對鎖的基本概念的掌握與理解,認(rèn)識鎖帶來的問題;
二、實驗環(huán)境
Windows XP操作系統(tǒng),SQL Server 2005軟件。
三、實驗課時
2課時。
四、實驗內(nèi)容
1、事務(wù)的控制
數(shù)據(jù)準(zhǔn)備:執(zhí)行如下命令Select * into ##temp from student,將student的數(shù)據(jù)倒入到##temp表中。? 啟動事務(wù),執(zhí)行刪除后,回滾事務(wù)
? ? ? ? ? ? 選擇##temp的數(shù)據(jù),察看記錄總數(shù) 顯式啟動事務(wù) 刪除##temp表的數(shù)據(jù)
選擇##temp數(shù)據(jù),察看記錄總數(shù) 回滾事務(wù)
選擇##temp數(shù)據(jù),察看記錄總數(shù)
? 啟動事務(wù),執(zhí)行刪除后,提交事務(wù)
?
選擇##temp數(shù)據(jù),察看記錄總數(shù) ? ? ? ? ? 顯式啟動事務(wù) 刪除##temp表的數(shù)據(jù)
選擇##temp的數(shù)據(jù),察看記錄總數(shù) 回滾事務(wù)
選擇##temp數(shù)據(jù),察看記錄總數(shù)
比較這兩次執(zhí)行效果的差異,為什么會有這些差異?
2、事務(wù)的隔離級別試驗
數(shù)據(jù)準(zhǔn)備:執(zhí)行如下命令Select * into ##temp from student,將student的數(shù)據(jù)倒入到##temp表中。? 臟讀
? 啟動兩個分析器,分別叫(A,B)
? 在A中,選擇##temp表中數(shù)據(jù),察看記錄總數(shù) ? 在A中,顯式啟動事務(wù) ? 在A中,刪除##temp表的數(shù)據(jù)
? 在B中,將事務(wù)隔離級別設(shè)為UNCOMMITTED ? 在該查詢分析器中選擇##temp表數(shù)據(jù),察看記錄總數(shù) ? 回到先前窗口,回滾事務(wù) ? 選擇##temp數(shù)據(jù),察看記錄總數(shù) ? 再次切查詢分析器窗口
? 選擇##temp數(shù)據(jù),察看記錄總數(shù) 觀察結(jié)果,為什么會有這些現(xiàn)象? ? 不可重復(fù)讀
? 啟動兩個分析器,分別叫(A,B)
? 在A中,顯式啟動事務(wù),察看dept = 'math'的記錄(注意地址中的數(shù)據(jù))
? 在B中,顯式啟動事務(wù),察看dept = 'math'的記錄。在B中,將dept = 'math’地址更新為’AAAAAA’
? 在B中,再次察看dept = 'math'的記錄。在B中,提交事務(wù) ? 在A中,再次察看dept = 'math'的記錄。? 在A中,提交事務(wù)
觀察結(jié)果,為什么會有這些現(xiàn)象? ? 丟失修改
? 啟動兩個查詢分析器,分別叫(A,B)
? 在A中,顯式啟動事務(wù),察看dept = 'math'的記錄(注意地址中的數(shù)據(jù))
? 在B中,顯式啟動事務(wù),察看dept = 'math'的記錄。? 在B中,將dept = 'math’地址更新為’AAAAAA’ ? 在B中,再次察看dept = 'math'的記錄。? 在B中,提交事務(wù)
? 在A中,再次察看dept = 'math'的記錄。? 在A中,將dept = 'math’地址更新為’BBBBBB’ ? 在A中,提交事務(wù)
? 在A,B窗口分別察看dept = 'math’的記錄,結(jié)果如何? ? 鎖的模擬
? 啟動兩個分析器,分別叫(A,B)
? 在A中,顯式啟動事務(wù),察看dept = 'math'的記錄 ? 在B中,顯式啟動事務(wù),察看dept = 'math'的記錄 ? 在B中,將dept = 'math’地址更新為’AAAAAA’ ? 在A中,將dept = 'math’地址更新為’BBBBBB’ 觀察A窗口的結(jié)果,為什么?
事務(wù)隔離級別設(shè)置:set transaction isolation level {read committed, read uncommitted, repeatable read, serializable}
實驗7 數(shù)據(jù)庫設(shè)計實驗
一、實驗?zāi)康?/p>
通過實驗掌握數(shù)據(jù)庫設(shè)計的基本方法和步驟。
二、實驗環(huán)境
Windows XP操作系統(tǒng),SQL Server 2005軟件。
三、實驗課時
2課時。
四、實驗內(nèi)容
1、選定實驗題目,為某個單位或部門設(shè)計數(shù)據(jù)庫應(yīng)用系統(tǒng),比如:學(xué)生成績管理、機房上機管理、職工檔案管理、商品庫存管理、圖書管理、工資管理等。
2、根據(jù)選定的題目進行需求分析,重點分析數(shù)據(jù)需求和功能需求。
3、概念結(jié)構(gòu)設(shè)計:畫出E-R圖。步驟如下:
(1)設(shè)計局部E-R圖。設(shè)計依據(jù)是需求分析階段的DFD/DD。主要內(nèi)容是確定實體集合、聯(lián)系、屬性及主關(guān)鍵字
(2)集成局部E-R圖。集成時要解決沖突和冗余等問題。(3)合并局部E-R圖。合并局部E-R圖中相同部分,盡可能的保留特殊部分,刪除冗余部分,用累加的方式集成若干個局部E-R圖。
(4)優(yōu)化全局E-R圖,得到最佳的全局E-R圖方案。
4、邏輯結(jié)構(gòu)設(shè)計:設(shè)計數(shù)據(jù)庫和數(shù)據(jù)表的具體結(jié)構(gòu),指出各表的屬性名稱、數(shù)據(jù)類型;說明各表的主碼及表之間的關(guān)聯(lián)情況;說明本設(shè)計是否已達到3NF要求。
5、簡要評價系統(tǒng)設(shè)計的優(yōu)點和不足。
五、實驗要求
1、提交設(shè)計報告,涵蓋實驗內(nèi)容的全部信息,不低于1000字。
2、提交建立應(yīng)用系統(tǒng)數(shù)據(jù)庫的代碼,所有數(shù)據(jù)表中的記錄總數(shù)不低于50條。
實驗8 存儲過程實驗
一、實驗?zāi)康?/p>
通過實驗熟悉使用存儲過程進行數(shù)據(jù)庫應(yīng)用程序設(shè)計的方法
二、實驗環(huán)境
Windows XP操作系統(tǒng),SQL Server 2005軟件。
三、實驗課時
2課時。
四、實驗內(nèi)容
對sample_st數(shù)據(jù)庫,編寫存儲過程,完成下面功能
1、統(tǒng)計任意一門課程的平均成績
2、統(tǒng)計所有課程的平均成績
3、統(tǒng)計任意一門課程的成績分布情況,即按照分?jǐn)?shù)段統(tǒng)計人數(shù)(即<60、60-69、70-79、80-89、90以上)
第四篇:數(shù)據(jù)庫原理總結(jié)
1關(guān)系的范式及規(guī)范化
范式是衡量關(guān)系模式優(yōu)劣的標(biāo)準(zhǔn)。范式級別越高,其數(shù)據(jù)冗余和操作異?,F(xiàn)象就越少。第一范式:如果一個關(guān)系模式R的所有屬性都是不可分的基本數(shù)據(jù)項,則這個關(guān)系屬于第一范式。第二范式:若關(guān)系模式R屬于第一范式,且每個非主屬性都完全函數(shù)依賴于主鍵,則R屬于第二范式。第三范式:若關(guān)系模式R屬于第一范式,且每個非主屬性都不傳遞依賴于主關(guān)鍵字,則R屬于第三范式。BC范式:若關(guān)系模式R屬于第一范式,且每個屬性都不傳遞依賴于主關(guān)鍵字,則R屬于BC范式。
2對模式的分解顯然不是隨意的,主要涉及以下兩個原則:無損聯(lián)結(jié):當(dāng)對關(guān)系模式R進行分解時,R的元組將分別在相應(yīng)屬性集進行投影而產(chǎn)生新的關(guān)系。如果對新的關(guān)系進行自然聯(lián)接得到的元組的集合與原關(guān)系完全一致,則稱為無損聯(lián)結(jié)。保持依賴:當(dāng)對關(guān)系模式R進行分解時,R的函數(shù)依賴集也將按相應(yīng)的模式進行分解。如果分解后總的函數(shù)依賴集與原函數(shù)依賴集保持一致,則稱為保持依賴。
3事務(wù)的定義:事務(wù)是數(shù)據(jù)庫的邏輯工作單位,由用戶定義的一組操作序列組成,序列中的操作要么全做要么全不做。
4簡述事務(wù)所具有的ACID(原子性,一致性,隔離性,持續(xù)性)特性:事務(wù)的ACID特性是: 原子性:事務(wù)是一個不可分割的單位。一致性:事務(wù)對數(shù)據(jù)庫操作的結(jié)果是將數(shù)據(jù)庫從一個一致性狀態(tài)變?yōu)榱硪粋€一致性狀態(tài)。隔離性:多個事務(wù)的并發(fā)執(zhí)行不互相干擾。持續(xù)性:事務(wù)一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就是永久性的。5事務(wù)的調(diào)度:事務(wù)的執(zhí)行次序稱為調(diào)度。若多個事務(wù)是按照某一次序串行地執(zhí)行,則稱事務(wù)的調(diào)度是串行調(diào)度。若多個事務(wù)同時交叉地并行執(zhí)行,則稱事務(wù)的調(diào)度為并發(fā)調(diào)度。
6事務(wù)并發(fā)執(zhí)行產(chǎn)生的不一致情況及避免:并發(fā)操作可能會產(chǎn)生丟失修改,不能重復(fù)讀和讀”臟”數(shù)據(jù)這三種不一致情況,采用封鎖機制來進行并發(fā)控制,可避各種不一致情況。一級封鎖協(xié)議可以避免丟失修改,二級封鎖協(xié)議可以避免丟失修改和讀”臟”數(shù)據(jù),三級封鎖協(xié)議可以避免丟失修改、不能重復(fù)讀和讀”臟”數(shù)據(jù)。
7事務(wù)的COMMIT語句和ROLLBACK語句的功能是什么?答:COMMIT語句表示事務(wù)執(zhí)行成功地接結(jié)束(提交),此時告訴系統(tǒng),DB要進入一個新的正確狀態(tài),該事務(wù)對DB的所有更新都已交付實施(寫入磁盤)。ROLLBACK語句表示事務(wù)執(zhí)行不成功地結(jié)束(應(yīng)該“回退”)此時告訴系統(tǒng),已發(fā)生錯誤,DB可能處在不正確的狀態(tài),該事務(wù)對DB的所有更新必須被撤消,DB應(yīng)恢復(fù)該事務(wù)到初始狀態(tài)。
8活鎖和死鎖:活鎖:在多個事務(wù)并發(fā)執(zhí)行的過程中,可能會存在某個總有機會獲得鎖的事務(wù)卻永遠也沒得到鎖的現(xiàn)象,可以通過“先來先服務(wù)”的策略預(yù)防活鎖的發(fā)生。死鎖:在多個事務(wù)并發(fā)執(zhí)行過程中,多個并發(fā)事務(wù)處于相互等待的狀態(tài)的現(xiàn)象。
9死鎖的預(yù)防:數(shù)據(jù)庫當(dāng)中預(yù)防死鎖的方法有兩種。第一種方法是要求每個事務(wù)必須一次性地將所有要使用的數(shù)據(jù)加鎖或必須按照一個預(yù)定的加鎖順序?qū)κ褂玫降臄?shù)據(jù)加鎖。第二種方法是每當(dāng)處于等待狀態(tài)的事務(wù)由可能導(dǎo)致死鎖時,就不再等待下去,強行回滾該事務(wù)。
10完整性約束的定義:關(guān)系數(shù)據(jù)庫提供的三類完整性約束:實體完整性、參照完整性和用戶自定義完整性。實體完整性:實體完整性約束是指任何基本表(關(guān)系)的主鍵(主關(guān)鍵字)中的每一個屬性列都不能取空值,即基本表中的每一個元組在主鍵上的分量都有值。參照完整性:根據(jù)參照完整性原則,用戶只要定義了某一個關(guān)系(基本表)的外鍵(外部關(guān)鍵字),系統(tǒng)就會控制外鍵的值要么為空,要么等于被參照關(guān)系中某一個主鍵的值,這就是系統(tǒng)對外鍵的一種約束。用戶定義完整性:用戶定義完整性約束條件的作用對象可以是屬性列、元組或關(guān)系(基本表),其中對屬性列的約束可以規(guī)定屬性列的數(shù)據(jù)類型、取值范圍等;對元組的約束可以規(guī)定元組中各屬性間的相互關(guān)系;而對關(guān)系的約束則可以規(guī)定各元組間或關(guān)系間的相互聯(lián)系。
11故障恢復(fù)的原則:對數(shù)據(jù)庫的影響有兩種可能性:一是數(shù)據(jù)庫本身被破壞;二是數(shù)據(jù)庫沒有被破壞,但數(shù)據(jù)可能不正確,這是因為事務(wù)的運行被非正常終止造成的。12恢復(fù)算法一般由兩部分組成:在正常事務(wù)處理時采取措施,保證有足夠的冗余信息可用于故障恢復(fù)。故障發(fā)生后采取措施,將數(shù)據(jù)庫內(nèi)容恢復(fù)到某個保證數(shù)據(jù)庫一致性、事務(wù)原子性及持久性的狀態(tài)。
13數(shù)據(jù)庫在運行過程中可能產(chǎn)生的故障有哪幾類? 答:1)事務(wù)故障:事務(wù)在運行過程中由于種種原因,如輸入數(shù)據(jù)的錯誤,運算溢出,違反了某些完整性限制,某些應(yīng)用程序的錯誤,以及并行事務(wù)發(fā)生死鎖等,使事務(wù)未能運行到正常中指點之前就被撤消了,這種情況稱為“事務(wù)故障”。2)系統(tǒng)故障:系統(tǒng)故障是指系統(tǒng)在運行過程中,由于某些原因,如OS和DBMS代碼錯誤,操作員操作事物。特定類型的硬件錯誤(CPU故障),突然停電等造成系統(tǒng)停止運行,致使事物在執(zhí)行過程中以非控方式中指。這時。內(nèi)存中的信息丟失,而存儲在外存儲上的數(shù)據(jù)未受影響,這種情況稱為“系統(tǒng)故障”。3)介質(zhì)故障:系統(tǒng)在運行過程中,由于某種硬件故障,如磁盤損壞,磁頭碰撞,或由于OS的某種潛在的錯誤。瞬間強磁場干擾,使存儲在外存的數(shù)據(jù)部分損失或全部損失,稱之為“介質(zhì)故障”。14故障恢復(fù)技術(shù):數(shù)據(jù)轉(zhuǎn)儲、日志文件、檢查點方法、數(shù)據(jù)庫鏡像
15關(guān)系的完整性約束:域完整性約束:關(guān)系中屬性的值應(yīng)是域中的值,并由語義決定其能否為空值。實體完整性約束:關(guān)系中的主鍵不能為空值。參照完整性約束:關(guān)系的外鍵必須是另一個關(guān)系主鍵的有效值或者是空值。用戶自定義完整性約束:正對某一具體數(shù)據(jù)的約束條件,由應(yīng)用環(huán)境決定。
16故障恢復(fù)原理是冗余可分為副本和日志。恢復(fù)算法:在正常事物處理時采取措施,保證有足夠的冗余信息可用于故障恢復(fù)、故障發(fā)生后采取措施,將數(shù)據(jù)庫內(nèi)容恢復(fù)到某個保證數(shù)據(jù)庫一致性、事物原子性及持久性的狀態(tài)。
17事務(wù)故障的恢復(fù):事務(wù)故障是指事務(wù)在運行至正常終止點前被中止,這時恢復(fù)子系統(tǒng)應(yīng)利用日志文件撤消(UNDO)此事務(wù)已對數(shù)據(jù)庫進行的修改。事務(wù)故障的恢復(fù)是由系統(tǒng)自動完成的,對用戶是透明的,系統(tǒng)的恢復(fù)步驟是:⑴ 反向掃描文件日志(即從最后向前掃描日志文件),查找該事務(wù)的更新操作。⑵ 對該事務(wù)的更新操作執(zhí)行逆操作。即將日志記錄中“更新前的值”寫入數(shù)據(jù)庫。這樣,如果記錄中是插入操作,則相當(dāng)于做刪除操作(因此時“更新前的值”為空)。若記錄中是刪除操作,則做插入操作,若是修改操作,則相當(dāng)于用修改前值代替修改后值。⑶ 繼續(xù)反向掃描日志文件,查找該事務(wù)的其他更新操作,并做同樣處理。⑷ 如此處理下去,直至讀到此事務(wù)的開始標(biāo)記,事務(wù)故障恢復(fù)就完成了。
18系統(tǒng)故障的恢復(fù):系統(tǒng)故障造成數(shù)據(jù)庫不一致狀態(tài)的原因有兩個,一是未完成事務(wù)對數(shù)據(jù)庫的更新可能已寫入數(shù)據(jù)庫,二是已提交事務(wù)對數(shù)據(jù)庫的更新可能還留在緩沖區(qū)沒來得及寫入數(shù)據(jù)庫。因此,恢復(fù)操作就是要撤銷故障發(fā)生時未完成的事務(wù),重做已完成的事務(wù)。系統(tǒng)恢復(fù)步驟如下:正向掃描日志文件,即從頭掃描日志文件,找出在故障發(fā)證前已經(jīng)提交的事務(wù),將其事務(wù)標(biāo)示記入重做隊列,同時找出故障發(fā)證時尚未完成的事務(wù),將其事務(wù)標(biāo)識計入撤銷隊列、對撤銷隊列中的各個事務(wù)進行撤銷處理、對重做隊列中的各個事務(wù)進行重做掃描
19日志文件作用及建立原因:答:日志文件是用來記錄事務(wù)對數(shù)據(jù)庫的更新操作的文件。目的是進行事物故障恢復(fù);進行系統(tǒng)故障恢復(fù);協(xié)助后備副本進行介質(zhì)故障恢復(fù)。
20三級模式:三級模式結(jié)構(gòu):數(shù)據(jù)庫的三級模式由外模式、概念模式和內(nèi)模式三級模式構(gòu)成。概念模式:簡稱模式,又稱數(shù)據(jù)庫模式、邏輯模式。一個數(shù)據(jù)庫只有一個概念模式,它是數(shù)據(jù)庫系統(tǒng)三級模式結(jié)構(gòu)的中間層,概念模式是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯描述,而不是數(shù)據(jù)庫本身,它是裝配數(shù)據(jù)的一個結(jié)構(gòu)框架。外模式:外模式簡稱子模式,又稱用戶模式,是數(shù)據(jù)庫用戶能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是用戶與數(shù)據(jù)庫系統(tǒng)之間的接口。一個數(shù)據(jù)庫可以有多個外模式,設(shè)置外模式的優(yōu)點如下:方便用戶使用,簡化用戶接口、保證數(shù)據(jù)的獨立性、有利于數(shù)據(jù)共享、有利于數(shù)據(jù)安全和保密。內(nèi)模式:內(nèi)模式也稱存儲模式。是對數(shù)據(jù)庫中數(shù)據(jù)物理結(jié)構(gòu)和存儲方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示形式。一個數(shù)據(jù)庫只能有一個內(nèi)模式。21兩級映像:外模式/概念模式映像:外模式/概念模式映像定義了各個外模式與概念模式間的映像關(guān)系。概念模式/內(nèi)模式映像:概念模式/內(nèi)模式映像定義了數(shù)據(jù)庫全局邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)之間的對應(yīng)關(guān)系。
22兩極結(jié)構(gòu)的獨立性:物理數(shù)據(jù)獨立性:如果數(shù)據(jù)庫內(nèi)模式要修改,即數(shù)據(jù)庫的物理結(jié)構(gòu)有所變化,那么只要對概念模式/內(nèi)模式做相應(yīng)的修改即可。概念模式/內(nèi)模式提供了數(shù)據(jù)的物理數(shù)據(jù)獨立性。邏輯數(shù)據(jù)獨立性:如果概念模式要修改,例如增加記錄類型或增加數(shù)據(jù)項,那么只要對外模式/概念模式映像做相應(yīng)的修改,就可以使外模式和應(yīng)用程序盡可能保持不變。這樣,就稱數(shù)據(jù)庫打到了邏輯數(shù)據(jù)獨立性。外模式/概念模式映像提供了數(shù)據(jù)的邏輯獨立性。
23數(shù)據(jù)庫技術(shù)的發(fā)展階段:工管理階段(數(shù)據(jù)部保存、沒有對數(shù)據(jù)進行管理的軟件系統(tǒng)、沒有文件的概念、一組數(shù)據(jù)對應(yīng)于一個程序,數(shù)據(jù)時面向應(yīng)用的)、文件系統(tǒng)階段(數(shù)據(jù)需要長期保存在外存上供反復(fù)使用、程序和數(shù)據(jù)之間有了一定得獨立性、文件的形式已經(jīng)多樣化、數(shù)據(jù)的存取基本以記錄為單位)、數(shù)據(jù)庫系統(tǒng)階段(數(shù)據(jù)結(jié)構(gòu)化、數(shù)據(jù)共享、減少數(shù)據(jù)冗余、具有較高的數(shù)據(jù)獨立性、方便用戶接口、統(tǒng)一的數(shù)據(jù)管理與控制功能)
某校與教學(xué)管理相關(guān)的3個關(guān)系模式的結(jié)構(gòu)如下: 學(xué)生(學(xué)號、姓名、年齡、性別、所在系)課程(課程號、課程名、開課系、任課教師)學(xué)習(xí)(學(xué)號、課程號、成績)試進行如下操作:
1.創(chuàng)建“教學(xué)”數(shù)據(jù)庫,在“教學(xué)”數(shù)據(jù)庫中創(chuàng)建“學(xué)生”、“課程”、“學(xué)習(xí)”這3個基本表,并說明主鍵和外鍵。2.使用SQL的查詢語句表達下列查詢(1)查詢劉老師所授課程的課程號和課程名(2)查詢年齡大于23歲的男學(xué)生的學(xué)號和姓名
(3)查詢至少修讀劉老師所授課程中一門課程的女學(xué)生和姓名(4)查詢王樂同學(xué)不學(xué)的課程的課程號(5)查詢至少修讀兩門課程的學(xué)生學(xué)號
(6)查詢?nèi)繉W(xué)生都修讀的課程的課程號與課程名(7)查詢修讀課程中包含劉老師所授課程的學(xué)生學(xué)號
3)SELECT 姓名 FROM 學(xué)生 WHERE 性別=‘女’ AND EXISTS(SELECT * FROM 學(xué)習(xí)WHERE 學(xué)習(xí).學(xué)號=學(xué)生.學(xué)號 AND 課程號 IN(SELECT 課程號 FROM 課程 WHERE 任課教師 LIKE ‘劉%’))4)SELECT 課程號 FROM 課程 WHERE NOT EXISTS(SELECT * FROM 學(xué)習(xí)WHERE 學(xué)習(xí).課程號=課程.課程號 AND 學(xué)號 IN(SELECT 學(xué)號 FROM 學(xué)生 WHERE 姓名=‘王樂’))5)SELECT 學(xué)號 FROM 學(xué)生 GROUP BY 學(xué)號 HAVING COUNT(*)>=2 6)SELECT 課程號,課程名 FROM 課程 WHERE NOT EXISTS(SELECT * FROM 學(xué)生 WHERE NOT EXISTS(SELECT * 學(xué)號 FROM 學(xué)習(xí)WHERE 學(xué)習(xí).課程號=課程.課程號 AND 學(xué)習(xí).學(xué)號=學(xué)生.學(xué)號))7)SELECT 學(xué)號 FROM 學(xué)習(xí)WHERE EXISTS(SELECT * FROM 學(xué)習(xí)WHERE 課程號 IN(SELECT * FROM 課程號 FROM 課程 WHERE 任課教師 LIKE ‘劉%’))試用SQL查詢語句表達下列對教學(xué)數(shù)據(jù)庫中3個基本表“學(xué)生”、“課程”、“學(xué)習(xí)”的查詢(1)統(tǒng)計有學(xué)生修讀的課程門數(shù)(2)求修讀C4課程的學(xué)生的平均年齡
(3)求劉老師所授課程的每門課程的學(xué)生平均成績
(4)統(tǒng)計每門課程學(xué)生的修讀人數(shù)(超過10人的課程才統(tǒng)計),要求輸出課程號和修讀人數(shù),查詢結(jié)果按人數(shù)降序排列,若人數(shù)相同,按課程號升序排列(5)查詢學(xué)號比王樂同學(xué)大,而年齡比他小的學(xué)生姓名(6)查詢姓名以王打頭的所有學(xué)生的姓名和年齡(7)在“學(xué)習(xí)”表中檢索成績?yōu)榭罩档膶W(xué)生學(xué)號和課程號(8)求年齡大于女同學(xué)平均年齡的男學(xué)生姓名和年齡(9)求年齡大于所有女同學(xué)年齡的男學(xué)生姓名和年齡 SELECT COUNT(DISTINCT 課程號)FROM 學(xué)習(xí)
SELECT AVG(年齡)FROM 學(xué)生 WHERE EXISTS(SELECT * FROM 學(xué)習(xí)WHERE學(xué)生.學(xué)號=學(xué)習(xí).學(xué)號 AND 課程號=’C4’)SELECT AVG(成績)FROM 學(xué)習(xí)WHERE GROUP BY 課程號 HAVING 課程號 IN(SELECT 課程號 FROM 課程 WHERE 任課教師 LIKE ‘劉%’)SELECT 課程號,COUNT(*)AS C_COUNT FROM 學(xué)習(xí)HAVING C_COUNT>10 ORDER BY C_COUNT DESC,課程號
SELECT 姓名 FROM 學(xué)生 WHERE 學(xué)號>ALL(SELECT 學(xué)號FROM 學(xué)生WHERE 姓名=’王樂’)AND 年齡
(2)在基本表“學(xué)生”中查詢每一門課程成績都大于等于80分的學(xué)生學(xué)號、姓名和性別,并把查詢到的值送往另一個已存在的基本表“結(jié)果”(學(xué)號,姓名,性別)中(3)在基本表“學(xué)習(xí)”中刪除尚無成績的元組
(4)把王樂同學(xué)在“學(xué)習(xí)”基本表中的課程和成績?nèi)縿h除(5)把修讀Java課程不及格的成績?nèi)臑榭罩担?)把低于總平均成績的女同學(xué)成績提高5%(7)在基本表“學(xué)習(xí)”中修改C4課程的成績,若成績小于等于75分時提高5%,若成績大于75分時提高4%(用兩個UPDATE語句實現(xiàn))INSERT INTO 學(xué)生 VALUES(‘S009’,’吳’,18)INSERT INTO 結(jié)果(學(xué)號,姓名,性別)SELECT學(xué)號,姓名,性別 FROM 學(xué)生 WHERE NOT EXISTS(SELECT * FROM 學(xué)習(xí)WHERE 學(xué)生.學(xué)號=學(xué)習(xí).學(xué)號 AND 成績<80)DELETE FROM 學(xué)習(xí)WHERE 成績 IS NULL DELETE FROM 學(xué)習(xí)WHERE 學(xué)號 IN(SELECT 學(xué)號 FROM 學(xué)生 WHERE 姓名=’王樂’)UPDATE 學(xué)習(xí)SET成績=NULL WHERE 成績<60 AND 課程號 IN(SELECT 課程號 FROM 課程 WHERE 課程名=’JAVA’)UPDATE 學(xué)習(xí)SET 成績=成績*1.05 WHERE 成績<(SELECT AVG(成績)FROM 學(xué)生)UPDATE 學(xué)習(xí)SET 成績=成績*1.04 WHERE 成績>75 AND 課程號=’C4’ UPDATE 學(xué)習(xí)SET 成績=成績*1.05 WHERE 成績<=75 AND 課程號=’C4’
第五篇:數(shù)據(jù)庫原理實驗報告
南 京 曉 莊 學(xué) 院
《數(shù)據(jù)庫原理與應(yīng)用》
課程實驗報告
實驗一 SQL Server 2005常用服務(wù)與實用工具實驗
所在院(系): 數(shù)學(xué)與信息技術(shù)學(xué)院 班級:
學(xué)號:
姓名:
1.實驗?zāi)康?/p>
(1)了解Microsoft 關(guān)系數(shù)據(jù)庫管理系統(tǒng)SQL Server的發(fā)展歷史及其特性。(2)了解SQL Server 2005的主要組件、常用服務(wù)和系統(tǒng)配置。
(3)掌握Microsoft SQL Server Management Studio 圖形環(huán)境的基本操作方法。了解使用“SQL Server 2005 聯(lián)機從書”獲取幫助信息的方法;了解“查詢編輯器”的使用方法;了解模板的使用方法。
2.實驗要求
(1)收集整理Microsoft關(guān)系數(shù)據(jù)庫管理系統(tǒng)SQL Server的相關(guān)資料,總結(jié)其發(fā)展歷史及SQL Server 2005主要版本類別和主要功能特性。
(2)使用SQL Server配置管理器查看和管理SQL Server 2005服務(wù)。
(3)使用Microsoft SQL Server Management Studio連接數(shù)據(jù)庫;使用SQL Server幫助系統(tǒng)獲得所感興趣的相關(guān)產(chǎn)品主題/技術(shù)文檔。
(4)使用Microsoft SQL Server Management Studio“查詢編輯器”編輯并執(zhí)行Transact-SQL查詢語句。
(5)查看Microsoft SQL Server 2005模板,了解模板的使用方法。(6)按要求完成實驗報告。
3.實驗步驟、結(jié)果和總結(jié)實驗步驟/結(jié)果
(1)簡要總結(jié)SQL Server系統(tǒng)發(fā)展歷史及SQL Server 2005主要版本類別與主要功能特性。
(2)總結(jié)SQL Server Management Studio的主要操作方法。
(3)總結(jié)查詢編輯器的功能和主要操作方法,并舉例說明。
(4)總結(jié)“模板”的使用方法,并舉例說明。
4.實驗思考:
查詢相關(guān)資料,簡要描述SQL Server 2005的主要服務(wù)。